am 0ec3ca6e: am 449273e2: Merge "Fix for positioning of glyphs within a bitmap"
* commit '0ec3ca6e08e5933016beda147ca9a82e96434b15':
Fix for positioning of glyphs within a bitmap
diff --git a/Android.mk b/Android.mk
index 3d52f44..ade5e38 100644
--- a/Android.mk
+++ b/Android.mk
@@ -59,6 +59,8 @@
core/java/android/accounts/IAccountManagerResponse.aidl \
core/java/android/accounts/IAccountAuthenticator.aidl \
core/java/android/accounts/IAccountAuthenticatorResponse.aidl \
+ core/java/android/app/IActivityContainer.aidl \
+ core/java/android/app/IActivityContainerCallback.aidl \
core/java/android/app/IActivityController.aidl \
core/java/android/app/IActivityPendingResult.aidl \
core/java/android/app/IAlarmManager.aidl \
@@ -542,8 +544,7 @@
framework_docs_LOCAL_ADDITIONAL_DEPENDENCIES := \
frameworks/base/docs/knowntags.txt
-sample_dir := development/samples/browseable
-new_sample_dir := developers/samples/android
+samples_dir := development/samples/browseable
# Whitelist of valid groups, used for default TOC grouping. Each sample must
# belong to one (and only one) group. Assign samples to groups by setting
@@ -558,161 +559,6 @@
-samplegroup UI \
-samplegroup Views
-# the list here should match the list of samples included in the sdk samples package
-# (see development/build/sdk.atree)
-# remove htmlified samples for now -- samples are still available through the SDK
-web_docs_sample_code_flags := \
- -hdf android.hasSamples 1 \
- -samplecode $(sample_dir)/BasicAccessibility \
- samples/BasicAccessibility "" \
- -samplecode $(sample_dir)/HorizontalPaging \
- samples/HorizontalPaging "" \
- -samplecode $(sample_dir)/ShareActionProvider \
- samples/ShareActionProvider "" \
- -samplecode $(sample_dir)/Styled \
- samples/Styled "" \
- -samplecode $(sample_dir)/BasicAndroidKeyStore \
- samples/BasicAndroidKeyStore "" \
- -samplecode $(sample_dir)/Basic \
- samples/Basic "" \
- -samplecode $(sample_dir)/ImmersiveMode \
- samples/ImmersiveMode "" \
- -samplecode $(sample_dir)/repeatingAlarm \
- samples/repeatingAlarm "" \
- -samplecode $(sample_dir)/TextLinkify \
- samples/TextLinkify "" \
- -samplecode $(sample_dir)/BasicMediaRouter \
- samples/BasicMediaRouter "" \
- -samplecode $(sample_dir)/BasicMultitouch \
- samples/BasicMultitouch "" \
- -samplecode $(sample_dir)/TextSwitcher \
- samples/TextSwitcher "" \
- -samplecode $(sample_dir)/ActivityInstrumentation \
- samples/ActivityInstrumentation "" \
- -samplecode $(sample_dir)/BorderlessButtons \
- samples/BorderlessButtons "" \
- -samplecode $(sample_dir)/BasicNotifications \
- samples/BasicNotifications "" \
- -samplecode $(sample_dir)/AdvancedImmersiveMode \
- samples/AdvancedImmersiveMode "" \
- -samplecode $(sample_dir)/BluetoothLeGatt \
- samples/BluetoothLeGatt "" \
- -samplecode $(sample_dir)/NetworkConnect \
- samples/NetworkConnect "" \
- -samplecode $(sample_dir)/BasicNetworking \
- samples/BasicNetworking "" \
- -samplecode $(sample_dir)/BasicMediaDecoder \
- samples/BasicMediaDecoder "" \
- -samplecode $(sample_dir)/BasicImmersiveMode \
- samples/BasicImmersiveMode "" \
- -samplecode $(sample_dir)/CustomChoiceList \
- samples/CustomChoiceList "" \
- -samplecode $(sample_dir)/BasicContactables \
- samples/BasicContactables "" \
- -samplecode $(sample_dir)/BasicGestureDetect \
- samples/BasicGestureDetect "" \
- -samplecode $(sample_dir)/DoneBar \
- samples/DoneBar "" \
- -samplecode $(sample_dir)/ListPopupMenu \
- samples/ListPopupMenu "" \
- -samplecode $(sample_dir)/AppRestrictions \
- samples/AppRestrictions "" \
- -samplecode $(sample_dir)/CustomNotifications \
- samples/CustomNotifications "" \
- -samplecode $(sample_dir)/BasicSyncAdapter \
- samples/BasicSyncAdapter "" \
- -samplecode $(sample_dir)/StorageClient \
- samples/StorageClient "" \
- -samplecode $(sample_dir)/StorageProvider \
- samples/StorageProvider ""
-# -samplecode $(sample_dir)/AndroidBeamDemo \
-# samples/AndroidBeamDemo "Android Beam Demo" \
-# -samplecode $(sample_dir)/ApiDemos \
-# samples/ApiDemos "API Demos" \
-# -samplecode $(sample_dir)/Support4Demos \
-# samples/Support4Demos "API 4+ Support Demos" \
-# -samplecode $(sample_dir)/Support13Demos \
-# samples/Support13Demos "API 13+ Support Demos" \
-# -samplecode $(sample_dir)/BackupRestore \
-# samples/BackupRestore "Backup and Restore" \
-# -samplecode $(sample_dir)/BluetoothChat \
-# samples/BluetoothChat "Bluetooth Chat" \
-# -samplecode $(sample_dir)/BusinessCard \
-# samples/BusinessCard "Business Card" \
-# -samplecode $(sample_dir)/ContactManager \
-# samples/ContactManager "Contact Manager" \
-# -samplecode $(sample_dir)/CubeLiveWallpaper \
-# samples/CubeLiveWallpaper "Cube Live Wallpaper" \
-# -samplecode $(sample_dir)/Home \
-# samples/Home "Home" \
-# -samplecode $(sample_dir)/HoneycombGallery \
-# samples/HoneycombGallery "Honeycomb Gallery" \
-# -samplecode $(sample_dir)/JetBoy \
-# samples/JetBoy "JetBoy" \
-# -samplecode $(sample_dir)/KeyChainDemo \
-# samples/KeyChainDemo "KeyChain Demo" \
-# -samplecode $(sample_dir)/LunarLander \
-# samples/LunarLander "Lunar Lander" \
-# -samplecode $(sample_dir)/training/ads-and-ux \
-# samples/training/ads-and-ux "Mobile Advertisement Integration" \
-# -samplecode $(sample_dir)/MultiResolution \
-# samples/MultiResolution "Multiple Resolutions" \
-# -samplecode $(sample_dir)/training/multiscreen/newsreader \
-# samples/newsreader "News Reader" \
-# -samplecode $(sample_dir)/NotePad \
-# samples/NotePad "Note Pad" \
-# -samplecode $(sample_dir)/SpellChecker/SampleSpellCheckerService \
-# samples/SpellChecker/SampleSpellCheckerService "Spell Checker Service" \
-# -samplecode $(sample_dir)/SpellChecker/HelloSpellChecker \
-# samples/SpellChecker/HelloSpellChecker "Spell Checker Client" \
-# -samplecode $(sample_dir)/SampleSyncAdapter \
-# samples/SampleSyncAdapter "Sample Sync Adapter" \
-# -samplecode $(sample_dir)/RandomMusicPlayer \
-# samples/RandomMusicPlayer "Random Music Player" \
-# -samplecode $(sample_dir)/RenderScript \
-# samples/RenderScript "RenderScript" \
-# -samplecode $(sample_dir)/SearchableDictionary \
-# samples/SearchableDictionary "Searchable Dictionary v2" \
-# -samplecode $(sample_dir)/SipDemo \
-# samples/SipDemo "SIP Demo" \
-# -samplecode $(sample_dir)/Snake \
-# samples/Snake "Snake" \
-# -samplecode $(sample_dir)/SoftKeyboard \
-# samples/SoftKeyboard "Soft Keyboard" \
-# -samplecode $(sample_dir)/Spinner \
-# samples/Spinner "Spinner" \
-# -samplecode $(sample_dir)/SpinnerTest \
-# samples/SpinnerTest "SpinnerTest" \
-# -samplecode $(sample_dir)/StackWidget \
-# samples/StackWidget "StackView Widget" \
-# -samplecode $(sample_dir)/TicTacToeLib \
-# samples/TicTacToeLib "TicTacToeLib" \
-# -samplecode $(sample_dir)/TicTacToeMain \
-# samples/TicTacToeMain "TicTacToeMain" \
-# -samplecode $(sample_dir)/ToyVpn \
-# samples/ToyVpn "Toy VPN Client" \
-# -samplecode $(sample_dir)/USB \
-# samples/USB "USB" \
-# -samplecode $(sample_dir)/WeatherListWidget \
-# samples/WeatherListWidget "Weather List Widget" \
-# -samplecode $(sample_dir)/WiFiDirectDemo \
-# samples/WiFiDirectDemo "Wi-Fi Direct Demo" \
-# -samplecode $(sample_dir)/Wiktionary \
-# samples/Wiktionary "Wiktionary" \
-# -samplecode $(sample_dir)/WiktionarySimple \
-# samples/WiktionarySimple "Wiktionary (Simplified)" \
-# -samplecode $(sample_dir)/VoiceRecognitionService \
-# samples/VoiceRecognitionService "Voice Recognition Service" \
-# -samplecode $(sample_dir)/VoicemailProviderDemo \
-# samples/VoicemailProviderDemo "Voicemail Provider Demo" \
-# -samplecode $(sample_dir)/XmlAdapters \
-# samples/XmlAdapters "XML Adapters" \
-# -samplecode $(sample_dir)/TtsEngine \
-# samples/TtsEngine "Text To Speech Engine" \
-# -samplecode $(sample_dir)/training/device-management-policy \
-# samples/training/device-management-policy "Device Management Policy"
-
-
## SDK version identifiers used in the published docs
# major[.minor] version for current SDK. (full releases only)
framework_docs_SDK_VERSION:=4.4
@@ -722,7 +568,7 @@
framework_docs_LOCAL_DROIDDOC_OPTIONS += \
-hdf sdk.version $(framework_docs_SDK_VERSION) \
-hdf sdk.rel.id $(framework_docs_SDK_REL_ID) \
- -hdf sdk.preview 0 \
+ -hdf sdk.preview 0
# ==== the api stubs and current.xml ===========================
include $(CLEAR_VARS)
@@ -808,8 +654,6 @@
-todo $(OUT_DOCS)/$(LOCAL_MODULE)-docs-todo.html \
-sdkvalues $(OUT_DOCS) \
-hdf android.whichdoc offline
-# $(web_docs_sample_code_flags)
-
LOCAL_DROIDDOC_CUSTOM_TEMPLATE_DIR:=build/tools/droiddoc/templates-sdk
@@ -836,7 +680,7 @@
LOCAL_DROIDDOC_HTML_DIR:=$(framework_docs_LOCAL_DROIDDOC_HTML_DIR)
LOCAL_ADDITIONAL_JAVA_DIR:=$(framework_docs_LOCAL_ADDITIONAL_JAVA_DIR)
LOCAL_ADDITIONAL_DEPENDENCIES:=$(framework_docs_LOCAL_ADDITIONAL_DEPENDENCIES)
-LOCAL_ADDITIONAL_HTML_DIR:=docs/html-intl /intl/
+LOCAL_ADDITIONAL_HTML_DIR:=docs/html-intl /
LOCAL_MODULE := online-sdk
@@ -845,7 +689,8 @@
-toroot / \
-hdf android.whichdoc online \
$(sample_groups) \
- $(web_docs_sample_code_flags)
+ -hdf android.hasSamples true \
+ -samplesdir $(samples_dir)
LOCAL_DROIDDOC_CUSTOM_TEMPLATE_DIR:=build/tools/droiddoc/templates-sdk
@@ -863,7 +708,7 @@
LOCAL_ADDITIONAL_JAVA_DIR:=$(framework_docs_LOCAL_ADDITIONAL_JAVA_DIR)
LOCAL_ADDITIONAL_DEPENDENCIES:=$(framework_docs_LOCAL_ADDITIONAL_DEPENDENCIES)
# specify a second html input dir and an output path relative to OUT_DIR)
-LOCAL_ADDITIONAL_HTML_DIR:=docs/html-intl /
+LOCAL_ADDITIONAL_HTML_DIR:=docs/html-intl/intl /
LOCAL_MODULE := ds
@@ -873,7 +718,6 @@
-toroot / \
-hdf android.whichdoc online \
-hdf devsite true
-# $(web_docs_sample_code_flags)
LOCAL_DROIDDOC_CUSTOM_TEMPLATE_DIR:=build/tools/droiddoc/templates-sdk
diff --git a/CleanSpec.mk b/CleanSpec.mk
index cfa8be9..ef3f4ae 100644
--- a/CleanSpec.mk
+++ b/CleanSpec.mk
@@ -184,7 +184,7 @@
$(call add-clean-step, rm -rf $(PRODUCT_OUT)/system/media/audio/effects/)
$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/APPS/framework-res_intermediates)
$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/JAVA_LIBRARIES/framework-base_intermediates/src/core/java/android/print/IPrintClient.*)
-
+$(call add-clean-step, rm -rf $(OUT_DIR)/target/common/obj/JAVA_LIBRARIES/services_intermediates)
# ************************************************
# NEWER CLEAN STEPS MUST BE AT THE END OF THE LIST
# ************************************************
diff --git a/api/current.txt b/api/current.txt
index 9aea28a..4779b32 100644
--- a/api/current.txt
+++ b/api/current.txt
@@ -3080,6 +3080,17 @@
method public void update(android.app.ActivityOptions);
}
+ public class ActivityView extends android.view.ViewGroup {
+ ctor public ActivityView(android.content.Context);
+ ctor public ActivityView(android.content.Context, android.util.AttributeSet);
+ ctor public ActivityView(android.content.Context, android.util.AttributeSet, int);
+ method public boolean isAttachedToDisplay();
+ method protected void onLayout(boolean, int, int, int, int);
+ method public void startActivity(android.content.Intent);
+ method public void startActivity(android.content.IntentSender);
+ method public void startActivity(android.app.PendingIntent);
+ }
+
public class AlarmManager {
method public void cancel(android.app.PendingIntent);
method public void set(int, long, android.app.PendingIntent);
@@ -10870,6 +10881,7 @@
method public void registerDisplayListener(android.hardware.display.DisplayManager.DisplayListener, android.os.Handler);
method public void unregisterDisplayListener(android.hardware.display.DisplayManager.DisplayListener);
field public static final java.lang.String DISPLAY_CATEGORY_PRESENTATION = "android.hardware.display.category.PRESENTATION";
+ field public static final int VIRTUAL_DISPLAY_FLAG_OWN_CONTENT_ONLY = 8; // 0x8
field public static final int VIRTUAL_DISPLAY_FLAG_PRESENTATION = 2; // 0x2
field public static final int VIRTUAL_DISPLAY_FLAG_PUBLIC = 1; // 0x1
field public static final int VIRTUAL_DISPLAY_FLAG_SECURE = 4; // 0x4
@@ -26178,7 +26190,6 @@
method public final java.lang.CharSequence coerceToString();
method public static final java.lang.String coerceToString(int, int);
method public static float complexToDimension(int, android.util.DisplayMetrics);
- method public static float complexToDimensionNoisy(int, android.util.DisplayMetrics);
method public static int complexToDimensionPixelOffset(int, android.util.DisplayMetrics);
method public static int complexToDimensionPixelSize(int, android.util.DisplayMetrics);
method public static float complexToFloat(int);
diff --git a/cmds/am/src/com/android/commands/am/Am.java b/cmds/am/src/com/android/commands/am/Am.java
index 0344d26..89e15d2 100644
--- a/cmds/am/src/com/android/commands/am/Am.java
+++ b/cmds/am/src/com/android/commands/am/Am.java
@@ -19,8 +19,9 @@
package com.android.commands.am;
import android.app.ActivityManager;
-import android.app.ActivityManager.StackBoxInfo;
+import android.app.ActivityManager.StackInfo;
import android.app.ActivityManagerNative;
+import android.app.IActivityContainer;
import android.app.IActivityController;
import android.app.IActivityManager;
import android.app.IInstrumentationWatcher;
@@ -31,9 +32,11 @@
import android.content.Intent;
import android.content.pm.IPackageManager;
import android.content.pm.ResolveInfo;
+import android.graphics.Rect;
import android.net.Uri;
import android.os.Binder;
import android.os.Bundle;
+import android.os.IBinder;
import android.os.ParcelFileDescriptor;
import android.os.RemoteException;
import android.os.ServiceManager;
@@ -106,11 +109,11 @@
" am to-intent-uri [INTENT]\n" +
" am switch-user <USER_ID>\n" +
" am stop-user <USER_ID>\n" +
- " am stack create <TASK_ID> <RELATIVE_STACK_BOX_ID> <POSITION> <WEIGHT>\n" +
+ " am stack start <DISPLAY_ID> <INTENT>\n" +
" am stack movetask <TASK_ID> <STACK_ID> [true|false]\n" +
- " am stack resize <STACK_ID> <WEIGHT>\n" +
- " am stack boxes\n" +
- " am stack box <STACK_BOX_ID>\n" +
+ " am stack resize <STACK_ID> <LEFT,TOP,RIGHT,BOTTOM>\n" +
+ " am stack list\n" +
+ " am stack info <STACK_ID>\n" +
"\n" +
"am start: start an Activity. Options are:\n" +
" -D: enable debugging\n" +
@@ -204,24 +207,16 @@
"am stop-user: stop execution of USER_ID, not allowing it to run any\n" +
" code until a later explicit switch to it.\n" +
"\n" +
- "am stack create: create a new stack relative to an existing one.\n" +
- " <TASK_ID>: the task to populate the new stack with. Must exist.\n" +
- " <RELATIVE_STACK_BOX_ID>: existing stack box's id.\n" +
- " <POSITION>: 0: before <RELATIVE_STACK_BOX_ID>, per RTL/LTR configuration,\n" +
- " 1: after <RELATIVE_STACK_BOX_ID>, per RTL/LTR configuration,\n" +
- " 2: to left of <RELATIVE_STACK_BOX_ID>,\n" +
- " 3: to right of <RELATIVE_STACK_BOX_ID>," +
- " 4: above <RELATIVE_STACK_BOX_ID>, 5: below <RELATIVE_STACK_BOX_ID>\n" +
- " <WEIGHT>: float between 0.2 and 0.8 inclusive.\n" +
+ "am stack start: start a new activity on <DISPLAY_ID> using <INTENT>.\n" +
"\n" +
"am stack movetask: move <TASK_ID> from its current stack to the top (true) or" +
" bottom (false) of <STACK_ID>.\n" +
"\n" +
- "am stack resize: change <STACK_ID> relative size to new <WEIGHT>.\n" +
+ "am stack resize: change <STACK_ID> size and position to <LEFT,TOP,RIGHT,BOTTOM>.\n" +
"\n" +
- "am stack boxes: list the hierarchy of stack boxes and their contents.\n" +
+ "am stack list: list all of the activity stacks and their sizes.\n" +
"\n" +
- "am stack box: list the hierarchy of stack boxes rooted at <STACK_BOX_ID>.\n" +
+ "am stack info: display the information about activity stack <STACK_ID>.\n" +
"\n" +
"<INTENT> specifications include these flags and arguments:\n" +
" [-a <ACTION>] [-d <DATA_URI>] [-t <MIME_TYPE>]\n" +
@@ -1546,35 +1541,32 @@
private void runStack() throws Exception {
String op = nextArgRequired();
- if (op.equals("create")) {
- runStackCreate();
+ if (op.equals("start")) {
+ runStackStart();
} else if (op.equals("movetask")) {
runStackMoveTask();
} else if (op.equals("resize")) {
- runStackBoxResize();
- } else if (op.equals("boxes")) {
- runStackBoxes();
- } else if (op.equals("box")) {
- runStackBoxInfo();
+ runStackResize();
+ } else if (op.equals("list")) {
+ runStackList();
+ } else if (op.equals("info")) {
+ runStackInfo();
} else {
showError("Error: unknown command '" + op + "'");
return;
}
}
- private void runStackCreate() throws Exception {
- String taskIdStr = nextArgRequired();
- int taskId = Integer.valueOf(taskIdStr);
- String relativeToStr = nextArgRequired();
- int relativeTo = Integer.valueOf(relativeToStr);
- String positionStr = nextArgRequired();
- int position = Integer.valueOf(positionStr);
- String weightStr = nextArgRequired();
- float weight = Float.valueOf(weightStr);
+ private void runStackStart() throws Exception {
+ String displayIdStr = nextArgRequired();
+ int displayId = Integer.valueOf(displayIdStr);
+ Intent intent = makeIntent(UserHandle.USER_CURRENT);
try {
- int stackId = mAm.createStack(taskId, relativeTo, position, weight);
- System.out.println("createStack returned new stackId=" + stackId + "\n\n");
+ IBinder homeActivityToken = mAm.getHomeActivityToken();
+ IActivityContainer container = mAm.createActivityContainer(homeActivityToken, null);
+ container.attachToDisplay(displayId);
+ container.startActivity(intent);
} catch (RemoteException e) {
}
}
@@ -1601,34 +1593,40 @@
}
}
- private void runStackBoxResize() throws Exception {
- String stackBoxIdStr = nextArgRequired();
- int stackBoxId = Integer.valueOf(stackBoxIdStr);
- String weightStr = nextArgRequired();
- float weight = Float.valueOf(weightStr);
+ private void runStackResize() throws Exception {
+ String stackIdStr = nextArgRequired();
+ int stackId = Integer.valueOf(stackIdStr);
+ String leftStr = nextArgRequired();
+ int left = Integer.valueOf(leftStr);
+ String topStr = nextArgRequired();
+ int top = Integer.valueOf(topStr);
+ String rightStr = nextArgRequired();
+ int right = Integer.valueOf(rightStr);
+ String bottomStr = nextArgRequired();
+ int bottom = Integer.valueOf(bottomStr);
try {
- mAm.resizeStackBox(stackBoxId, weight);
+ mAm.resizeStack(stackId, new Rect(left, top, right, bottom));
} catch (RemoteException e) {
}
}
- private void runStackBoxes() throws Exception {
+ private void runStackList() throws Exception {
try {
- List<StackBoxInfo> stackBoxes = mAm.getStackBoxes();
- for (StackBoxInfo info : stackBoxes) {
+ List<StackInfo> stacks = mAm.getAllStackInfos();
+ for (StackInfo info : stacks) {
System.out.println(info);
}
} catch (RemoteException e) {
}
}
- private void runStackBoxInfo() throws Exception {
+ private void runStackInfo() throws Exception {
try {
- String stackBoxIdStr = nextArgRequired();
- int stackBoxId = Integer.valueOf(stackBoxIdStr);
- StackBoxInfo stackBoxInfo = mAm.getStackBoxInfo(stackBoxId);
- System.out.println(stackBoxInfo);
+ String stackIdStr = nextArgRequired();
+ int stackId = Integer.valueOf(stackIdStr);
+ StackInfo info = mAm.getStackInfo(stackId);
+ System.out.println(info);
} catch (RemoteException e) {
}
}
diff --git a/cmds/bmgr/src/com/android/commands/bmgr/Bmgr.java b/cmds/bmgr/src/com/android/commands/bmgr/Bmgr.java
index 2666b41..db3d8bb 100644
--- a/cmds/bmgr/src/com/android/commands/bmgr/Bmgr.java
+++ b/cmds/bmgr/src/com/android/commands/bmgr/Bmgr.java
@@ -187,6 +187,12 @@
}
private void doWipe() {
+ String transport = nextArg();
+ if (transport == null) {
+ showUsage();
+ return;
+ }
+
String pkg = nextArg();
if (pkg == null) {
showUsage();
@@ -194,8 +200,8 @@
}
try {
- mBmgr.clearBackupData(pkg);
- System.out.println("Wiped backup data for " + pkg);
+ mBmgr.clearBackupData(transport, pkg);
+ System.out.println("Wiped backup data for " + pkg + " on " + transport);
} catch (RemoteException e) {
System.err.println(e.toString());
System.err.println(BMGR_NOT_RUNNING_ERR);
@@ -446,7 +452,7 @@
System.err.println(" bmgr restore TOKEN PACKAGE...");
System.err.println(" bmgr restore PACKAGE");
System.err.println(" bmgr run");
- System.err.println(" bmgr wipe PACKAGE");
+ System.err.println(" bmgr wipe TRANSPORT PACKAGE");
System.err.println("");
System.err.println("The 'backup' command schedules a backup pass for the named package.");
System.err.println("Note that the backup pass will effectively be a no-op if the package");
@@ -462,8 +468,8 @@
System.err.println("");
System.err.println("The 'list transports' command reports the names of the backup transports");
System.err.println("currently available on the device. These names can be passed as arguments");
- System.err.println("to the 'transport' command. The currently selected transport is indicated");
- System.err.println("with a '*' character.");
+ System.err.println("to the 'transport' and 'wipe' commands. The currently selected transport");
+ System.err.println("is indicated with a '*' character.");
System.err.println("");
System.err.println("The 'list sets' command reports the token and name of each restore set");
System.err.println("available to the device via the current transport.");
@@ -491,7 +497,8 @@
System.err.println("data changes.");
System.err.println("");
System.err.println("The 'wipe' command causes all backed-up data for the given package to be");
- System.err.println("erased from the current transport's storage. The next backup operation");
+ System.err.println("erased from the given transport's storage. The next backup operation");
System.err.println("that the given application performs will rewrite its entire data set.");
+ System.err.println("Transport names to use here are those reported by 'list transports'.");
}
}
diff --git a/core/java/android/app/ActivityManager.java b/core/java/android/app/ActivityManager.java
index 7ca3459..c877cd3 100644
--- a/core/java/android/app/ActivityManager.java
+++ b/core/java/android/app/ActivityManager.java
@@ -1289,106 +1289,15 @@
}
/**
- * Information you can retrieve about the WindowManager StackBox hierarchy.
- * @hide
- */
- public static class StackBoxInfo implements Parcelable {
- public int stackBoxId;
- public float weight;
- public boolean vertical;
- public Rect bounds;
- public StackBoxInfo[] children;
- public int stackId;
- public StackInfo stack;
-
- @Override
- public int describeContents() {
- return 0;
- }
-
- @Override
- public void writeToParcel(Parcel dest, int flags) {
- dest.writeInt(stackBoxId);
- dest.writeFloat(weight);
- dest.writeInt(vertical ? 1 : 0);
- bounds.writeToParcel(dest, flags);
- dest.writeInt(stackId);
- if (children != null) {
- children[0].writeToParcel(dest, flags);
- children[1].writeToParcel(dest, flags);
- } else {
- stack.writeToParcel(dest, flags);
- }
- }
-
- public void readFromParcel(Parcel source) {
- stackBoxId = source.readInt();
- weight = source.readFloat();
- vertical = source.readInt() == 1;
- bounds = Rect.CREATOR.createFromParcel(source);
- stackId = source.readInt();
- if (stackId == -1) {
- children = new StackBoxInfo[2];
- children[0] = StackBoxInfo.CREATOR.createFromParcel(source);
- children[1] = StackBoxInfo.CREATOR.createFromParcel(source);
- } else {
- stack = StackInfo.CREATOR.createFromParcel(source);
- }
- }
-
- public static final Creator<StackBoxInfo> CREATOR =
- new Creator<ActivityManager.StackBoxInfo>() {
-
- @Override
- public StackBoxInfo createFromParcel(Parcel source) {
- return new StackBoxInfo(source);
- }
-
- @Override
- public StackBoxInfo[] newArray(int size) {
- return new StackBoxInfo[size];
- }
- };
-
- public StackBoxInfo() {
- }
-
- public StackBoxInfo(Parcel source) {
- readFromParcel(source);
- }
-
- public String toString(String prefix) {
- StringBuilder sb = new StringBuilder(256);
- sb.append(prefix); sb.append("Box id=" + stackBoxId); sb.append(" weight=" + weight);
- sb.append(" vertical=" + vertical); sb.append(" bounds=" + bounds.toShortString());
- sb.append("\n");
- if (children != null) {
- sb.append(prefix); sb.append("First child=\n");
- sb.append(children[0].toString(prefix + " "));
- sb.append(prefix); sb.append("Second child=\n");
- sb.append(children[1].toString(prefix + " "));
- } else {
- sb.append(prefix); sb.append("Stack=\n");
- sb.append(stack.toString(prefix + " "));
- }
- return sb.toString();
- }
-
- @Override
- public String toString() {
- return toString("");
- }
- }
-
- /**
* Information you can retrieve about an ActivityStack in the system.
* @hide
*/
public static class StackInfo implements Parcelable {
public int stackId;
- public Rect bounds;
+ public Rect bounds = new Rect();
public int[] taskIds;
public String[] taskNames;
+ public int displayId;
@Override
public int describeContents() {
@@ -1404,6 +1313,7 @@
dest.writeInt(bounds.bottom);
dest.writeIntArray(taskIds);
dest.writeStringArray(taskNames);
+ dest.writeInt(displayId);
}
public void readFromParcel(Parcel source) {
@@ -1412,6 +1322,7 @@
source.readInt(), source.readInt(), source.readInt(), source.readInt());
taskIds = source.createIntArray();
taskNames = source.createStringArray();
+ displayId = source.readInt();
}
public static final Creator<StackInfo> CREATOR = new Creator<StackInfo>() {
@@ -1435,7 +1346,9 @@
public String toString(String prefix) {
StringBuilder sb = new StringBuilder(256);
sb.append(prefix); sb.append("Stack id="); sb.append(stackId);
- sb.append(" bounds="); sb.append(bounds.toShortString()); sb.append("\n");
+ sb.append(" bounds="); sb.append(bounds.toShortString());
+ sb.append(" displayId="); sb.append(displayId);
+ sb.append("\n");
prefix = prefix + " ";
for (int i = 0; i < taskIds.length; ++i) {
sb.append(prefix); sb.append("taskId="); sb.append(taskIds[i]);
diff --git a/core/java/android/app/ActivityManagerNative.java b/core/java/android/app/ActivityManagerNative.java
index 74266cc..7b81713 100644
--- a/core/java/android/app/ActivityManagerNative.java
+++ b/core/java/android/app/ActivityManagerNative.java
@@ -16,7 +16,7 @@
package android.app;
-import android.app.ActivityManager.StackBoxInfo;
+import android.app.ActivityManager.StackInfo;
import android.content.ComponentName;
import android.content.IIntentReceiver;
import android.content.IIntentSender;
@@ -31,6 +31,7 @@
import android.content.pm.UserInfo;
import android.content.res.Configuration;
import android.graphics.Bitmap;
+import android.graphics.Rect;
import android.net.Uri;
import android.os.Binder;
import android.os.Bundle;
@@ -611,18 +612,6 @@
return true;
}
- case CREATE_STACK_TRANSACTION: {
- data.enforceInterface(IActivityManager.descriptor);
- int taskId = data.readInt();
- int relativeStackId = data.readInt();
- int position = data.readInt();
- float weight = data.readFloat();
- int res = createStack(taskId, relativeStackId, position, weight);
- reply.writeNoException();
- reply.writeInt(res);
- return true;
- }
-
case MOVE_TASK_TO_STACK_TRANSACTION: {
data.enforceInterface(IActivityManager.descriptor);
int taskId = data.readInt();
@@ -635,25 +624,26 @@
case RESIZE_STACK_TRANSACTION: {
data.enforceInterface(IActivityManager.descriptor);
- int stackBoxId = data.readInt();
+ int stackId = data.readInt();
float weight = data.readFloat();
- resizeStackBox(stackBoxId, weight);
+ Rect r = Rect.CREATOR.createFromParcel(data);
+ resizeStack(stackId, r);
reply.writeNoException();
return true;
}
- case GET_STACK_BOXES_TRANSACTION: {
+ case GET_ALL_STACK_INFOS_TRANSACTION: {
data.enforceInterface(IActivityManager.descriptor);
- List<StackBoxInfo> list = getStackBoxes();
+ List<StackInfo> list = getAllStackInfos();
reply.writeNoException();
reply.writeTypedList(list);
return true;
}
- case GET_STACK_BOX_INFO_TRANSACTION: {
+ case GET_STACK_INFO_TRANSACTION: {
data.enforceInterface(IActivityManager.descriptor);
- int stackBoxId = data.readInt();
- StackBoxInfo info = getStackBoxInfo(stackBoxId);
+ int stackId = data.readInt();
+ StackInfo info = getStackInfo(stackId);
reply.writeNoException();
if (info != null) {
reply.writeInt(1);
@@ -2028,6 +2018,45 @@
reply.writeNoException();
return true;
}
+
+ case CREATE_ACTIVITY_CONTAINER_TRANSACTION: {
+ data.enforceInterface(IActivityManager.descriptor);
+ IBinder parentActivityToken = data.readStrongBinder();
+ IActivityContainerCallback callback =
+ (IActivityContainerCallback) data.readStrongBinder();
+ IActivityContainer activityContainer =
+ createActivityContainer(parentActivityToken, callback);
+ reply.writeNoException();
+ if (activityContainer != null) {
+ reply.writeInt(1);
+ reply.writeStrongBinder(activityContainer.asBinder());
+ } else {
+ reply.writeInt(0);
+ }
+ return true;
+ }
+
+ case GET_ACTIVITY_CONTAINER_TRANSACTION: {
+ data.enforceInterface(IActivityManager.descriptor);
+ IBinder activityToken = data.readStrongBinder();
+ IActivityContainer activityContainer = getEnclosingActivityContainer(activityToken);
+ reply.writeNoException();
+ if (activityContainer != null) {
+ reply.writeInt(1);
+ reply.writeStrongBinder(activityContainer.asBinder());
+ } else {
+ reply.writeInt(0);
+ }
+ return true;
+ }
+
+ case GET_HOME_ACTIVITY_TOKEN_TRANSACTION: {
+ data.enforceInterface(IActivityManager.descriptor);
+ IBinder homeActivityToken = getHomeActivityToken();
+ reply.writeNoException();
+ reply.writeStrongBinder(homeActivityToken);
+ return true;
+ }
}
return super.onTransact(code, data, reply, flags);
@@ -2715,24 +2744,6 @@
reply.recycle();
}
@Override
- public int createStack(int taskId, int relativeStackBoxId, int position, float weight)
- throws RemoteException
- {
- Parcel data = Parcel.obtain();
- Parcel reply = Parcel.obtain();
- data.writeInterfaceToken(IActivityManager.descriptor);
- data.writeInt(taskId);
- data.writeInt(relativeStackBoxId);
- data.writeInt(position);
- data.writeFloat(weight);
- mRemote.transact(CREATE_STACK_TRANSACTION, data, reply, 0);
- reply.readException();
- int res = reply.readInt();
- data.recycle();
- reply.recycle();
- return res;
- }
- @Override
public void moveTaskToStack(int taskId, int stackId, boolean toTop) throws RemoteException
{
Parcel data = Parcel.obtain();
@@ -2747,44 +2758,44 @@
reply.recycle();
}
@Override
- public void resizeStackBox(int stackBoxId, float weight) throws RemoteException
+ public void resizeStack(int stackBoxId, Rect r) throws RemoteException
{
Parcel data = Parcel.obtain();
Parcel reply = Parcel.obtain();
data.writeInterfaceToken(IActivityManager.descriptor);
data.writeInt(stackBoxId);
- data.writeFloat(weight);
+ r.writeToParcel(data, 0);
mRemote.transact(RESIZE_STACK_TRANSACTION, data, reply, IBinder.FLAG_ONEWAY);
reply.readException();
data.recycle();
reply.recycle();
}
@Override
- public List<StackBoxInfo> getStackBoxes() throws RemoteException
+ public List<StackInfo> getAllStackInfos() throws RemoteException
{
Parcel data = Parcel.obtain();
Parcel reply = Parcel.obtain();
data.writeInterfaceToken(IActivityManager.descriptor);
- mRemote.transact(GET_STACK_BOXES_TRANSACTION, data, reply, 0);
+ mRemote.transact(GET_ALL_STACK_INFOS_TRANSACTION, data, reply, 0);
reply.readException();
- ArrayList<StackBoxInfo> list = reply.createTypedArrayList(StackBoxInfo.CREATOR);
+ ArrayList<StackInfo> list = reply.createTypedArrayList(StackInfo.CREATOR);
data.recycle();
reply.recycle();
return list;
}
@Override
- public StackBoxInfo getStackBoxInfo(int stackBoxId) throws RemoteException
+ public StackInfo getStackInfo(int stackId) throws RemoteException
{
Parcel data = Parcel.obtain();
Parcel reply = Parcel.obtain();
data.writeInterfaceToken(IActivityManager.descriptor);
- data.writeInt(stackBoxId);
- mRemote.transact(GET_STACK_BOX_INFO_TRANSACTION, data, reply, 0);
+ data.writeInt(stackId);
+ mRemote.transact(GET_STACK_INFO_TRANSACTION, data, reply, 0);
reply.readException();
int res = reply.readInt();
- StackBoxInfo info = null;
+ StackInfo info = null;
if (res != 0) {
- info = StackBoxInfo.CREATOR.createFromParcel(reply);
+ info = StackInfo.CREATOR.createFromParcel(reply);
}
data.recycle();
reply.recycle();
@@ -4660,5 +4671,58 @@
reply.recycle();
}
+ public IActivityContainer createActivityContainer(IBinder parentActivityToken,
+ IActivityContainerCallback callback) throws RemoteException {
+ Parcel data = Parcel.obtain();
+ Parcel reply = Parcel.obtain();
+ data.writeInterfaceToken(IActivityManager.descriptor);
+ data.writeStrongBinder(parentActivityToken);
+ data.writeStrongBinder((IBinder)callback);
+ mRemote.transact(CREATE_ACTIVITY_CONTAINER_TRANSACTION, data, reply, 0);
+ reply.readException();
+ final int result = reply.readInt();
+ final IActivityContainer res;
+ if (result == 1) {
+ res = IActivityContainer.Stub.asInterface(reply.readStrongBinder());
+ } else {
+ res = null;
+ }
+ data.recycle();
+ reply.recycle();
+ return res;
+ }
+
+ public IActivityContainer getEnclosingActivityContainer(IBinder activityToken)
+ throws RemoteException {
+ Parcel data = Parcel.obtain();
+ Parcel reply = Parcel.obtain();
+ data.writeInterfaceToken(IActivityManager.descriptor);
+ data.writeStrongBinder(activityToken);
+ mRemote.transact(GET_ACTIVITY_CONTAINER_TRANSACTION, data, reply, 0);
+ reply.readException();
+ final int result = reply.readInt();
+ final IActivityContainer res;
+ if (result == 1) {
+ res = IActivityContainer.Stub.asInterface(reply.readStrongBinder());
+ } else {
+ res = null;
+ }
+ data.recycle();
+ reply.recycle();
+ return res;
+ }
+
+ public IBinder getHomeActivityToken() throws RemoteException {
+ Parcel data = Parcel.obtain();
+ Parcel reply = Parcel.obtain();
+ data.writeInterfaceToken(IActivityManager.descriptor);
+ mRemote.transact(GET_HOME_ACTIVITY_TOKEN_TRANSACTION, data, reply, 0);
+ reply.readException();
+ IBinder res = reply.readStrongBinder();
+ data.recycle();
+ reply.recycle();
+ return res;
+ }
+
private IBinder mRemote;
}
diff --git a/core/java/android/app/ActivityThread.java b/core/java/android/app/ActivityThread.java
index 97baf9a..9f21a36 100644
--- a/core/java/android/app/ActivityThread.java
+++ b/core/java/android/app/ActivityThread.java
@@ -2219,15 +2219,27 @@
ContextImpl appContext = new ContextImpl();
appContext.init(r.packageInfo, r.token, this);
appContext.setOuterContext(activity);
+ Context baseContext = appContext;
+
+ final DisplayManagerGlobal dm = DisplayManagerGlobal.getInstance();
+ try {
+ IActivityContainer container =
+ ActivityManagerNative.getDefault().getEnclosingActivityContainer(r.token);
+ final int displayId =
+ container == null ? Display.DEFAULT_DISPLAY : container.getDisplayId();
+ if (displayId > Display.DEFAULT_DISPLAY) {
+ Display display = dm.getRealDisplay(displayId, r.token);
+ baseContext = appContext.createDisplayContext(display);
+ }
+ } catch (RemoteException e) {
+ }
// For debugging purposes, if the activity's package name contains the value of
// the "debug.use-second-display" system property as a substring, then show
// its content on a secondary display if there is one.
- Context baseContext = appContext;
String pkgName = SystemProperties.get("debug.second-display.pkg");
if (pkgName != null && !pkgName.isEmpty()
&& r.packageInfo.mPackageName.contains(pkgName)) {
- DisplayManagerGlobal dm = DisplayManagerGlobal.getInstance();
for (int displayId : dm.getDisplayIds()) {
if (displayId != Display.DEFAULT_DISPLAY) {
Display display = dm.getRealDisplay(displayId, r.token);
diff --git a/core/java/android/app/ActivityView.java b/core/java/android/app/ActivityView.java
new file mode 100644
index 0000000..df4ec78
--- /dev/null
+++ b/core/java/android/app/ActivityView.java
@@ -0,0 +1,209 @@
+/*
+ * Copyright (C) 2013 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.app;
+
+import android.content.Context;
+import android.content.ContextWrapper;
+import android.content.Intent;
+import android.content.IntentSender;
+import android.graphics.SurfaceTexture;
+import android.os.IBinder;
+import android.os.RemoteException;
+import android.util.AttributeSet;
+import android.util.DisplayMetrics;
+import android.util.Log;
+import android.view.Surface;
+import android.view.TextureView;
+import android.view.TextureView.SurfaceTextureListener;
+import android.view.View;
+import android.view.ViewGroup;
+import android.view.WindowManager;
+
+public class ActivityView extends ViewGroup {
+ private final String TAG = "ActivityView";
+
+ private final TextureView mTextureView;
+ private IActivityContainer mActivityContainer;
+ private Activity mActivity;
+ private int mWidth;
+ private int mHeight;
+ private Surface mSurface;
+
+ public ActivityView(Context context) {
+ this(context, null);
+ }
+
+ public ActivityView(Context context, AttributeSet attrs) {
+ this(context, attrs, 0);
+ }
+
+ public ActivityView(Context context, AttributeSet attrs, int defStyle) {
+ super(context, attrs, defStyle);
+
+ while (context instanceof ContextWrapper) {
+ if (context instanceof Activity) {
+ mActivity = (Activity)context;
+ break;
+ }
+ context = ((ContextWrapper)context).getBaseContext();
+ }
+ if (mActivity == null) {
+ throw new IllegalStateException("The ActivityView's Context is not an Activity.");
+ }
+
+ mTextureView = new TextureView(context);
+ mTextureView.setSurfaceTextureListener(new ActivityViewSurfaceTextureListener());
+ addView(mTextureView);
+ }
+
+ @Override
+ protected void onLayout(boolean changed, int l, int t, int r, int b) {
+ mTextureView.layout(l, t, r, b);
+ }
+
+ @Override
+ protected void onAttachedToWindow() {
+ try {
+ final IBinder token = mActivity.getActivityToken();
+ mActivityContainer =
+ ActivityManagerNative.getDefault().createActivityContainer(token, null);
+ } catch (RemoteException e) {
+ throw new IllegalStateException("ActivityView: Unable to create ActivityContainer. "
+ + e);
+ }
+
+ attachToSurfaceWhenReady();
+ }
+
+ @Override
+ protected void onDetachedFromWindow() {
+ if (mActivityContainer != null) {
+ detach();
+ mActivityContainer = null;
+ }
+ }
+
+ @Override
+ protected void onWindowVisibilityChanged(int visibility) {
+ super.onWindowVisibilityChanged(visibility);
+ if (visibility == View.VISIBLE) {
+ attachToSurfaceWhenReady();
+ } else {
+ detach();
+ }
+ }
+
+ public boolean isAttachedToDisplay() {
+ return mSurface != null;
+ }
+
+ public void startActivity(Intent intent) {
+ if (mSurface != null) {
+ try {
+ mActivityContainer.startActivity(intent);
+ } catch (RemoteException e) {
+ throw new IllegalStateException("ActivityView: Unable to startActivity. " + e);
+ }
+ }
+ }
+
+ public void startActivity(IntentSender intentSender) {
+ if (mSurface != null) {
+ try {
+ mActivityContainer.startActivityIntentSender(intentSender.getTarget());
+ } catch (RemoteException e) {
+ throw new IllegalStateException(
+ "ActivityView: Unable to startActivity from IntentSender. " + e);
+ }
+ }
+ }
+
+ public void startActivity(PendingIntent pendingIntent) {
+ if (mSurface != null) {
+ try {
+ mActivityContainer.startActivityIntentSender(pendingIntent.getTarget());
+ } catch (RemoteException e) {
+ throw new IllegalStateException(
+ "ActivityView: Unable to startActivity from PendingIntent. " + e);
+ }
+ }
+ }
+
+ private void attachToSurfaceWhenReady() {
+ final SurfaceTexture surfaceTexture = mTextureView.getSurfaceTexture();
+ if (mActivityContainer == null || surfaceTexture == null || mSurface != null) {
+ // Either not ready to attach, or already attached.
+ return;
+ }
+
+ WindowManager wm = (WindowManager)mActivity.getSystemService(Context.WINDOW_SERVICE);
+ DisplayMetrics metrics = new DisplayMetrics();
+ wm.getDefaultDisplay().getMetrics(metrics);
+
+ mSurface = new Surface(surfaceTexture);
+ try {
+ mActivityContainer.attachToSurface(mSurface, mWidth, mHeight, metrics.densityDpi);
+ } catch (RemoteException e) {
+ mSurface.release();
+ mSurface = null;
+ throw new IllegalStateException(
+ "ActivityView: Unable to create ActivityContainer. " + e);
+ }
+ }
+
+ private void detach() {
+ if (mSurface != null) {
+ try {
+ mActivityContainer.detachFromDisplay();
+ } catch (RemoteException e) {
+ }
+ mSurface.release();
+ mSurface = null;
+ }
+ }
+
+ private class ActivityViewSurfaceTextureListener implements SurfaceTextureListener {
+ @Override
+ public void onSurfaceTextureAvailable(SurfaceTexture surfaceTexture, int width,
+ int height) {
+ mWidth = width;
+ mHeight = height;
+ if (mActivityContainer != null) {
+ attachToSurfaceWhenReady();
+ }
+ }
+
+ @Override
+ public void onSurfaceTextureSizeChanged(SurfaceTexture surfaceTexture, int width,
+ int height) {
+ Log.d(TAG, "onSurfaceTextureSizeChanged: w=" + width + " h=" + height);
+ }
+
+ @Override
+ public boolean onSurfaceTextureDestroyed(SurfaceTexture surfaceTexture) {
+ Log.d(TAG, "onSurfaceTextureDestroyed");
+ detach();
+ return true;
+ }
+
+ @Override
+ public void onSurfaceTextureUpdated(SurfaceTexture surfaceTexture) {
+// Log.d(TAG, "onSurfaceTextureUpdated");
+ }
+
+ }
+}
diff --git a/core/java/android/app/IActivityContainer.aidl b/core/java/android/app/IActivityContainer.aidl
new file mode 100644
index 0000000..abd296a
--- /dev/null
+++ b/core/java/android/app/IActivityContainer.aidl
@@ -0,0 +1,33 @@
+/**
+ * Copyright (c) 2013, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.app;
+
+import android.app.IActivityContainerCallback;
+import android.content.Intent;
+import android.content.IIntentSender;
+import android.os.IBinder;
+import android.view.Surface;
+
+/** @hide */
+interface IActivityContainer {
+ void attachToDisplay(int displayId);
+ void attachToSurface(in Surface surface, int width, int height, int density);
+ void detachFromDisplay();
+ int startActivity(in Intent intent);
+ int startActivityIntentSender(in IIntentSender intentSender);
+ int getDisplayId();
+}
diff --git a/core/java/android/app/IActivityContainerCallback.aidl b/core/java/android/app/IActivityContainerCallback.aidl
new file mode 100644
index 0000000..55c2001
--- /dev/null
+++ b/core/java/android/app/IActivityContainerCallback.aidl
@@ -0,0 +1,24 @@
+/**
+ * Copyright (c) 2013, The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.app;
+
+import android.os.IBinder;
+
+/** @hide */
+interface IActivityContainerCallback {
+ oneway void onLastActivityRemoved(IBinder container);
+}
diff --git a/core/java/android/app/IActivityManager.java b/core/java/android/app/IActivityManager.java
index 77c2ea0..3ed3f7b 100644
--- a/core/java/android/app/IActivityManager.java
+++ b/core/java/android/app/IActivityManager.java
@@ -18,7 +18,7 @@
import android.app.ActivityManager.RunningTaskInfo;
import android.app.ActivityManager.RunningServiceInfo;
-import android.app.ActivityManager.StackBoxInfo;
+import android.app.ActivityManager.StackInfo;
import android.content.ComponentName;
import android.content.ContentProviderNative;
import android.content.IContentProvider;
@@ -36,6 +36,7 @@
import android.content.pm.UserInfo;
import android.content.res.Configuration;
import android.graphics.Bitmap;
+import android.graphics.Rect;
import android.net.Uri;
import android.os.Bundle;
import android.os.Debug;
@@ -117,12 +118,10 @@
public void moveTaskToBack(int task) throws RemoteException;
public boolean moveActivityTaskToBack(IBinder token, boolean nonRoot) throws RemoteException;
public void moveTaskBackwards(int task) throws RemoteException;
- public int createStack(int taskId, int relativeStackBoxId, int position, float weight)
- throws RemoteException;
public void moveTaskToStack(int taskId, int stackId, boolean toTop) throws RemoteException;
- public void resizeStackBox(int stackBoxId, float weight) throws RemoteException;
- public List<StackBoxInfo> getStackBoxes() throws RemoteException;
- public StackBoxInfo getStackBoxInfo(int stackBoxId) throws RemoteException;
+ public void resizeStack(int stackId, Rect bounds) throws RemoteException;
+ public List<StackInfo> getAllStackInfos() throws RemoteException;
+ public StackInfo getStackInfo(int stackId) throws RemoteException;
public void setFocusedStack(int stackId) throws RemoteException;
public int getTaskForActivity(IBinder token, boolean onlyRoot) throws RemoteException;
/* oneway */
@@ -408,6 +407,14 @@
public void performIdleMaintenance() throws RemoteException;
+ public IActivityContainer createActivityContainer(IBinder parentActivityToken,
+ IActivityContainerCallback callback) throws RemoteException;
+
+ public IActivityContainer getEnclosingActivityContainer(IBinder activityToken)
+ throws RemoteException;
+
+ public IBinder getHomeActivityToken() throws RemoteException;
+
/*
* Private non-Binder interfaces
*/
@@ -678,12 +685,12 @@
int KILL_UID_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+164;
int SET_USER_IS_MONKEY_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+165;
int HANG_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+166;
- int CREATE_STACK_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+167;
+ int CREATE_ACTIVITY_CONTAINER_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+167;
int MOVE_TASK_TO_STACK_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+168;
int RESIZE_STACK_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+169;
- int GET_STACK_BOXES_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+170;
+ int GET_ALL_STACK_INFOS_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+170;
int SET_FOCUSED_STACK_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+171;
- int GET_STACK_BOX_INFO_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+172;
+ int GET_STACK_INFO_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+172;
int CONVERT_FROM_TRANSLUCENT_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+173;
int CONVERT_TO_TRANSLUCENT_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+174;
int NOTIFY_ACTIVITY_DRAWN_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+175;
@@ -694,4 +701,6 @@
int RELEASE_PERSISTABLE_URI_PERMISSION_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+180;
int GET_PERSISTED_URI_PERMISSIONS_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+181;
int APP_NOT_RESPONDING_VIA_PROVIDER_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+182;
+ int GET_HOME_ACTIVITY_TOKEN_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+183;
+ int GET_ACTIVITY_CONTAINER_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+184;
}
diff --git a/core/java/android/app/IWallpaperManager.aidl b/core/java/android/app/IWallpaperManager.aidl
index 3efd3c0..181eb63 100644
--- a/core/java/android/app/IWallpaperManager.aidl
+++ b/core/java/android/app/IWallpaperManager.aidl
@@ -71,4 +71,14 @@
* Returns the desired minimum height for the wallpaper.
*/
int getHeightHint();
+
+ /**
+ * Returns the name of the wallpaper. Private API.
+ */
+ String getName();
+
+ /**
+ * Informs the service that wallpaper settings have been restored. Private API.
+ */
+ void settingsRestored();
}
diff --git a/core/java/android/app/PendingIntent.java b/core/java/android/app/PendingIntent.java
index bdd0adb..f6e1f72 100644
--- a/core/java/android/app/PendingIntent.java
+++ b/core/java/android/app/PendingIntent.java
@@ -87,23 +87,25 @@
private final IIntentSender mTarget;
/**
- * Flag for use with {@link #getActivity}, {@link #getBroadcast}, and
- * {@link #getService}: this
- * PendingIntent can only be used once. If set, after
+ * Flag indicating that this PendingIntent can be used only once.
+ * For use with {@link #getActivity}, {@link #getBroadcast}, and
+ * {@link #getService}. <p>If set, after
* {@link #send()} is called on it, it will be automatically
* canceled for you and any future attempt to send through it will fail.
*/
public static final int FLAG_ONE_SHOT = 1<<30;
/**
- * Flag for use with {@link #getActivity}, {@link #getBroadcast}, and
- * {@link #getService}: if the described PendingIntent does not already
- * exist, then simply return null instead of creating it.
+ * Flag indicating that if the described PendingIntent already
+ * exists, then simply return null instead of creating it.
+ * For use with {@link #getActivity}, {@link #getBroadcast}, and
+ * {@link #getService}.
*/
public static final int FLAG_NO_CREATE = 1<<29;
/**
- * Flag for use with {@link #getActivity}, {@link #getBroadcast}, and
- * {@link #getService}: if the described PendingIntent already exists,
- * the current one is canceled before generating a new one. You can use
+ * Flag indicating that if the described PendingIntent already exists,
+ * the current one should be canceled before generating a new one.
+ * For use with {@link #getActivity}, {@link #getBroadcast}, and
+ * {@link #getService}. <p>You can use
* this to retrieve a new PendingIntent when you are only changing the
* extra data in the Intent; by canceling the previous pending intent,
* this ensures that only entities given the new data will be able to
@@ -112,10 +114,10 @@
*/
public static final int FLAG_CANCEL_CURRENT = 1<<28;
/**
- * Flag for use with {@link #getActivity}, {@link #getBroadcast}, and
- * {@link #getService}: if the described PendingIntent already exists,
- * then keep it but its replace its extra data with what is in this new
- * Intent. This can be used if you are creating intents where only the
+ * Flag indicating that if the described PendingIntent already exists,
+ * then keep it but replace its extra data with what is in this new
+ * Intent. For use with {@link #getActivity}, {@link #getBroadcast}, and
+ * {@link #getService}. <p>This can be used if you are creating intents where only the
* extras change, and don't care that any entities that received your
* previous PendingIntent will be able to launch it with your new
* extras even if they are not explicitly given to it.
diff --git a/core/java/android/app/backup/IBackupManager.aidl b/core/java/android/app/backup/IBackupManager.aidl
index bb4f5f1..12ee3b6 100644
--- a/core/java/android/app/backup/IBackupManager.aidl
+++ b/core/java/android/app/backup/IBackupManager.aidl
@@ -43,14 +43,14 @@
void dataChanged(String packageName);
/**
- * Erase all backed-up data for the given package from the storage
+ * Erase all backed-up data for the given package from the given storage
* destination.
*
* Any application can invoke this method for its own package, but
* only callers who hold the android.permission.BACKUP permission
* may invoke it for arbitrary packages.
*/
- void clearBackupData(String packageName);
+ void clearBackupData(String transportName, String packageName);
/**
* Notifies the Backup Manager Service that an agent has become available. This
diff --git a/core/java/android/bluetooth/BluetoothAdapter.java b/core/java/android/bluetooth/BluetoothAdapter.java
index e2bc80a..d1f1f2a 100644
--- a/core/java/android/bluetooth/BluetoothAdapter.java
+++ b/core/java/android/bluetooth/BluetoothAdapter.java
@@ -27,14 +27,14 @@
import android.os.ServiceManager;
import android.util.Log;
import android.util.Pair;
+
import java.io.IOException;
import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
-import java.util.HashSet;
import java.util.HashMap;
-import java.util.LinkedList;
+import java.util.HashSet;
import java.util.Locale;
import java.util.Map;
import java.util.Random;
@@ -183,6 +183,43 @@
"android.bluetooth.adapter.extra.DISCOVERABLE_DURATION";
/**
+ * Activity Action: Show a system activity to request BLE advertising.<br>
+ * If the device is not doing BLE advertising, this activity will start BLE advertising for the
+ * device, otherwise it will continue BLE advertising using the current
+ * {@link BluetoothAdvScanData}. <br>
+ * Note this activity will also request the user to turn on Bluetooth if it's not currently
+ * enabled.
+ * @hide
+ */
+ @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
+ public static final String ACTION_START_ADVERTISING =
+ "android.bluetooth.adapter.action.START_ADVERTISING";
+
+ /**
+ * Activity Action: Stop the current BLE advertising.
+ * @hide
+ */
+ @SdkConstant(SdkConstantType.ACTIVITY_INTENT_ACTION)
+ public static final String ACTION_STOP_ADVERTISING =
+ "android.bluetooth.adapter.action.STOP_ADVERTISING";
+
+ /**
+ * Broadcast Action: Indicate BLE Advertising is started.
+ * @hide
+ */
+ @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
+ public static final String ACTION_BLUETOOTH_ADVERTISING_STARTED =
+ "android.bluetooth.adapter.action.ADVERTISING_STARTED";
+
+ /**
+ * Broadcast Action: Indicated BLE Advertising is stopped.
+ * @hide
+ */
+ @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
+ public static final String ACTION_BLUETOOTH_ADVERTISING_STOPPED =
+ "android.bluetooth.adapter.action.ADVERTISING_STOPPED";
+
+ /**
* Activity Action: Show a system activity that allows the user to turn on
* Bluetooth.
* <p>This system activity will return once Bluetooth has completed turning
@@ -251,7 +288,6 @@
*/
public static final int SCAN_MODE_CONNECTABLE_DISCOVERABLE = 23;
-
/**
* Broadcast Action: The local Bluetooth adapter has started the remote
* device discovery process.
@@ -365,6 +401,8 @@
private IBluetooth mService;
private final Map<LeScanCallback, GattCallbackWrapper> mLeScanClients;
+ private BluetoothAdvScanData mBluetoothAdvScanData = null;
+ private GattCallbackWrapper mAdvertisingCallback;
/**
* Get a handle to the default local Bluetooth adapter.
@@ -438,6 +476,97 @@
}
/**
+ * Returns a {@link BluetoothAdvScanData} object representing advertising data.
+ * @hide
+ */
+ public BluetoothAdvScanData getAdvScanData() {
+ try {
+ IBluetoothGatt iGatt = mManagerService.getBluetoothGatt();
+ if (iGatt == null) {
+ // BLE is not supported
+ Log.e(TAG, "failed to start, iGatt null");
+ return null;
+ }
+ if (mBluetoothAdvScanData == null) {
+ mBluetoothAdvScanData = new BluetoothAdvScanData(iGatt, BluetoothAdvScanData.AD);
+ }
+ return mBluetoothAdvScanData;
+ } catch (RemoteException e) {
+ Log.e(TAG, "failed to get advScanData, error: " + e);
+ return null;
+ }
+ }
+
+
+ /**
+ * Start BLE advertising using current {@link BluetoothAdvScanData}.
+ * An app should start advertising by requesting
+ * {@link BluetoothAdapter#ACTION_START_ADVERTISING} instead of calling this method directly.
+ * <p>Requires {@link android.Manifest.permission#BLUETOOTH_PRIVILEGED}
+ *
+ * @return true if BLE avertising succeeds, false otherwise.
+ * @hide
+ */
+ public boolean startAdvertising() {
+ if (getState() != STATE_ON) return false;
+
+ try {
+ IBluetoothGatt iGatt = mManagerService.getBluetoothGatt();
+ if (iGatt == null) {
+ // BLE is not supported.
+ return false;
+ }
+ // Restart/reset advertising packets if advertising is in progress.
+ if (isAdvertising()) {
+ // Invalid advertising callback.
+ if (mAdvertisingCallback == null || mAdvertisingCallback.mLeHandle == -1) {
+ Log.e(TAG, "failed to restart advertising, invalid callback");
+ return false;
+ }
+ iGatt.startAdvertising(mAdvertisingCallback.mLeHandle);
+ return true;
+ }
+ UUID uuid = UUID.randomUUID();
+ GattCallbackWrapper wrapper =
+ new GattCallbackWrapper(this, null, null, GattCallbackWrapper.CALLBACK_TYPE_ADV);
+ iGatt.registerClient(new ParcelUuid(uuid), wrapper);
+ mAdvertisingCallback = wrapper;
+ return true;
+ } catch (RemoteException e) {
+ Log.e(TAG, "", e);
+ return false;
+ }
+ }
+
+ /**
+ * Stop BLE advertising.
+ * An app should stop advertising by requesting
+ * {@link BluetoothAdapter#ACTION_STOP_ADVERTISING} instead of calling this method directly.
+ * <p>Requires {@link android.Manifest.permission#BLUETOOTH_PRIVILEGED}
+ * @return true if BLE advertising stops, false otherwise.
+ * @hide
+ */
+ public boolean stopAdvertisting() {
+ try {
+ IBluetoothGatt iGatt = mManagerService.getBluetoothGatt();
+ if (iGatt == null) {
+ // BLE is not supported
+ return false;
+ }
+ if (mAdvertisingCallback == null) {
+ // no callback.
+ return false;
+ }
+ mAdvertisingCallback.stopAdvertising();
+ mAdvertisingCallback = null;
+ return true;
+ } catch (RemoteException e) {
+ Log.e(TAG, "", e);
+ return false;
+ }
+ }
+
+ /**
* Return true if Bluetooth is currently enabled and ready for use.
* <p>Equivalent to:
* <code>getBluetoothState() == STATE_ON</code>
@@ -849,6 +978,23 @@
}
/**
+ * Returns whether BLE is currently advertising.
+ * <p>Requires {@link android.Manifest.permission#BLUETOOTH_PRIVILEGED}.
+ *
+ * @hide
+ */
+ public boolean isAdvertising() {
+ if (getState() != STATE_ON) return false;
+ try {
+ IBluetoothGatt iGatt = mManagerService.getBluetoothGatt();
+ return iGatt.isAdvertising();
+ } catch (RemoteException e) {
+ Log.e(TAG, "", e);
+ }
+ return false;
+ }
+
+ /**
* Return the set of {@link BluetoothDevice} objects that are bonded
* (paired) to the local adapter.
* <p>If Bluetooth state is not {@link #STATE_ON}, this API
@@ -1546,8 +1692,12 @@
private static class GattCallbackWrapper extends IBluetoothGattCallback.Stub {
private static final int LE_CALLBACK_REG_TIMEOUT = 2000;
private static final int LE_CALLBACK_REG_WAIT_COUNT = 5;
+ private static final int CALLBACK_TYPE_SCAN = 0;
+ private static final int CALLBACK_TYPE_ADV = 1;
private final LeScanCallback mLeScanCb;
+ private int mCallbackType;
+
// mLeHandle 0: not registered
// -1: scan stopped
// >0: registered and scan started
@@ -1561,6 +1711,16 @@
mLeScanCb = leScanCb;
mScanFilter = uuid;
mLeHandle = 0;
+ mCallbackType = CALLBACK_TYPE_SCAN;
+ }
+
+ public GattCallbackWrapper(BluetoothAdapter bluetoothAdapter, LeScanCallback leScanCb,
+ UUID[] uuid, int type) {
+ mBluetoothAdapter = new WeakReference<BluetoothAdapter>(bluetoothAdapter);
+ mLeScanCb = leScanCb;
+ mScanFilter = uuid;
+ mLeHandle = 0;
+ mCallbackType = type;
}
public boolean scanStarted() {
@@ -1583,6 +1743,30 @@
return started;
}
+ public void stopAdvertising() {
+ synchronized (this) {
+ if (mLeHandle <= 0) {
+ Log.e(TAG, "Error state, mLeHandle: " + mLeHandle);
+ return;
+ }
+ BluetoothAdapter adapter = mBluetoothAdapter.get();
+ if (adapter != null) {
+ try {
+ IBluetoothGatt iGatt = adapter.getBluetoothManager().getBluetoothGatt();
+ iGatt.stopAdvertising();
+ Log.d(TAG, "unregeistering client " + mLeHandle);
+ iGatt.unregisterClient(mLeHandle);
+ } catch (RemoteException e) {
+ Log.e(TAG, "Failed to stop advertising and unregister" + e);
+ }
+ } else {
+ Log.e(TAG, "stopAdvertising, BluetoothAdapter is null");
+ }
+ mLeHandle = -1;
+ notifyAll();
+ }
+ }
+
public void stopLeScan() {
synchronized(this) {
if (mLeHandle <= 0) {
@@ -1624,14 +1808,18 @@
BluetoothAdapter adapter = mBluetoothAdapter.get();
if (adapter != null) {
iGatt = adapter.getBluetoothManager().getBluetoothGatt();
- if (mScanFilter == null) {
- iGatt.startScan(mLeHandle, false);
+ if (mCallbackType == CALLBACK_TYPE_ADV) {
+ iGatt.startAdvertising(mLeHandle);
} else {
- ParcelUuid[] uuids = new ParcelUuid[mScanFilter.length];
- for(int i = 0; i != uuids.length; ++i) {
- uuids[i] = new ParcelUuid(mScanFilter[i]);
- }
- iGatt.startScanWithUuids(mLeHandle, false, uuids);
+ if (mScanFilter == null) {
+ iGatt.startScan(mLeHandle, false);
+ } else {
+ ParcelUuid[] uuids = new ParcelUuid[mScanFilter.length];
+ for(int i = 0; i != uuids.length; ++i) {
+ uuids[i] = new ParcelUuid(mScanFilter[i]);
+ }
+ iGatt.startScanWithUuids(mLeHandle, false, uuids);
+ }
}
} else {
Log.e(TAG, "onClientRegistered, BluetoothAdapter null");
@@ -1642,7 +1830,7 @@
mLeHandle = -1;
}
if (mLeHandle == -1) {
- // registration succeeded but start scan failed
+ // registration succeeded but start scan or advertise failed
if (iGatt != null) {
try {
iGatt.unregisterClient(mLeHandle);
diff --git a/core/java/android/bluetooth/BluetoothAdvScanData.java b/core/java/android/bluetooth/BluetoothAdvScanData.java
new file mode 100644
index 0000000..a97b0a8
--- /dev/null
+++ b/core/java/android/bluetooth/BluetoothAdvScanData.java
@@ -0,0 +1,147 @@
+/*
+ * Copyright (C) 2013 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.bluetooth;
+import android.os.ParcelUuid;
+import android.os.RemoteException;
+import android.util.Log;
+
+import java.util.Collections;
+import java.util.List;
+
+
+/**
+ * This class provides the public APIs to set advertising and scan response data when BLE device
+ * operates in peripheral mode. <br>
+ * The exact format is defined in Bluetooth 4.0 specification, Volume 3, Part C, Section 11
+ * @hide
+ */
+public final class BluetoothAdvScanData {
+
+ /**
+ * Available data types of {@link BluetoothAdvScanData}.
+ */
+ public static final int AD = 0; // Advertising Data
+ public static final int SCAN_RESPONSE = 1; // Scan Response
+ public static final int EIR = 2; // Extended Inquiry Response
+
+ private static final String TAG = "BluetoothAdvScanData";
+
+ /**
+ * Data type of BluetoothAdvScanData.
+ */
+ private final int mDataType;
+ /**
+ * Bluetooth Gatt Service.
+ */
+ private IBluetoothGatt mBluetoothGatt;
+
+ /**
+ * @param mBluetoothGatt
+ * @param dataType
+ */
+ public BluetoothAdvScanData(IBluetoothGatt mBluetoothGatt, int dataType) {
+ this.mBluetoothGatt = mBluetoothGatt;
+ this.mDataType = dataType;
+ }
+
+ /**
+ * @return advertising data type.
+ */
+ public int getDataType() {
+ return mDataType;
+ }
+
+ /**
+ * Set manufactureCode and manufactureData.
+ * Returns true if manufacturer data is set, false if there is no enough room to set
+ * manufacturer data or the data is already set.
+ * @param manufacturerCode - unique identifier for the manufacturer
+ * @param manufacturerData - data associated with the specific manufacturer.
+ */
+ public boolean setManufacturerData(int manufacturerCode, byte[] manufacturerData) {
+ if (mDataType != AD) return false;
+ try {
+ return mBluetoothGatt.setAdvManufacturerCodeAndData(manufacturerCode, manufacturerData);
+ } catch (RemoteException e) {
+ return false;
+ }
+ }
+
+ /**
+ * Set service data. Note the service data can only be set when the data type is {@code AD};
+ * @param serviceData
+ */
+ public boolean setServiceData(byte[] serviceData) {
+
+ if (mDataType != AD) return false;
+ if (serviceData == null) return false;
+ try {
+ return mBluetoothGatt.setAdvServiceData(serviceData);
+ } catch (RemoteException e) {
+ return false;
+ }
+ }
+
+ /**
+ * Returns an immutable list of service uuids that will be advertised.
+ */
+ public List<ParcelUuid> getServiceUuids() {
+ try {
+ return Collections.unmodifiableList(mBluetoothGatt.getAdvServiceUuids());
+ } catch (RemoteException e) {
+ return null;
+ }
+ }
+
+ /**
+ * Returns manufacturer data.
+ */
+ public byte[] getManufacturerData() {
+ if (mBluetoothGatt == null) return null;
+ try {
+ return mBluetoothGatt.getAdvManufacturerData();
+ } catch (RemoteException e) {
+ return null;
+ }
+ }
+
+ /**
+ * Returns service data.
+ */
+ public byte[] getServiceData() {
+ if (mBluetoothGatt == null) return null;
+ try {
+ return mBluetoothGatt.getAdvServiceData();
+ } catch (RemoteException e) {
+ return null;
+ }
+ }
+
+ /**
+ * Remove manufacturer data based on given manufacturer code.
+ * @param manufacturerCode
+ */
+ public void removeManufacturerCodeAndData(int manufacturerCode) {
+ if (mBluetoothGatt != null) {
+ try {
+ mBluetoothGatt.removeAdvManufacturerCodeAndData(manufacturerCode);
+ } catch (RemoteException e) {
+ Log.e(TAG, e.toString());
+ }
+ }
+ }
+}
diff --git a/core/java/android/bluetooth/BluetoothGatt.java b/core/java/android/bluetooth/BluetoothGatt.java
index a2bb78c..cd093c5 100644
--- a/core/java/android/bluetooth/BluetoothGatt.java
+++ b/core/java/android/bluetooth/BluetoothGatt.java
@@ -553,14 +553,6 @@
Log.w(TAG, "Unhandled exception in callback", ex);
}
}
-
- /**
- * Listen command status callback
- * @hide
- */
- public void onListen(int status) {
- if (DBG) Log.d(TAG, "onListen() - status=" + status);
- }
};
/*package*/ BluetoothGatt(Context context, IBluetoothGatt iGatt, BluetoothDevice device) {
@@ -693,71 +685,6 @@
return true;
}
- /**
- * Starts or stops sending of advertisement packages to listen for connection
- * requests from a central devices.
- *
- * <p>Requires {@link android.Manifest.permission#BLUETOOTH} permission.
- *
- * @param start Start or stop advertising
- */
- /*package*/ void listen(boolean start) {
- if (mContext == null || !mContext.getResources().
- getBoolean(com.android.internal.R.bool.config_bluetooth_le_peripheral_mode_supported)) {
- throw new UnsupportedOperationException("BluetoothGatt#listen is blocked");
- }
- if (DBG) Log.d(TAG, "listen() - start: " + start);
- if (mService == null || mClientIf == 0) return;
-
- try {
- mService.clientListen(mClientIf, start);
- } catch (RemoteException e) {
- Log.e(TAG,"",e);
- }
- }
-
- /**
- * Sets the advertising data contained in the adv. response packet.
- *
- * <p>Requires {@link android.Manifest.permission#BLUETOOTH} permission.
- *
- * @param advData true to set adv. data, false to set scan response
- * @param includeName Inlucde the name in the adv. response
- * @param includeTxPower Include TX power value
- * @param minInterval Minimum desired scan interval (optional)
- * @param maxInterval Maximum desired scan interval (optional)
- * @param appearance The appearance flags for the device (optional)
- * @param manufacturerData Manufacturer specific data including company ID (optional)
- */
- /*package*/ void setAdvData(boolean advData, boolean includeName, boolean includeTxPower,
- Integer minInterval, Integer maxInterval,
- Integer appearance, Byte[] manufacturerData) {
- if (mContext == null || !mContext.getResources().
- getBoolean(com.android.internal.R.bool.config_bluetooth_le_peripheral_mode_supported)) {
- throw new UnsupportedOperationException("BluetoothGatt#setAdvData is blocked");
- }
- if (DBG) Log.d(TAG, "setAdvData()");
- if (mService == null || mClientIf == 0) return;
-
- byte[] data = new byte[0];
- if (manufacturerData != null) {
- data = new byte[manufacturerData.length];
- for(int i = 0; i != manufacturerData.length; ++i) {
- data[i] = manufacturerData[i];
- }
- }
-
- try {
- mService.setAdvData(mClientIf, !advData,
- includeName, includeTxPower,
- minInterval != null ? minInterval : 0,
- maxInterval != null ? maxInterval : 0,
- appearance != null ? appearance : 0, data);
- } catch (RemoteException e) {
- Log.e(TAG,"",e);
- }
- }
-
/**
* Disconnects an established connection, or cancels a connection attempt
* currently in progress.
diff --git a/core/java/android/bluetooth/BluetoothGattServer.java b/core/java/android/bluetooth/BluetoothGattServer.java
index 58ee54f..153215c 100644
--- a/core/java/android/bluetooth/BluetoothGattServer.java
+++ b/core/java/android/bluetooth/BluetoothGattServer.java
@@ -537,7 +537,7 @@
try {
mService.beginServiceDeclaration(mServerIf, service.getType(),
service.getInstanceId(), service.getHandles(),
- new ParcelUuid(service.getUuid()));
+ new ParcelUuid(service.getUuid()), service.isAdvertisePreferred());
List<BluetoothGattService> includedServices = service.getIncludedServices();
for (BluetoothGattService includedService : includedServices) {
diff --git a/core/java/android/bluetooth/BluetoothGattService.java b/core/java/android/bluetooth/BluetoothGattService.java
index 1e66369..52bc0f7 100644
--- a/core/java/android/bluetooth/BluetoothGattService.java
+++ b/core/java/android/bluetooth/BluetoothGattService.java
@@ -15,8 +15,6 @@
*/
package android.bluetooth;
-import android.bluetooth.BluetoothDevice;
-
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
@@ -82,6 +80,11 @@
protected List<BluetoothGattService> mIncludedServices;
/**
+ * Whether the service uuid should be advertised.
+ */
+ private boolean mAdvertisePreferred;
+
+ /**
* Create a new BluetoothGattService.
* <p>Requires {@link android.Manifest.permission#BLUETOOTH} permission.
*
@@ -263,4 +266,20 @@
}
return null;
}
+
+ /**
+ * Returns whether the uuid of the service should be advertised.
+ * @hide
+ */
+ public boolean isAdvertisePreferred() {
+ return mAdvertisePreferred;
+ }
+
+ /**
+ * Set whether the service uuid should be advertised.
+ * @hide
+ */
+ public void setAdvertisePreferred(boolean advertisePreferred) {
+ this.mAdvertisePreferred = advertisePreferred;
+ }
}
diff --git a/core/java/android/bluetooth/BluetoothInputDevice.java b/core/java/android/bluetooth/BluetoothInputDevice.java
index 844f432..33232ed 100644
--- a/core/java/android/bluetooth/BluetoothInputDevice.java
+++ b/core/java/android/bluetooth/BluetoothInputDevice.java
@@ -76,6 +76,12 @@
public static final String ACTION_PROTOCOL_MODE_CHANGED =
"android.bluetooth.input.profile.action.PROTOCOL_MODE_CHANGED";
+ /**
+ * @hide
+ */
+ @SdkConstant(SdkConstantType.BROADCAST_INTENT_ACTION)
+ public static final String ACTION_REPORT =
+ "android.bluetooth.input.profile.action.REPORT";
/**
* @hide
@@ -130,17 +136,17 @@
/**
* @hide
*/
- public static final byte REPORT_TYPE_INPUT = 0;
+ public static final byte REPORT_TYPE_INPUT = 1;
/**
* @hide
*/
- public static final byte REPORT_TYPE_OUTPUT = 1;
+ public static final byte REPORT_TYPE_OUTPUT = 2;
/**
* @hide
*/
- public static final byte REPORT_TYPE_FEATURE = 2;
+ public static final byte REPORT_TYPE_FEATURE = 3;
/**
* @hide
diff --git a/core/java/android/bluetooth/BluetoothSocket.java b/core/java/android/bluetooth/BluetoothSocket.java
index d10eaea..1e75fc2 100644
--- a/core/java/android/bluetooth/BluetoothSocket.java
+++ b/core/java/android/bluetooth/BluetoothSocket.java
@@ -417,27 +417,28 @@
* if an i/o error occurs.
*/
/*package*/ void flush() throws IOException {
+ if (mSocketOS == null) throw new IOException("flush is called on null OutputStream");
if (VDBG) Log.d(TAG, "flush: " + mSocketOS);
mSocketOS.flush();
}
/*package*/ int read(byte[] b, int offset, int length) throws IOException {
-
- if (VDBG) Log.d(TAG, "read in: " + mSocketIS + " len: " + length);
- int ret = mSocketIS.read(b, offset, length);
- if(ret < 0)
- throw new IOException("bt socket closed, read return: " + ret);
- if (VDBG) Log.d(TAG, "read out: " + mSocketIS + " ret: " + ret);
- return ret;
+ if (mSocketIS == null) throw new IOException("read is called on null InputStream");
+ if (VDBG) Log.d(TAG, "read in: " + mSocketIS + " len: " + length);
+ int ret = mSocketIS.read(b, offset, length);
+ if(ret < 0)
+ throw new IOException("bt socket closed, read return: " + ret);
+ if (VDBG) Log.d(TAG, "read out: " + mSocketIS + " ret: " + ret);
+ return ret;
}
/*package*/ int write(byte[] b, int offset, int length) throws IOException {
-
- if (VDBG) Log.d(TAG, "write: " + mSocketOS + " length: " + length);
- mSocketOS.write(b, offset, length);
- // There is no good way to confirm since the entire process is asynchronous anyway
- if (VDBG) Log.d(TAG, "write out: " + mSocketOS + " length: " + length);
- return length;
+ if (mSocketOS == null) throw new IOException("write is called on null OutputStream");
+ if (VDBG) Log.d(TAG, "write: " + mSocketOS + " length: " + length);
+ mSocketOS.write(b, offset, length);
+ // There is no good way to confirm since the entire process is asynchronous anyway
+ if (VDBG) Log.d(TAG, "write out: " + mSocketOS + " length: " + length);
+ return length;
}
@Override
diff --git a/core/java/android/bluetooth/BluetoothUuid.java b/core/java/android/bluetooth/BluetoothUuid.java
index abdf949e..4b28516 100644
--- a/core/java/android/bluetooth/BluetoothUuid.java
+++ b/core/java/android/bluetooth/BluetoothUuid.java
@@ -73,6 +73,9 @@
public static final ParcelUuid MAS =
ParcelUuid.fromString("00001132-0000-1000-8000-00805F9B34FB");
+ public static final ParcelUuid BASE_UUID =
+ ParcelUuid.fromString("00000000-0000-1000-8000-00805F9B34FB");
+
public static final ParcelUuid[] RESERVED_UUIDS = {
AudioSink, AudioSource, AdvAudioDist, HSP, Handsfree, AvrcpController, AvrcpTarget,
@@ -211,4 +214,17 @@
long value = (uuid.getMostSignificantBits() & 0x0000FFFF00000000L) >>> 32;
return (int)value;
}
+
+ /**
+ * Check whether the given parcelUuid can be converted to 16 bit bluetooth uuid.
+ * @param parcelUuid
+ * @return true if the parcelUuid can be converted to 16 bit uuid, false otherwise.
+ */
+ public static boolean isShortUuid(ParcelUuid parcelUuid) {
+ UUID uuid = parcelUuid.getUuid();
+ if (uuid.getLeastSignificantBits() != BASE_UUID.getUuid().getLeastSignificantBits()) {
+ return false;
+ }
+ return ((uuid.getMostSignificantBits() & 0xFFFF0000FFFFFFFFL) == 0x1000L);
+ }
}
diff --git a/core/java/android/bluetooth/IBluetoothGatt.aidl b/core/java/android/bluetooth/IBluetoothGatt.aidl
index df393db..784cdcc 100644
--- a/core/java/android/bluetooth/IBluetoothGatt.aidl
+++ b/core/java/android/bluetooth/IBluetoothGatt.aidl
@@ -37,10 +37,15 @@
void unregisterClient(in int clientIf);
void clientConnect(in int clientIf, in String address, in boolean isDirect);
void clientDisconnect(in int clientIf, in String address);
- void clientListen(in int clientIf, in boolean start);
- void setAdvData(in int clientIf, in boolean setScanRsp, in boolean inclName,
- in boolean inclTxPower, in int minInterval, in int maxInterval,
- in int appearance, in byte[] manufacturerData);
+ void startAdvertising(in int appIf);
+ void stopAdvertising();
+ boolean setAdvServiceData(in byte[] serviceData);
+ byte[] getAdvServiceData();
+ boolean setAdvManufacturerCodeAndData(int manufactureCode, in byte[] manufacturerData);
+ byte[] getAdvManufacturerData();
+ List<ParcelUuid> getAdvServiceUuids();
+ void removeAdvManufacturerCodeAndData(int manufacturerCode);
+ boolean isAdvertising();
void refreshDevice(in int clientIf, in String address);
void discoverServices(in int clientIf, in String address);
void readCharacteristic(in int clientIf, in String address, in int srvcType,
@@ -75,7 +80,7 @@
void serverDisconnect(in int serverIf, in String address);
void beginServiceDeclaration(in int serverIf, in int srvcType,
in int srvcInstanceId, in int minHandles,
- in ParcelUuid srvcId);
+ in ParcelUuid srvcId, boolean advertisePreferred);
void addIncludedService(in int serverIf, in int srvcType,
in int srvcInstanceId, in ParcelUuid srvcId);
void addCharacteristic(in int serverIf, in ParcelUuid charId,
diff --git a/core/java/android/bluetooth/IBluetoothGattCallback.aidl b/core/java/android/bluetooth/IBluetoothGattCallback.aidl
index 60c297b..e3563fc 100644
--- a/core/java/android/bluetooth/IBluetoothGattCallback.aidl
+++ b/core/java/android/bluetooth/IBluetoothGattCallback.aidl
@@ -63,5 +63,4 @@
in int charInstId, in ParcelUuid charUuid,
in byte[] value);
void onReadRemoteRssi(in String address, in int rssi, in int status);
- void onListen(in int status);
}
diff --git a/core/java/android/bluetooth/package.html b/core/java/android/bluetooth/package.html
index 200a21b..d9ca4f1 100644
--- a/core/java/android/bluetooth/package.html
+++ b/core/java/android/bluetooth/package.html
@@ -8,17 +8,19 @@
<a href="{@docRoot}guide/topics/connectivity/bluetooth.html">Bluetooth</a> guide.
For more information about Bluetooth Low Energy, see the
<a href="{@docRoot}guide/topics/connectivity/bluetooth-le.html">
-Bluetooth Low Energy</a> guide.</p>
+Bluetooth Low Energy</a> (BLE) guide.</p>
{@more}
<p>The Bluetooth APIs let applications:</p>
<ul>
- <li>Scan for other Bluetooth devices (including Bluetooth Low Energy
- devices)</li>
- <li>Query the local Bluetooth adapter for paired Bluetooth devices</li>
- <li>Establish RFCOMM channels/sockets</li>
- <li>Connect to specified sockets on other devices</li>
- <li>Transfer data to and from other devices</li>
+ <li>Scan for other Bluetooth devices (including BLE devices).</li>
+ <li>Query the local Bluetooth adapter for paired Bluetooth devices.</li>
+ <li>Establish RFCOMM channels/sockets.</li>
+ <li>Connect to specified sockets on other devices.</li>
+ <li>Transfer data to and from other devices.</li>
+ <li>Communicate with BLE devices, such as proximity sensors, heart rate
+ monitors, fitness devices, and so on.</li>
+ <li>Act as a GATT client or a GATT server (BLE).</li>
</ul>
<p>
diff --git a/core/java/android/content/ClipDescription.java b/core/java/android/content/ClipDescription.java
index 5cb6e77..be35f08 100644
--- a/core/java/android/content/ClipDescription.java
+++ b/core/java/android/content/ClipDescription.java
@@ -87,7 +87,7 @@
/**
* Helper to compare two MIME types, where one may be a pattern.
* @param concreteType A fully-specified MIME type.
- * @param desiredType A desired MIME type that may be a pattern such as *\/*.
+ * @param desiredType A desired MIME type that may be a pattern such as */*.
* @return Returns true if the two MIME types match.
*/
public static boolean compareMimeTypes(String concreteType, String desiredType) {
diff --git a/core/java/android/content/ContentProvider.java b/core/java/android/content/ContentProvider.java
index ddde3fb..9d0ab3a 100644
--- a/core/java/android/content/ContentProvider.java
+++ b/core/java/android/content/ContentProvider.java
@@ -1328,7 +1328,7 @@
*
* @param uri The data in the content provider being queried.
* @param mimeTypeFilter The type of data the client desires. May be
- * a pattern, such as *\/* to retrieve all possible data types.
+ * a pattern, such as */* to retrieve all possible data types.
* @return Returns {@code null} if there are no possible data streams for the
* given mimeTypeFilter. Otherwise returns an array of all available
* concrete MIME types.
@@ -1366,7 +1366,7 @@
*
* @param uri The data in the content provider being queried.
* @param mimeTypeFilter The type of data the client desires. May be
- * a pattern, such as *\/*, if the caller does not have specific type
+ * a pattern, such as */*, if the caller does not have specific type
* requirements; in this case the content provider will pick its best
* type matching the pattern.
* @param opts Additional options from the client. The definitions of
@@ -1427,7 +1427,7 @@
*
* @param uri The data in the content provider being queried.
* @param mimeTypeFilter The type of data the client desires. May be
- * a pattern, such as *\/*, if the caller does not have specific type
+ * a pattern, such as */*, if the caller does not have specific type
* requirements; in this case the content provider will pick its best
* type matching the pattern.
* @param opts Additional options from the client. The definitions of
diff --git a/core/java/android/content/ContentResolver.java b/core/java/android/content/ContentResolver.java
index 4e6cc92..ba93a20 100644
--- a/core/java/android/content/ContentResolver.java
+++ b/core/java/android/content/ContentResolver.java
@@ -344,7 +344,7 @@
* @param url A Uri identifying content (either a list or specific type),
* using the content:// scheme.
* @param mimeTypeFilter The desired MIME type. This may be a pattern,
- * such as *\/*, to query for all available MIME types that match the
+ * such as */*, to query for all available MIME types that match the
* pattern.
* @return Returns an array of MIME type strings for all available
* data streams that match the given mimeTypeFilter. If there are none,
@@ -815,7 +815,7 @@
*
* <p>Note that if this function is called for read-only input (mode is "r")
* on a content: URI, it will instead call {@link #openTypedAssetFileDescriptor}
- * for you with a MIME type of "*\/*". This allows such callers to benefit
+ * for you with a MIME type of "*/*". This allows such callers to benefit
* from any built-in data conversion that a provider implements.
*
* @param uri The desired URI to open.
@@ -868,7 +868,7 @@
*
* <p>Note that if this function is called for read-only input (mode is "r")
* on a content: URI, it will instead call {@link #openTypedAssetFileDescriptor}
- * for you with a MIME type of "*\/*". This allows such callers to benefit
+ * for you with a MIME type of "*/*". This allows such callers to benefit
* from any built-in data conversion that a provider implements.
*
* @param uri The desired URI to open.
@@ -993,7 +993,7 @@
*
* @param uri The desired URI to open.
* @param mimeType The desired MIME type of the returned data. This can
- * be a pattern such as *\/*, which will allow the content provider to
+ * be a pattern such as */*, which will allow the content provider to
* select a type, though there is no way for you to determine what type
* it is returning.
* @param opts Additional provider-dependent options.
@@ -1026,7 +1026,7 @@
*
* @param uri The desired URI to open.
* @param mimeType The desired MIME type of the returned data. This can
- * be a pattern such as *\/*, which will allow the content provider to
+ * be a pattern such as */*, which will allow the content provider to
* select a type, though there is no way for you to determine what type
* it is returning.
* @param opts Additional provider-dependent options.
diff --git a/core/java/android/content/Intent.java b/core/java/android/content/Intent.java
index a289649..11ac15f 100644
--- a/core/java/android/content/Intent.java
+++ b/core/java/android/content/Intent.java
@@ -844,7 +844,7 @@
* {@link #FLAG_GRANT_WRITE_URI_PERMISSION}, then these flags will also be
* set in the returned chooser intent, with its ClipData set appropriately:
* either a direct reflection of {@link #getClipData()} if that is non-null,
- * or a new ClipData build from {@link #getData()}.
+ * or a new ClipData built from {@link #getData()}.
*
* @param target The Intent that the user will be selecting an activity
* to perform.
@@ -3538,6 +3538,11 @@
* it will be finished so that the user does not return to them, but
* instead returns to whatever activity preceeded it.
*
+ * <p>When this flag is assigned to the root activity all activities up
+ * to, but not including the root activity, will be cleared. This prevents
+ * this flag from being used to finish all activities in a task and thereby
+ * ending the task.
+ *
* <p>This is useful for cases where you have a logical break in your
* application. For example, an e-mail application may have a command
* to view an attachment, which launches an image view activity to
@@ -4415,7 +4420,7 @@
* Return the {@link ClipData} associated with this Intent. If there is
* none, returns null. See {@link #setClipData} for more information.
*
- * @see #setClipData;
+ * @see #setClipData
*/
public ClipData getClipData() {
return mClipData;
@@ -5431,7 +5436,7 @@
* directly used by Intent. Applications should generally rely on the
* MIME type of the Intent itself, not what it may find in the ClipData.
* A common practice is to construct a ClipData for use with an Intent
- * with a MIME type of "*\/*".
+ * with a MIME type of "*/*".
*
* @param clip The new clip to set. May be null to clear the current clip.
*/
@@ -7153,8 +7158,8 @@
*
* @param type MIME data type to normalize
* @return normalized MIME data type, or null if the input was null
- * @see {@link #setType}
- * @see {@link #setTypeAndNormalize}
+ * @see #setType
+ * @see #setTypeAndNormalize
*/
public static String normalizeMimeType(String type) {
if (type == null) {
diff --git a/core/java/android/database/sqlite/SQLiteDatabase.java b/core/java/android/database/sqlite/SQLiteDatabase.java
index 60ccc61..433d5d1c 100644
--- a/core/java/android/database/sqlite/SQLiteDatabase.java
+++ b/core/java/android/database/sqlite/SQLiteDatabase.java
@@ -738,14 +738,16 @@
File dir = file.getParentFile();
if (dir != null) {
final String prefix = file.getName() + "-mj";
- final FileFilter filter = new FileFilter() {
+ File[] files = dir.listFiles(new FileFilter() {
@Override
public boolean accept(File candidate) {
return candidate.getName().startsWith(prefix);
}
- };
- for (File masterJournal : dir.listFiles(filter)) {
- deleted |= masterJournal.delete();
+ });
+ if (files != null) {
+ for (File masterJournal : files) {
+ deleted |= masterJournal.delete();
+ }
}
}
return deleted;
diff --git a/core/java/android/hardware/SensorManager.java b/core/java/android/hardware/SensorManager.java
index b931313..8c23129 100644
--- a/core/java/android/hardware/SensorManager.java
+++ b/core/java/android/hardware/SensorManager.java
@@ -1056,8 +1056,8 @@
* is mapped.
*
* @param outR
- * the transformed rotation matrix. inR and outR can be the same
- * array, but it is not recommended for performance reason.
+ * the transformed rotation matrix. inR and outR should not be the same
+ * array.
*
* @return <code>true</code> on success. <code>false</code> if the input
* parameters are incorrect, for instance if X and Y define the same
diff --git a/core/java/android/hardware/display/DisplayManager.java b/core/java/android/hardware/display/DisplayManager.java
index d5208d9..a517bc5 100644
--- a/core/java/android/hardware/display/DisplayManager.java
+++ b/core/java/android/hardware/display/DisplayManager.java
@@ -115,6 +115,7 @@
* </p>
*
* @see #createVirtualDisplay
+ * @see #VIRTUAL_DISPLAY_FLAG_OWN_CONTENT_ONLY
*/
public static final int VIRTUAL_DISPLAY_FLAG_PUBLIC = 1 << 0;
@@ -171,6 +172,22 @@
*/
public static final int VIRTUAL_DISPLAY_FLAG_SECURE = 1 << 2;
+ /**
+ * Virtual display flag: Only show this display's own content; do not mirror
+ * the content of another display.
+ *
+ * <p>
+ * This flag is used in conjunction with {@link #VIRTUAL_DISPLAY_FLAG_PUBLIC}.
+ * Ordinarily public virtual displays will automatically mirror the content of the
+ * default display if they have no windows of their own. When this flag is
+ * specified, the virtual display will only ever show its own content and
+ * will be blanked instead if it has no windows.
+ * </p>
+ *
+ * @see #createVirtualDisplay
+ */
+ public static final int VIRTUAL_DISPLAY_FLAG_OWN_CONTENT_ONLY = 1 << 3;
+
/** @hide */
public DisplayManager(Context context) {
mContext = context;
@@ -297,16 +314,31 @@
}
/**
- * Initiates a fresh scan of availble Wifi displays.
+ * Starts scanning for available Wifi displays.
* The results are sent as a {@link #ACTION_WIFI_DISPLAY_STATUS_CHANGED} broadcast.
* <p>
+ * Calls to this method nest and must be matched by an equal number of calls to
+ * {@link #stopWifiDisplayScan()}.
+ * </p><p>
+ * Requires {@link android.Manifest.permission#CONFIGURE_WIFI_DISPLAY}.
+ * </p>
+ *
+ * @hide
+ */
+ public void startWifiDisplayScan() {
+ mGlobal.startWifiDisplayScan();
+ }
+
+ /**
+ * Stops scanning for available Wifi displays.
+ * <p>
* Requires {@link android.Manifest.permission#CONFIGURE_WIFI_DISPLAY}.
* </p>
*
* @hide
*/
- public void scanWifiDisplays() {
- mGlobal.scanWifiDisplays();
+ public void stopWifiDisplayScan() {
+ mGlobal.stopWifiDisplayScan();
}
/**
@@ -414,8 +446,8 @@
* @param surface The surface to which the content of the virtual display should
* be rendered, must be non-null.
* @param flags A combination of virtual display flags:
- * {@link #VIRTUAL_DISPLAY_FLAG_PUBLIC}, {@link #VIRTUAL_DISPLAY_FLAG_PRESENTATION}
- * or {@link #VIRTUAL_DISPLAY_FLAG_SECURE}.
+ * {@link #VIRTUAL_DISPLAY_FLAG_PUBLIC}, {@link #VIRTUAL_DISPLAY_FLAG_PRESENTATION},
+ * {@link #VIRTUAL_DISPLAY_FLAG_SECURE}, or {@link #VIRTUAL_DISPLAY_FLAG_OWN_CONTENT_ONLY}.
* @return The newly created virtual display, or null if the application could
* not create the virtual display.
*
diff --git a/core/java/android/hardware/display/DisplayManagerGlobal.java b/core/java/android/hardware/display/DisplayManagerGlobal.java
index 936a086..3417430 100644
--- a/core/java/android/hardware/display/DisplayManagerGlobal.java
+++ b/core/java/android/hardware/display/DisplayManagerGlobal.java
@@ -72,6 +72,8 @@
private final SparseArray<DisplayInfo> mDisplayInfoCache = new SparseArray<DisplayInfo>();
private int[] mDisplayIdCache;
+ private int mWifiDisplayScanNestCount;
+
private DisplayManagerGlobal(IDisplayManager dm) {
mDm = dm;
}
@@ -267,11 +269,32 @@
}
}
- public void scanWifiDisplays() {
- try {
- mDm.scanWifiDisplays();
- } catch (RemoteException ex) {
- Log.e(TAG, "Failed to scan for Wifi displays.", ex);
+ public void startWifiDisplayScan() {
+ synchronized (mLock) {
+ if (mWifiDisplayScanNestCount++ == 0) {
+ registerCallbackIfNeededLocked();
+ try {
+ mDm.startWifiDisplayScan();
+ } catch (RemoteException ex) {
+ Log.e(TAG, "Failed to scan for Wifi displays.", ex);
+ }
+ }
+ }
+ }
+
+ public void stopWifiDisplayScan() {
+ synchronized (mLock) {
+ if (--mWifiDisplayScanNestCount == 0) {
+ try {
+ mDm.stopWifiDisplayScan();
+ } catch (RemoteException ex) {
+ Log.e(TAG, "Failed to scan for Wifi displays.", ex);
+ }
+ } else if (mWifiDisplayScanNestCount < 0) {
+ Log.wtf(TAG, "Wifi display scan nest count became negative: "
+ + mWifiDisplayScanNestCount);
+ mWifiDisplayScanNestCount = 0;
+ }
}
}
diff --git a/core/java/android/hardware/display/DisplayManagerInternal.java b/core/java/android/hardware/display/DisplayManagerInternal.java
new file mode 100644
index 0000000..8430973
--- /dev/null
+++ b/core/java/android/hardware/display/DisplayManagerInternal.java
@@ -0,0 +1,109 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.hardware.display;
+
+import android.view.DisplayInfo;
+
+/**
+ * Display manager local system service interface.
+ *
+ * @hide Only for use within the system server.
+ */
+public abstract class DisplayManagerInternal {
+ /**
+ * Called by the power manager to blank all displays.
+ */
+ public abstract void blankAllDisplaysFromPowerManager();
+
+ /**
+ * Called by the power manager to unblank all displays.
+ */
+ public abstract void unblankAllDisplaysFromPowerManager();
+
+ /**
+ * Returns information about the specified logical display.
+ *
+ * @param displayId The logical display id.
+ * @return The logical display info, or null if the display does not exist. The
+ * returned object must be treated as immutable.
+ */
+ public abstract DisplayInfo getDisplayInfo(int displayId);
+
+ /**
+ * Registers a display transaction listener to provide the client a chance to
+ * update its surfaces within the same transaction as any display layout updates.
+ *
+ * @param listener The listener to register.
+ */
+ public abstract void registerDisplayTransactionListener(DisplayTransactionListener listener);
+
+ /**
+ * Unregisters a display transaction listener to provide the client a chance to
+ * update its surfaces within the same transaction as any display layout updates.
+ *
+ * @param listener The listener to unregister.
+ */
+ public abstract void unregisterDisplayTransactionListener(DisplayTransactionListener listener);
+
+ /**
+ * Overrides the display information of a particular logical display.
+ * This is used by the window manager to control the size and characteristics
+ * of the default display. It is expected to apply the requested change
+ * to the display information synchronously so that applications will immediately
+ * observe the new state.
+ *
+ * NOTE: This method must be the only entry point by which the window manager
+ * influences the logical configuration of displays.
+ *
+ * @param displayId The logical display id.
+ * @param info The new data to be stored.
+ */
+ public abstract void setDisplayInfoOverrideFromWindowManager(
+ int displayId, DisplayInfo info);
+
+ /**
+ * Called by the window manager to perform traversals while holding a
+ * surface flinger transaction.
+ */
+ public abstract void performTraversalInTransactionFromWindowManager();
+
+ /**
+ * Tells the display manager whether there is interesting unique content on the
+ * specified logical display. This is used to control automatic mirroring.
+ * <p>
+ * If the display has unique content, then the display manager arranges for it
+ * to be presented on a physical display if appropriate. Otherwise, the display manager
+ * may choose to make the physical display mirror some other logical display.
+ * </p>
+ *
+ * @param displayId The logical display id to update.
+ * @param hasContent True if the logical display has content.
+ * @param inTraversal True if called from WindowManagerService during a window traversal
+ * prior to call to performTraversalInTransactionFromWindowManager.
+ */
+ public abstract void setDisplayHasContent(int displayId, boolean hasContent,
+ boolean inTraversal);
+
+ /**
+ * Called within a Surface transaction whenever the size or orientation of a
+ * display may have changed. Provides an opportunity for the client to
+ * update the position of its surfaces as part of the same transaction.
+ */
+ public interface DisplayTransactionListener {
+ void onDisplayTransaction();
+ }
+}
diff --git a/services/java/com/android/server/display/DisplayViewport.java b/core/java/android/hardware/display/DisplayViewport.java
similarity index 96%
rename from services/java/com/android/server/display/DisplayViewport.java
rename to core/java/android/hardware/display/DisplayViewport.java
index 5080556..c2d498b 100644
--- a/services/java/com/android/server/display/DisplayViewport.java
+++ b/core/java/android/hardware/display/DisplayViewport.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.server.display;
+package android.hardware.display;
import android.graphics.Rect;
@@ -25,6 +25,8 @@
* This information is used by the input system to translate touch input from
* physical display coordinates into logical display coordinates.
* </p>
+ *
+ * @hide Only for use within the system server.
*/
public final class DisplayViewport {
// True if this viewport is valid.
diff --git a/core/java/android/hardware/display/IDisplayManager.aidl b/core/java/android/hardware/display/IDisplayManager.aidl
index 6b2c887..68eb13f 100644
--- a/core/java/android/hardware/display/IDisplayManager.aidl
+++ b/core/java/android/hardware/display/IDisplayManager.aidl
@@ -29,11 +29,14 @@
void registerCallback(in IDisplayManagerCallback callback);
- // No permissions required.
- void scanWifiDisplays();
+ // Requires CONFIGURE_WIFI_DISPLAY permission.
+ // The process must have previously registered a callback.
+ void startWifiDisplayScan();
- // Requires CONFIGURE_WIFI_DISPLAY permission to connect to an unknown device.
- // No permissions required to connect to a known device.
+ // Requires CONFIGURE_WIFI_DISPLAY permission.
+ void stopWifiDisplayScan();
+
+ // Requires CONFIGURE_WIFI_DISPLAY permission.
void connectWifiDisplay(String address);
// No permissions required.
@@ -45,6 +48,12 @@
// Requires CONFIGURE_WIFI_DISPLAY permission.
void forgetWifiDisplay(String address);
+ // Requires CONFIGURE_WIFI_DISPLAY permission.
+ void pauseWifiDisplay();
+
+ // Requires CONFIGURE_WIFI_DISPLAY permission.
+ void resumeWifiDisplay();
+
// No permissions required.
WifiDisplayStatus getWifiDisplayStatus();
@@ -55,10 +64,4 @@
// No permissions required but must be same Uid as the creator.
void releaseVirtualDisplay(in IBinder token);
-
- // Requires CONFIGURE_WIFI_DISPLAY permission.
- void pauseWifiDisplay();
-
- // Requires CONFIGURE_WIFI_DISPLAY permission.
- void resumeWifiDisplay();
}
diff --git a/core/java/android/hardware/input/InputManagerInternal.java b/core/java/android/hardware/input/InputManagerInternal.java
new file mode 100644
index 0000000..ecd32ea
--- /dev/null
+++ b/core/java/android/hardware/input/InputManagerInternal.java
@@ -0,0 +1,33 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.hardware.input;
+
+import android.hardware.display.DisplayViewport;
+
+/**
+ * Input manager local system service interface.
+ *
+ * @hide Only for use within the system server.
+ */
+public abstract class InputManagerInternal {
+ /**
+ * Sets information about the displays as needed by the input system.
+ * The input system should copy this information if required.
+ */
+ public abstract void setDisplayViewports(DisplayViewport defaultViewport,
+ DisplayViewport externalTouchViewport);
+}
diff --git a/core/java/android/net/ConnectivityManager.java b/core/java/android/net/ConnectivityManager.java
index c78a973..9ae4fa2 100644
--- a/core/java/android/net/ConnectivityManager.java
+++ b/core/java/android/net/ConnectivityManager.java
@@ -361,11 +361,17 @@
*/
public static final int TYPE_MOBILE_IA = 14;
- /** {@hide} */
- public static final int MAX_RADIO_TYPE = TYPE_MOBILE_IA;
+ /**
+ * The network that uses proxy to achieve connectivity.
+ * {@hide}
+ */
+ public static final int TYPE_PROXY = 16;
/** {@hide} */
- public static final int MAX_NETWORK_TYPE = TYPE_MOBILE_IA;
+ public static final int MAX_RADIO_TYPE = TYPE_PROXY;
+
+ /** {@hide} */
+ public static final int MAX_NETWORK_TYPE = TYPE_PROXY;
/**
* If you want to set the default network preference,you can directly
@@ -444,6 +450,8 @@
return "WIFI_P2P";
case TYPE_MOBILE_IA:
return "MOBILE_IA";
+ case TYPE_PROXY:
+ return "PROXY";
default:
return Integer.toString(type);
}
diff --git a/core/java/android/net/LocalSocketImpl.java b/core/java/android/net/LocalSocketImpl.java
index b2ee50a..119e533 100644
--- a/core/java/android/net/LocalSocketImpl.java
+++ b/core/java/android/net/LocalSocketImpl.java
@@ -326,6 +326,7 @@
}
s.fd = accept(fd, s);
+ s.mFdCreatedInternally = true;
}
/**
@@ -536,4 +537,3 @@
close();
}
}
-
diff --git a/core/java/android/net/ProxyDataTracker.java b/core/java/android/net/ProxyDataTracker.java
new file mode 100644
index 0000000..a7d287b
--- /dev/null
+++ b/core/java/android/net/ProxyDataTracker.java
@@ -0,0 +1,122 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.net;
+
+import android.content.Context;
+import android.os.Handler;
+import android.os.Message;
+import android.util.Log;
+
+import java.net.InetAddress;
+import java.net.UnknownHostException;
+import java.util.concurrent.atomic.AtomicInteger;
+
+/**
+ * A data tracker responsible for bringing up and tearing down the system proxy server.
+ *
+ * {@hide}
+ */
+public class ProxyDataTracker extends BaseNetworkStateTracker {
+ private static final String NETWORK_TYPE = "PROXY";
+ private static final String TAG = "ProxyDataTracker";
+
+ // TODO: investigate how to get these DNS addresses from the system.
+ private static final String DNS1 = "8.8.8.8";
+ private static final String DNS2 = "8.8.4.4";
+ private static final String REASON_ENABLED = "enabled";
+
+ private final AtomicInteger mDefaultGatewayAddr = new AtomicInteger(0);
+ private final AtomicInteger mReconnectGeneration = new AtomicInteger(0);
+
+ /**
+ * Create a new ProxyDataTracker
+ */
+ public ProxyDataTracker() {
+ mNetworkInfo = new NetworkInfo(ConnectivityManager.TYPE_PROXY, 0, NETWORK_TYPE, "");
+ // TODO: update available state according to proxy state.
+ mNetworkInfo.setIsAvailable(true);
+ mLinkProperties = new LinkProperties();
+ mLinkCapabilities = new LinkCapabilities();
+
+ try {
+ mLinkProperties.addDns(InetAddress.getByName(DNS1));
+ mLinkProperties.addDns(InetAddress.getByName(DNS2));
+ } catch (UnknownHostException e) {
+ Log.e(TAG, "Could not add DNS address", e);
+ }
+ }
+
+ public Object Clone() throws CloneNotSupportedException {
+ throw new CloneNotSupportedException();
+ }
+
+ /**
+ * Disable connectivity to the network.
+ */
+ public boolean teardown() {
+ // TODO: tell relevant service to tear down proxy.
+ return true;
+ }
+
+ /**
+ * Re-enable proxy data connectivity after a {@link #teardown()}.
+ */
+ public boolean reconnect() {
+ if (!isAvailable()) {
+ Log.w(TAG, "Reconnect requested even though network is disabled. Bailing.");
+ return false;
+ }
+ setTeardownRequested(false);
+ mReconnectGeneration.incrementAndGet();
+ // TODO: tell relevant service to setup proxy. Set state to connected only if setup
+ // succeeds.
+ setDetailedState(NetworkInfo.DetailedState.CONNECTED, REASON_ENABLED, null);
+
+ return true;
+ }
+
+ /**
+ * Fetch default gateway address for the network
+ */
+ public int getDefaultGatewayAddr() {
+ return mDefaultGatewayAddr.get();
+ }
+
+ /**
+ * Return the system properties name associated with the tcp buffer sizes
+ * for this network.
+ */
+ public String getTcpBufferSizesPropName() {
+ return "net.tcp.buffersize.wifi";
+ }
+
+ /**
+ * Record the detailed state of a network, and if it is a
+ * change from the previous state, send a notification to
+ * any listeners.
+ * @param state the new @{code DetailedState}
+ * @param reason a {@code String} indicating a reason for the state change,
+ * if one was supplied. May be {@code null}.
+ * @param extraInfo optional {@code String} providing extra information about the state change
+ */
+ private void setDetailedState(NetworkInfo.DetailedState state, String reason,
+ String extraInfo) {
+ mNetworkInfo.setDetailedState(state, reason, extraInfo);
+ Message msg = getTargetHandler().obtainMessage(EVENT_STATE_CHANGED, mNetworkInfo);
+ msg.sendToTarget();
+ }
+}
diff --git a/core/java/android/os/AsyncTask.java b/core/java/android/os/AsyncTask.java
index d4a3006..26e09b6 100644
--- a/core/java/android/os/AsyncTask.java
+++ b/core/java/android/os/AsyncTask.java
@@ -610,7 +610,7 @@
* still running. Each call to this method will trigger the execution of
* {@link #onProgressUpdate} on the UI thread.
*
- * {@link #onProgressUpdate} will note be called if the task has been
+ * {@link #onProgressUpdate} will not be called if the task has been
* canceled.
*
* @param values The progress values to update the UI with.
diff --git a/core/java/android/os/Build.java b/core/java/android/os/Build.java
index bc51a60..22e1476 100644
--- a/core/java/android/os/Build.java
+++ b/core/java/android/os/Build.java
@@ -49,7 +49,7 @@
/** The manufacturer of the product/hardware. */
public static final String MANUFACTURER = getString("ro.product.manufacturer");
- /** The brand (e.g., carrier) the software is customized for, if any. */
+ /** The consumer-visible brand with which the product/hardware will be associated, if any. */
public static final String BRAND = getString("ro.product.brand");
/** The end-user-visible name for the end product. */
diff --git a/core/java/android/os/FactoryTest.java b/core/java/android/os/FactoryTest.java
index ec99697..7a252f9 100644
--- a/core/java/android/os/FactoryTest.java
+++ b/core/java/android/os/FactoryTest.java
@@ -25,6 +25,20 @@
* {@hide}
*/
public final class FactoryTest {
+ public static final int FACTORY_TEST_OFF = 0;
+ public static final int FACTORY_TEST_LOW_LEVEL = 1;
+ public static final int FACTORY_TEST_HIGH_LEVEL = 2;
+
+ /**
+ * Gets the current factory test mode.
+ *
+ * @return One of: {@link #FACTORY_TEST_OFF}, {@link #FACTORY_TEST_LOW_LEVEL},
+ * or {@link #FACTORY_TEST_HIGH_LEVEL}.
+ */
+ public static int getMode() {
+ return SystemProperties.getInt("ro.factorytest", FACTORY_TEST_OFF);
+ }
+
/**
* When true, long-press on power should immediately cause the device to
* shut down, without prompting the user.
diff --git a/core/java/android/os/PowerManagerInternal.java b/core/java/android/os/PowerManagerInternal.java
new file mode 100644
index 0000000..cb3d528
--- /dev/null
+++ b/core/java/android/os/PowerManagerInternal.java
@@ -0,0 +1,60 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.os;
+
+import android.view.WindowManagerPolicy;
+
+/**
+ * Power manager local system service interface.
+ *
+ * @hide Only for use within the system server.
+ */
+public abstract class PowerManagerInternal {
+ /**
+ * Used by the window manager to override the screen brightness based on the
+ * current foreground activity.
+ *
+ * This method must only be called by the window manager.
+ *
+ * @param brightness The overridden brightness, or -1 to disable the override.
+ */
+ public abstract void setScreenBrightnessOverrideFromWindowManager(int brightness);
+
+ /**
+ * Used by the window manager to override the button brightness based on the
+ * current foreground activity.
+ *
+ * This method must only be called by the window manager.
+ *
+ * @param brightness The overridden brightness, or -1 to disable the override.
+ */
+ public abstract void setButtonBrightnessOverrideFromWindowManager(int brightness);
+
+ /**
+ * Used by the window manager to override the user activity timeout based on the
+ * current foreground activity. It can only be used to make the timeout shorter
+ * than usual, not longer.
+ *
+ * This method must only be called by the window manager.
+ *
+ * @param timeoutMillis The overridden timeout, or -1 to disable the override.
+ */
+ public abstract void setUserActivityTimeoutOverrideFromWindowManager(long timeoutMillis);
+
+ // TODO: Remove this and retrieve as a local service instead.
+ public abstract void setPolicy(WindowManagerPolicy policy);
+}
diff --git a/core/java/android/os/Process.java b/core/java/android/os/Process.java
index 631edd6..057f516 100644
--- a/core/java/android/os/Process.java
+++ b/core/java/android/os/Process.java
@@ -892,19 +892,6 @@
}
/**
- * Set the out-of-memory badness adjustment for a process.
- *
- * @param pid The process identifier to set.
- * @param amt Adjustment value -- linux allows -16 to +15.
- *
- * @return Returns true if the underlying system supports this
- * feature, else false.
- *
- * {@hide}
- */
- public static final native boolean setOomAdj(int pid, int amt);
-
- /**
* Adjust the swappiness level for a process.
*
* @param pid The process identifier to set.
diff --git a/core/java/android/preference/PreferenceActivity.java b/core/java/android/preference/PreferenceActivity.java
index 7ddfa87..2ab5a91 100644
--- a/core/java/android/preference/PreferenceActivity.java
+++ b/core/java/android/preference/PreferenceActivity.java
@@ -33,6 +33,7 @@
import android.os.Parcelable;
import android.text.TextUtils;
import android.util.AttributeSet;
+import android.util.Log;
import android.util.TypedValue;
import android.util.Xml;
import android.view.LayoutInflater;
@@ -124,6 +125,8 @@
PreferenceManager.OnPreferenceTreeClickListener,
PreferenceFragment.OnPreferenceStartFragmentCallback {
+ private static final String TAG = "PreferenceActivity";
+
// Constants for state save/restore
private static final String HEADERS_TAG = ":android:headers";
private static final String CUR_HEADER_TAG = ":android:cur_header";
@@ -521,9 +524,7 @@
int initialTitle = getIntent().getIntExtra(EXTRA_SHOW_FRAGMENT_TITLE, 0);
int initialShortTitle = getIntent().getIntExtra(EXTRA_SHOW_FRAGMENT_SHORT_TITLE, 0);
- // Restore from headers only if they are supported which
- // is in multi-pane mode.
- if (savedInstanceState != null && !mSinglePane) {
+ if (savedInstanceState != null) {
// We are restarting from a previous saved state; used that to
// initialize, instead of starting fresh.
ArrayList<Header> headers = savedInstanceState.getParcelableArrayList(HEADERS_TAG);
diff --git a/core/java/android/provider/DocumentsContract.java b/core/java/android/provider/DocumentsContract.java
index 86d3cf8..f0520b5 100644
--- a/core/java/android/provider/DocumentsContract.java
+++ b/core/java/android/provider/DocumentsContract.java
@@ -257,8 +257,6 @@
* {@link #MIME_TYPE_DIR}.
*
* @see #COLUMN_FLAGS
- * @see DocumentsContract#createDocument(ContentResolver, Uri, String,
- * String)
* @see DocumentsProvider#createDocument(String, String, String)
*/
public static final int FLAG_DIR_SUPPORTS_CREATE = 1 << 3;
diff --git a/core/java/android/text/format/Time.java b/core/java/android/text/format/Time.java
index 5ef86b1..f34e746 100644
--- a/core/java/android/text/format/Time.java
+++ b/core/java/android/text/format/Time.java
@@ -512,7 +512,7 @@
* <pre>
* Time time = new Time();
* time.set(4, 10, 2007); // set the date to Nov 4, 2007, 12am
- * time.normalize(); // this sets isDst = 1
+ * time.normalize(false); // this sets isDst = 1
* time.monthDay += 1; // changes the date to Nov 5, 2007, 12am
* millis = time.toMillis(false); // millis is Nov 4, 2007, 11pm
* millis = time.toMillis(true); // millis is Nov 5, 2007, 12am
diff --git a/core/java/android/util/LongSparseArray.java b/core/java/android/util/LongSparseArray.java
index d6e116f..dab853a 100644
--- a/core/java/android/util/LongSparseArray.java
+++ b/core/java/android/util/LongSparseArray.java
@@ -44,7 +44,7 @@
* {@link #keyAt(int)} and {@link #valueAt(int)}. Iterating over the keys using
* <code>keyAt(int)</code> with ascending values of the index will return the
* keys in ascending order, or the values corresponding to the keys in ascending
- * order in the case of <code>valueAt(int)<code>.</p>
+ * order in the case of <code>valueAt(int)</code>.</p>
*/
public class LongSparseArray<E> implements Cloneable {
private static final Object DELETED = new Object();
diff --git a/core/java/android/util/LongSparseLongArray.java b/core/java/android/util/LongSparseLongArray.java
index 87d868b..6654899 100644
--- a/core/java/android/util/LongSparseLongArray.java
+++ b/core/java/android/util/LongSparseLongArray.java
@@ -39,7 +39,7 @@
* {@link #keyAt(int)} and {@link #valueAt(int)}. Iterating over the keys using
* <code>keyAt(int)</code> with ascending values of the index will return the
* keys in ascending order, or the values corresponding to the keys in ascending
- * order in the case of <code>valueAt(int)<code>.</p>
+ * order in the case of <code>valueAt(int)</code>.</p>
*
* @hide
*/
diff --git a/core/java/android/util/SparseArray.java b/core/java/android/util/SparseArray.java
index 6e168a8..46d9d45 100644
--- a/core/java/android/util/SparseArray.java
+++ b/core/java/android/util/SparseArray.java
@@ -44,7 +44,7 @@
* {@link #keyAt(int)} and {@link #valueAt(int)}. Iterating over the keys using
* <code>keyAt(int)</code> with ascending values of the index will return the
* keys in ascending order, or the values corresponding to the keys in ascending
- * order in the case of <code>valueAt(int)<code>.</p>
+ * order in the case of <code>valueAt(int)</code>.</p>
*/
public class SparseArray<E> implements Cloneable {
private static final Object DELETED = new Object();
diff --git a/core/java/android/util/SparseBooleanArray.java b/core/java/android/util/SparseBooleanArray.java
index 68487e3..905dcb0 100644
--- a/core/java/android/util/SparseBooleanArray.java
+++ b/core/java/android/util/SparseBooleanArray.java
@@ -38,7 +38,7 @@
* {@link #keyAt(int)} and {@link #valueAt(int)}. Iterating over the keys using
* <code>keyAt(int)</code> with ascending values of the index will return the
* keys in ascending order, or the values corresponding to the keys in ascending
- * order in the case of <code>valueAt(int)<code>.</p>
+ * order in the case of <code>valueAt(int)</code>.</p>
*/
public class SparseBooleanArray implements Cloneable {
/**
diff --git a/core/java/android/util/SparseIntArray.java b/core/java/android/util/SparseIntArray.java
index 0835cb0..4f5ca07 100644
--- a/core/java/android/util/SparseIntArray.java
+++ b/core/java/android/util/SparseIntArray.java
@@ -37,7 +37,7 @@
* {@link #keyAt(int)} and {@link #valueAt(int)}. Iterating over the keys using
* <code>keyAt(int)</code> with ascending values of the index will return the
* keys in ascending order, or the values corresponding to the keys in ascending
- * order in the case of <code>valueAt(int)<code>.</p>
+ * order in the case of <code>valueAt(int)</code>.</p>
*/
public class SparseIntArray implements Cloneable {
private int[] mKeys;
diff --git a/core/java/android/util/SparseLongArray.java b/core/java/android/util/SparseLongArray.java
index 62c1c0d..39fc8a3 100644
--- a/core/java/android/util/SparseLongArray.java
+++ b/core/java/android/util/SparseLongArray.java
@@ -37,7 +37,7 @@
* {@link #keyAt(int)} and {@link #valueAt(int)}. Iterating over the keys using
* <code>keyAt(int)</code> with ascending values of the index will return the
* keys in ascending order, or the values corresponding to the keys in ascending
- * order in the case of <code>valueAt(int)<code>.</p>
+ * order in the case of <code>valueAt(int)</code>.</p>
*/
public class SparseLongArray implements Cloneable {
private int[] mKeys;
diff --git a/core/java/android/util/TypedValue.java b/core/java/android/util/TypedValue.java
index ed45298..931fb81 100644
--- a/core/java/android/util/TypedValue.java
+++ b/core/java/android/util/TypedValue.java
@@ -290,18 +290,14 @@
return -1;
}
+ /**
+ * @hide Was accidentally exposed in API level 1 for debugging purposes.
+ * Kept for compatibility just in case although the debugging code has been removed.
+ */
+ @Deprecated
public static float complexToDimensionNoisy(int data, DisplayMetrics metrics)
{
- float res = complexToDimension(data, metrics);
- System.out.println(
- "Dimension (0x" + ((data>>TypedValue.COMPLEX_MANTISSA_SHIFT)
- & TypedValue.COMPLEX_MANTISSA_MASK)
- + "*" + (RADIX_MULTS[(data>>TypedValue.COMPLEX_RADIX_SHIFT)
- & TypedValue.COMPLEX_RADIX_MASK] / MANTISSA_MULT)
- + ")" + DIMENSION_UNIT_STRS[(data>>COMPLEX_UNIT_SHIFT)
- & COMPLEX_UNIT_MASK]
- + " = " + res);
- return res;
+ return complexToDimension(data, metrics);
}
/**
diff --git a/core/java/android/view/SurfaceControl.java b/core/java/android/view/SurfaceControl.java
index 62afa60..a52152e 100644
--- a/core/java/android/view/SurfaceControl.java
+++ b/core/java/android/view/SurfaceControl.java
@@ -79,9 +79,6 @@
private final String mName;
long mNativeObject; // package visibility only for Surface.java access
- private static final boolean HEADLESS = "1".equals(
- SystemProperties.get("ro.config.headless", "0"));
-
/* flags used in constructor (keep in sync with ISurfaceComposerClient.h) */
/**
@@ -232,8 +229,6 @@
new Throwable());
}
- checkHeadless();
-
mName = name;
mNativeObject = nativeCreate(session, name, w, h, format, flags);
if (mNativeObject == 0) {
@@ -619,10 +614,4 @@
}
nativeScreenshot(display, consumer, width, height, minLayer, maxLayer, allLayers);
}
-
- private static void checkHeadless() {
- if (HEADLESS) {
- throw new UnsupportedOperationException("Device is headless");
- }
- }
}
diff --git a/core/java/android/view/WindowManagerInternal.java b/core/java/android/view/WindowManagerInternal.java
new file mode 100644
index 0000000..a1bd4bd
--- /dev/null
+++ b/core/java/android/view/WindowManagerInternal.java
@@ -0,0 +1,33 @@
+/*
+ * Copyright (C) 2014 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package android.view;
+
+import android.hardware.display.DisplayManagerInternal;
+
+/**
+ * Window manager local system service interface.
+ *
+ * @hide Only for use within the system server.
+ */
+public abstract class WindowManagerInternal {
+ /**
+ * Request that the window manager call
+ * {@link DisplayManagerInternal#performTraversalInTransactionFromWindowManager}
+ * within a surface transaction at a later time.
+ */
+ public abstract void requestTraversalFromDisplayManager();
+}
\ No newline at end of file
diff --git a/core/java/android/view/accessibility/AccessibilityManager.java b/core/java/android/view/accessibility/AccessibilityManager.java
index 00f4adb..879e58f 100644
--- a/core/java/android/view/accessibility/AccessibilityManager.java
+++ b/core/java/android/view/accessibility/AccessibilityManager.java
@@ -177,7 +177,8 @@
userId = UserHandle.myUserId();
}
IBinder iBinder = ServiceManager.getService(Context.ACCESSIBILITY_SERVICE);
- IAccessibilityManager service = IAccessibilityManager.Stub.asInterface(iBinder);
+ IAccessibilityManager service = iBinder == null
+ ? null : IAccessibilityManager.Stub.asInterface(iBinder);
sInstance = new AccessibilityManager(context, service, userId);
}
}
@@ -197,10 +198,14 @@
mHandler = new MyHandler(context.getMainLooper());
mService = service;
mUserId = userId;
-
+ if (mService == null) {
+ mIsEnabled = false;
+ }
try {
- final int stateFlags = mService.addClient(mClient, userId);
- setState(stateFlags);
+ if (mService != null) {
+ final int stateFlags = mService.addClient(mClient, userId);
+ setState(stateFlags);
+ }
} catch (RemoteException re) {
Log.e(LOG_TAG, "AccessibilityManagerService is dead", re);
}
@@ -322,14 +327,16 @@
public List<AccessibilityServiceInfo> getInstalledAccessibilityServiceList() {
List<AccessibilityServiceInfo> services = null;
try {
- services = mService.getInstalledAccessibilityServiceList(mUserId);
- if (DEBUG) {
- Log.i(LOG_TAG, "Installed AccessibilityServices " + services);
+ if (mService != null) {
+ services = mService.getInstalledAccessibilityServiceList(mUserId);
+ if (DEBUG) {
+ Log.i(LOG_TAG, "Installed AccessibilityServices " + services);
+ }
}
} catch (RemoteException re) {
Log.e(LOG_TAG, "Error while obtaining the installed AccessibilityServices. ", re);
}
- return Collections.unmodifiableList(services);
+ return services != null ? Collections.unmodifiableList(services) : Collections.EMPTY_LIST;
}
/**
@@ -349,14 +356,16 @@
int feedbackTypeFlags) {
List<AccessibilityServiceInfo> services = null;
try {
- services = mService.getEnabledAccessibilityServiceList(feedbackTypeFlags, mUserId);
- if (DEBUG) {
- Log.i(LOG_TAG, "Installed AccessibilityServices " + services);
+ if (mService != null) {
+ services = mService.getEnabledAccessibilityServiceList(feedbackTypeFlags, mUserId);
+ if (DEBUG) {
+ Log.i(LOG_TAG, "Installed AccessibilityServices " + services);
+ }
}
} catch (RemoteException re) {
Log.e(LOG_TAG, "Error while obtaining the installed AccessibilityServices. ", re);
}
- return Collections.unmodifiableList(services);
+ return services != null ? Collections.unmodifiableList(services) : Collections.EMPTY_LIST;
}
/**
@@ -466,6 +475,9 @@
*/
public int addAccessibilityInteractionConnection(IWindow windowToken,
IAccessibilityInteractionConnection connection) {
+ if (mService == null) {
+ return View.NO_ID;
+ }
try {
return mService.addAccessibilityInteractionConnection(windowToken, connection, mUserId);
} catch (RemoteException re) {
@@ -482,7 +494,9 @@
*/
public void removeAccessibilityInteractionConnection(IWindow windowToken) {
try {
- mService.removeAccessibilityInteractionConnection(windowToken);
+ if (mService != null) {
+ mService.removeAccessibilityInteractionConnection(windowToken);
+ }
} catch (RemoteException re) {
Log.e(LOG_TAG, "Error while removing an accessibility interaction connection. ", re);
}
diff --git a/core/java/android/widget/AbsListView.java b/core/java/android/widget/AbsListView.java
index 092f474..1899a1d 100644
--- a/core/java/android/widget/AbsListView.java
+++ b/core/java/android/widget/AbsListView.java
@@ -723,7 +723,7 @@
*
* @param view The view whose scroll state is being reported
*
- * @param scrollState The current scroll state. One of {@link #SCROLL_STATE_IDLE},
+ * @param scrollState The current scroll state. One of
* {@link #SCROLL_STATE_TOUCH_SCROLL} or {@link #SCROLL_STATE_IDLE}.
*/
public void onScrollStateChanged(AbsListView view, int scrollState);
diff --git a/core/java/android/widget/ImageView.java b/core/java/android/widget/ImageView.java
index 7daf798..f05179b 100644
--- a/core/java/android/widget/ImageView.java
+++ b/core/java/android/widget/ImageView.java
@@ -563,7 +563,7 @@
}
/** Return the view's optional matrix. This is applied to the
- view's drawable when it is drawn. If there is not matrix,
+ view's drawable when it is drawn. If there is no matrix,
this method will return an identity matrix.
Do not change this matrix in place but make a copy.
If you want a different matrix applied to the drawable,
diff --git a/core/java/android/widget/PopupWindow.java b/core/java/android/widget/PopupWindow.java
index 5663959..be20d2d 100644
--- a/core/java/android/widget/PopupWindow.java
+++ b/core/java/android/widget/PopupWindow.java
@@ -1330,7 +1330,7 @@
/**
* Updates the state of the popup window, if it is currently being displayed,
- * from the currently set state. This include:
+ * from the currently set state. This includes:
* {@link #setClippingEnabled(boolean)}, {@link #setFocusable(boolean)},
* {@link #setIgnoreCheekPress()}, {@link #setInputMethodMode(int)},
* {@link #setTouchable(boolean)}, and {@link #setAnimationStyle(int)}.
diff --git a/core/java/android/widget/ShareActionProvider.java b/core/java/android/widget/ShareActionProvider.java
index 62afd2e..bdaaa01 100644
--- a/core/java/android/widget/ShareActionProvider.java
+++ b/core/java/android/widget/ShareActionProvider.java
@@ -266,7 +266,7 @@
* Intent shareIntent = new Intent(Intent.ACTION_SEND);
* shareIntent.setType("image/*");
* Uri uri = Uri.fromFile(new File(getFilesDir(), "foo.jpg"));
- * shareIntent.putExtra(Intent.EXTRA_STREAM, uri.toString());</pre>
+ * shareIntent.putExtra(Intent.EXTRA_STREAM, uri));</pre>
*
* @param shareIntent The share intent.
*
diff --git a/core/java/com/android/internal/os/BatteryStatsImpl.java b/core/java/com/android/internal/os/BatteryStatsImpl.java
index 2e5fcec..8728610 100644
--- a/core/java/com/android/internal/os/BatteryStatsImpl.java
+++ b/core/java/com/android/internal/os/BatteryStatsImpl.java
@@ -26,6 +26,7 @@
import android.os.BatteryStats;
import android.os.FileUtils;
import android.os.Handler;
+import android.os.Looper;
import android.os.Message;
import android.os.Parcel;
import android.os.ParcelFormatException;
@@ -113,6 +114,10 @@
}
final class MyHandler extends Handler {
+ public MyHandler(Looper looper) {
+ super(looper, null, true);
+ }
+
@Override
public void handleMessage(Message msg) {
BatteryCallback cb = mCallback;
@@ -4487,9 +4492,9 @@
}
}
- public BatteryStatsImpl(String filename) {
+ public BatteryStatsImpl(String filename, Handler handler) {
mFile = new JournaledFile(new File(filename), new File(filename + ".tmp"));
- mHandler = new MyHandler();
+ mHandler = new MyHandler(handler.getLooper());
mStartCount++;
mScreenOnTimer = new StopwatchTimer(null, -1, null, mUnpluggables);
for (int i=0; i<NUM_SCREEN_BRIGHTNESS_BINS; i++) {
diff --git a/core/java/com/android/internal/os/BinderInternal.java b/core/java/com/android/internal/os/BinderInternal.java
index f54a3e9..3b0f0f4 100644
--- a/core/java/com/android/internal/os/BinderInternal.java
+++ b/core/java/com/android/internal/os/BinderInternal.java
@@ -16,18 +16,11 @@
package com.android.internal.os;
-import android.os.Binder;
import android.os.IBinder;
import android.os.SystemClock;
import android.util.EventLog;
-import android.util.Log;
-import java.io.FileDescriptor;
-import java.io.FileOutputStream;
-import java.io.IOException;
-import java.io.PrintWriter;
import java.lang.ref.WeakReference;
-import java.lang.reflect.Modifier;
/**
* Private and debugging Binder APIs.
diff --git a/core/java/com/android/internal/os/ZygoteInit.java b/core/java/com/android/internal/os/ZygoteInit.java
index 25118e8..55d5513 100644
--- a/core/java/com/android/internal/os/ZygoteInit.java
+++ b/core/java/com/android/internal/os/ZygoteInit.java
@@ -192,10 +192,16 @@
static void closeServerSocket() {
try {
if (sServerSocket != null) {
+ FileDescriptor fd = sServerSocket.getFileDescriptor();
sServerSocket.close();
+ if (fd != null) {
+ Libcore.os.close(fd);
+ }
}
} catch (IOException ex) {
Log.e(TAG, "Zygote: error closing sockets", ex);
+ } catch (libcore.io.ErrnoException ex) {
+ Log.e(TAG, "Zygote: error closing descriptor", ex);
}
sServerSocket = null;
diff --git a/core/java/com/android/internal/view/menu/ActionMenuPresenter.java b/core/java/com/android/internal/view/menu/ActionMenuPresenter.java
index 4654178..fe1cf72 100644
--- a/core/java/com/android/internal/view/menu/ActionMenuPresenter.java
+++ b/core/java/com/android/internal/view/menu/ActionMenuPresenter.java
@@ -164,8 +164,24 @@
}
actionView.setVisibility(item.isActionViewExpanded() ? View.GONE : View.VISIBLE);
+ final ActionMenuView menuParent = (ActionMenuView) parent;
+ final ViewGroup.LayoutParams lp = actionView.getLayoutParams();
+ if (!menuParent.checkLayoutParams(lp)) {
+ actionView.setLayoutParams(menuParent.generateLayoutParams(lp));
+ }
+ return actionView;
+ }
+
+ @Override
+ public void bindItemView(final MenuItemImpl item, MenuView.ItemView itemView) {
+ itemView.initialize(item, 0);
+
+ final ActionMenuView menuView = (ActionMenuView) mMenuView;
+ final ActionMenuItemView actionItemView = (ActionMenuItemView) itemView;
+ actionItemView.setItemInvoker(menuView);
+
if (item.hasSubMenu()) {
- actionView.setOnTouchListener(new ForwardingListener(actionView) {
+ actionItemView.setOnTouchListener(new ForwardingListener(actionItemView) {
@Override
public ListPopupWindow getPopup() {
return mActionButtonPopup != null ? mActionButtonPopup.getPopup() : null;
@@ -182,24 +198,8 @@
}
});
} else {
- actionView.setOnTouchListener(null);
+ actionItemView.setOnTouchListener(null);
}
-
- final ActionMenuView menuParent = (ActionMenuView) parent;
- final ViewGroup.LayoutParams lp = actionView.getLayoutParams();
- if (!menuParent.checkLayoutParams(lp)) {
- actionView.setLayoutParams(menuParent.generateLayoutParams(lp));
- }
- return actionView;
- }
-
- @Override
- public void bindItemView(MenuItemImpl item, MenuView.ItemView itemView) {
- itemView.initialize(item, 0);
-
- final ActionMenuView menuView = (ActionMenuView) mMenuView;
- ActionMenuItemView actionItemView = (ActionMenuItemView) itemView;
- actionItemView.setItemInvoker(menuView);
}
@Override
diff --git a/core/java/com/android/server/LocalServices.java b/core/java/com/android/server/LocalServices.java
new file mode 100644
index 0000000..25dcb30
--- /dev/null
+++ b/core/java/com/android/server/LocalServices.java
@@ -0,0 +1,60 @@
+/*
+ * Copyright (C) 2013 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.server;
+
+import android.util.ArrayMap;
+
+/**
+ * This class is used in a similar way as ServiceManager, except the services registered here
+ * are not Binder objects and are only available in the same process.
+ *
+ * Once all services are converted to the SystemService interface, this class can be absorbed
+ * into SystemServiceManager.
+ *
+ * {@hide}
+ */
+public final class LocalServices {
+ private LocalServices() {}
+
+ private static final ArrayMap<Class<?>, Object> sLocalServiceObjects =
+ new ArrayMap<Class<?>, Object>();
+
+ /**
+ * Returns a local service instance that implements the specified interface.
+ *
+ * @param type The type of service.
+ * @return The service object.
+ */
+ @SuppressWarnings("unchecked")
+ public static <T> T getService(Class<T> type) {
+ synchronized (sLocalServiceObjects) {
+ return (T) sLocalServiceObjects.get(type);
+ }
+ }
+
+ /**
+ * Adds a service instance of the specified interface to the global registry of local services.
+ */
+ public static <T> void addService(Class<T> type, T service) {
+ synchronized (sLocalServiceObjects) {
+ if (sLocalServiceObjects.containsKey(type)) {
+ throw new IllegalStateException("Overriding service registration");
+ }
+ sLocalServiceObjects.put(type, service);
+ }
+ }
+}
diff --git a/core/java/com/android/server/SystemService.java b/core/java/com/android/server/SystemService.java
new file mode 100644
index 0000000..d69293a
--- /dev/null
+++ b/core/java/com/android/server/SystemService.java
@@ -0,0 +1,186 @@
+/*
+ * Copyright (C) 2013 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.server;
+
+import android.content.Context;
+import android.os.IBinder;
+import android.os.ServiceManager;
+
+/**
+ * The base class for services running in the system process. Override and implement
+ * the lifecycle event callback methods as needed.
+ *
+ * The lifecycle of a SystemService:
+ *
+ * {@link #onCreate(android.content.Context)} is called to initialize the
+ * service.
+ *
+ * {@link #onStart()} is called to get the service running. It is common
+ * for services to publish their Binder interface at this point. All required
+ * dependencies are also assumed to be ready to use.
+ *
+ * Then {@link #onBootPhase(int)} is called as many times as there are boot phases
+ * until {@link #PHASE_BOOT_COMPLETE} is sent, which is the last boot phase. Each phase
+ * is an opportunity to do special work, like acquiring optional service dependencies,
+ * waiting to see if SafeMode is enabled, or registering with a service that gets
+ * started after this one.
+ *
+ * NOTE: All lifecycle methods are called from the same thread that created the
+ * SystemService.
+ *
+ * {@hide}
+ */
+public abstract class SystemService {
+ /*
+ * Boot Phases
+ */
+ public static final int PHASE_WAIT_FOR_DEFAULT_DISPLAY = 100; // maybe should be a dependency?
+ public static final int PHASE_LOCK_SETTINGS_READY = 480;
+ public static final int PHASE_SYSTEM_SERVICES_READY = 500;
+ public static final int PHASE_THIRD_PARTY_APPS_CAN_START = 600;
+ public static final int PHASE_BOOT_COMPLETE = 1000;
+
+ private SystemServiceManager mManager;
+ private Context mContext;
+
+ final void init(Context context, SystemServiceManager manager) {
+ mContext = context;
+ mManager = manager;
+ onCreate(context);
+ }
+
+ public final boolean isSafeMode() {
+ return mManager.isSafeMode();
+ }
+
+ /**
+ * Services are not yet available. This is a good place to do setup work that does
+ * not require other services.
+ *
+ * @param context The system context.
+ */
+ public void onCreate(Context context) {}
+
+ /**
+ * Called when the dependencies listed in the @Service class-annotation are available
+ * and after the chosen start phase.
+ * When this method returns, the service should be published.
+ */
+ public abstract void onStart();
+
+ /**
+ * Called on each phase of the boot process. Phases before the service's start phase
+ * (as defined in the @Service annotation) are never received.
+ *
+ * @param phase The current boot phase.
+ */
+ public void onBootPhase(int phase) {}
+
+ /**
+ * Publish the service so it is accessible to other services and apps.
+ */
+ protected final void publishBinderService(String name, IBinder service) {
+ publishBinderService(name, service, false);
+ }
+
+ /**
+ * Publish the service so it is accessible to other services and apps.
+ */
+ protected final void publishBinderService(String name, IBinder service,
+ boolean allowIsolated) {
+ ServiceManager.addService(name, service, allowIsolated);
+ }
+
+ /**
+ * Get a binder service by its name.
+ */
+ protected final IBinder getBinderService(String name) {
+ return ServiceManager.getService(name);
+ }
+
+ /**
+ * Publish the service so it is only accessible to the system process.
+ */
+ protected final <T> void publishLocalService(Class<T> type, T service) {
+ LocalServices.addService(type, service);
+ }
+
+ /**
+ * Get a local service by interface.
+ */
+ protected final <T> T getLocalService(Class<T> type) {
+ return LocalServices.getService(type);
+ }
+
+ public final Context getContext() {
+ return mContext;
+ }
+
+// /**
+// * Called when a new user has been created. If your service deals with multiple users, this
+// * method should be overridden.
+// *
+// * @param userHandle The user that was created.
+// */
+// public void onUserCreated(int userHandle) {
+// }
+//
+// /**
+// * Called when an existing user has started a new session. If your service deals with multiple
+// * users, this method should be overridden.
+// *
+// * @param userHandle The user who started a new session.
+// */
+// public void onUserStarted(int userHandle) {
+// }
+//
+// /**
+// * Called when a background user session has entered the foreground. If your service deals with
+// * multiple users, this method should be overridden.
+// *
+// * @param userHandle The user who's session entered the foreground.
+// */
+// public void onUserForeground(int userHandle) {
+// }
+//
+// /**
+// * Called when a foreground user session has entered the background. If your service deals with
+// * multiple users, this method should be overridden;
+// *
+// * @param userHandle The user who's session entered the background.
+// */
+// public void onUserBackground(int userHandle) {
+// }
+//
+// /**
+// * Called when a user's active session has stopped. If your service deals with multiple users,
+// * this method should be overridden.
+// *
+// * @param userHandle The user who's session has stopped.
+// */
+// public void onUserStopped(int userHandle) {
+// }
+//
+// /**
+// * Called when a user has been removed from the system. If your service deals with multiple
+// * users, this method should be overridden.
+// *
+// * @param userHandle The user who has been removed.
+// */
+// public void onUserRemoved(int userHandle) {
+// }
+}
diff --git a/core/java/com/android/server/SystemServiceManager.java b/core/java/com/android/server/SystemServiceManager.java
new file mode 100644
index 0000000..06ad7f4
--- /dev/null
+++ b/core/java/com/android/server/SystemServiceManager.java
@@ -0,0 +1,177 @@
+/*
+ * Copyright (C) 2013 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.server;
+
+import android.content.Context;
+import android.util.Log;
+import android.util.Slog;
+
+import java.util.ArrayList;
+
+/**
+ * Manages creating, starting, and other lifecycle events of
+ * {@link com.android.server.SystemService}s.
+ *
+ * {@hide}
+ */
+public class SystemServiceManager {
+ private static final String TAG = "SystemServiceManager";
+
+ private final Context mContext;
+ private boolean mSafeMode;
+
+ // Services that should receive lifecycle events.
+ private final ArrayList<SystemService> mServices = new ArrayList<SystemService>();
+
+ private int mCurrentPhase = -1;
+
+ public SystemServiceManager(Context context) {
+ mContext = context;
+ }
+
+ /**
+ * Starts a service by name if the class exists, otherwise ignores it.
+ *
+ * @return The service instance, or null if not found.
+ */
+ @SuppressWarnings("unchecked")
+ public SystemService startServiceIfExists(String className) {
+ try {
+ return startService((Class<SystemService>)Class.forName(className));
+ } catch (ClassNotFoundException cnfe) {
+ Slog.i(TAG, className + " not available, ignoring.");
+ return null;
+ }
+ }
+
+ /**
+ * Creates and starts a system service. The class must be a subclass of
+ * {@link com.android.server.SystemService}.
+ *
+ * @param serviceClass A Java class that implements the SystemService interface.
+ * @return The service instance, never null.
+ * @throws RuntimeException if the service fails to start.
+ */
+ @SuppressWarnings("unchecked")
+ public <T extends SystemService> T startService(Class<T> serviceClass) {
+ final T serviceInstance = (T)createInstance(serviceClass);
+ try {
+ Slog.i(TAG, "Creating " + serviceClass.getSimpleName());
+ serviceInstance.init(mContext, this);
+ } catch (Throwable e) {
+ throw new RuntimeException("Failed to create service " + serviceClass.getName(), e);
+ }
+
+ mServices.add(serviceInstance);
+
+ try {
+ Slog.i(TAG, "Starting " + serviceClass.getSimpleName());
+ serviceInstance.onStart();
+ } catch (Throwable e) {
+ throw new RuntimeException("Failed to start service " + serviceClass.getName(), e);
+ }
+
+ return serviceInstance;
+ }
+
+ /**
+ * Starts the specified boot phase for all system services that have been started up to
+ * this point.
+ *
+ * @param phase The boot phase to start.
+ */
+ public void startBootPhase(final int phase) {
+ if (phase <= mCurrentPhase) {
+ throw new IllegalArgumentException("Next phase must be larger than previous");
+ }
+ mCurrentPhase = phase;
+
+ Slog.i(TAG, "Starting phase " + mCurrentPhase);
+
+ final int serviceLen = mServices.size();
+ for (int i = 0; i < serviceLen; i++) {
+ final SystemService service = mServices.get(i);
+ try {
+ service.onBootPhase(mCurrentPhase);
+ } catch (Throwable e) {
+ reportWtf("Service " + service.getClass().getName() +
+ " threw an Exception processing boot phase " + mCurrentPhase, e);
+ }
+ }
+ }
+
+ /** Sets the safe mode flag for services to query. */
+ public void setSafeMode(boolean safeMode) {
+ mSafeMode = safeMode;
+ }
+
+ /**
+ * Returns whether we are booting into safe mode.
+ * @return safe mode flag
+ */
+ public boolean isSafeMode() {
+ return mSafeMode;
+ }
+
+ /**
+ * Outputs the state of this manager to the System log.
+ */
+ public void dump() {
+ StringBuilder builder = new StringBuilder();
+ builder.append("Current phase: ").append(mCurrentPhase).append("\n");
+ builder.append("Services:\n");
+ final int startedLen = mServices.size();
+ for (int i = 0; i < startedLen; i++) {
+ final SystemService service = mServices.get(i);
+ builder.append("\t")
+ .append(service.getClass().getSimpleName())
+ .append("\n");
+ }
+
+ Slog.e(TAG, builder.toString());
+ }
+
+ private SystemService createInstance(Class<?> clazz) {
+ // Make sure it's a type we expect
+ if (!SystemService.class.isAssignableFrom(clazz)) {
+ reportWtf("Class " + clazz.getName() + " does not extend " +
+ SystemService.class.getName());
+ }
+
+ try {
+ return (SystemService) clazz.newInstance();
+ } catch (InstantiationException e) {
+ reportWtf("Class " + clazz.getName() + " is abstract", e);
+ } catch (IllegalAccessException e) {
+ reportWtf("Class " + clazz.getName() +
+ " must have a public no-arg constructor", e);
+ }
+ return null;
+ }
+
+ private static void reportWtf(String message) {
+ reportWtf(message, null);
+ }
+
+ private static void reportWtf(String message, Throwable e) {
+ Slog.i(TAG, "******************************");
+ Log.wtf(TAG, message, e);
+
+ // Make sure we die
+ throw new RuntimeException(message, e);
+ }
+}
diff --git a/core/jni/android_util_Process.cpp b/core/jni/android_util_Process.cpp
index 601975a..cbed99f 100644
--- a/core/jni/android_util_Process.cpp
+++ b/core/jni/android_util_Process.cpp
@@ -344,23 +344,6 @@
return pri;
}
-jboolean android_os_Process_setOomAdj(JNIEnv* env, jobject clazz,
- jint pid, jint adj)
-{
-#ifdef HAVE_OOM_ADJ
- char text[64];
- sprintf(text, "/proc/%d/oom_adj", pid);
- int fd = open(text, O_WRONLY);
- if (fd >= 0) {
- sprintf(text, "%d", adj);
- write(fd, text, strlen(text));
- close(fd);
- }
- return true;
-#endif
- return false;
-}
-
jboolean android_os_Process_setSwappiness(JNIEnv *env, jobject clazz,
jint pid, jboolean is_increased)
{
@@ -1023,7 +1006,6 @@
{"setThreadGroup", "(II)V", (void*)android_os_Process_setThreadGroup},
{"setProcessGroup", "(II)V", (void*)android_os_Process_setProcessGroup},
{"getProcessGroup", "(I)I", (void*)android_os_Process_getProcessGroup},
- {"setOomAdj", "(II)Z", (void*)android_os_Process_setOomAdj},
{"setSwappiness", "(IZ)Z", (void*)android_os_Process_setSwappiness},
{"setArgV0", "(Ljava/lang/String;)V", (void*)android_os_Process_setArgV0},
{"setUid", "(I)I", (void*)android_os_Process_setUid},
diff --git a/core/res/AndroidManifest.xml b/core/res/AndroidManifest.xml
index b198937..e7db535 100644
--- a/core/res/AndroidManifest.xml
+++ b/core/res/AndroidManifest.xml
@@ -1288,7 +1288,7 @@
<!-- @hide Allows an application to create/manage/remove stacks -->
<permission android:name="android.permission.MANAGE_ACTIVITY_STACKS"
android:permissionGroup="android.permission-group.APP_INFO"
- android:protectionLevel="signature"
+ android:protectionLevel="signature|system"
android:label="@string/permlab_manageActivityStacks"
android:description="@string/permdesc_manageActivityStacks" />
@@ -2356,13 +2356,13 @@
@hide -->
<permission android:name="android.permission.READ_DREAM_STATE"
android:permissionGroup="android.permission-group.SYSTEM_TOOLS"
- android:protectionLevel="signature" />
+ android:protectionLevel="signature|system" />
<!-- Allows applications to write dream settings, and start or stop dreaming.
@hide -->
<permission android:name="android.permission.WRITE_DREAM_STATE"
android:permissionGroup="android.permission-group.SYSTEM_TOOLS"
- android:protectionLevel="signature" />
+ android:protectionLevel="signature|system" />
<!-- Allow an application to read and write the cache partition.
@hide -->
@@ -2522,7 +2522,7 @@
android:hasCode="false"
android:label="@string/android_system_label"
android:allowClearUserData="false"
- android:backupAgent="com.android.server.SystemBackupAgent"
+ android:backupAgent="com.android.server.backup.SystemBackupAgent"
android:killAfterRestore="false"
android:icon="@drawable/ic_launcher_android"
android:supportsRtl="true">
diff --git a/core/res/res/drawable-hdpi/ic_media_route_disabled_holo_dark.png b/core/res/res/drawable-hdpi/ic_media_route_disabled_holo_dark.png
index 458a2a6..b47d666 100644
--- a/core/res/res/drawable-hdpi/ic_media_route_disabled_holo_dark.png
+++ b/core/res/res/drawable-hdpi/ic_media_route_disabled_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/ic_media_route_off_holo_dark.png b/core/res/res/drawable-hdpi/ic_media_route_off_holo_dark.png
index c91faa9..13d803c 100644
--- a/core/res/res/drawable-hdpi/ic_media_route_off_holo_dark.png
+++ b/core/res/res/drawable-hdpi/ic_media_route_off_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/ic_media_route_off_holo_light.png b/core/res/res/drawable-hdpi/ic_media_route_off_holo_light.png
index 14c9183..3ae436b 100644
--- a/core/res/res/drawable-hdpi/ic_media_route_off_holo_light.png
+++ b/core/res/res/drawable-hdpi/ic_media_route_off_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/ic_media_route_on_0_holo_dark.png b/core/res/res/drawable-hdpi/ic_media_route_on_0_holo_dark.png
index b388d86..24824fc 100644
--- a/core/res/res/drawable-hdpi/ic_media_route_on_0_holo_dark.png
+++ b/core/res/res/drawable-hdpi/ic_media_route_on_0_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/ic_media_route_on_0_holo_light.png b/core/res/res/drawable-hdpi/ic_media_route_on_0_holo_light.png
index 76c1323..af3819b 100644
--- a/core/res/res/drawable-hdpi/ic_media_route_on_0_holo_light.png
+++ b/core/res/res/drawable-hdpi/ic_media_route_on_0_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/ic_media_route_on_1_holo_dark.png b/core/res/res/drawable-hdpi/ic_media_route_on_1_holo_dark.png
index fd39f9d..83dc251 100644
--- a/core/res/res/drawable-hdpi/ic_media_route_on_1_holo_dark.png
+++ b/core/res/res/drawable-hdpi/ic_media_route_on_1_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/ic_media_route_on_1_holo_light.png b/core/res/res/drawable-hdpi/ic_media_route_on_1_holo_light.png
index c74727a..8d9d592 100644
--- a/core/res/res/drawable-hdpi/ic_media_route_on_1_holo_light.png
+++ b/core/res/res/drawable-hdpi/ic_media_route_on_1_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/ic_media_route_on_2_holo_dark.png b/core/res/res/drawable-hdpi/ic_media_route_on_2_holo_dark.png
index 826c9ae..1310ec9 100644
--- a/core/res/res/drawable-hdpi/ic_media_route_on_2_holo_dark.png
+++ b/core/res/res/drawable-hdpi/ic_media_route_on_2_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/ic_media_route_on_2_holo_light.png b/core/res/res/drawable-hdpi/ic_media_route_on_2_holo_light.png
index d0baec3..1705074 100644
--- a/core/res/res/drawable-hdpi/ic_media_route_on_2_holo_light.png
+++ b/core/res/res/drawable-hdpi/ic_media_route_on_2_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/ic_media_route_on_holo_dark.png b/core/res/res/drawable-hdpi/ic_media_route_on_holo_dark.png
index c60ff59..7027b88 100644
--- a/core/res/res/drawable-hdpi/ic_media_route_on_holo_dark.png
+++ b/core/res/res/drawable-hdpi/ic_media_route_on_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-hdpi/ic_media_route_on_holo_light.png b/core/res/res/drawable-hdpi/ic_media_route_on_holo_light.png
index 75552cc..7027b88 100644
--- a/core/res/res/drawable-hdpi/ic_media_route_on_holo_light.png
+++ b/core/res/res/drawable-hdpi/ic_media_route_on_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_media_route_off_holo_dark.png b/core/res/res/drawable-mdpi/ic_media_route_off_holo_dark.png
index 9d92648..6764598 100644
--- a/core/res/res/drawable-mdpi/ic_media_route_off_holo_dark.png
+++ b/core/res/res/drawable-mdpi/ic_media_route_off_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_media_route_off_holo_light.png b/core/res/res/drawable-mdpi/ic_media_route_off_holo_light.png
index 3e27fc8..94e0bb6 100644
--- a/core/res/res/drawable-mdpi/ic_media_route_off_holo_light.png
+++ b/core/res/res/drawable-mdpi/ic_media_route_off_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_media_route_on_0_holo_dark.png b/core/res/res/drawable-mdpi/ic_media_route_on_0_holo_dark.png
index 72b9e78..5ce2f20 100644
--- a/core/res/res/drawable-mdpi/ic_media_route_on_0_holo_dark.png
+++ b/core/res/res/drawable-mdpi/ic_media_route_on_0_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_media_route_on_0_holo_light.png b/core/res/res/drawable-mdpi/ic_media_route_on_0_holo_light.png
index bd462a2..5105e90 100644
--- a/core/res/res/drawable-mdpi/ic_media_route_on_0_holo_light.png
+++ b/core/res/res/drawable-mdpi/ic_media_route_on_0_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_media_route_on_1_holo_dark.png b/core/res/res/drawable-mdpi/ic_media_route_on_1_holo_dark.png
index 0a2cc89..68c06ed 100644
--- a/core/res/res/drawable-mdpi/ic_media_route_on_1_holo_dark.png
+++ b/core/res/res/drawable-mdpi/ic_media_route_on_1_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_media_route_on_1_holo_light.png b/core/res/res/drawable-mdpi/ic_media_route_on_1_holo_light.png
index d162503..6e9b144 100644
--- a/core/res/res/drawable-mdpi/ic_media_route_on_1_holo_light.png
+++ b/core/res/res/drawable-mdpi/ic_media_route_on_1_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_media_route_on_2_holo_dark.png b/core/res/res/drawable-mdpi/ic_media_route_on_2_holo_dark.png
index 997e32b..45dc56f3d 100644
--- a/core/res/res/drawable-mdpi/ic_media_route_on_2_holo_dark.png
+++ b/core/res/res/drawable-mdpi/ic_media_route_on_2_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_media_route_on_2_holo_light.png b/core/res/res/drawable-mdpi/ic_media_route_on_2_holo_light.png
index d314967..46e743a 100644
--- a/core/res/res/drawable-mdpi/ic_media_route_on_2_holo_light.png
+++ b/core/res/res/drawable-mdpi/ic_media_route_on_2_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_media_route_on_holo_dark.png b/core/res/res/drawable-mdpi/ic_media_route_on_holo_dark.png
index f15d7a9..e384691 100644
--- a/core/res/res/drawable-mdpi/ic_media_route_on_holo_dark.png
+++ b/core/res/res/drawable-mdpi/ic_media_route_on_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-mdpi/ic_media_route_on_holo_light.png b/core/res/res/drawable-mdpi/ic_media_route_on_holo_light.png
index 26d46f8..e384691 100644
--- a/core/res/res/drawable-mdpi/ic_media_route_on_holo_light.png
+++ b/core/res/res/drawable-mdpi/ic_media_route_on_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/ic_media_route_disabled_holo_dark.png b/core/res/res/drawable-xhdpi/ic_media_route_disabled_holo_dark.png
index 045eee0..1d48e12 100644
--- a/core/res/res/drawable-xhdpi/ic_media_route_disabled_holo_dark.png
+++ b/core/res/res/drawable-xhdpi/ic_media_route_disabled_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/ic_media_route_disabled_holo_light.png b/core/res/res/drawable-xhdpi/ic_media_route_disabled_holo_light.png
index 6e14e29..2c8d1ec 100644
--- a/core/res/res/drawable-xhdpi/ic_media_route_disabled_holo_light.png
+++ b/core/res/res/drawable-xhdpi/ic_media_route_disabled_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/ic_media_route_off_holo_dark.png b/core/res/res/drawable-xhdpi/ic_media_route_off_holo_dark.png
index 121bbf6..00b2043 100644
--- a/core/res/res/drawable-xhdpi/ic_media_route_off_holo_dark.png
+++ b/core/res/res/drawable-xhdpi/ic_media_route_off_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/ic_media_route_off_holo_light.png b/core/res/res/drawable-xhdpi/ic_media_route_off_holo_light.png
index 468a0c3..ce1d939 100644
--- a/core/res/res/drawable-xhdpi/ic_media_route_off_holo_light.png
+++ b/core/res/res/drawable-xhdpi/ic_media_route_off_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/ic_media_route_on_0_holo_dark.png b/core/res/res/drawable-xhdpi/ic_media_route_on_0_holo_dark.png
index 414a322..3064b46 100644
--- a/core/res/res/drawable-xhdpi/ic_media_route_on_0_holo_dark.png
+++ b/core/res/res/drawable-xhdpi/ic_media_route_on_0_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/ic_media_route_on_0_holo_light.png b/core/res/res/drawable-xhdpi/ic_media_route_on_0_holo_light.png
index 6088a48..4316686 100644
--- a/core/res/res/drawable-xhdpi/ic_media_route_on_0_holo_light.png
+++ b/core/res/res/drawable-xhdpi/ic_media_route_on_0_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/ic_media_route_on_1_holo_dark.png b/core/res/res/drawable-xhdpi/ic_media_route_on_1_holo_dark.png
index 363d7d4..25c4e31 100644
--- a/core/res/res/drawable-xhdpi/ic_media_route_on_1_holo_dark.png
+++ b/core/res/res/drawable-xhdpi/ic_media_route_on_1_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/ic_media_route_on_1_holo_light.png b/core/res/res/drawable-xhdpi/ic_media_route_on_1_holo_light.png
index edf731e..8e32bd2 100644
--- a/core/res/res/drawable-xhdpi/ic_media_route_on_1_holo_light.png
+++ b/core/res/res/drawable-xhdpi/ic_media_route_on_1_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/ic_media_route_on_2_holo_dark.png b/core/res/res/drawable-xhdpi/ic_media_route_on_2_holo_dark.png
index 85cba7b..aeaa78f 100644
--- a/core/res/res/drawable-xhdpi/ic_media_route_on_2_holo_dark.png
+++ b/core/res/res/drawable-xhdpi/ic_media_route_on_2_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/ic_media_route_on_2_holo_light.png b/core/res/res/drawable-xhdpi/ic_media_route_on_2_holo_light.png
index e65ac31..85277fa 100644
--- a/core/res/res/drawable-xhdpi/ic_media_route_on_2_holo_light.png
+++ b/core/res/res/drawable-xhdpi/ic_media_route_on_2_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/ic_media_route_on_holo_dark.png b/core/res/res/drawable-xhdpi/ic_media_route_on_holo_dark.png
index d8e3e3a..b01dbe8 100644
--- a/core/res/res/drawable-xhdpi/ic_media_route_on_holo_dark.png
+++ b/core/res/res/drawable-xhdpi/ic_media_route_on_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-xhdpi/ic_media_route_on_holo_light.png b/core/res/res/drawable-xhdpi/ic_media_route_on_holo_light.png
index 562dc9a..c19a2ad 100644
--- a/core/res/res/drawable-xhdpi/ic_media_route_on_holo_light.png
+++ b/core/res/res/drawable-xhdpi/ic_media_route_on_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-xxhdpi/ic_media_route_disabled_holo_dark.png b/core/res/res/drawable-xxhdpi/ic_media_route_disabled_holo_dark.png
index 178774c..7b0c383 100644
--- a/core/res/res/drawable-xxhdpi/ic_media_route_disabled_holo_dark.png
+++ b/core/res/res/drawable-xxhdpi/ic_media_route_disabled_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-xxhdpi/ic_media_route_disabled_holo_light.png b/core/res/res/drawable-xxhdpi/ic_media_route_disabled_holo_light.png
index 2dc2092..efb624e 100644
--- a/core/res/res/drawable-xxhdpi/ic_media_route_disabled_holo_light.png
+++ b/core/res/res/drawable-xxhdpi/ic_media_route_disabled_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-xxhdpi/ic_media_route_off_holo_dark.png b/core/res/res/drawable-xxhdpi/ic_media_route_off_holo_dark.png
index 592ee8c..5ee57e4 100644
--- a/core/res/res/drawable-xxhdpi/ic_media_route_off_holo_dark.png
+++ b/core/res/res/drawable-xxhdpi/ic_media_route_off_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-xxhdpi/ic_media_route_off_holo_light.png b/core/res/res/drawable-xxhdpi/ic_media_route_off_holo_light.png
index f0549e2..6bc2e4a 100644
--- a/core/res/res/drawable-xxhdpi/ic_media_route_off_holo_light.png
+++ b/core/res/res/drawable-xxhdpi/ic_media_route_off_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-xxhdpi/ic_media_route_on_0_holo_dark.png b/core/res/res/drawable-xxhdpi/ic_media_route_on_0_holo_dark.png
index 91268f5..c13af9c 100644
--- a/core/res/res/drawable-xxhdpi/ic_media_route_on_0_holo_dark.png
+++ b/core/res/res/drawable-xxhdpi/ic_media_route_on_0_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-xxhdpi/ic_media_route_on_0_holo_light.png b/core/res/res/drawable-xxhdpi/ic_media_route_on_0_holo_light.png
index 9d5436f..744fb42 100644
--- a/core/res/res/drawable-xxhdpi/ic_media_route_on_0_holo_light.png
+++ b/core/res/res/drawable-xxhdpi/ic_media_route_on_0_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-xxhdpi/ic_media_route_on_1_holo_dark.png b/core/res/res/drawable-xxhdpi/ic_media_route_on_1_holo_dark.png
index 8e77483..ca4d59c 100644
--- a/core/res/res/drawable-xxhdpi/ic_media_route_on_1_holo_dark.png
+++ b/core/res/res/drawable-xxhdpi/ic_media_route_on_1_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-xxhdpi/ic_media_route_on_1_holo_light.png b/core/res/res/drawable-xxhdpi/ic_media_route_on_1_holo_light.png
index f396d22..fde5688 100644
--- a/core/res/res/drawable-xxhdpi/ic_media_route_on_1_holo_light.png
+++ b/core/res/res/drawable-xxhdpi/ic_media_route_on_1_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-xxhdpi/ic_media_route_on_2_holo_dark.png b/core/res/res/drawable-xxhdpi/ic_media_route_on_2_holo_dark.png
index 260bab4..b8715c3 100644
--- a/core/res/res/drawable-xxhdpi/ic_media_route_on_2_holo_dark.png
+++ b/core/res/res/drawable-xxhdpi/ic_media_route_on_2_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-xxhdpi/ic_media_route_on_2_holo_light.png b/core/res/res/drawable-xxhdpi/ic_media_route_on_2_holo_light.png
index 2c9fb1d..668bb25 100644
--- a/core/res/res/drawable-xxhdpi/ic_media_route_on_2_holo_light.png
+++ b/core/res/res/drawable-xxhdpi/ic_media_route_on_2_holo_light.png
Binary files differ
diff --git a/core/res/res/drawable-xxhdpi/ic_media_route_on_holo_dark.png b/core/res/res/drawable-xxhdpi/ic_media_route_on_holo_dark.png
index bdbd59c..7f54a62 100644
--- a/core/res/res/drawable-xxhdpi/ic_media_route_on_holo_dark.png
+++ b/core/res/res/drawable-xxhdpi/ic_media_route_on_holo_dark.png
Binary files differ
diff --git a/core/res/res/drawable-xxhdpi/ic_media_route_on_holo_light.png b/core/res/res/drawable-xxhdpi/ic_media_route_on_holo_light.png
index f5c33dd..2df924d 100644
--- a/core/res/res/drawable-xxhdpi/ic_media_route_on_holo_light.png
+++ b/core/res/res/drawable-xxhdpi/ic_media_route_on_holo_light.png
Binary files differ
diff --git a/core/res/res/values/styles_micro.xml b/core/res/res/values/styles_micro.xml
new file mode 100644
index 0000000..2fd283e
--- /dev/null
+++ b/core/res/res/values/styles_micro.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2014 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<resources>
+ <style name="Widget.Micro" parent="Widget.Holo" />
+
+ <style name="Widget.Micro.TextView">
+ <item name="android:fontFamily">sans-serif-condensed</item>
+ </style>
+</resources>
diff --git a/core/res/res/values/themes_micro.xml b/core/res/res/values/themes_micro.xml
new file mode 100644
index 0000000..be5fa99
--- /dev/null
+++ b/core/res/res/values/themes_micro.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Copyright (C) 2014 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<resources>
+ <style name="Theme.Micro" parent="Theme.Holo" />
+
+ <style name="Theme.Micro.Light" parent="Theme.Holo.Light"/>
+ <style name="Theme.Micro.Light.NoActionBar" parent="Theme.Holo.Light.NoActionBar">
+ <item name="textViewStyle">@android:style/Widget.Micro.TextView</item>
+ </style>
+ <style name="Theme.Micro.Light.DarkActionBar" parent="Theme.Holo.Light.DarkActionBar">
+ <item name="textViewStyle">@android:style/Widget.Micro.TextView</item>
+ </style>
+
+</resources>
diff --git a/docs/downloads/training/ControllerSample.zip b/docs/downloads/training/ControllerSample.zip
new file mode 100644
index 0000000..b096861
--- /dev/null
+++ b/docs/downloads/training/ControllerSample.zip
Binary files differ
diff --git a/docs/html-intl/es/training/monitoring-device-state/battery-monitoring.jd b/docs/html-intl/intl/es/training/monitoring-device-state/battery-monitoring.jd
similarity index 100%
rename from docs/html-intl/es/training/monitoring-device-state/battery-monitoring.jd
rename to docs/html-intl/intl/es/training/monitoring-device-state/battery-monitoring.jd
diff --git a/docs/html-intl/es/training/monitoring-device-state/connectivity-monitoring.jd b/docs/html-intl/intl/es/training/monitoring-device-state/connectivity-monitoring.jd
similarity index 100%
rename from docs/html-intl/es/training/monitoring-device-state/connectivity-monitoring.jd
rename to docs/html-intl/intl/es/training/monitoring-device-state/connectivity-monitoring.jd
diff --git a/docs/html-intl/es/training/monitoring-device-state/docking-monitoring.jd b/docs/html-intl/intl/es/training/monitoring-device-state/docking-monitoring.jd
similarity index 100%
rename from docs/html-intl/es/training/monitoring-device-state/docking-monitoring.jd
rename to docs/html-intl/intl/es/training/monitoring-device-state/docking-monitoring.jd
diff --git a/docs/html-intl/es/training/monitoring-device-state/index.jd b/docs/html-intl/intl/es/training/monitoring-device-state/index.jd
similarity index 100%
rename from docs/html-intl/es/training/monitoring-device-state/index.jd
rename to docs/html-intl/intl/es/training/monitoring-device-state/index.jd
diff --git a/docs/html-intl/es/training/monitoring-device-state/manifest-receivers.jd b/docs/html-intl/intl/es/training/monitoring-device-state/manifest-receivers.jd
similarity index 100%
rename from docs/html-intl/es/training/monitoring-device-state/manifest-receivers.jd
rename to docs/html-intl/intl/es/training/monitoring-device-state/manifest-receivers.jd
diff --git a/docs/html-intl/es/training/multiscreen/adaptui.jd b/docs/html-intl/intl/es/training/multiscreen/adaptui.jd
similarity index 100%
rename from docs/html-intl/es/training/multiscreen/adaptui.jd
rename to docs/html-intl/intl/es/training/multiscreen/adaptui.jd
diff --git a/docs/html-intl/es/training/multiscreen/index.jd b/docs/html-intl/intl/es/training/multiscreen/index.jd
similarity index 100%
rename from docs/html-intl/es/training/multiscreen/index.jd
rename to docs/html-intl/intl/es/training/multiscreen/index.jd
diff --git a/docs/html-intl/es/training/multiscreen/screendensities.jd b/docs/html-intl/intl/es/training/multiscreen/screendensities.jd
similarity index 100%
rename from docs/html-intl/es/training/multiscreen/screendensities.jd
rename to docs/html-intl/intl/es/training/multiscreen/screendensities.jd
diff --git a/docs/html-intl/es/training/multiscreen/screensizes.jd b/docs/html-intl/intl/es/training/multiscreen/screensizes.jd
similarity index 100%
rename from docs/html-intl/es/training/multiscreen/screensizes.jd
rename to docs/html-intl/intl/es/training/multiscreen/screensizes.jd
diff --git a/docs/html-intl/ja/guide/publishing/app-signing.jd b/docs/html-intl/intl/ja/guide/publishing/app-signing.jd
similarity index 100%
rename from docs/html-intl/ja/guide/publishing/app-signing.jd
rename to docs/html-intl/intl/ja/guide/publishing/app-signing.jd
diff --git a/docs/html-intl/ja/guide/publishing/preparing.jd b/docs/html-intl/intl/ja/guide/publishing/preparing.jd
similarity index 100%
rename from docs/html-intl/ja/guide/publishing/preparing.jd
rename to docs/html-intl/intl/ja/guide/publishing/preparing.jd
diff --git a/docs/html-intl/ja/guide/publishing/versioning.jd b/docs/html-intl/intl/ja/guide/publishing/versioning.jd
similarity index 100%
rename from docs/html-intl/ja/guide/publishing/versioning.jd
rename to docs/html-intl/intl/ja/guide/publishing/versioning.jd
diff --git a/docs/html-intl/ja/guide/topics/fundamentals.jd b/docs/html-intl/intl/ja/guide/topics/fundamentals.jd
similarity index 100%
rename from docs/html-intl/ja/guide/topics/fundamentals.jd
rename to docs/html-intl/intl/ja/guide/topics/fundamentals.jd
diff --git a/docs/html-intl/ja/training/monitoring-device-state/battery-monitoring.jd b/docs/html-intl/intl/ja/training/monitoring-device-state/battery-monitoring.jd
similarity index 100%
rename from docs/html-intl/ja/training/monitoring-device-state/battery-monitoring.jd
rename to docs/html-intl/intl/ja/training/monitoring-device-state/battery-monitoring.jd
diff --git a/docs/html-intl/ja/training/monitoring-device-state/connectivity-monitoring.jd b/docs/html-intl/intl/ja/training/monitoring-device-state/connectivity-monitoring.jd
similarity index 100%
rename from docs/html-intl/ja/training/monitoring-device-state/connectivity-monitoring.jd
rename to docs/html-intl/intl/ja/training/monitoring-device-state/connectivity-monitoring.jd
diff --git a/docs/html-intl/ja/training/monitoring-device-state/docking-monitoring.jd b/docs/html-intl/intl/ja/training/monitoring-device-state/docking-monitoring.jd
similarity index 100%
rename from docs/html-intl/ja/training/monitoring-device-state/docking-monitoring.jd
rename to docs/html-intl/intl/ja/training/monitoring-device-state/docking-monitoring.jd
diff --git a/docs/html-intl/ja/training/monitoring-device-state/index.jd b/docs/html-intl/intl/ja/training/monitoring-device-state/index.jd
similarity index 100%
rename from docs/html-intl/ja/training/monitoring-device-state/index.jd
rename to docs/html-intl/intl/ja/training/monitoring-device-state/index.jd
diff --git a/docs/html-intl/ja/training/monitoring-device-state/manifest-receivers.jd b/docs/html-intl/intl/ja/training/monitoring-device-state/manifest-receivers.jd
similarity index 100%
rename from docs/html-intl/ja/training/monitoring-device-state/manifest-receivers.jd
rename to docs/html-intl/intl/ja/training/monitoring-device-state/manifest-receivers.jd
diff --git a/docs/html-intl/ja/training/multiscreen/adaptui.jd b/docs/html-intl/intl/ja/training/multiscreen/adaptui.jd
similarity index 100%
rename from docs/html-intl/ja/training/multiscreen/adaptui.jd
rename to docs/html-intl/intl/ja/training/multiscreen/adaptui.jd
diff --git a/docs/html-intl/ja/training/multiscreen/index.jd b/docs/html-intl/intl/ja/training/multiscreen/index.jd
similarity index 100%
rename from docs/html-intl/ja/training/multiscreen/index.jd
rename to docs/html-intl/intl/ja/training/multiscreen/index.jd
diff --git a/docs/html-intl/ja/training/multiscreen/screendensities.jd b/docs/html-intl/intl/ja/training/multiscreen/screendensities.jd
similarity index 100%
rename from docs/html-intl/ja/training/multiscreen/screendensities.jd
rename to docs/html-intl/intl/ja/training/multiscreen/screendensities.jd
diff --git a/docs/html-intl/ja/training/multiscreen/screensizes.jd b/docs/html-intl/intl/ja/training/multiscreen/screensizes.jd
similarity index 100%
rename from docs/html-intl/ja/training/multiscreen/screensizes.jd
rename to docs/html-intl/intl/ja/training/multiscreen/screensizes.jd
diff --git a/docs/html-intl/ko/training/monitoring-device-state/battery-monitoring.jd b/docs/html-intl/intl/ko/training/monitoring-device-state/battery-monitoring.jd
similarity index 100%
rename from docs/html-intl/ko/training/monitoring-device-state/battery-monitoring.jd
rename to docs/html-intl/intl/ko/training/monitoring-device-state/battery-monitoring.jd
diff --git a/docs/html-intl/ko/training/monitoring-device-state/connectivity-monitoring.jd b/docs/html-intl/intl/ko/training/monitoring-device-state/connectivity-monitoring.jd
similarity index 100%
rename from docs/html-intl/ko/training/monitoring-device-state/connectivity-monitoring.jd
rename to docs/html-intl/intl/ko/training/monitoring-device-state/connectivity-monitoring.jd
diff --git a/docs/html-intl/ko/training/monitoring-device-state/docking-monitoring.jd b/docs/html-intl/intl/ko/training/monitoring-device-state/docking-monitoring.jd
similarity index 100%
rename from docs/html-intl/ko/training/monitoring-device-state/docking-monitoring.jd
rename to docs/html-intl/intl/ko/training/monitoring-device-state/docking-monitoring.jd
diff --git a/docs/html-intl/ko/training/monitoring-device-state/index.jd b/docs/html-intl/intl/ko/training/monitoring-device-state/index.jd
similarity index 100%
rename from docs/html-intl/ko/training/monitoring-device-state/index.jd
rename to docs/html-intl/intl/ko/training/monitoring-device-state/index.jd
diff --git a/docs/html-intl/ko/training/monitoring-device-state/manifest-receivers.jd b/docs/html-intl/intl/ko/training/monitoring-device-state/manifest-receivers.jd
similarity index 100%
rename from docs/html-intl/ko/training/monitoring-device-state/manifest-receivers.jd
rename to docs/html-intl/intl/ko/training/monitoring-device-state/manifest-receivers.jd
diff --git a/docs/html-intl/ko/training/multiscreen/adaptui.jd b/docs/html-intl/intl/ko/training/multiscreen/adaptui.jd
similarity index 100%
rename from docs/html-intl/ko/training/multiscreen/adaptui.jd
rename to docs/html-intl/intl/ko/training/multiscreen/adaptui.jd
diff --git a/docs/html-intl/ko/training/multiscreen/index.jd b/docs/html-intl/intl/ko/training/multiscreen/index.jd
similarity index 100%
rename from docs/html-intl/ko/training/multiscreen/index.jd
rename to docs/html-intl/intl/ko/training/multiscreen/index.jd
diff --git a/docs/html-intl/ko/training/multiscreen/screendensities.jd b/docs/html-intl/intl/ko/training/multiscreen/screendensities.jd
similarity index 100%
rename from docs/html-intl/ko/training/multiscreen/screendensities.jd
rename to docs/html-intl/intl/ko/training/multiscreen/screendensities.jd
diff --git a/docs/html-intl/ko/training/multiscreen/screensizes.jd b/docs/html-intl/intl/ko/training/multiscreen/screensizes.jd
similarity index 100%
rename from docs/html-intl/ko/training/multiscreen/screensizes.jd
rename to docs/html-intl/intl/ko/training/multiscreen/screensizes.jd
diff --git a/docs/html-intl/ru/training/monitoring-device-state/battery-monitoring.jd b/docs/html-intl/intl/ru/training/monitoring-device-state/battery-monitoring.jd
similarity index 100%
rename from docs/html-intl/ru/training/monitoring-device-state/battery-monitoring.jd
rename to docs/html-intl/intl/ru/training/monitoring-device-state/battery-monitoring.jd
diff --git a/docs/html-intl/ru/training/monitoring-device-state/connectivity-monitoring.jd b/docs/html-intl/intl/ru/training/monitoring-device-state/connectivity-monitoring.jd
similarity index 100%
rename from docs/html-intl/ru/training/monitoring-device-state/connectivity-monitoring.jd
rename to docs/html-intl/intl/ru/training/monitoring-device-state/connectivity-monitoring.jd
diff --git a/docs/html-intl/ru/training/monitoring-device-state/docking-monitoring.jd b/docs/html-intl/intl/ru/training/monitoring-device-state/docking-monitoring.jd
similarity index 100%
rename from docs/html-intl/ru/training/monitoring-device-state/docking-monitoring.jd
rename to docs/html-intl/intl/ru/training/monitoring-device-state/docking-monitoring.jd
diff --git a/docs/html-intl/ru/training/monitoring-device-state/index.jd b/docs/html-intl/intl/ru/training/monitoring-device-state/index.jd
similarity index 100%
rename from docs/html-intl/ru/training/monitoring-device-state/index.jd
rename to docs/html-intl/intl/ru/training/monitoring-device-state/index.jd
diff --git a/docs/html-intl/ru/training/monitoring-device-state/manifest-receivers.jd b/docs/html-intl/intl/ru/training/monitoring-device-state/manifest-receivers.jd
similarity index 100%
rename from docs/html-intl/ru/training/monitoring-device-state/manifest-receivers.jd
rename to docs/html-intl/intl/ru/training/monitoring-device-state/manifest-receivers.jd
diff --git a/docs/html-intl/ru/training/multiscreen/adaptui.jd b/docs/html-intl/intl/ru/training/multiscreen/adaptui.jd
similarity index 100%
rename from docs/html-intl/ru/training/multiscreen/adaptui.jd
rename to docs/html-intl/intl/ru/training/multiscreen/adaptui.jd
diff --git a/docs/html-intl/ru/training/multiscreen/index.jd b/docs/html-intl/intl/ru/training/multiscreen/index.jd
similarity index 100%
rename from docs/html-intl/ru/training/multiscreen/index.jd
rename to docs/html-intl/intl/ru/training/multiscreen/index.jd
diff --git a/docs/html-intl/ru/training/multiscreen/screendensities.jd b/docs/html-intl/intl/ru/training/multiscreen/screendensities.jd
similarity index 100%
rename from docs/html-intl/ru/training/multiscreen/screendensities.jd
rename to docs/html-intl/intl/ru/training/multiscreen/screendensities.jd
diff --git a/docs/html-intl/ru/training/multiscreen/screensizes.jd b/docs/html-intl/intl/ru/training/multiscreen/screensizes.jd
similarity index 100%
rename from docs/html-intl/ru/training/multiscreen/screensizes.jd
rename to docs/html-intl/intl/ru/training/multiscreen/screensizes.jd
diff --git a/docs/html-intl/zh-cn/training/monitoring-device-state/battery-monitoring.jd b/docs/html-intl/intl/zh-cn/training/monitoring-device-state/battery-monitoring.jd
similarity index 100%
rename from docs/html-intl/zh-cn/training/monitoring-device-state/battery-monitoring.jd
rename to docs/html-intl/intl/zh-cn/training/monitoring-device-state/battery-monitoring.jd
diff --git a/docs/html-intl/zh-cn/training/monitoring-device-state/connectivity-monitoring.jd b/docs/html-intl/intl/zh-cn/training/monitoring-device-state/connectivity-monitoring.jd
similarity index 100%
rename from docs/html-intl/zh-cn/training/monitoring-device-state/connectivity-monitoring.jd
rename to docs/html-intl/intl/zh-cn/training/monitoring-device-state/connectivity-monitoring.jd
diff --git a/docs/html-intl/zh-cn/training/monitoring-device-state/docking-monitoring.jd b/docs/html-intl/intl/zh-cn/training/monitoring-device-state/docking-monitoring.jd
similarity index 100%
rename from docs/html-intl/zh-cn/training/monitoring-device-state/docking-monitoring.jd
rename to docs/html-intl/intl/zh-cn/training/monitoring-device-state/docking-monitoring.jd
diff --git a/docs/html-intl/zh-cn/training/monitoring-device-state/index.jd b/docs/html-intl/intl/zh-cn/training/monitoring-device-state/index.jd
similarity index 100%
rename from docs/html-intl/zh-cn/training/monitoring-device-state/index.jd
rename to docs/html-intl/intl/zh-cn/training/monitoring-device-state/index.jd
diff --git a/docs/html-intl/zh-cn/training/monitoring-device-state/manifest-receivers.jd b/docs/html-intl/intl/zh-cn/training/monitoring-device-state/manifest-receivers.jd
similarity index 100%
rename from docs/html-intl/zh-cn/training/monitoring-device-state/manifest-receivers.jd
rename to docs/html-intl/intl/zh-cn/training/monitoring-device-state/manifest-receivers.jd
diff --git a/docs/html-intl/zh-cn/training/multiscreen/adaptui.jd b/docs/html-intl/intl/zh-cn/training/multiscreen/adaptui.jd
similarity index 100%
rename from docs/html-intl/zh-cn/training/multiscreen/adaptui.jd
rename to docs/html-intl/intl/zh-cn/training/multiscreen/adaptui.jd
diff --git a/docs/html-intl/zh-cn/training/multiscreen/index.jd b/docs/html-intl/intl/zh-cn/training/multiscreen/index.jd
similarity index 100%
rename from docs/html-intl/zh-cn/training/multiscreen/index.jd
rename to docs/html-intl/intl/zh-cn/training/multiscreen/index.jd
diff --git a/docs/html-intl/zh-cn/training/multiscreen/screendensities.jd b/docs/html-intl/intl/zh-cn/training/multiscreen/screendensities.jd
similarity index 100%
rename from docs/html-intl/zh-cn/training/multiscreen/screendensities.jd
rename to docs/html-intl/intl/zh-cn/training/multiscreen/screendensities.jd
diff --git a/docs/html-intl/zh-cn/training/multiscreen/screensizes.jd b/docs/html-intl/intl/zh-cn/training/multiscreen/screensizes.jd
similarity index 100%
rename from docs/html-intl/zh-cn/training/multiscreen/screensizes.jd
rename to docs/html-intl/intl/zh-cn/training/multiscreen/screensizes.jd
diff --git a/docs/html/about/dashboards/index.jd b/docs/html/about/dashboards/index.jd
index bb34495..bcd4607 100644
--- a/docs/html/about/dashboards/index.jd
+++ b/docs/html/about/dashboards/index.jd
@@ -61,7 +61,7 @@
</div>
-<p style="clear:both"><em>Data collected during a 7-day period ending on November 1, 2013.
+<p style="clear:both"><em>Data collected during a 7-day period ending on February 4, 2014.
<br/>Any versions with less than 0.1% distribution are not shown.</em>
</p>
@@ -92,7 +92,7 @@
</div>
-<p style="clear:both"><em>Data collected during a 7-day period ending on November 1, 2013
+<p style="clear:both"><em>Data collected during a 7-day period ending on February 4, 2014.
<br/>Any screen configurations with less than 0.1% distribution are not shown.</em></p>
@@ -111,7 +111,7 @@
<img alt="" style="float:right"
-src="//chart.googleapis.com/chart?cht=p&chs=400x250&chco=c4df9b,6fad0c&chl=GL%201.1%20only|GL%202.0|GL%203.0&chd=t%3A0.1,98.3,1.6&chf=bg,s,00000000" />
+src="//chart.googleapis.com/chart?chl=GL%201.1%20only%7CGL%202.0%7CGL%203.0&chf=bg%2Cs%2C00000000&chd=t%3A0.1%2C93.5%2C6.4&chco=c4df9b%2C6fad0c&chs=400x250&cht=p" />
<p>To declare which version of OpenGL ES your application requires, you should use the {@code
android:glEsVersion} attribute of the <a
@@ -133,17 +133,17 @@
</tr>
<tr>
<td>2.0</th>
-<td>98.3%</td>
+<td>92.3%</td>
</tr>
<tr>
<td>3.0</th>
-<td>1.6%</td>
+<td>7.6%</td>
</tr>
</table>
-<p style="clear:both"><em>Data collected during a 7-day period ending on November 1, 2013</em></p>
+<p style="clear:both"><em>Data collected during a 7-day period ending on February 4, 2014</em></p>
@@ -161,17 +161,17 @@
var VERSION_DATA =
[
{
- "chart": "//chart.googleapis.com/chart?chl=Froyo%7CGingerbread%7CHoneycomb%7CIce%20Cream%20Sandwich%7CJelly%20Bean&chco=c4df9b%2C6fad0c&chd=t%3A1.7%2C26.3%2C0.1%2C19.8%2C52.1&chf=bg%2Cs%2C00000000&chs=500x250&cht=p",
+ "chart": "//chart.googleapis.com/chart?cht=p&chs=500x250&chl=Froyo%7CGingerbread%7CHoneycomb%7CIce%20Cream%20Sandwich%7CJelly%20Bean%7CKitKat&chf=bg%2Cs%2C00000000&chd=t%3A1.3%2C20.0%2C0.1%2C16.1%2C60.7%2C1.8&chco=c4df9b%2C6fad0c",
"data": [
{
"api": 8,
"name": "Froyo",
- "perc": "1.7"
+ "perc": "1.3"
},
{
"api": 10,
"name": "Gingerbread",
- "perc": "26.3"
+ "perc": "20.0"
},
{
"api": 13,
@@ -181,22 +181,27 @@
{
"api": 15,
"name": "Ice Cream Sandwich",
- "perc": "19.8"
+ "perc": "16.1"
},
{
"api": 16,
"name": "Jelly Bean",
- "perc": "37.3"
+ "perc": "35.5"
},
{
"api": 17,
"name": "Jelly Bean",
- "perc": "12.5"
+ "perc": "16.3"
},
{
"api": 18,
"name": "Jelly Bean",
- "perc": "2.3"
+ "perc": "8.9"
+ },
+ {
+ "api": 19,
+ "name": "KitKat",
+ "perc": "1.8"
}
]
}
@@ -211,30 +216,31 @@
{
"data": {
"Large": {
- "hdpi": "0.5",
- "ldpi": "0.6",
- "mdpi": "3.6",
- "tvdpi": "1.2",
- "xhdpi": "0.5"
+ "hdpi": "0.6",
+ "ldpi": "0.8",
+ "mdpi": "4.4",
+ "tvdpi": "1.6",
+ "xhdpi": "0.6"
},
"Normal": {
- "hdpi": "33.4",
+ "hdpi": "33.3",
"ldpi": "0.1",
- "mdpi": "15.1",
- "xhdpi": "22.2",
- "xxhdpi": "8.8"
+ "mdpi": "13.9",
+ "xhdpi": "20.2",
+ "xxhdpi": "11.3"
},
"Small": {
- "ldpi": "9.2"
+ "ldpi": "8.1"
},
"Xlarge": {
"hdpi": "0.3",
- "mdpi": "4.4",
- "xhdpi": "0.1"
+ "ldpi": "0.1",
+ "mdpi": "4.5",
+ "xhdpi": "0.2"
}
},
- "densitychart": "//chart.googleapis.com/chart?chl=ldpi%7Cmdpi%7Ctvdpi%7Chdpi%7Cxhdpi%7Cxxhdpi&chco=c4df9b%2C6fad0c&chd=t%3A9.9%2C23.1%2C1.2%2C34.2%2C22.8%2C8.8&chf=bg%2Cs%2C00000000&chs=400x250&cht=p",
- "layoutchart": "//chart.googleapis.com/chart?chl=Xlarge%7CLarge%7CNormal%7CSmall&chco=c4df9b%2C6fad0c&chd=t%3A4.8%2C6.4%2C79.6%2C9.2&chf=bg%2Cs%2C00000000&chs=400x250&cht=p"
+ "densitychart": "//chart.googleapis.com/chart?cht=p&chs=400x250&chl=ldpi%7Cmdpi%7Ctvdpi%7Chdpi%7Cxhdpi%7Cxxhdpi&chf=bg%2Cs%2C00000000&chd=t%3A9.1%2C22.8%2C1.6%2C34.3%2C21.0%2C11.3&chco=c4df9b%2C6fad0c",
+ "layoutchart": "//chart.googleapis.com/chart?cht=p&chs=400x250&chl=Xlarge%7CLarge%7CNormal%7CSmall&chf=bg%2Cs%2C00000000&chd=t%3A5.1%2C8.0%2C78.9%2C8.1&chco=c4df9b%2C6fad0c"
}
];
@@ -301,6 +307,11 @@
"api":18,
"link":"<a href='/about/versions/android-4.3.html'>4.3</a>",
"codename":"Jelly Bean"
+ },
+ {
+ "api":19,
+ "link":"<a href='/about/versions/android-4.4.html'>4.4</a>",
+ "codename":"KitKat"
}
];
diff --git a/docs/html/about/versions/android-4.4.jd b/docs/html/about/versions/android-4.4.jd
index 42f257c..3de2acc 100644
--- a/docs/html/about/versions/android-4.4.jd
+++ b/docs/html/about/versions/android-4.4.jd
@@ -244,7 +244,7 @@
<p>If you want to emulate an NFC card that is using these protocols in your app, create a service component based on the {@link android.nfc.cardemulation.HostApduService} class. Whereas if your app instead uses a secure element for card emulation, you need to create a service based on the {@link android.nfc.cardemulation.OffHostApduService} class, which will not directly be involved in the transactions but is necessary to register the AIDs that should be handled by the secure element.</p>
-<p>For more information, read the <a href="">NFC Card Emulation</a> guide.</p>
+<p>For more information, read the <a href="{@docRoot}guide/topics/connectivity/nfc/hce.html">NFC Card Emulation</a> guide.</p>
<h3 id="ReaderMode">NFC reader mode</h3>
diff --git a/docs/html/about/versions/jelly-bean.jd b/docs/html/about/versions/jelly-bean.jd
index c6702b0..25f88e3 100644
--- a/docs/html/about/versions/jelly-bean.jd
+++ b/docs/html/about/versions/jelly-bean.jd
@@ -578,9 +578,10 @@
graph for each visible Activity, including the navigation bar and notification
bar. </p>
-<p>A green line highlights the <strong>60ms threshold</strong> for rendering
+<p>A green line highlights the <strong>16ms threshold</strong> for rendering
operations, so you can assess the your app’s effective framerate relative
-to a 60 fps goal. If you see operations that cross the green line, you
+to a 60 fps goal (because 1/60th of a second equals roughly 16ms).
+If you see operations that cross the green line, you
can analyze them further using Systrace and other tools.</p>
<p class="caution" style="clear:both">On devices running Android 4.2 and higher,
diff --git a/docs/html/about/versions/kitkat.jd b/docs/html/about/versions/kitkat.jd
index 5e442ec..4237c98 100644
--- a/docs/html/about/versions/kitkat.jd
+++ b/docs/html/about/versions/kitkat.jd
@@ -54,8 +54,8 @@
<!-- BEGIN ANDROID 4.4 -->
<div id="44-android-44" class="version-section">
- <div style="padding:0px 0px 0px 60px;margin-top:-3px;float:right;">
- <img src="{@docRoot}design/media/index_landing_page.png" alt="Android 4.4 on phone and tablet" width="380">
+ <div style="padding:0px 0px 0px 60px;margin-top:-20px;float:right;">
+ <img src="{@docRoot}images/kk-devices.png" alt="Android 4.4 on phone and tablet" width="380">
</div>
<div class="landing-docs" style="float:right;clear:both;margin:22px 0 2em 3em;">
diff --git a/docs/html/channels/io2013.jd b/docs/html/channels/io2013.jd
index 977eb2f..2efda28 100644
--- a/docs/html/channels/io2013.jd
+++ b/docs/html/channels/io2013.jd
@@ -1,3 +1,4 @@
+excludeFromSuggestions=true
fullpage=true
page.title=Google I/O 13
@jd:body
diff --git a/docs/html/community/index.html b/docs/html/community/index.html
new file mode 100644
index 0000000..eeb1c51
--- /dev/null
+++ b/docs/html/community/index.html
@@ -0,0 +1,317 @@
+<!DOCTYPE html>
+<html>
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<meta name="viewport" content="width=device-width" />
+
+<meta name="google-site-verification" content="sa-bIAI6GKvct3f61-WpRguHq-aNjtF7xJjMTSi79as" />
+<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
+<title>Android Developers Community</title>
+
+<!-- STYLESHEETS -->
+<link rel="stylesheet"
+href="//fonts.googleapis.com/css?family=Roboto:regular,medium,thin,italic,mediumitalic,bold" title="roboto">
+<link href="/assets/css/default.css" rel="stylesheet" type="text/css">
+
+<!-- JAVASCRIPT -->
+<script src="//www.google.com/jsapi" type="text/javascript"></script>
+<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
+<script type="text/javascript">
+ var toRoot = "/";
+ var devsite = false;
+</script>
+
+<script type="text/javascript">
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-5831155-1']);
+ _gaq.push(['_trackPageview']);
+
+ (function() {
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+ })();
+</script>
+
+<style>
+#header-wrap h1 {
+ margin:0;
+ padding:0;
+ line-height:16px;
+}
+#body-content {
+ margin-top:20px;
+}
+#nav-x.wrap {
+ overflow:auto;
+}
+h2 {
+ border-bottom:1px solid #CCC;
+}
+</style>
+</head>
+
+
+
+
+
+
+<body>
+
+
+<!-- Header -->
+<div id="header">
+ <div class="wrap" id="header-wrap">
+ <div class="col-3 logo">
+ <a href="/index.html">
+ <img src="http://developer.android.com/assets/images/dac_logo.png" width="123" height="25" alt="Android Developers" />
+ </a>
+ </div>
+ <div class="col-8">
+ <h1>Community Outreach</h1>
+ </div>
+
+ <div class="menu-container">
+ <div class="moremenu">
+ <div id="more-btn"></div>
+ </div>
+ <div class="morehover" id="moremenu">
+ <div class="top"></div>
+ <div class="mid">
+ <div class="header">Links</div>
+ <ul style="margin-bottom:0">
+ <li><a href="https://www.youtube.com/user/androiddevelopers">Android Developers Live</a></li>
+ <li><a href="http://android-developers.blogspot.com/">Android Developers Blog</a></li>
+ <li><a href="http://developer.android.com/training/">Android Developer Training</a></li>
+ <li><a href="http://developer.android.com/samples/">Samples</a></li>
+ </ul>
+ <br class="clear-fix">
+ </div>
+ <div class="bottom"></div>
+ </div><!-- end morehover -->
+ </div><!-- end menu-container -->
+ </div><!-- end header-wrap -->
+</div>
+<!-- /Header -->
+
+<div id="nav-x" class="wrap">
+ <ul class="nav-x col-9 develop">
+ <li><a href="#News">News</a></li>
+ <li><a href="#Community">Community</a></li>
+ <li><a href="#Content">Content</a></li>
+ <li><a href="#Social">Social</a></li>
+ </ul>
+</div>
+
+
+<!-- MAIN CONTENT -->
+
+
+<div class="wrap" id="body-content">
+
+<img src="/images/community/aco1small.png" alt="" style="float:right;margin:20px 0 0 40px">
+
+<p style="clear:left">
+ Android is working with communities to
+<ul>
+<li>Create a cooperative relationship between highly impactful communities and high performing developers</li>
+<li>Strengthen relationships between Android and coding communities so that developers have a motivation to interact with those communities</li>
+<li>Reward communities for attracting developers by providing them with resources and direct access to the Android team</li></ul>
+<p>Our IMPACT is measured by <strong>good apps</strong> and a <strong>thriving community</strong></p>
+
+<h2 id="News" style="clear:left">News</h2>
+<p>Our current theme is on the <b><em>Android 4.4 KitKat and Updated Developer Tools</em></b> release, with new ways to create beautiful apps, printing and storage frameworks, low-power sensors, new media capabilities and RenderScript in the NDK.</p>
+
+<div class="col-8" style="margin-left:0">
+<img src="/images/community/kk-hero2.jpg" alt="" height="277">
+</div>
+
+<div class="col-8" style="margin-right:0">
+<h3 style="margin-top:0"><a href="http://developer.android.com/about/versions/kitkat.html">Android 4.4 Platform Highlights</a></h3>
+<p>Android KitKat brings all of Android's most innovative, most beautiful, and most useful features to more devices everywhere.</p>
+
+<h3><a href="http://developer.android.com/about/versions/android-4.4.html">Android 4.4 APIs</a></h3>
+<p>Android 4.4 (KITKAT) is a new release for the Android platform that offers new features for users and app developers. This document provides an introduction to the most notable new APIs.</p>
+
+<h3><a href="https://play.google.com/store/devices/details?id=nexus_5_white_32gb">New Nexus 5</a></h3>
+<p>Nexus 5 helps you capture the everyday and the epic in fresh new ways. It's the slimmest and fastest Nexus phone ever made, powered by Android 4.4, KitKat.</p>
+</div>
+<p></p>
+
+<h2 id="Community" style="clear:left">Community Spotlight</h2>
+
+<div class="col-8" style="margin-left:0">
+<h3>Android Community Groups</h3>
+<h4>July 2013</h4>
+<p><a href="mailto:gtugam@gmail.com">GDG Armenia</a> held <a href="http://eca.hackathon.am/">ecaHack Yerevan</a>, an Android hackathon featuring "Angry Designers vs Android Developers", where the designers had a look into developers apps and gave them some advices regarding to design. The hackathon was sponsored by Alcatel One Touch and each member of the winner team got one Alcatel One Touch Idol. Check out the <a href="https://plus.google.com/u/0/events/gallery/cgj9d39gphiephlq0e2899dv6j4?cfem=1">photos.</a></p>
+<h4>September 2013</h4>
+<p><a href="mailto:soham.mondal@gmail.com">GDG Blrdroid</a> held a <a href="http://www.meetup.com/blrdroid/events/140665852/">meetup</a> on performance optimisation.</p>
+<p><a href="mailto:baileye@gmail.com">GDG Dublin</a> held their meetup with a talk on AdMob for Android and iOS, entitled “Admob for Android and iOS developers”. </p>
+<p>GDG Mbale’s <a href="mailto:nsubugahassan@gmail.com">Hassan Nsubuga</a> has been managing a university <a href="https://plus.google.com/103735976334615631393/posts/gQMWCGUhMBn">course session</a> since September. They are now through with the basics and have a firm foundation, so this month they will be doing a lot of advanced stuff including exploring the latest API enhancements with KitKat. </p>
+<p><a href="mailto:wojtek.kalicinski@gmail.com">GDG Warsaw</a> held an Android Barcamp focused on App Quality. The discussion was moderated by GDG organisers, but the talks were given by the community members, including some top Android companies and developers in Poland.</p>
+<h4>October 2013</h4>
+<p><a href="mailto:benjamin.r.m.weiss@gmail.com">GDG Berlin Android</a> held their <a href="https://berlin.ticketbud.com/devfest-berlin-2013">DevFest</a>.</p>
+<p><a href="mailto:soham.mondal@gmail.com">GDG Blrdroid</a> held their <a href="http://www.meetup.com/blrdroid/events/144457162/">meetup</a> in collaboration with GDG Bangalore, where they talked about a wider range of things from incorporating user feedback to effectively using the cell radio. David McLaughlin from the Developer Relations team also visited during the meetup and delivered the keynote. They also hit a milestone with its 4th anniversary on the 9th of October and crossed 4300 members in the past few days so its been a memorable couple of months for them.</p>
+<p><a href="mailto:hir3npatel@gmail.com">GDG Cape Town</a> held an <a href="https://plus.google.com/108309780217630451504/posts/9BTCEqnBHoQ">Android Workshop</a> where they gave away lots of branded KitKats.</p>
+<p><a href="mailto:baileye@gmail.com">GDG Dublin</a> held its DevFest, which featured a codeLab on Android titled “Codelab: Intro to Android Development.”</p>
+<p><a href="mailto:hugo@dutchaug.org">GDG Dutch Android User Group</a> held their <a href="http://www.devfest.nl/program">DevFest</a>. They had a bunch of Android sessions, mostly by local speakers. In addition to the Android sessions, they also ran a workshop on writing custom views.</p>
+<p><a href="mailto:hugo@dutchaug.org">Hugo Visser</a> from the Dutch Android User Group spoke at <a href="https://bitbucket.org/qbusict/cupboard">DroidCon UK barcamp</a>, where he delivered a talk on Cupboard, a simple and lightweight persistence framework, specifically for Android.</p>
+<p><a href="mailto:prajyotmainkar@gmail.com">GDG GAUG</a> held the <a href="https://plus.google.com/110448195989468248957/posts/8doJuCpySWS">Google Devfest 2013</a>, where they had two tracks and more than 200 delegates attending. They also had a <a href="https://plus.google.com/110448195989468248957/posts/6rxLzj2Rpde">Hackathon</a> and they hit the <a href="https://plus.google.com/110448195989468248957">1000 member</a> mark this month, which makes them the second largest android community in India after GDG Blrdroid. </p>
+<p><a href="mailto:cyrilleguipie@gmail.com">GDG Miage</a> held their DevFest where they gave a talk about Intents and Services. The also held a startup Weekend Bootcamp where they talked about Activites and Layouts. They will also hold an Android Workshop in December.</p>
+<p><a href="mailto:gabriel.kb@gmail.com">GDG Uruguay</a> had their <a href="http://gdg.uy/devfest2013">DevFest</a>, where they held an Android workshop for beginners as an Android vs iOS comparison, a session on best practices using YouTube APIs in Android, and What's new in Google for developers (with a special section about Android). You can see pictures on <a href="https://plus.google.com/114520966453242230657/posts/dqZAuMqc12Z">the G+ page</a>. </p>
+
+<h4>November 2013</h4>
+<p><a href="mailto:yorogoule@gmail.com">Abidjandroid/GDG Côte d'Ivoire</a> held an Android Launch Party featuring the KitKat release.</p>
+<p>The <a href="mailto:hugo@dutchaug.org">Dutch Android User Group</a> had a very interactive presentation on Android Code Puzzlers and Tips & tricks, where they rewarded participation by giving out books, tshirts, jelly beans and kitkats. The presentation was at the <a href="http://www.nljug.org/jfall">Dutch JFall conference</a>, organized by the NLJUG. It's a large yearly Java conference and the DAUG had the only Android session there.</p>
+<p>The <a href="mailto:benjamin.r.m.weiss@gmail.com">GDG Berlin Android</a> meetup this month featured the KitKat release.</p>
+<p><a href="mailto:soham.mondal@gmail.com">The GDG Blrdroid</a> <a href="http://www.meetup.com/blrdroid/events/148210762/%20">meetup</a> was another focused on KitKat.</p>
+<p>At the <a href="mailto:amahdy7@gmail.com">GDG Cairo</a> <a href="https://plus.google.com/events/co59j0870in5a4kh8n5navifnm8">DevFest</a> there was a "What's new in Android SDK" session on day 1, and an Android workshop on day 2. Kitkat also provided interest in the sessions and the snacks bar. The KitKat <a href="http://buff.ly/HNE7yq">presentation</a>, the track organization, and everything related to it were all organized by women.</p>
+<p><a href="mailto:hir3npatel@gmail.com">GDG Cape Town</a> held an Android Workshop.</p>
+<p><a href="mailto:alessandro.gbridge@gmail.com">GDG Udine</a> organized a talk after the release of KitKat for a school in Pordenone.</p>
+<p><a href="mailto:hugo@dutchaug.org">Hugo Visser</a> from Droidcon Netherlands organized an Android hackathon themed "Location, Location, Location". </p>
+<p><a href="mailto:eyal.lezmy@gmail.com">Paris Android User Group</a> welcomed <a href="https://plus.google.com/+RomainGuy">Romain Guy</a> and <a href="https://plus.google.com/+ChetHaase">Chet Haase</a> to their meetup this month. They’ll be meeting up with other GDG leads and UG managers meet at <a href="https://plus.google.com/events/cupo201fjreo9g9t2e596gv8nd4">Devoxx</a> next Thursday.</p>
+<p><a href="mailto:wojtek.kalicinski@gmail.com">GDG Warsaw</a> had over 250 attendees at their DevFest, which featured session tracks on Android and Web and a whole day of Code Labs in Android, AngularJS and Arduino.</p>
+<h4>December 2013</h4>
+<p><a href="mailto:prajyotmainkar@gmail.com">GDG GAUG</a> are planning a codelab and hackathon.</p>
+<p><a href="mailto:psvensson@gmail.com">Peter Svensson</a> spoke at <a href="http://swdc.se/droidcon/events/stockholm-2013/">DroidCon Stockholm</a></p>
+The unstoppable <a href="mailto:bonbhel@gmail.com">Max Bonbhel</a> from the African GDG Android is hosting AAC 2014 and Android GDG Barcamp events in December. Also, in order to encourage African Java developers to move to the Android platform, he created the <a href="https://docs.google.com/spreadsheet/ccc?key=0AtFPan-z2ps-dHBtX1luY2pRQjdtRjliUGcxMVBNeVE&usp=sharing#gid=0">Africa Android Training (AAT) program</a>. The training material targets developers with different levels of experience in Java development. More than 60 developers have been taking part in the weekly sessions. The next 10 sessions will start Saturday, November 9, 2013. 260 GDG and Java User Group members have already registered from 12 Countries.
+<p> </p>
+</div>
+
+<div class="col-8" style="margin-right:0">
+<h3>Android Community Experts</h3>
+
+<h4>October 2013</h4>
+<p><a href="mailto:eyal.lezmy@gmail.com">Eyal Lezmy</a> presented two sessions. “<a href="http://bit.ly/andbigfail">Play Store bashing, learn from the biggest fails</a>” looked at several applications, mainly developed by huge companies, and analyzed why they failed to satisfy the users or the Android guidelines. “<a href="http://bit.ly/lifeofapp">Android, the life of your app</a>” tells a story, living the life of a user, identify the frustrations he can encounter and present ways to avoid it, as a developer.</p>
+<p><a href="mailto:mariux01@gmail.com">Mario Viviani</a> presented and recorded the next <a href="http://www.youtube.com/watch?v=jaT0bYhhaGY">Android App Clinic - Italia</a>. This episode was regarding the Cards UI and SMS app support in Android 4.4. They experimented with a short form of the video (10 minutes instead of 20) and in less than day it got almost 400+ views -- which is great considering it's in Italian! The previous episode reached 1300 views all-time and was the most successful video of GDL Italia in Q2.</p>
+<p><a href="mailto:m.kaeppler@gmail.com">Matthias Käppler</a> contributed the <a href="https://github.com/Netflix/RxJava/tree/master/rxjava-contrib/rxjava-android">first Android specific component</a> to the RxJava project, and spoke about <a href="http://uk.droidcon.com/2013/sessions/conquering-concurrency-bringing-the-reactive-extensions-to-the-android-platform/">RxJava and reactive programming on Android</a> at DroidCon UK. He has also open sourced <a href="https://github.com/mttkay/memento">Memento</a>, an Android annotation processor to replace the deprecated onRetainNonConfigurationInstance.</p>
+<p><a href="mailto:wojtek.kalicinski@gmail.com">Wojtek Kaliciński</a>’s talk, "Android - is it time for a break yet?" highlights not only what's new in Android 4.4 KitKat, but also how to take your app to the next level by making sure you provide the best app experience possible to all 4.0+ users.</p>
+<a href="https://plus.sandbox.google.com/110448195989468248957/posts"><img src="/images/community/hackathon-gdgaug.jpg" alt="" align="right"></a>
+
+</div>
+
+<h2 id="Content" style="clear:left">New Content</h2>
+<div class="col-8" style="margin-left:0">
+<p><h4>Android 4.4 What's New</h4>
+KitKat has been optimized to run on a much broader range of devices, with special focus on the millions of entry-level devices that have as little as 512MB RAM. To help, we've created new APIs, better tools, and better documentation to let you create apps that perform well on all devices.<br>
+Check out this video summary of some of the most significant developer features in the latest Android release, including new ways to make your apps beautiful, NFC Host Card Emulation, a printing framework, the storage access framework, low-power step detector and step counter sensors, and more!<br>
+<h5><a href="http://www.youtube.com/watch?v=sONcojECWXs&list=PLWz5rJ2EKKc-2quE-o0enpILZF3nBZg_K">Video</a></h5>
+<h5><a href="https://drive.google.com/a/google.com/folderview?id=0BwhAiXVwzMoFc28wWEpyeE9qYTQ&usp=sharing">Presentation</a></h5>
+<i>Be sure to get the <a href="http://developer.android.com/about/versions/android-4.4.html">full Android 4.4 API Overview</a>, and take a look at our <a href="https://www.youtube.com/playlist?list=PLWz5rJ2EKKc-2quE-o0enpILZF3nBZg_K">related DevBytes videos</a></i></p>
+
+<p><h4>WebView in Android 4.4</h4>
+Android 4.4 (API level 19) introduces a new version of WebView that is based on Chromium. This change upgrades WebView performance and standards support for HTML5, CSS3, and JavaScript to match the latest web browsers. Any apps using WebView will inherit these upgrades when running on Android 4.4 and higher.
+<h5><a href="http://developer.android.com/guide/webapps/migrating.html">API Guide</a></h5>
+</p>
+
+<p><h4>Android 4.4 Immersive Mode</h4>
+With Android 4.4 KitKat, your apps can now truly go full-screen with a new Immersive Mode. Immersive Mode lets your apps hide the system's status and navigation bars while capturing all touch events—ideal for rich interactive content such as books and games. This video demonstrates how to use the new API, in addition to recapping earlier full-screen APIs on Android.
+<h5><a href="http://www.youtube.com/watch?v=cBi8fjv90E4&list=PLWz5rJ2EKKc-2quE-o0enpILZF3nBZg_K">Video</a></h5>
+<h5><a href="https://drive.google.com/a/google.com/folderview?id=0BwhAiXVwzMoFc28wWEpyeE9qYTQ&usp=sharing">Presentation</a></h5>
+<h5><a href="http://developer.android.com/samples/ImmersiveMode/index.html">Sample</a></h5>
+</p>
+
+<p>
+<h4>Android 4.4 Storage Access Framework - Provider</h4>
+Get up to speed on the new document storage API in Android 4.4 KitKat. This video gets you up and running with your own DocumentProvider by stepping you through the making of a simple cloud storage app.
+<h5><a href="http://www.youtube.com/watch?v=zxHVeXbK1P4&list=PLWz5rJ2EKKc-2quE-o0enpILZF3nBZg_K">Video</a></h5>
+<h5><a href="https://drive.google.com/a/google.com/folderview?id=0BwhAiXVwzMoFc28wWEpyeE9qYTQ&usp=sharing">Presentation</a></h5>
+<h5><a href="http://developer.android.com/guide/topics/providers/document-provider.html">Training</a></h5>
+<h5><a href="http://developer.android.com/samples/StorageProvider/index.html">Sample</a>, <a href="https://play.google.com/store/apps/details?id=com.box.android">Box Application</a></h5>
+</blockquote>
+
+</p>
+
+
+<p><h4>Android 4.4 Storage Access Framework - Client</h4>
+Get up to speed on the new storage access framework in Android 4.4 KitKat. This video teaches you how to quickly create, edit, save and delete documents provided by other apps as a client of the storage access framework.
+<h5><a href="http://www.youtube.com/watch?v=UFj9AEz0DHQ&list=PLWz5rJ2EKKc-2quE-o0enpILZF3nBZg_K">Video</a></h5>
+<h5><a href="https://drive.google.com/a/google.com/folderview?id=0BwhAiXVwzMoFc28wWEpyeE9qYTQ&usp=sharing">Presentation</a></h5>
+<h5><a href="http://developer.android.com/samples/StorageClient/index.html">Sample</a></h5>
+</p>
+
+<p><h4>Android 4.4 Closed Captioning</h4>
+Displaying closed captions in your app's videos can be quick and simple in Android 4.4 KitKat,. Learn how to attach timed text tracks to VideoView and allow users to customize how captions are displayed.
+<h5><a href="http://www.youtube.com/watch?v=hCRGc2PcmB8&list=PLWz5rJ2EKKc-2quE-o0enpILZF3nBZg_K">Video</a></h5>
+<h5><a href="https://drive.google.com/a/google.com/folderview?id=0BwhAiXVwzMoFc28wWEpyeE9qYTQ&usp=sharing">Presentation</a>
+</p>
+</h5>
+</div>
+
+<div class="col-8" style="margin-right:0">
+
+<p>
+<h4>Android 4.4 Transitions</h4>
+In this episode, we introduce the new Transitions API in Android 4.4 Kitkat. This API provides a simple way for developers to provide animated segues to different scenes of their application, helping users to understand the application flow with very little code. The general approach is to tell the system that you'd like to run a transition animation, then make the necessary changes to your UI. The system figures out the differences and animates the changes.
+<h5><a href="http://www.youtube.com/watch?v=S3H7nJ4QaD8&list=PLWz5rJ2EKKc-2quE-o0enpILZF3nBZg_K&index=3">Video</a></h5>
+<h5><a href="https://drive.google.com/a/google.com/folderview?id=0BwhAiXVwzMoFc28wWEpyeE9qYTQ&usp=sharing">Presentation</a></p>
+</h5>
+<p><h4>Android 4.4: SMS APIs</h4>
+Android 4.4 KitKat introduces the new SMS APIs as well as the new concept of a default SMS app. This video discusses these new APIs and how your app should use them to send and receive SMS and MMS messages.<br>
+<h5><a href="http://www.youtube.com/watch?v=mdq0R2WQssQ&list=PLWz5rJ2EKKc-2quE-o0enpILZF3nBZg_K">Video</a></h5>
+<h5><a href="https://drive.google.com/a/google.com/folderview?id=0BwhAiXVwzMoFc28wWEpyeE9qYTQ&usp=sharing">Presentation</a></h5>
+<i>See also -<br>
+<a href="http://goo.gl/sw5NdH">Android Developer Blog post on Android 4.4 KitKat SMS APIs</a><br>
+<a href="http://goo.gl/7vTx3s">Android Protip on using booleans in your AndroidManifest.xml</a></i></p>
+
+
+<p><h4>Android 4.4 Printing API</h4>
+In this video, we introduce the new Printing API in Android 4.4 KitKat. This API provides a simple way for developers to print to cloud-connected printers using Google Cloud Print. It's really easy to print bitmaps, and HTML (that you generate on the device, or just web content).<br>
+<h5><a href="http://www.youtube.com/watch?v=Iub67ic87KI&list=PLWz5rJ2EKKc-2quE-o0enpILZF3nBZg_K">Video</a></h5>
+<h5><a href="https://drive.google.com/a/google.com/folderview?id=0BwhAiXVwzMoFc28wWEpyeE9qYTQ&usp=sharing">Presentation</a></h5>
+<h5><a href="http://developer.android.com/training/printing/index.html">Training</a></h5>
+<i>Some pro-tips:</i>
+<ul>
+ <li>For Webview/HTML printing, printing from javascript is not supported yet (window.print() for example). Also we are planning to address the limitations around WebView/HTML printing in future releases (eg: headers/footers, and specifying print ranges).</li>
+<li>We encourage developers to open Android Open Source bugs for features that they feel important as a feedback.</li>
+</ul>
+
+<p><h4>App Indexing</h4>
+In this episode we discuss the new App Indexing feature that we recently announced for Google Search for Android.<br>
+Currently, when you do a google search on the web, you get results that are links to websites. With App Indexing, you will be able to point Google Search users on Android directly to content within your app!
+If you’re an Android app developer who has a web presence and you want more control over how your content is accessed from search, via your website or Android app, App Indexing is a great feature for you to explore.
+Also, enabling your website and app for indexing is a way to increase engagement with your app by making the content more discoverable, and more accessible to users directly from the search results page.
+For information on App Indexing, please visit <a href="http://g.co/appindexing">http://g.co/appindexing</a>
+<h5><a href="http://www.youtube.com/watch?v=Xh_W82JgOms&list=PLWz5rJ2EKKc-2quE-o0enpILZF3nBZg_K">Video</a></h5>
+<h5><a href="https://drive.google.com/a/google.com/folderview?id=0BwhAiXVwzMoFc28wWEpyeE9qYTQ&usp=sharing">Presentation</a>
+</p>
+</h5>
+</div>
+
+<h2 id="Social" style="clear:left">Social</h2>
+<div class="col-8" style="margin-left:0">
+
+<h3 >G+</h3>
+
+<ul>
+<li><a href="https://plus.google.com/u/1/108967384991768947849/posts/1iVvwyfTM8y">What's New in Android 4.4</a>
+ <ul>
+ <li><a href="http://www.youtube.com/watch?v=HrFRY32i_sE">What's New in Android 4.4 [JAPANESE!]</a></li>
+ <li><a href="https://www.youtube.com/watch?v=U9jAcwaETD4">What's New in Android 4.4 [KOREAN!]</a></li>
+ <li><a href="https://plus.google.com/u/1/108967384991768947849/posts/WfqdvDG2Cyr">Quer saber das novidades do Android 4.4? [PORTUGUESE!]</a></li>
+ </ul>
+</li>
+<li><a href="https://plus.google.com/u/1/+AndroidDevelopers/posts/femjRbay18f">Android 4.4 and Updated Developer Tools
+</a></li>
+<li><a href="https://plus.google.com/u/1/108967384991768947849/posts/P2q82aYN7do">Google Play Services 4.0
+</a></li>
+</ul>
+</div>
+
+<div class="col-8" style="margin-right:0">
+<h3>Blog</h3>
+
+<ul>
+ <li><a href="http://android-developers.blogspot.hk/2013/10/android-44-kitkat-and-updated-developer.html">Android 4.4 KitKat and Updated Developer Tools</a></li>
+ <li><a href="http://android-developers.blogspot.hk/2013/10/google-play-services-40.html">Google Play Services 4.0</a></li>
+ <li><a href="http://android-developers.blogspot.hk/2013/10/making-your-app-content-more-accessible.html">Making your App Content more Accessible from Googl...</a></li>
+ <li><a href="http://android-developers.blogspot.hk/2013/10/getting-your-sms-apps-ready-for-kitkat.html">Getting Your SMS Apps Ready for KitKat</a></li>
+</ul>
+</div>
+
+</div><!-- /MAIN CONTENT 'wrap' -->
+</body>
+</html>
+
+
+
diff --git a/docs/html/design/media/progress_download.png b/docs/html/design/media/progress_download.png
index 5c9e556..5765095 100644
--- a/docs/html/design/media/progress_download.png
+++ b/docs/html/design/media/progress_download.png
Binary files differ
diff --git a/docs/html/develop/index.jd b/docs/html/develop/index.jd
index 61a98b7..3f88b9d 100644
--- a/docs/html/develop/index.jd
+++ b/docs/html/develop/index.jd
@@ -3,6 +3,7 @@
header.hide=1
carousel=1
tabbedList=1
+excludeFromSuggestions=true
@jd:body
<style>
diff --git a/docs/html/distribute/googleplay/edu/faq.jd b/docs/html/distribute/googleplay/edu/faq.jd
index 6afc107..0c3b185 100644
--- a/docs/html/distribute/googleplay/edu/faq.jd
+++ b/docs/html/distribute/googleplay/edu/faq.jd
@@ -258,7 +258,7 @@
</dt>
<dd>
- If you’d like to reach users of Nexus tablets for schools we encourage you
+ If you’d like to reach tablet users in schools we encourage you
to build a native app for the optimal user experience. Considerations for
building your app and instructions for registering it can be found at
<a href="http://developer.android.com/edu">developer.android.com/edu</a>.
@@ -325,9 +325,9 @@
</dt>
<dd>
- Nexus 7 is available for shipment now, and the Asus Transformer will be
- available in early 2014. We look forward to welcoming more Android devices
- into the Google in Education family soon.
+ Nexus 7 is available for shipment now, and the Asus Transformer and HP
+ Slate 8 Pro will be available in early 2014. We look forward to welcoming
+ more Android devices into the Google in Education family soon.
</dd>
<dt>
diff --git a/docs/html/distribute/googleplay/edu/guidelines.jd b/docs/html/distribute/googleplay/edu/guidelines.jd
index c4b719b..8427044 100644
--- a/docs/html/distribute/googleplay/edu/guidelines.jd
+++ b/docs/html/distribute/googleplay/edu/guidelines.jd
@@ -208,11 +208,11 @@
<h3 id="devices">Android tablets</h3>
-<p>Google Play for Education uses primarily Nexus 7 devices, so
-your testing can focus on that specific hardware device. You can purchase the
+<p>Google Play for Education offers a range of 7-inch through 10-inch tablets, so
+your testing should focus on those hardware devices. You can purchase the Nexus 7
device from <a href="https://play.google.com/store/devices/details?id=nexus_7_16gb"
target="_android">Google Play</a> and other stores. Although testing on Nexus
-devices is preferred, you can test on other 7-inch (or 10-inch) tablets or virtual
+devices is preferred, you can test on other 7-inch or 10-inch tablets or virtual
devices if you don't have access to Nexus devices.</p>
<h3 id="conditions">Test conditions</h3>
diff --git a/docs/html/distribute/googleplay/edu/index.jd b/docs/html/distribute/googleplay/edu/index.jd
index 7a16bfd..487028f 100644
--- a/docs/html/distribute/googleplay/edu/index.jd
+++ b/docs/html/distribute/googleplay/edu/index.jd
@@ -19,7 +19,7 @@
teacher-approved, educational apps and videos on Play Store. Teachers can filter
content by subject matter, grade and other criteria. Bulk purchase and instant
distribution let educators bring your apps directly to classrooms and schools.</p>
- <p>If you have an educational app, be a part of Google Play for Education.</p>
+ <p>If you have an educational app, join Google Play for Education.</p>
<p><a class="button" href="{@docRoot}distribute/googleplay/edu/about.html">Learn More</a></p>
</div>
</div>
diff --git a/docs/html/distribute/googleplay/edu/start.jd b/docs/html/distribute/googleplay/edu/start.jd
index 01d4406..dbfbb6a 100644
--- a/docs/html/distribute/googleplay/edu/start.jd
+++ b/docs/html/distribute/googleplay/edu/start.jd
@@ -84,11 +84,16 @@
href="{@docRoot}distribute/googleplay/quality/tablet.html">Tablet App Quality
Guidelines</a>. </p>
-<p>Throughout design and development, it's important to have a suitable device
-on which to prototype and test your user experience. It's highly recommended
-that you acquire one or more tablet devices and set up your testing environment
-as early as possible. The recommended hardware device that replicates the Google
-Play for Education environment is the Nexus 7, which is available from <a href="https://play.google.com/store/devices/details?id=nexus_7_16gb" target="_android">Google Play</a> and other stores.</p>
+<p>
+ Throughout design and development, it's important to have suitable devices
+ on which to prototype and test your user experience. It's highly recommended
+ that you acquire 7-inch and 10-inch tablet devices and set up
+ your testing environment as early as possible. The recommended 7-inch
+ hardware device that replicates the Google Play for Education environment is
+ the Nexus 7, which is available from <a href=
+ "https://play.google.com/store/devices/details?id=nexus_7_16gb" target=
+ "_android">Google Play</a> and other stores.
+</p>
<p>Proper testing and quality assurance are key aspects of delivering a great
app for teachers and students. Make sure you set up a <a
diff --git a/docs/html/distribute/index.jd b/docs/html/distribute/index.jd
index 54f9301..544fdff 100644
--- a/docs/html/distribute/index.jd
+++ b/docs/html/distribute/index.jd
@@ -11,7 +11,7 @@
<div class="copy" style="position:relative;left:480px;width:360;">
<h1 style="margin-bottom:10px;">Your Apps on Google Play</h1>
<p>The most visited store in the world for Android apps. Cloud-connected and always synced,
- it's never been easierfor users to find and download your apps.</p>
+ it's never been easier for users to find and download your apps.</p>
<p><a class="button" href="https://play.google.com/apps/publish/"
>Go to Developer Console »</a></p>
</div>
diff --git a/docs/html/gms_navtree_data.js b/docs/html/gms_navtree_data.js
index 86bfea4..0d5e875 100644
--- a/docs/html/gms_navtree_data.js
+++ b/docs/html/gms_navtree_data.js
@@ -3,6 +3,9 @@
, null ] ]
, null ], [ "com.google.android.gms.ads", "reference/com/google/android/gms/ads/package-summary.html", [ [ "Classes", null, [ [ "AdListener", "reference/com/google/android/gms/ads/AdListener.html", null, null ], [ "AdRequest", "reference/com/google/android/gms/ads/AdRequest.html", null, null ], [ "AdRequest.Builder", "reference/com/google/android/gms/ads/AdRequest.Builder.html", null, null ], [ "AdSize", "reference/com/google/android/gms/ads/AdSize.html", null, null ], [ "AdView", "reference/com/google/android/gms/ads/AdView.html", null, null ], [ "InterstitialAd", "reference/com/google/android/gms/ads/InterstitialAd.html", null, null ] ]
, null ] ]
+, null ], [ "com.google.android.gms.ads.doubleclick", "reference/com/google/android/gms/ads/doubleclick/package-summary.html", [ [ "Interfaces", null, [ [ "AppEventListener", "reference/com/google/android/gms/ads/doubleclick/AppEventListener.html", null, null ] ]
+, null ], [ "Classes", null, [ [ "PublisherAdRequest", "reference/com/google/android/gms/ads/doubleclick/PublisherAdRequest.html", null, null ], [ "PublisherAdRequest.Builder", "reference/com/google/android/gms/ads/doubleclick/PublisherAdRequest.Builder.html", null, null ], [ "PublisherAdView", "reference/com/google/android/gms/ads/doubleclick/PublisherAdView.html", null, null ], [ "PublisherInterstitialAd", "reference/com/google/android/gms/ads/doubleclick/PublisherInterstitialAd.html", null, null ] ]
+, null ] ]
, null ], [ "com.google.android.gms.ads.identifier", "reference/com/google/android/gms/ads/identifier/package-summary.html", [ [ "Classes", null, [ [ "AdvertisingIdClient", "reference/com/google/android/gms/ads/identifier/AdvertisingIdClient.html", null, null ], [ "AdvertisingIdClient.Info", "reference/com/google/android/gms/ads/identifier/AdvertisingIdClient.Info.html", null, null ] ]
, null ] ]
, null ], [ "com.google.android.gms.ads.mediation", "reference/com/google/android/gms/ads/mediation/package-summary.html", [ [ "Interfaces", null, [ [ "NetworkExtras", "reference/com/google/android/gms/ads/mediation/NetworkExtras.html", null, null ] ]
@@ -11,37 +14,57 @@
, null ] ]
, null ], [ "com.google.android.gms.ads.mediation.customevent", "reference/com/google/android/gms/ads/mediation/customevent/package-summary.html", [ [ "Classes", null, [ [ "CustomEventExtras", "reference/com/google/android/gms/ads/mediation/customevent/CustomEventExtras.html", null, null ] ]
, null ] ]
+, null ], [ "com.google.android.gms.ads.search", "reference/com/google/android/gms/ads/search/package-summary.html", [ [ "Classes", null, [ [ "SearchAdRequest", "reference/com/google/android/gms/ads/search/SearchAdRequest.html", null, null ], [ "SearchAdRequest.Builder", "reference/com/google/android/gms/ads/search/SearchAdRequest.Builder.html", null, null ], [ "SearchAdView", "reference/com/google/android/gms/ads/search/SearchAdView.html", null, null ] ]
+, null ] ]
, null ], [ "com.google.android.gms.appstate", "reference/com/google/android/gms/appstate/package-summary.html", [ [ "Interfaces", null, [ [ "AppState", "reference/com/google/android/gms/appstate/AppState.html", null, null ], [ "OnSignOutCompleteListener", "reference/com/google/android/gms/appstate/OnSignOutCompleteListener.html", null, null ], [ "OnStateDeletedListener", "reference/com/google/android/gms/appstate/OnStateDeletedListener.html", null, null ], [ "OnStateListLoadedListener", "reference/com/google/android/gms/appstate/OnStateListLoadedListener.html", null, null ], [ "OnStateLoadedListener", "reference/com/google/android/gms/appstate/OnStateLoadedListener.html", null, null ] ]
, null ], [ "Classes", null, [ [ "AppStateBuffer", "reference/com/google/android/gms/appstate/AppStateBuffer.html", null, null ], [ "AppStateClient", "reference/com/google/android/gms/appstate/AppStateClient.html", null, null ], [ "AppStateClient.Builder", "reference/com/google/android/gms/appstate/AppStateClient.Builder.html", null, null ] ]
, null ] ]
-, null ], [ "com.google.android.gms.auth", "reference/com/google/android/gms/auth/package-summary.html", [ [ "Classes", null, [ [ "GoogleAuthUtil", "reference/com/google/android/gms/auth/GoogleAuthUtil.html", null, null ], [ "RecoveryDecision", "reference/com/google/android/gms/auth/RecoveryDecision.html", null, null ] ]
+, null ], [ "com.google.android.gms.auth", "reference/com/google/android/gms/auth/package-summary.html", [ [ "Classes", null, [ [ "GoogleAuthUtil", "reference/com/google/android/gms/auth/GoogleAuthUtil.html", null, null ] ]
, null ], [ "Exceptions", null, [ [ "GoogleAuthException", "reference/com/google/android/gms/auth/GoogleAuthException.html", null, null ], [ "GooglePlayServicesAvailabilityException", "reference/com/google/android/gms/auth/GooglePlayServicesAvailabilityException.html", null, null ], [ "UserRecoverableAuthException", "reference/com/google/android/gms/auth/UserRecoverableAuthException.html", null, null ], [ "UserRecoverableNotifiedException", "reference/com/google/android/gms/auth/UserRecoverableNotifiedException.html", null, null ] ]
, null ] ]
-, null ], [ "com.google.android.gms.common", "reference/com/google/android/gms/common/package-summary.html", [ [ "Interfaces", null, [ [ "GooglePlayServicesClient", "reference/com/google/android/gms/common/GooglePlayServicesClient.html", null, null ], [ "GooglePlayServicesClient.ConnectionCallbacks", "reference/com/google/android/gms/common/GooglePlayServicesClient.ConnectionCallbacks.html", null, null ], [ "GooglePlayServicesClient.OnConnectionFailedListener", "reference/com/google/android/gms/common/GooglePlayServicesClient.OnConnectionFailedListener.html", null, null ] ]
+, null ], [ "com.google.android.gms.common", "reference/com/google/android/gms/common/package-summary.html", [ [ "Interfaces", null, [ [ "GooglePlayServicesClient", "reference/com/google/android/gms/common/GooglePlayServicesClient.html", null, null ], [ "GooglePlayServicesClient.ConnectionCallbacks", "reference/com/google/android/gms/common/GooglePlayServicesClient.ConnectionCallbacks.html", null, null ], [ "GooglePlayServicesClient.OnConnectionFailedListener", "reference/com/google/android/gms/common/GooglePlayServicesClient.OnConnectionFailedListener.html", null, null ], [ "OnStatusReceivedCallback", "reference/com/google/android/gms/common/OnStatusReceivedCallback.html", null, null ] ]
, null ], [ "Classes", null, [ [ "AccountPicker", "reference/com/google/android/gms/common/AccountPicker.html", null, null ], [ "ConnectionResult", "reference/com/google/android/gms/common/ConnectionResult.html", null, null ], [ "GooglePlayServicesUtil", "reference/com/google/android/gms/common/GooglePlayServicesUtil.html", null, null ], [ "Scopes", "reference/com/google/android/gms/common/Scopes.html", null, null ], [ "SignInButton", "reference/com/google/android/gms/common/SignInButton.html", null, null ] ]
, null ], [ "Exceptions", null, [ [ "GooglePlayServicesNotAvailableException", "reference/com/google/android/gms/common/GooglePlayServicesNotAvailableException.html", null, null ], [ "GooglePlayServicesRepairableException", "reference/com/google/android/gms/common/GooglePlayServicesRepairableException.html", null, null ], [ "UserRecoverableException", "reference/com/google/android/gms/common/UserRecoverableException.html", null, null ] ]
, null ] ]
+, null ], [ "com.google.android.gms.common.annotation", "reference/com/google/android/gms/common/annotation/package-summary.html", [ [ "Annotations", null, [ [ "KeepName", "reference/com/google/android/gms/common/annotation/KeepName.html", null, null ] ]
+, null ] ]
+, null ], [ "com.google.android.gms.common.api", "reference/com/google/android/gms/common/api/package-summary.html", [ [ "Interfaces", null, [ [ "GoogleApiClient.ApiOptions", "reference/com/google/android/gms/common/api/GoogleApiClient.ApiOptions.html", null, null ], [ "GoogleApiClient.ConnectionCallbacks", "reference/com/google/android/gms/common/api/GoogleApiClient.ConnectionCallbacks.html", null, null ], [ "GoogleApiClient.OnConnectionFailedListener", "reference/com/google/android/gms/common/api/GoogleApiClient.OnConnectionFailedListener.html", null, null ], [ "PendingResult", "reference/com/google/android/gms/common/api/PendingResult.html", null, null ], [ "Releasable", "reference/com/google/android/gms/common/api/Releasable.html", null, null ], [ "Result", "reference/com/google/android/gms/common/api/Result.html", null, null ] ]
+, null ], [ "Classes", null, [ [ "Api", "reference/com/google/android/gms/common/api/Api.html", null, null ], [ "GoogleApiClient", "reference/com/google/android/gms/common/api/GoogleApiClient.html", null, null ], [ "GoogleApiClient.Builder", "reference/com/google/android/gms/common/api/GoogleApiClient.Builder.html", null, null ], [ "Scope", "reference/com/google/android/gms/common/api/Scope.html", null, null ], [ "Status", "reference/com/google/android/gms/common/api/Status.html", null, null ] ]
+, null ] ]
, null ], [ "com.google.android.gms.common.data", "reference/com/google/android/gms/common/data/package-summary.html", [ [ "Interfaces", null, [ [ "Freezable", "reference/com/google/android/gms/common/data/Freezable.html", null, null ] ]
-, null ], [ "Classes", null, [ [ "DataBuffer", "reference/com/google/android/gms/common/data/DataBuffer.html", null, null ], [ "DataBufferUtils", "reference/com/google/android/gms/common/data/DataBufferUtils.html", null, null ] ]
+, null ], [ "Classes", null, [ [ "DataBuffer", "reference/com/google/android/gms/common/data/DataBuffer.html", null, null ], [ "DataBufferUtils", "reference/com/google/android/gms/common/data/DataBufferUtils.html", null, null ], [ "FilteredDataBuffer", "reference/com/google/android/gms/common/data/FilteredDataBuffer.html", null, null ] ]
, null ] ]
, null ], [ "com.google.android.gms.common.images", "reference/com/google/android/gms/common/images/package-summary.html", [ [ "Interfaces", null, [ [ "ImageManager.OnImageLoadedListener", "reference/com/google/android/gms/common/images/ImageManager.OnImageLoadedListener.html", null, null ] ]
, null ], [ "Classes", null, [ [ "ImageManager", "reference/com/google/android/gms/common/images/ImageManager.html", null, null ] ]
, null ] ]
+, null ], [ "com.google.android.gms.drive", "reference/com/google/android/gms/drive/package-summary.html", [ [ "Interfaces", null, [ [ "DriveApi", "reference/com/google/android/gms/drive/DriveApi.html", null, null ], [ "DriveApi.ContentsResult", "reference/com/google/android/gms/drive/DriveApi.ContentsResult.html", null, null ], [ "DriveApi.IntentSenderResult", "reference/com/google/android/gms/drive/DriveApi.IntentSenderResult.html", null, null ], [ "DriveApi.MetadataBufferResult", "reference/com/google/android/gms/drive/DriveApi.MetadataBufferResult.html", null, null ], [ "DriveApi.OnContentsDiscardedCallback", "reference/com/google/android/gms/drive/DriveApi.OnContentsDiscardedCallback.html", null, null ], [ "DriveApi.OnNewContentsCallback", "reference/com/google/android/gms/drive/DriveApi.OnNewContentsCallback.html", null, null ], [ "DriveApi.OnSyncFinishCallback", "reference/com/google/android/gms/drive/DriveApi.OnSyncFinishCallback.html", null, null ], [ "DriveFile", "reference/com/google/android/gms/drive/DriveFile.html", null, null ], [ "DriveFile.DownloadProgressListener", "reference/com/google/android/gms/drive/DriveFile.DownloadProgressListener.html", null, null ], [ "DriveFile.OnContentsClosedCallback", "reference/com/google/android/gms/drive/DriveFile.OnContentsClosedCallback.html", null, null ], [ "DriveFile.OnContentsOpenedCallback", "reference/com/google/android/gms/drive/DriveFile.OnContentsOpenedCallback.html", null, null ], [ "DriveFolder", "reference/com/google/android/gms/drive/DriveFolder.html", null, null ], [ "DriveFolder.DriveFileResult", "reference/com/google/android/gms/drive/DriveFolder.DriveFileResult.html", null, null ], [ "DriveFolder.DriveFolderResult", "reference/com/google/android/gms/drive/DriveFolder.DriveFolderResult.html", null, null ], [ "DriveFolder.OnChildrenRetrievedCallback", "reference/com/google/android/gms/drive/DriveFolder.OnChildrenRetrievedCallback.html", null, null ], [ "DriveFolder.OnCreateFileCallback", "reference/com/google/android/gms/drive/DriveFolder.OnCreateFileCallback.html", null, null ], [ "DriveFolder.OnCreateFolderCallback", "reference/com/google/android/gms/drive/DriveFolder.OnCreateFolderCallback.html", null, null ], [ "DriveResource", "reference/com/google/android/gms/drive/DriveResource.html", null, null ], [ "DriveResource.MetadataResult", "reference/com/google/android/gms/drive/DriveResource.MetadataResult.html", null, null ], [ "DriveResource.OnMetadataRetrievedCallback", "reference/com/google/android/gms/drive/DriveResource.OnMetadataRetrievedCallback.html", null, null ], [ "DriveResource.OnMetadataUpdatedCallback", "reference/com/google/android/gms/drive/DriveResource.OnMetadataUpdatedCallback.html", null, null ] ]
+, null ], [ "Classes", null, [ [ "Contents", "reference/com/google/android/gms/drive/Contents.html", null, null ], [ "CreateFileActivityBuilder", "reference/com/google/android/gms/drive/CreateFileActivityBuilder.html", null, null ], [ "Drive", "reference/com/google/android/gms/drive/Drive.html", null, null ], [ "DriveId", "reference/com/google/android/gms/drive/DriveId.html", null, null ], [ "Metadata", "reference/com/google/android/gms/drive/Metadata.html", null, null ], [ "MetadataBuffer", "reference/com/google/android/gms/drive/MetadataBuffer.html", null, null ], [ "MetadataChangeSet", "reference/com/google/android/gms/drive/MetadataChangeSet.html", null, null ], [ "MetadataChangeSet.Builder", "reference/com/google/android/gms/drive/MetadataChangeSet.Builder.html", null, null ], [ "OpenFileActivityBuilder", "reference/com/google/android/gms/drive/OpenFileActivityBuilder.html", null, null ] ]
+, null ] ]
+, null ], [ "com.google.android.gms.drive.metadata", "reference/com/google/android/gms/drive/metadata/package-summary.html", [ [ "Classes", null, [ [ "CollectionMetadataField", "reference/com/google/android/gms/drive/metadata/CollectionMetadataField.html", null, null ], [ "MetadataField", "reference/com/google/android/gms/drive/metadata/MetadataField.html", null, null ], [ "OrderedMetadataField", "reference/com/google/android/gms/drive/metadata/OrderedMetadataField.html", null, null ], [ "StringMetadataField", "reference/com/google/android/gms/drive/metadata/StringMetadataField.html", null, null ] ]
+, null ] ]
+, null ], [ "com.google.android.gms.drive.query", "reference/com/google/android/gms/drive/query/package-summary.html", [ [ "Interfaces", null, [ [ "Filter", "reference/com/google/android/gms/drive/query/Filter.html", null, null ] ]
+, null ], [ "Classes", null, [ [ "Filters", "reference/com/google/android/gms/drive/query/Filters.html", null, null ], [ "Query", "reference/com/google/android/gms/drive/query/Query.html", null, null ], [ "Query.Builder", "reference/com/google/android/gms/drive/query/Query.Builder.html", null, null ], [ "SearchableField", "reference/com/google/android/gms/drive/query/SearchableField.html", null, null ] ]
+, null ] ]
+, null ], [ "com.google.android.gms.drive.widget", "reference/com/google/android/gms/drive/widget/package-summary.html", [ [ "Classes", null, [ [ "DataBufferAdapter", "reference/com/google/android/gms/drive/widget/DataBufferAdapter.html", null, null ] ]
+, null ] ]
, null ], [ "com.google.android.gms.games", "reference/com/google/android/gms/games/package-summary.html", [ [ "Interfaces", null, [ [ "Game", "reference/com/google/android/gms/games/Game.html", null, null ], [ "OnGamesLoadedListener", "reference/com/google/android/gms/games/OnGamesLoadedListener.html", null, null ], [ "OnPlayersLoadedListener", "reference/com/google/android/gms/games/OnPlayersLoadedListener.html", null, null ], [ "OnSignOutCompleteListener", "reference/com/google/android/gms/games/OnSignOutCompleteListener.html", null, null ], [ "Player", "reference/com/google/android/gms/games/Player.html", null, null ] ]
, null ], [ "Classes", null, [ [ "GameBuffer", "reference/com/google/android/gms/games/GameBuffer.html", null, null ], [ "GameEntity", "reference/com/google/android/gms/games/GameEntity.html", null, null ], [ "GamesActivityResultCodes", "reference/com/google/android/gms/games/GamesActivityResultCodes.html", null, null ], [ "GamesClient", "reference/com/google/android/gms/games/GamesClient.html", null, null ], [ "GamesClient.Builder", "reference/com/google/android/gms/games/GamesClient.Builder.html", null, null ], [ "PageDirection", "reference/com/google/android/gms/games/PageDirection.html", null, null ], [ "PlayerBuffer", "reference/com/google/android/gms/games/PlayerBuffer.html", null, null ], [ "PlayerEntity", "reference/com/google/android/gms/games/PlayerEntity.html", null, null ] ]
, null ] ]
, null ], [ "com.google.android.gms.games.achievement", "reference/com/google/android/gms/games/achievement/package-summary.html", [ [ "Interfaces", null, [ [ "Achievement", "reference/com/google/android/gms/games/achievement/Achievement.html", null, null ], [ "OnAchievementsLoadedListener", "reference/com/google/android/gms/games/achievement/OnAchievementsLoadedListener.html", null, null ], [ "OnAchievementUpdatedListener", "reference/com/google/android/gms/games/achievement/OnAchievementUpdatedListener.html", null, null ] ]
, null ], [ "Classes", null, [ [ "AchievementBuffer", "reference/com/google/android/gms/games/achievement/AchievementBuffer.html", null, null ] ]
, null ] ]
-, null ], [ "com.google.android.gms.games.leaderboard", "reference/com/google/android/gms/games/leaderboard/package-summary.html", [ [ "Interfaces", null, [ [ "Leaderboard", "reference/com/google/android/gms/games/leaderboard/Leaderboard.html", null, null ], [ "LeaderboardScore", "reference/com/google/android/gms/games/leaderboard/LeaderboardScore.html", null, null ], [ "LeaderboardVariant", "reference/com/google/android/gms/games/leaderboard/LeaderboardVariant.html", null, null ], [ "OnLeaderboardMetadataLoadedListener", "reference/com/google/android/gms/games/leaderboard/OnLeaderboardMetadataLoadedListener.html", null, null ], [ "OnLeaderboardScoresLoadedListener", "reference/com/google/android/gms/games/leaderboard/OnLeaderboardScoresLoadedListener.html", null, null ], [ "OnScoreSubmittedListener", "reference/com/google/android/gms/games/leaderboard/OnScoreSubmittedListener.html", null, null ] ]
+, null ], [ "com.google.android.gms.games.leaderboard", "reference/com/google/android/gms/games/leaderboard/package-summary.html", [ [ "Interfaces", null, [ [ "Leaderboard", "reference/com/google/android/gms/games/leaderboard/Leaderboard.html", null, null ], [ "LeaderboardScore", "reference/com/google/android/gms/games/leaderboard/LeaderboardScore.html", null, null ], [ "LeaderboardVariant", "reference/com/google/android/gms/games/leaderboard/LeaderboardVariant.html", null, null ], [ "OnLeaderboardMetadataLoadedListener", "reference/com/google/android/gms/games/leaderboard/OnLeaderboardMetadataLoadedListener.html", null, null ], [ "OnLeaderboardScoresLoadedListener", "reference/com/google/android/gms/games/leaderboard/OnLeaderboardScoresLoadedListener.html", null, null ], [ "OnPlayerLeaderboardScoreLoadedListener", "reference/com/google/android/gms/games/leaderboard/OnPlayerLeaderboardScoreLoadedListener.html", null, null ], [ "OnScoreSubmittedListener", "reference/com/google/android/gms/games/leaderboard/OnScoreSubmittedListener.html", null, null ] ]
, null ], [ "Classes", null, [ [ "LeaderboardBuffer", "reference/com/google/android/gms/games/leaderboard/LeaderboardBuffer.html", null, null ], [ "LeaderboardScoreBuffer", "reference/com/google/android/gms/games/leaderboard/LeaderboardScoreBuffer.html", null, null ], [ "SubmitScoreResult", "reference/com/google/android/gms/games/leaderboard/SubmitScoreResult.html", null, null ], [ "SubmitScoreResult.Result", "reference/com/google/android/gms/games/leaderboard/SubmitScoreResult.Result.html", null, null ] ]
, null ] ]
, null ], [ "com.google.android.gms.games.multiplayer", "reference/com/google/android/gms/games/multiplayer/package-summary.html", [ [ "Interfaces", null, [ [ "Invitation", "reference/com/google/android/gms/games/multiplayer/Invitation.html", null, null ], [ "OnInvitationReceivedListener", "reference/com/google/android/gms/games/multiplayer/OnInvitationReceivedListener.html", null, null ], [ "OnInvitationsLoadedListener", "reference/com/google/android/gms/games/multiplayer/OnInvitationsLoadedListener.html", null, null ], [ "Participant", "reference/com/google/android/gms/games/multiplayer/Participant.html", null, null ], [ "Participatable", "reference/com/google/android/gms/games/multiplayer/Participatable.html", null, null ] ]
-, null ], [ "Classes", null, [ [ "InvitationBuffer", "reference/com/google/android/gms/games/multiplayer/InvitationBuffer.html", null, null ], [ "InvitationEntity", "reference/com/google/android/gms/games/multiplayer/InvitationEntity.html", null, null ], [ "ParticipantBuffer", "reference/com/google/android/gms/games/multiplayer/ParticipantBuffer.html", null, null ], [ "ParticipantEntity", "reference/com/google/android/gms/games/multiplayer/ParticipantEntity.html", null, null ], [ "ParticipantUtils", "reference/com/google/android/gms/games/multiplayer/ParticipantUtils.html", null, null ] ]
+, null ], [ "Classes", null, [ [ "InvitationBuffer", "reference/com/google/android/gms/games/multiplayer/InvitationBuffer.html", null, null ], [ "InvitationEntity", "reference/com/google/android/gms/games/multiplayer/InvitationEntity.html", null, null ], [ "ParticipantBuffer", "reference/com/google/android/gms/games/multiplayer/ParticipantBuffer.html", null, null ], [ "ParticipantEntity", "reference/com/google/android/gms/games/multiplayer/ParticipantEntity.html", null, null ], [ "ParticipantResult", "reference/com/google/android/gms/games/multiplayer/ParticipantResult.html", null, null ], [ "ParticipantUtils", "reference/com/google/android/gms/games/multiplayer/ParticipantUtils.html", null, null ] ]
, null ] ]
, null ], [ "com.google.android.gms.games.multiplayer.realtime", "reference/com/google/android/gms/games/multiplayer/realtime/package-summary.html", [ [ "Interfaces", null, [ [ "RealTimeMessageReceivedListener", "reference/com/google/android/gms/games/multiplayer/realtime/RealTimeMessageReceivedListener.html", null, null ], [ "RealTimeReliableMessageSentListener", "reference/com/google/android/gms/games/multiplayer/realtime/RealTimeReliableMessageSentListener.html", null, null ], [ "RealTimeSocket", "reference/com/google/android/gms/games/multiplayer/realtime/RealTimeSocket.html", null, null ], [ "Room", "reference/com/google/android/gms/games/multiplayer/realtime/Room.html", null, null ], [ "RoomStatusUpdateListener", "reference/com/google/android/gms/games/multiplayer/realtime/RoomStatusUpdateListener.html", null, null ], [ "RoomUpdateListener", "reference/com/google/android/gms/games/multiplayer/realtime/RoomUpdateListener.html", null, null ] ]
, null ], [ "Classes", null, [ [ "RealTimeMessage", "reference/com/google/android/gms/games/multiplayer/realtime/RealTimeMessage.html", null, null ], [ "RoomConfig", "reference/com/google/android/gms/games/multiplayer/realtime/RoomConfig.html", null, null ], [ "RoomConfig.Builder", "reference/com/google/android/gms/games/multiplayer/realtime/RoomConfig.Builder.html", null, null ], [ "RoomEntity", "reference/com/google/android/gms/games/multiplayer/realtime/RoomEntity.html", null, null ] ]
, null ] ]
+, null ], [ "com.google.android.gms.games.multiplayer.turnbased", "reference/com/google/android/gms/games/multiplayer/turnbased/package-summary.html", [ [ "Interfaces", null, [ [ "OnTurnBasedMatchCanceledListener", "reference/com/google/android/gms/games/multiplayer/turnbased/OnTurnBasedMatchCanceledListener.html", null, null ], [ "OnTurnBasedMatchesLoadedListener", "reference/com/google/android/gms/games/multiplayer/turnbased/OnTurnBasedMatchesLoadedListener.html", null, null ], [ "OnTurnBasedMatchInitiatedListener", "reference/com/google/android/gms/games/multiplayer/turnbased/OnTurnBasedMatchInitiatedListener.html", null, null ], [ "OnTurnBasedMatchLeftListener", "reference/com/google/android/gms/games/multiplayer/turnbased/OnTurnBasedMatchLeftListener.html", null, null ], [ "OnTurnBasedMatchLoadedListener", "reference/com/google/android/gms/games/multiplayer/turnbased/OnTurnBasedMatchLoadedListener.html", null, null ], [ "OnTurnBasedMatchUpdatedListener", "reference/com/google/android/gms/games/multiplayer/turnbased/OnTurnBasedMatchUpdatedListener.html", null, null ], [ "OnTurnBasedMatchUpdateReceivedListener", "reference/com/google/android/gms/games/multiplayer/turnbased/OnTurnBasedMatchUpdateReceivedListener.html", null, null ], [ "TurnBasedMatch", "reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html", null, null ], [ "TurnBasedMultiplayerListener", "reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMultiplayerListener.html", null, null ] ]
+, null ], [ "Classes", null, [ [ "LoadMatchesResponse", "reference/com/google/android/gms/games/multiplayer/turnbased/LoadMatchesResponse.html", null, null ], [ "TurnBasedMatchBuffer", "reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatchBuffer.html", null, null ], [ "TurnBasedMatchConfig", "reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatchConfig.html", null, null ], [ "TurnBasedMatchConfig.Builder", "reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatchConfig.Builder.html", null, null ], [ "TurnBasedMatchEntity", "reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatchEntity.html", null, null ] ]
+, null ] ]
, null ], [ "com.google.android.gms.gcm", "reference/com/google/android/gms/gcm/package-summary.html", [ [ "Classes", null, [ [ "GoogleCloudMessaging", "reference/com/google/android/gms/gcm/GoogleCloudMessaging.html", null, null ] ]
, null ] ]
, null ], [ "com.google.android.gms.location", "reference/com/google/android/gms/location/package-summary.html", [ [ "Interfaces", null, [ [ "Geofence", "reference/com/google/android/gms/location/Geofence.html", null, null ], [ "LocationClient.OnAddGeofencesResultListener", "reference/com/google/android/gms/location/LocationClient.OnAddGeofencesResultListener.html", null, null ], [ "LocationClient.OnRemoveGeofencesResultListener", "reference/com/google/android/gms/location/LocationClient.OnRemoveGeofencesResultListener.html", null, null ], [ "LocationListener", "reference/com/google/android/gms/location/LocationListener.html", null, null ] ]
@@ -67,7 +90,7 @@
, null ], [ "Classes", null, [ [ "Person.Cover.Layout", "reference/com/google/android/gms/plus/model/people/Person.Cover.Layout.html", null, null ], [ "Person.Gender", "reference/com/google/android/gms/plus/model/people/Person.Gender.html", null, null ], [ "Person.ObjectType", "reference/com/google/android/gms/plus/model/people/Person.ObjectType.html", null, null ], [ "Person.Organizations.Type", "reference/com/google/android/gms/plus/model/people/Person.Organizations.Type.html", null, null ], [ "Person.RelationshipStatus", "reference/com/google/android/gms/plus/model/people/Person.RelationshipStatus.html", null, null ], [ "Person.Urls.Type", "reference/com/google/android/gms/plus/model/people/Person.Urls.Type.html", null, null ], [ "PersonBuffer", "reference/com/google/android/gms/plus/model/people/PersonBuffer.html", null, null ] ]
, null ] ]
, null ], [ "com.google.android.gms.wallet", "reference/com/google/android/gms/wallet/package-summary.html", [ [ "Interfaces", null, [ [ "LineItem.Role", "reference/com/google/android/gms/wallet/LineItem.Role.html", null, null ], [ "NotifyTransactionStatusRequest.Status", "reference/com/google/android/gms/wallet/NotifyTransactionStatusRequest.Status.html", null, null ], [ "NotifyTransactionStatusRequest.Status.Error", "reference/com/google/android/gms/wallet/NotifyTransactionStatusRequest.Status.Error.html", null, null ] ]
-, null ], [ "Classes", null, [ [ "Address", "reference/com/google/android/gms/wallet/Address.html", null, null ], [ "Cart", "reference/com/google/android/gms/wallet/Cart.html", null, null ], [ "Cart.Builder", "reference/com/google/android/gms/wallet/Cart.Builder.html", null, null ], [ "EnableWalletOptimizationReceiver", "reference/com/google/android/gms/wallet/EnableWalletOptimizationReceiver.html", null, null ], [ "FullWallet", "reference/com/google/android/gms/wallet/FullWallet.html", null, null ], [ "FullWalletRequest", "reference/com/google/android/gms/wallet/FullWalletRequest.html", null, null ], [ "FullWalletRequest.Builder", "reference/com/google/android/gms/wallet/FullWalletRequest.Builder.html", null, null ], [ "LineItem", "reference/com/google/android/gms/wallet/LineItem.html", null, null ], [ "LineItem.Builder", "reference/com/google/android/gms/wallet/LineItem.Builder.html", null, null ], [ "LoyaltyWalletObject", "reference/com/google/android/gms/wallet/LoyaltyWalletObject.html", null, null ], [ "MaskedWallet", "reference/com/google/android/gms/wallet/MaskedWallet.html", null, null ], [ "MaskedWalletRequest", "reference/com/google/android/gms/wallet/MaskedWalletRequest.html", null, null ], [ "MaskedWalletRequest.Builder", "reference/com/google/android/gms/wallet/MaskedWalletRequest.Builder.html", null, null ], [ "NotifyTransactionStatusRequest", "reference/com/google/android/gms/wallet/NotifyTransactionStatusRequest.html", null, null ], [ "NotifyTransactionStatusRequest.Builder", "reference/com/google/android/gms/wallet/NotifyTransactionStatusRequest.Builder.html", null, null ], [ "OfferWalletObject", "reference/com/google/android/gms/wallet/OfferWalletObject.html", null, null ], [ "ProxyCard", "reference/com/google/android/gms/wallet/ProxyCard.html", null, null ], [ "WalletClient", "reference/com/google/android/gms/wallet/WalletClient.html", null, null ], [ "WalletConstants", "reference/com/google/android/gms/wallet/WalletConstants.html", null, null ] ]
+, null ], [ "Classes", null, [ [ "Address", "reference/com/google/android/gms/wallet/Address.html", null, null ], [ "Cart", "reference/com/google/android/gms/wallet/Cart.html", null, null ], [ "Cart.Builder", "reference/com/google/android/gms/wallet/Cart.Builder.html", null, null ], [ "CountrySpecification", "reference/com/google/android/gms/wallet/CountrySpecification.html", null, null ], [ "EnableWalletOptimizationReceiver", "reference/com/google/android/gms/wallet/EnableWalletOptimizationReceiver.html", null, null ], [ "FullWallet", "reference/com/google/android/gms/wallet/FullWallet.html", null, null ], [ "FullWalletRequest", "reference/com/google/android/gms/wallet/FullWalletRequest.html", null, null ], [ "FullWalletRequest.Builder", "reference/com/google/android/gms/wallet/FullWalletRequest.Builder.html", null, null ], [ "LineItem", "reference/com/google/android/gms/wallet/LineItem.html", null, null ], [ "LineItem.Builder", "reference/com/google/android/gms/wallet/LineItem.Builder.html", null, null ], [ "LoyaltyWalletObject", "reference/com/google/android/gms/wallet/LoyaltyWalletObject.html", null, null ], [ "MaskedWallet", "reference/com/google/android/gms/wallet/MaskedWallet.html", null, null ], [ "MaskedWalletRequest", "reference/com/google/android/gms/wallet/MaskedWalletRequest.html", null, null ], [ "MaskedWalletRequest.Builder", "reference/com/google/android/gms/wallet/MaskedWalletRequest.Builder.html", null, null ], [ "NotifyTransactionStatusRequest", "reference/com/google/android/gms/wallet/NotifyTransactionStatusRequest.html", null, null ], [ "NotifyTransactionStatusRequest.Builder", "reference/com/google/android/gms/wallet/NotifyTransactionStatusRequest.Builder.html", null, null ], [ "OfferWalletObject", "reference/com/google/android/gms/wallet/OfferWalletObject.html", null, null ], [ "ProxyCard", "reference/com/google/android/gms/wallet/ProxyCard.html", null, null ], [ "WalletClient", "reference/com/google/android/gms/wallet/WalletClient.html", null, null ], [ "WalletConstants", "reference/com/google/android/gms/wallet/WalletConstants.html", null, null ] ]
, null ] ]
, null ] ]
diff --git a/docs/html/google/gcm/adv.jd b/docs/html/google/gcm/adv.jd
index 567b12c..245467f 100644
--- a/docs/html/google/gcm/adv.jd
+++ b/docs/html/google/gcm/adv.jd
@@ -96,7 +96,7 @@
will get a <code>NotRegistered</code> error. See <a href="#unreg">
How Unregistration Works</a> for more information.</p>
<p>Although is not possible to track the status of each individual message, the
-Google APIs Console stats are broken down by messages sent to device, messages
+Google Cloud Console stats are broken down by messages sent to device, messages
collapsed, and messages waiting for delivery.</p>
<h2 id="throttling">Throttling</h2>
@@ -312,14 +312,10 @@
<p>GCM will store up to 100 non-collapsible messages. After that, all messages
are discarded from GCM, and a new message is created that tells the client how
far behind it is. The message is delivered through a regular
-<code>com.google.android.c2dm.intent.RECEIVE</code> intent, with the following
-extras:</p>
-<ul>
- <li> <code>message_type</code>—The value is always the string
-"deleted_messages".</li>
- <li><code>total_deleted</code>—The value is a string with the number of
-deleted messages.</li>
-</ul>
+<code>com.google.android.c2dm.intent.RECEIVE</code> intent with the
+extra <code>message_type</code>, for which the value is always the string
+"deleted_messages".</p>
+
<p>The application should respond by syncing with the server to recover the
discarded messages. </p>
diff --git a/docs/html/google/gcm/client.jd b/docs/html/google/gcm/client.jd
index df357a2..ee764ef 100644
--- a/docs/html/google/gcm/client.jd
+++ b/docs/html/google/gcm/client.jd
@@ -416,15 +416,18 @@
}
}.execute(null, null, null);
...
- /**
- * Sends the registration ID to your server over HTTP, so it can use GCM/HTTP
- * or CCS to send messages to your app. Not needed for this demo since the
- * device sends upstream messages to a server that echoes back the message
- * using the 'from' address in the message.
- */
- private void sendRegistrationIdToBackend() {
- // Your implementation here.
- }
+}</pre>
+
+<p>Once you've received your registration ID, send it to your server:</p>
+<pre>
+/**
+ * Sends the registration ID to your server over HTTP, so it can use GCM/HTTP
+ * or CCS to send messages to your app. Not needed for this demo since the
+ * device sends upstream messages to a server that echoes back the message
+ * using the 'from' address in the message.
+ */
+private void sendRegistrationIdToBackend() {
+ // Your implementation here.
}</pre>
<p>After registering, the app calls {@code storeRegistrationId()} to store the
@@ -660,4 +663,3 @@
<p class="note"><strong>Note:</strong> Stats on the Google API Console are not
enabled for GCM. You must use the <a href="http://play.google.com/apps/publish">Developer Console</a>.</p>
-
diff --git a/docs/html/google/gcm/gcm.jd b/docs/html/google/gcm/gcm.jd
index 3c80b5f..88bf659 100644
--- a/docs/html/google/gcm/gcm.jd
+++ b/docs/html/google/gcm/gcm.jd
@@ -104,7 +104,7 @@
<th colspan="2">Credentials</th>
</tr>
<tr>
- <td><strong>Sender ID</strong></td>
+ <td id="senderid"><strong>Sender ID</strong></td>
<td>A project number you acquire from the API console, as described in
<a href="gs.html#create-proj">Getting Started</a>. The sender
ID is used in the <a href="#register">registration process</a> to identify a
@@ -140,7 +140,7 @@
account if the device is running a version lower than Android 4.0.4.</td>
</tr>
<tr>
- <td><strong>Sender Auth Token</strong></td>
+ <td id="apikey"><strong>Sender Auth Token</strong></td>
<td>An API key that is saved on the 3rd-party application
server that gives the application server authorized access to Google services.
The API key is included in the header of POST requests that send messages.</td>
diff --git a/docs/html/google/gcm/gs.jd b/docs/html/google/gcm/gs.jd
index f6b7ebe..8bc1936 100644
--- a/docs/html/google/gcm/gs.jd
+++ b/docs/html/google/gcm/gs.jd
@@ -18,7 +18,8 @@
<h2>See Also</h2>
<ol class="toc">
-<li><a href="https://code.google.com/apis/console">Google APIs Console page</a></li>
+<li><a href="https://cloud.google.com/console">Google Cloud Console</a></li>
+<li><a href="https://developers.google.com/console/help/new/">Google Cloud Console Help</a></li>
<li><a href="https://services.google.com/fb/forms/gcm/" class="external-link" target="_android">CCS and User Notifications Signup Form</a></li>
</ol>
@@ -32,66 +33,55 @@
<a href="{@docRoot}reference/com/google/android/gms/gcm/GoogleCloudMessaging.html">
{@code GoogleCloudMessaging}</a> methods.</p>
-
<h2 id="create-proj">Creating a Google API project</h2>
<p>To create a Google API project:</p>
<ol>
- <li>Open the <a href="https://code.google.com/apis/console">Google APIs Console page</a>.
+ <li>Open the <a href="https://cloud.google.com/console">Google Developers Console</a>.
</li>
- <li>If you haven't created an API project yet, this page will prompt you to do so:
- <p><img src="{@docRoot}images/gcm/gcm-create-api-proj.png" class="screenshot" /></p>
-<p class="note"><strong>Note:</strong> If you already have existing projects,
-the first page you see will be the <strong>Dashboard</strong> page. From there
-you can create a new project by opening the project drop-down menu (upper left corner)
-and choosing <strong>Other projects > Create</strong>.</p></li>
- <li> Click <strong>Create project</strong>.
- Your browser URL will change to something like:</li>
+ <li>If you haven't created an API project yet, click <strong>Create Project</strong>.</li>
-<pre> https://code.google.com/apis/console/#project:<strong>4815162342</strong></pre>
+ <li>Supply a project name and click <strong>Create</strong>.
- <li> Take note of the value after <code>#project:</code> (4815162342 in this
-example). This is your project number, and it will be used later on as the GCM sender ID.</li>
+<p>Once the project has been created, a page appears that displays your project ID and
+project number. For example, <strong>Project Number: 670330094152</strong>.</p></li>
+
+ <li>Copy down your project number. You will use it later on as the
+ <a href="{@docRoot}google/gcm/gcm.html#senderid">GCM sender ID</a>.</li>
</ol>
<h2 id="gcm-service">Enabling the GCM Service</h2>
<p>To enable the GCM service:</p>
<ol>
- <li> In the main Google APIs Console page, select <strong>Services</strong>.</li>
- <li>Turn the <strong>Google Cloud Messaging</strong> toggle to ON.</li>
- <li>In the Terms of Service page, accept the terms.
- </li>
+ <li>In the sidebar on the left, select <strong>APIs & auth</strong>. </li>
+ <li>In the displayed list of APIs, turn the <strong>Google Cloud Messaging for Android
+ </strong> toggle to ON.</li>
+
</ol>
<h2 id="access-key">Obtaining an API Key</h2>
<p>To obtain an API key:</p>
<ol>
- <li> In the main Google APIs Console page, select <strong>API Access</strong>.
-You will see a screen that resembles the following:</li>
+ <li>In the sidebar on the left, select <strong>APIs & auth > Credentials</strong>.</li>
+ <li>Under <strong>Public API access</strong>, click <strong>Create new key</strong>.</li>
-<img src="{@docRoot}images/gcm/gcm-api-access.png" style="width:400px;padding:4px;">
+<li>In the <strong>Create a new key</strong> dialog, click <strong>Android key</strong>.</li>
- <li>Click <strong>Create new Server key</strong>. Either a server key or a
-browser key should work. The advantage to using a server key is that it allows
-you to whitelist IP addresses. The following screen appears:</li>
+<li>In the resulting configuration dialog, supply one SHA1 fingerprint and
+the package name for your app, separated by a semicolon. For example,
+{@code 45:B5:E4:6F:36:AD:0A:98:94:B4:02:66:2B:12:17:F2:56:26:A0:E0;com.myexample}.
+<p>To get the value for the SHA1 fingerprint, follow the instructions in the
+<a href="http://developers.google.com/console/help/new/#installedapplications">console
+help</a>.</p></li>
+<li>Click <strong>Create</strong>.</li>
+<li>In the refreshed page, copy the
+<a href="{@docRoot}google/gcm/gcm.html#apikey">API key</a>.
+You will need the API key later on to perform authentication in your application server.</li>
-<img src="{@docRoot}images/gcm/gcm-config-server-key.png" style="width:400px;padding:4px;">
-
-
- <li>Click <strong>Create</strong>:</li>
-
-
-<img src="{@docRoot}images/gcm/gcm-api-key.png" style="width:400px;padding:4px;">
-
-
-
-</ol>
-<p> Take note of the <strong>API key</strong> value (<code>YourKeyWillBeShownHere</code>)
-in this example, as it will be used later on.</p>
<p class="note"><strong>Note:</strong> If you need to rotate the key, click
-<strong>Generate new key</strong>. A new key will be created while the old one
-will still be active for up to 24 hours. If you want to get rid of the old key
-immediately (for example, if you feel it was compromised), click <strong>Delete key</strong>.</p>
+<strong>Regenerate key</strong>. A new key will be created. If you think the key has been
+compromised and you want to delete it immediately, click <strong>Delete</strong>.</p>
+</ol>
<h2 id="next">Next Steps</h2>
@@ -113,4 +103,3 @@
on a device. See <a href="client.html">Implementing GCM Client</a> for more information.</li>
</ol>
-
diff --git a/docs/html/google/gcm/server.jd b/docs/html/google/gcm/server.jd
index b5e6b48..7ba1bd5 100644
--- a/docs/html/google/gcm/server.jd
+++ b/docs/html/google/gcm/server.jd
@@ -134,7 +134,7 @@
<li>When the device is online, Google sends the message to the device.</li>
<li>On the device, the system broadcasts the message to the specified Android
application via Intent broadcast with proper permissions, so that only the targeted
-ndroid application gets the message. This wakes the Android application up.
+Android application gets the message. This wakes the Android application up.
The Android application does not need to be running beforehand to receive the message.</li>
<li>The Android application processes the message. </li>
</ol>
@@ -146,7 +146,7 @@
<p>Required. When your app server sends a message in GCM, it must specify a target.</p>
<p>For HTTP you must specify the target as one of:</p>
<ul>
-<li><code>registration_ids</code>: For sending to 1 more more devices (up to 1000).
+<li><code>registration_ids</code>: For sending to 1 or more devices (up to 1000).
When you send a message to multiple registration IDs, that is called a multicast message.</li>
<li><code>notification_key</code>: For sending to multiple devices owned by a single user.</li>
</ul>
diff --git a/docs/html/google/google_toc.cs b/docs/html/google/google_toc.cs
index 2ded286..c57cf97 100644
--- a/docs/html/google/google_toc.cs
+++ b/docs/html/google/google_toc.cs
@@ -41,6 +41,11 @@
</a></div>
</li>
<li class="nav-section">
+ <div class="nav-section-header empty"><a href="<?cs var:toroot?>google/play-services/drive.html">
+ <span class="en">Drive</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
<div class="nav-section-header"><a href="<?cs var:toroot ?>google/play-services/ads.html">
<span class="en">Ads</span></a>
</div>
diff --git a/docs/html/google/index.jd b/docs/html/google/index.jd
index 37a35fc..b743b66 100644
--- a/docs/html/google/index.jd
+++ b/docs/html/google/index.jd
@@ -30,7 +30,7 @@
cloud messaging.</p>
<p>Although these Google services are not included in the Android platform, they are
supported by most Android-powered devices. When using these services, you can
- distribute your app on Google Play to all devices running Android 2.2
+ distribute your app on Google Play to all devices running Android 2.3
or higher, and some services support even more devices.</p>
</div>
</div>
diff --git a/docs/html/google/play-services/ads.jd b/docs/html/google/play-services/ads.jd
index c666ce9..18579c7 100644
--- a/docs/html/google/play-services/ads.jd
+++ b/docs/html/google/play-services/ads.jd
@@ -41,12 +41,17 @@
APK. </p>
<h4>Monetize your apps</h4>
- <p>Connect with over a million Google advertisers and show relevant ads in your
- app. Users engage with the ads, you make money.
+ <p>Connect with over a million Google advertisers and show relevant ads in your app. Users
+ engage with the ads, you make money. The Google Mobile Ads SDK fully supports AdMob,
+ DoubleClick for Publishers, DoubleClick Ad Exchange, and Search Ads for Mobile Apps.
<br>
<a href="http://www.google.com/ads/admob/monetize.html" class="external-link">Learn more
and sign up</a>.</p>
+ <h4>Location-based ads</h4>
+ <p>You can use the publisher-provided location API to provide Google with the location when
+ requesting ads. Location-based ads can improve your app monetization.</p>
+
<h4>Innovative ads</h4>
<p>Choose from a range of ads across mobile devices and tablets, including interactive
ad units.</p>
@@ -60,8 +65,8 @@
<h3 style="clear:left">Getting Started</h3>
<h4>1. Get the Google Play services SDK</h4>
<p>The Google Mobile Ads APIs are part of the Google Play services platform.</p>
- <p>To get started, <a href="{@docRoot}google/play-services/setup.html">set up</a>
- the Google Play services SDK.</p>
+ <p>To get started, <a href="{@docRoot}google/play-services/setup.html">set up
+ the Google Play services SDK</a>.</p>
<h4>2. Run the sample</h4>
<p>Once you've installed the Google Play services package, the Google Mobile Ads sample is located
@@ -79,7 +84,5 @@
<p>Detailed documentation for Google Mobile Ads for Android is available with the rest of the Google
Mobile Ads developer documents at <a href="https://developers.google.com/mobile-ads-sdk"
class="external-link">developers.google.com/mobile-ads-sdk</a>. </p>
- <p class="note"><strong>Note</strong>: The SDK doesn’t currently support DFP, Ad Exchange or Search
- Ads for Mobile Apps but support is coming soon.</p>
</div>
-</div>
\ No newline at end of file
+</div>
diff --git a/docs/html/google/play-services/drive.jd b/docs/html/google/play-services/drive.jd
new file mode 100644
index 0000000..239b652
--- /dev/null
+++ b/docs/html/google/play-services/drive.jd
@@ -0,0 +1,147 @@
+page.title=Google Drive Android API
+page.tags="storage","files","cloud"
+header.hide=1
+
+@jd:body
+
+ <div class="landing-banner">
+ <div class="col-6">
+ <img src="{@docRoot}images/google/gps-drive.png" alt="">
+ </div>
+
+ <div class="col-6">
+ <h1 itemprop="name" style="margin-bottom:0;">
+ Google Drive Android API
+ </h1>
+
+ <p itemprop="description">
+ Give your users access to their files, wherever they are, on any device.
+ The Google Drive Android API makes it easier than ever to use Drive to
+ store and sync user’s files between their mobile devices and the cloud.
+ Simply use Drive like local file storage and the API will handle the
+ syncing for you.
+ </p>
+
+ <p>
+ Explore the <a href=
+ "{@docRoot}reference/com/google/android/gms/drive/package-summary.html">Google
+ Drive Android API reference</a> or visit <a href=
+ "http://developers.google.com/drive/android">developers.google.com/drive/android</a>
+ for more information about integrating Google Drive into your app.
+ </p>
+ </div>
+ </div>
+
+ <div class="landing-docs">
+ <div class="col-6 normal-links">
+ <h3 style="clear:left">
+ Key Developer Features
+ </h3>
+
+ <h4>
+ Automatic syncing
+ </h4>
+
+ <p>
+ The Google Drive Android API uses the local device storage to create,
+ edit, and open files, then syncs them automatically when the device
+ is connected to the Internet. If a user requests a file that isn’t
+ already cached on the device, the Drive service downloads the file
+ the next time the device connects.<br>
+ <a href="http://developers.google.com/drive/android/files" class=
+ "external-link">Open a file</a>
+ </p>
+
+ <h4>
+ User interface components
+ </h4>
+
+ <p>
+ Building your own user interface for selecting or creating files is a
+ thing of the past. The Drive API includes activity builders for two
+ of the most common user activities: opening files and creating
+ files.<br>
+ <a href="http://developers.google.com/drive/android/create-file"
+ class="external-link">Create a file</a>
+ </p>
+
+ <h4>
+ Easily search for files
+ </h4>
+
+ <p>
+ The query builder allows you to easily construct a query by joining
+ together multiple parameters and filtering based on metadata. This
+ allows you to easily display only relevant files, such as files
+ shared with the user or files with a specific MIME type.<br>
+ <a class="external-link" href=
+ "http://developers.google.com/drive/android/queries">Query for a
+ file</a>
+ </p>
+ </div>
+
+ <div class="col-6 normal-links">
+ <h3 style="clear:left">
+ Getting Started
+ </h3>
+
+ <h4>
+ 1. Get the Google Play services SDK
+ </h4>
+
+ <p>
+ The Google Drive Android API is part of the Google Play services
+ platform.
+ </p>
+
+ <p>
+ To get started, <a href=
+ "{@docRoot}google/play-services/setup.html">set up the Google Play
+ services SDK</a>.
+ </p>
+
+ <h4>
+ 2. Run the sample
+ </h4>
+
+ <p>
+ Once you’ve set up the Google Play services SDK, you can run the
+ Google Drive sample located in
+ <code><android-sdk>/extras/google-play-services/samples/drive</code>.
+ However, before you can run the sample, you need to register your app
+ in the Google Developers Console.
+ </p>
+
+ <p>
+ See <a class="external-link" href=
+ "http://developers.google.com/drive/android/get-started">Getting
+ Started guide</a> to learn how to get up and running with the Google
+ Drive Android API.
+ </p>
+
+ <h4>
+ 3. Read the documentation
+ </h4>
+
+ <p>
+ For quick access while developing your Android apps, the <a href=
+ "{@docRoot}reference/com/google/android/gms/drive/package-summary.html">
+ Google Drive API reference</a> is available here on
+ developer.android.com.
+ </p>
+
+ <p>
+ Detailed documentation for the Google Drive Android API is available
+ with the rest of the Google Drive Platform documentation at <a class=
+ "external-link" href=
+ "https://developers.google.com/drive/android">developers.google.com/drive</a>.
+ </p>
+ <p class="caution">
+ The Google Drive Android API is currently in <strong>developer
+ preview</strong>. Applications compiled using this version of the API will
+ continue to operate on devices using future versions of Google Play services;
+ however, changes to the API are expected in future releases.
+ </p>
+ </div>
+ </div>
+
\ No newline at end of file
diff --git a/docs/html/google/play-services/games.jd b/docs/html/google/play-services/games.jd
index ccd6866..cf97d05 100644
--- a/docs/html/google/play-services/games.jd
+++ b/docs/html/google/play-services/games.jd
@@ -49,12 +49,13 @@
class="external-link" href="https://developers.google.com/games/services/android/cloudsave">Save
game data to the cloud</a></p>
- <h4>Create real-time multiplayer games</h4>
- <p>Make your game more dynamic by letting multiple players compete or cooperate simultaneously.
- You can use Google Play game services to invite game participants or auto-match players
- anonymously, and exchange data between game clients. <br /><a class="external-link"
- href="https://developers.google.com/games/services/android/multiplayer">Develop real-time
- multiplayer games</a></p>
+ <h4>Create real-time and turn-based multiplayer games</h4>
+ <p>Make your game more dynamic with simultaneous or asynchronous gameplay.
+ Use the multiplayer APIs to send match invitations, auto-match players
+ anonymously, and exchange data between game clients. <br />Develop <a class="external-link"
+ href="https://developers.google.com/games/services/android/multiplayer">real-time
+ multiplayer</a> and <a class="external-link"
+ href="https://developers.google.com/games/services/android/turnbasedMultiplayer">turn-based multiplayer</a> games</p>
</div>
@@ -62,8 +63,8 @@
<h3 style="clear:left">Getting Started</h3>
<h4>1. Get the Google Play services SDK</h4>
<p>Google Play game services is part of the Google Play services platform.</p>
- <p>To use game services, <a href="{@docRoot}google/play-services/setup.html">set up</a>
- the Google Play services SDK. Then, see the <a class="external-link"
+ <p>To use game services, <a href="{@docRoot}google/play-services/setup.html">set up
+ the Google Play services SDK</a>. Then, see the <a class="external-link"
href="https://developers.google.com/games/services/android/quickstart">
Getting Started guide</a> to set up your app.
</p>
diff --git a/docs/html/google/play-services/id.jd b/docs/html/google/play-services/id.jd
index 664c6e6..466dfef 100644
--- a/docs/html/google/play-services/id.jd
+++ b/docs/html/google/play-services/id.jd
@@ -41,8 +41,8 @@
<h3 style="clear:left">Getting Started</h3>
<h4>1. Get the Google Play services SDK</h4>
<p>The advertising ID APIs are part of the Google Play services platform.</p>
- <p>To get started, <a href="{@docRoot}google/play-services/setup.html">set up</a>
- the Google Play services SDK. </p>
+ <p>To get started, <a href="{@docRoot}google/play-services/setup.html">set up
+ the Google Play services SDK</a>. </p>
<h4>2. Read the docs and example code</h4>
<p>Once you've installed the Google Play services package, review the <a href="#get_started">overview</a>
diff --git a/docs/html/google/play-services/index.jd b/docs/html/google/play-services/index.jd
index 82167bc..b4c2cbd 100644
--- a/docs/html/google/play-services/index.jd
+++ b/docs/html/google/play-services/index.jd
@@ -47,8 +47,8 @@
<div class="layout-content-col span-4">
<h4>Automatic Updates</h4>
-<p>Devices running Android 2.2 and newer and that have the Google Play Store
-app automatically receive updates to Google Play services. Enhance
+<p>Devices running Android 2.3 or higher that have the Google Play Store
+app will automatically receive updates to Google Play services. Enhance
your app with the most recent version of Google Play services without worrying
about your users' Android version.</p>
@@ -97,9 +97,9 @@
<p>
The Google Play services APK is delivered through the Google Play Store, so
updates to the services are not dependent on carrier or OEM system image updates. In general, devices
- running Android 2.2 (Froyo) or later and have the Google Play Store app installed receive updates within a
+ running Android 2.3 (Gingerbread) or later and have the Google Play Store app installed receive updates within a
few days. This allows you to use the newest APIs in Google Play services and reach most of the
- devices in the Android ecosystem (devices older than Android 2.2 or devices without the Google
+ devices in the Android ecosystem (devices older than Android 2.3 or devices without the Google
Play Store app are not supported).
</p>
</div>
diff --git a/docs/html/google/play-services/maps.jd b/docs/html/google/play-services/maps.jd
index 965444a..b611f36 100644
--- a/docs/html/google/play-services/maps.jd
+++ b/docs/html/google/play-services/maps.jd
@@ -60,8 +60,8 @@
<h3 style="clear:left">Getting Started</h3>
<h4>1. Get the Google Play services SDK</h4>
<p>The Google Maps Android APIs are part of the Google Play services platform.</p>
- <p>To use Google Maps, <a href="{@docRoot}google/play-services/setup.html">set up</a>
- the Google Play services SDK. Then see the <a class="external-link"
+ <p>To use Google Maps, <a href="{@docRoot}google/play-services/setup.html">set up
+ the Google Play services SDK</a>. Then see the <a class="external-link"
href="https://developers.google.com/maps/documentation/android/start#installing_the_google_maps_android_v2_api">
Getting Started guide</a> to get your API key for Maps and set up your app.
</p>
diff --git a/docs/html/google/play-services/plus.jd b/docs/html/google/play-services/plus.jd
index e126dad..1650ec2 100644
--- a/docs/html/google/play-services/plus.jd
+++ b/docs/html/google/play-services/plus.jd
@@ -61,8 +61,8 @@
<h3 style="clear:left">Getting Started</h3>
<h4>1. Get the Google Play services SDK</h4>
<p>The Google+ Android APIs are part of the Google Play services platform.</p>
- <p>To get started, <a href="{@docRoot}google/play-services/setup.html">set up</a>
- the Google Play services SDK.
+ <p>To get started, <a href="{@docRoot}google/play-services/setup.html">set up
+ the Google Play services SDK</a>.
</p>
<h4>2. Run the sample</h4>
diff --git a/docs/html/google/play-services/setup.jd b/docs/html/google/play-services/setup.jd
index 5c8c63b..fb5daf8 100644
--- a/docs/html/google/play-services/setup.jd
+++ b/docs/html/google/play-services/setup.jd
@@ -92,7 +92,10 @@
<p><b>Using Android Studio:</b></p>
<ol>
- <li>Open the <code>build.gradle</code> file inside your application directory.</li>
+ <li>Open the <code>build.gradle</code> file inside your application module directory.
+ <p class="note"><strong>Note:</strong> Android Studio projects contain a top-level
+ <code>build.gradle</code> file and a <code>build.gradle</code> file for each module.
+ Be sure to edit the file for your application module.</p></li>
<li>Add a new build rule under <code>dependencies</code> for the latest version of
<code>play-services</code>. For example:
<pre class="no-pretty-print">
@@ -169,7 +172,7 @@
-keepnames @com.google.android.gms.common.annotation.KeepName class *
-keepclassmembernames class * {
- @ccom.google.android.gms.common.annotation.KeepName *;
+ @com.google.android.gms.common.annotation.KeepName *;
}
-keepnames class * implements android.os.Parcelable {
@@ -190,7 +193,7 @@
<p>As described in the <a href="{@docRoot}google/play-services/index.html">Google Play services
introduction</a>, Google Play delivers service updates for users on
-Android 2.2 through the Google Play Store app. However, updates might not reach
+Android 2.3 through the Google Play Store app. However, updates might not reach
all users immediately.</p>
<p class="caution">
diff --git a/docs/html/google/play-services/wallet.jd b/docs/html/google/play-services/wallet.jd
index b9b98d9..6c0dd4c 100644
--- a/docs/html/google/play-services/wallet.jd
+++ b/docs/html/google/play-services/wallet.jd
@@ -61,8 +61,8 @@
<h3 style="clear:left">Getting Started</h3>
<h4>1. Get the Google Play services SDK</h4>
<p>The Google Wallet Android APIs are part of the Google Play services platform.</p>
- <p>To get started, <a href="{@docRoot}google/play-services/setup.html">set up</a>
- the Google Play services SDK. Then see the <a class="external-link"
+ <p>To get started, <a href="{@docRoot}google/play-services/setup.html">set up
+ the Google Play services SDK</a>. Then see the <a class="external-link"
href="https://developers.google.com/commerce/wallet/instant-buy/android/tutorial">tutorial</a>
to learn how to set up your app.
</p>
diff --git a/docs/html/google/play/billing/billing_admin.jd b/docs/html/google/play/billing/billing_admin.jd
index f1e4ec4..46ad905 100644
--- a/docs/html/google/play/billing/billing_admin.jd
+++ b/docs/html/google/play/billing/billing_admin.jd
@@ -97,8 +97,8 @@
<ol>
<li><a href="http://play.google.com/apps/publish">Log in</a> to your publisher account.</li>
- <li>In the <strong>All Google Play listings</strong> panel, under the application name, click
- <strong>In-app Products</strong>.</li>
+ <li>In the <strong>All Applications</strong> panel, click on the
+ app name, then select <strong>In-app Products</strong>.</li>
<li>Click <strong>Add new product</strong> (see figure 2) and provide details about the item you are
selling and then click <strong>Save</strong> or <strong>Publish</strong>.</li>
</ol>
@@ -153,8 +153,7 @@
</li>
<li><strong>Description</strong>
<p>The description is a long descriptor for the item. For example, "Instantly puts creatures to
- sleep. Does not work on angry elves." Every item must have a description. The description is
- visible to users during checkout. Descriptions can be up to 80 characters in length.</p>
+ sleep. Does not work on angry elves." Every item must have a description. Descriptions can be up to 80 characters in length.</p>
</li>
<li><strong>Price</strong>
<p>You must provide a default price in your home currency. You can also provide prices in other
@@ -363,10 +362,11 @@
<ol>
<li><a href="http://play.google.com/apps/publish">Log in</a> to your publisher account.</li>
- <li>In the <strong>All Google Play listings</strong> panel, under the application name, click
- <strong>In-app Products</strong>.</li>
- <li>On the In-app Products List page, click <strong>Choose File</strong> and select your CSV
-file.
+ <li>In the <strong>All Applications</strong> panel, click on the app
+ name, then select <strong>In-app Products</strong>.</li>
+ <li>On the In-app Products List page, click <strong>Import/Export</strong>
+ > <strong>Import in-app products from CSV file</strong>, then select your
+ CSV file.
<p>The CSV file must be on your local computer or on a local disk that is connected to your
computer.</p>
</li>
@@ -377,7 +377,6 @@
Overwriting does not delete items that are on a product list but not present in the CSV
file.</p>
</li>
- <li>On the In-app Products List page, click <strong>Import from CSV</strong>.</li>
</ol>
<p>You can also export an existing product list to a CSV file by clicking <strong>Export to CSV
@@ -471,9 +470,8 @@
<ol>
<li><a href="http://play.google.com/apps/publish">Log in</a> to your publisher account.</li>
- <li>Click the <strong>Settings</strong> icon. (If you are using the old Developer Console UI, click
- <strong>Edit profile</strong> in the upper left part of the page, under your name,)</li>
- <li>Locate the License Testing panel. (In the old UI, scroll down to the Licensing & In-app Billing panel.)</li>
+ <li>Click the <strong>Settings</strong> icon.</li>
+ <li>Locate the License Testing panel.</li>
<li>Add the email addresses for the test accounts you want to register,
separating each account with a comma.</li>
<li>Click <strong>Save</strong> to save your profile changes.</li>
@@ -481,18 +479,24 @@
<h3 id="license_key">Getting an app's license key</h3>
-<p>The Google Play Developer Console provides a public licensing key for each app. To get the key for an app,
-load the app's publishing details in the Developer Console and click the <strong>Settings</strong> icon. The key
-for the app is available for copy/paste in License Key for this Application field, as shown in the figure below.</p>
-
-<p>Previously, the Developer Console provided a single public key per developer account. To transition apps to the
-new per-app public key, the Developer Console set the app-specific key as the former developer key. This ensures
-compatibility for apps that depend on the (former) developer key. </p>
+<p>The Google Play Developer Console provides a public licensing key for each
+app. To get the key for an app, follow these steps:</p>
+<ol>
+ <li>Open the <strong>All Applications</strong> panel.</li>
+ <li>Click on the app name, then select <strong>Services & APIs</strong>.</li>
+ <li>Scroll down to the <strong>Your License Key for this Application</strong>
+field to locate the key for the app, as shown in the figure below.</li>
+</ol>
+<p>Previously, the Developer Console provided a single public key per developer
+account. To transition apps to the new per-app public key, the Developer Console
+set the app-specific key as the former developer key. This ensures compatibility
+for apps that depend on the (former) developer key. </p>
<div style="margin:1em;">
<img style="border:1px solid #ddd;padding-bottom:.5em" src="{@docRoot}images/in-app-billing/billing_app_key.png" xheight="510" id="figure4" />
<p class="img-caption" style="padding-left:.5em;">
- <strong>Figure 4.</strong> You can find the license key for each app in the <strong>Services & APIs</strong> panel.
+ <strong>Figure 4.</strong> You can find the license key for each app in the
+ <strong>Services & APIs</strong> panel.
</p>
</div>
diff --git a/docs/html/google/play/billing/billing_integrate.jd b/docs/html/google/play/billing/billing_integrate.jd
index 57227a8..dba43cd 100644
--- a/docs/html/google/play/billing/billing_integrate.jd
+++ b/docs/html/google/play/billing/billing_integrate.jd
@@ -157,7 +157,7 @@
@Override
public void onDestroy() {
super.onDestroy();
- if (mServiceConn != null) {
+ if (mService != null) {
unbindService(mServiceConn);
}
}
@@ -174,7 +174,7 @@
<h3 id="QueryDetails">Querying for Items Available for Purchase</h3>
<p>In your application, you can query the item details from Google Play using the In-app Billing Version 3 API. To pass a request to the In-app Billing service, first create a {@link android.os.Bundle} that contains a String {@link java.util.ArrayList} of product IDs with key "ITEM_ID_LIST", where each string is a product ID for an purchasable item.</p>
<pre>
-ArrayList<String> skuList = new ArrayList<String>();
+ArrayList<String> skuList = new ArrayList<String> ();
skuList.add("premiumUpgrade");
skuList.add("gas");
Bundle querySkus = new Bundle();
@@ -196,7 +196,7 @@
<pre>
int response = skuDetails.getInt("RESPONSE_CODE");
if (response == 0) {
- ArrayList<String> responseList
+ ArrayList<String> responseList
= skuDetails.getStringArrayList("DETAILS_LIST");
for (String thisResponse : responseList) {
@@ -282,11 +282,11 @@
<pre>
int response = ownedItems.getInt("RESPONSE_CODE");
if (response == 0) {
- ArrayList<String> ownedSkus =
+ ArrayList<String> ownedSkus =
ownedItems.getStringArrayList("INAPP_PURCHASE_ITEM_LIST");
- ArrayList<String> purchaseDataList =
+ ArrayList<String> purchaseDataList =
ownedItems.getStringArrayList("INAPP_PURCHASE_DATA_LIST");
- ArrayList<String> signatureList =
+ ArrayList<String> signatureList =
ownedItems.getStringArrayList("INAPP_DATA_SIGNATURE");
String continuationToken =
ownedItems.getString("INAPP_CONTINUATION_TOKEN");
diff --git a/docs/html/google/play/billing/billing_overview.jd b/docs/html/google/play/billing/billing_overview.jd
index 581c648..301d911 100644
--- a/docs/html/google/play/billing/billing_overview.jd
+++ b/docs/html/google/play/billing/billing_overview.jd
@@ -130,13 +130,6 @@
number, the order date and time, and the price paid. At no point does your
application have to handle any financial transactions; that role is provided by
Google Play.</p>
-<img src="{@docRoot}images/in-app-billing/v3/iab_v3_checkout_flow.png" height="382" id="figure1" />
-<p class="img-caption">
- <strong>Figure 1.</strong> Applications initiate In-app Billing requests
-through their own UI (first screen). Google Play responds to the request by
-providing the checkout user interface (middle screen). When checkout is
-complete, the application resumes.
-</p>
<h2 id="samples">Sample Application</h2>
<p>To help you integrate In-app Billing into your application, the Android SDK
diff --git a/docs/html/google/play/billing/billing_testing.jd b/docs/html/google/play/billing/billing_testing.jd
index 42b6d65..9d1964a 100644
--- a/docs/html/google/play/billing/billing_testing.jd
+++ b/docs/html/google/play/billing/billing_testing.jd
@@ -82,10 +82,10 @@
APK itself. For example, you can publish your in-app items while your APK is
still a draft. </p>
-<p>Next, create license test accounts for authorized users. In the Developer
+<p>Next, create license test accounts for authorized users. In the Developer
Console, go to <strong>Settings</strong> > <strong>Account details</strong>,
then in the License Testing section, add the addresses to <strong>Gmail accounts
-with testing status</strong>. For more information, see <a
+with testing access</strong> field. For more information, see <a
href="#billing-testing-test">Setting Up for Test Purchases</a>.</p>
<p>Once you’ve added the users as license tester accounts and saved the change,
diff --git a/docs/html/google/play/billing/gp-purchase-status-api.jd b/docs/html/google/play/billing/gp-purchase-status-api.jd
index 4d80680..4cfacee 100644
--- a/docs/html/google/play/billing/gp-purchase-status-api.jd
+++ b/docs/html/google/play/billing/gp-purchase-status-api.jd
@@ -58,7 +58,7 @@
<p>The Purchase Status API is part of the <a
href="https://developers.google.com/android-publisher/v1_1/">Google Play Android
-Developer API v1.1</a>, available through the Google Cloud Console. The new version
+Developer API v1.1</a>, available through the Google Developers Console. The new version
of the API supersedes the v1 API, which is deprecated. If you are using the v1
API, please migrate your operations to the v1.1 API as soon as possible.</p>
@@ -66,7 +66,7 @@
<h2 id="using">Using the API</h2>
<p>To use the API, you must first register a project at the <a
-href="https://cloud.google.com/console">Google Cloud Console</a> and receive
+href="https://cloud.google.com/console">Google Developers Console</a> and receive
a Client ID and shared secret that your app will present when calling the
API. All calls are authenticated with OAuth 2.0.</p>
@@ -95,7 +95,8 @@
<p>If you need to request a higher limit for your application, see the
instructions in the <a
-href="https://developers.google.com/console/help/new/#trafficcontrols">Google Cloud Console Help</a>.
+href="https://developers.google.com/console/help/new/#trafficcontrols">Google Developers
+Console Help</a>.
Also, please read the section below on design best practices for minimizing your
use of the API.</p>
diff --git a/docs/html/google/play/billing/v2/api.jd b/docs/html/google/play/billing/v2/api.jd
index 7e386a2..9501555 100644
--- a/docs/html/google/play/billing/v2/api.jd
+++ b/docs/html/google/play/billing/v2/api.jd
@@ -32,14 +32,6 @@
asynchronous and uses service messages sent as broadcast intents, so
it is more complicated than Version 3. </p>
-<p>Version 2 supports both unmanaged and managed products, as well as supports
-subscriptions, where Version 3 does not yet offer support for subscriptions. If
-you want to sell subscriptions in your app, you should implement In-app Billing
-Version 2, rather than Version 3. </p>
-
-<p>If you do not need to sell subscriptions, you
-should implement In-app Billing Version 3 instead.</p>
-
<h2 id="billing-types">Product Types</h2>
<p>In-app Billing Version supports three different product types
@@ -500,11 +492,8 @@
<li>In-app billing can be implemented only in applications that you publish through Google
Play.</li>
<li>You must have a Google Wallet Merchant account to use Google Play In-app Billing.</li>
- <li>In-app billing requires version 2.3.4 (or higher) of the Android Market application.
- To support subscriptions, version 3.5 or higher of the Google Play app is required. On devices
- running Android 3.0, version 5.0.12 (or higher) of the MyApps application is required.</li>
- <li>An application can use in-app billing only if the device is running Android 1.6 (API level 4)
- or higher.</li>
+ <li>To support subscriptions, version 3.5 or higher of the Google Play app is required. </li>
+ <li>In-app Billing requires Android 1.6 (API level 4) or higher.</li>
<li>You can use in-app billing to sell only digital content. You cannot use in-app billing to sell
physical goods, personal services, or anything that requires physical delivery.</li>
<li>Google Play does not provide any form of content delivery. You are responsible for
diff --git a/docs/html/google/play/publishing/multiple-apks.jd b/docs/html/google/play/publishing/multiple-apks.jd
index 3c7ed0f..ab08e6f 100644
--- a/docs/html/google/play/publishing/multiple-apks.jd
+++ b/docs/html/google/play/publishing/multiple-apks.jd
@@ -82,6 +82,7 @@
<ul>
<li>Support different OpenGL texture compression formats with each APK.</li>
<li>Support different screen sizes and densities with each APK.</li>
+ <li>Support different device feature sets with each APK.</li>
<li>Support different platform versions with each APK.</li>
<li>Support different CPU architectures with each APK (such as for ARM, x86, and MIPS, when your
app uses the <a href="{@docRoot}tools/sdk/ndk/index.html">Android NDK</a>).</li>
@@ -248,6 +249,17 @@
<br/>
</li>
+ <li><strong>Device feature sets</strong>
+ <p>This is based on your manifest file's <a
+href="{@docRoot}guide/topics/manifest/uses-feature-element.html">{@code <uses-feature>}</a>
+element(s).</p>
+ <p>For example, you can provide one APK for devices that support multitouch and another
+APK for devices that do not support multitouch. See
+<a href="{@docRoot}guide/topics/manifest/uses-feature-element.html#features-reference">Features
+Reference</a> for a list of features supported by the platform.</p>
+ <br/>
+ </li>
+
<li><strong>API level</strong>
<p>This is based on your manifest file's <a
href="{@docRoot}guide/topics/manifest/uses-sdk-element.html">{@code <uses-sdk>}</a> element.
diff --git a/docs/html/guide/components/fundamentals.jd b/docs/html/guide/components/fundamentals.jd
index ce50022..9ac063e 100644
--- a/docs/html/guide/components/fundamentals.jd
+++ b/docs/html/guide/components/fundamentals.jd
@@ -4,24 +4,9 @@
<div id="qv-wrapper">
<div id="qv">
-<h2>Quickview</h2>
-<ul>
- <li>Android applications are composed of one or more application components (activities,
-services, content providers, and broadcast receivers)</li>
- <li>Each component performs a different role in the overall application behavior, and each
-one can be activated individually (even by other applications)</li>
- <li>The manifest file must declare all components in the application and should also declare
-all application requirements, such as the minimum version of Android required and any hardware
-configurations required</li>
- <li>Non-code application resources (images, strings, layout files, etc.) should include
-alternatives for different device configurations (such as different strings for different
-languages and different layouts for different screen sizes)</li>
-</ul>
-
-
<h2>In this document</h2>
<ol>
-<li><a href="#Components">Application Components</a>
+<li><a href="#Components">App Components</a>
<ol>
<li><a href="#ActivatingComponents">Activating components</a></li>
</ol>
@@ -29,98 +14,91 @@
<li><a href="#Manifest">The Manifest File</a>
<ol>
<li><a href="#DeclaringComponents">Declaring components</a></li>
- <li><a href="#DeclaringRequirements">Declaring application requirements</a></li>
+ <li><a href="#DeclaringRequirements">Declaring app requirements</a></li>
</ol>
</li>
-<li><a href="#Resources">Application Resources</a></li>
+<li><a href="#Resources">App Resources</a></li>
</ol>
</div>
</div>
-<p>Android applications are written in the Java programming language. The Android SDK tools compile
-the code—along with any data and resource files—into an <i>Android package</i>, an
-archive file with an {@code .apk} suffix. All the code in a single {@code .apk} file is considered
-to be one application and is the file that Android-powered devices use to install the
-application.</p>
+<p>Android apps are written in the Java programming language. The Android SDK tools compile
+your code—along with any data and resource files—into an APK: an <i>Android package</i>,
+which is an archive file with an {@code .apk} suffix. One APK file contains all the contents
+of an Android app and is the file that Android-powered devices use to install the app.</p>
-<p>Once installed on a device, each Android application lives in its own security sandbox: </p>
+<p>Once installed on a device, each Android app lives in its own security sandbox: </p>
<ul>
- <li>The Android operating system is a multi-user Linux system in which each application is a
+ <li>The Android operating system is a multi-user Linux system in which each app is a
different user.</li>
-<li>By default, the system assigns each application a unique Linux user ID (the ID is used only by
-the system and is unknown to the application). The system sets permissions for all the files in an
-application so that only the user ID assigned to that application can access them. </li>
+<li>By default, the system assigns each app a unique Linux user ID (the ID is used only by
+the system and is unknown to the app). The system sets permissions for all the files in an
+app so that only the user ID assigned to that app can access them. </li>
-<li>Each process has its own virtual machine (VM), so an application's code runs in isolation from
-other applications.</li>
+<li>Each process has its own virtual machine (VM), so an app's code runs in isolation from
+other apps.</li>
-<li>By default, every application runs in its own Linux process. Android starts the process when any
-of the application's components need to be executed, then shuts down the process when it's no longer
-needed or when the system must recover memory for other applications.</li>
+<li>By default, every app runs in its own Linux process. Android starts the process when any
+of the app's components need to be executed, then shuts down the process when it's no longer
+needed or when the system must recover memory for other apps.</li>
</ul>
<p>In this way, the Android system implements the <em>principle of least privilege</em>. That is,
-each application, by default, has access only to the components that it requires to do its work and
-no more. This creates a very secure environment in which an application cannot access parts of
+each app, by default, has access only to the components that it requires to do its work and
+no more. This creates a very secure environment in which an app cannot access parts of
the system for which it is not given permission.</p>
-<p>However, there are ways for an application to share data with other applications and for an
-application to access system services:</p>
+<p>However, there are ways for an app to share data with other apps and for an
+app to access system services:</p>
<ul>
- <li>It's possible to arrange for two applications to share the same Linux user ID, in which case
-they are able to access each other's files. To conserve system resources, applications with the
+ <li>It's possible to arrange for two apps to share the same Linux user ID, in which case
+they are able to access each other's files. To conserve system resources, apps with the
same user ID can also arrange to run in the same Linux process and share the same VM (the
-applications must also be signed with the same certificate).</li>
- <li>An application can request permission to access device data such as the user's
+apps must also be signed with the same certificate).</li>
+ <li>An app can request permission to access device data such as the user's
contacts, SMS messages, the mountable storage (SD card), camera, Bluetooth, and more. All
-application permissions must be granted by the user at install time.</li>
+app permissions must be granted by the user at install time.</li>
</ul>
-<p>That covers the basics regarding how an Android application exists within the system. The rest of
+<p>That covers the basics regarding how an Android app exists within the system. The rest of
this document introduces you to:</p>
<ul>
- <li>The core framework components that define your application.</li>
+ <li>The core framework components that define your app.</li>
<li>The manifest file in which you declare components and required device features for your
-application.</li>
- <li>Resources that are separate from the application code and allow your application to
+app.</li>
+ <li>Resources that are separate from the app code and allow your app to
gracefully optimize its behavior for a variety of device configurations.</li>
</ul>
-<!--
-<p class="note"><strong>Tip:</strong> If you're new to Android development, we suggest that you
-follow the Beginner's Path link at the bottom of this page. For each document in the Application
-Fundamentals, the Beginner's Path points you to the document we suggest you read next, in order
-to get up to speed on the core Android concepts.</p>
--->
-<h2 id="Components">Application Components</h2>
+<h2 id="Components">App Components</h2>
-<p>Application components are the essential building blocks of an Android application. Each
-component is a different point through which the system can enter your application. Not all
+<p>App components are the essential building blocks of an Android app. Each
+component is a different point through which the system can enter your app. Not all
components are actual entry points for the user and some depend on each other, but each one exists
as its own entity and plays a specific role—each one is a unique building block that
-helps define your application's overall behavior.</p>
+helps define your app's overall behavior.</p>
-<p>There are four different types of application components. Each type serves a distinct purpose
+<p>There are four different types of app components. Each type serves a distinct purpose
and has a distinct lifecycle that defines how the component is created and destroyed.</p>
-<p>Here are the four types of application components:</p>
+<p>Here are the four types of app components:</p>
<dl>
<dt><b>Activities</b></dt>
<dd>An <i>activity</i> represents a single screen with a user interface. For example,
-an email application might have one activity that shows a list of new
+an email app might have one activity that shows a list of new
emails, another activity to compose an email, and another activity for reading emails. Although
-the activities work together to form a cohesive user experience in the email application, each one
-is independent of the others. As such, a different application can start any one of these
-activities (if the email application allows it). For example, a camera application can start the
-activity in the email application that composes new mail, in order for the user to share a picture.
+the activities work together to form a cohesive user experience in the email app, each one
+is independent of the others. As such, a different app can start any one of these
+activities (if the email app allows it). For example, a camera app can start the
+activity in the email app that composes new mail, in order for the user to share a picture.
<p>An activity is implemented as a subclass of {@link android.app.Activity} and you can learn more
about it in the <a href="{@docRoot}guide/components/activities.html">Activities</a>
@@ -133,7 +111,7 @@
<dd>A <i>service</i> is a component that runs in the background to perform long-running
operations or to perform work for remote processes. A service
does not provide a user interface. For example, a service might play music in the background while
-the user is in a different application, or it might fetch data over the network without
+the user is in a different app, or it might fetch data over the network without
blocking user interaction with an activity. Another component, such as an activity, can start the
service and let it run or bind to it in order to interact with it.
@@ -145,21 +123,21 @@
<dt><b>Content providers</b></dt>
-<dd>A <i>content provider</i> manages a shared set of application data. You can store the data in
+<dd>A <i>content provider</i> manages a shared set of app data. You can store the data in
the file system, an SQLite database, on the web, or any other persistent storage location your
-application can access. Through the content provider, other applications can query or even modify
+app can access. Through the content provider, other apps can query or even modify
the data (if the content provider allows it). For example, the Android system provides a content
-provider that manages the user's contact information. As such, any application with the proper
+provider that manages the user's contact information. As such, any app with the proper
permissions can query part of the content provider (such as {@link
android.provider.ContactsContract.Data}) to read and write information about a particular person.
<p>Content providers are also useful for reading and writing data that is private to your
-application and not shared. For example, the <a
-href="{@docRoot}resources/samples/NotePad/index.html">Note Pad</a> sample application uses a
+app and not shared. For example, the <a
+href="{@docRoot}resources/samples/NotePad/index.html">Note Pad</a> sample app uses a
content provider to save notes.</p>
<p>A content provider is implemented as a subclass of {@link android.content.ContentProvider}
-and must implement a standard set of APIs that enable other applications to perform
+and must implement a standard set of APIs that enable other apps to perform
transactions. For more information, see the <a
href="{@docRoot}guide/topics/providers/content-providers.html">Content Providers</a> developer
guide.</p>
@@ -171,7 +149,7 @@
<dd>A <i>broadcast receiver</i> is a component that responds to system-wide broadcast
announcements. Many broadcasts originate from the system—for example, a broadcast announcing
that the screen has turned off, the battery is low, or a picture was captured.
-Applications can also initiate broadcasts—for example, to let other applications know that
+Apps can also initiate broadcasts—for example, to let other apps know that
some data has been downloaded to the device and is available for them to use. Although broadcast
receivers don't display a user interface, they may <a
href="{@docRoot}guide/topics/ui/notifiers/notifications.html">create a status bar notification</a>
@@ -188,26 +166,26 @@
-<p>A unique aspect of the Android system design is that any application can start another
-application’s component. For example, if you want the user to capture a
-photo with the device camera, there's probably another application that does that and your
-application can use it, instead of developing an activity to capture a photo yourself. You don't
-need to incorporate or even link to the code from the camera application.
-Instead, you can simply start the activity in the camera application that captures a
-photo. When complete, the photo is even returned to your application so you can use it. To the user,
-it seems as if the camera is actually a part of your application.</p>
+<p>A unique aspect of the Android system design is that any app can start another
+app’s component. For example, if you want the user to capture a
+photo with the device camera, there's probably another app that does that and your
+app can use it, instead of developing an activity to capture a photo yourself. You don't
+need to incorporate or even link to the code from the camera app.
+Instead, you can simply start the activity in the camera app that captures a
+photo. When complete, the photo is even returned to your app so you can use it. To the user,
+it seems as if the camera is actually a part of your app.</p>
-<p>When the system starts a component, it starts the process for that application (if it's not
+<p>When the system starts a component, it starts the process for that app (if it's not
already running) and instantiates the classes needed for the component. For example, if your
-application starts the activity in the camera application that captures a photo, that activity
-runs in the process that belongs to the camera application, not in your application's process.
-Therefore, unlike applications on most other systems, Android applications don't have a single entry
+app starts the activity in the camera app that captures a photo, that activity
+runs in the process that belongs to the camera app, not in your app's process.
+Therefore, unlike apps on most other systems, Android apps don't have a single entry
point (there's no {@code main()} function, for example).</p>
-<p>Because the system runs each application in a separate process with file permissions that
-restrict access to other applications, your application cannot directly activate a component from
-another application. The Android system, however, can. So, to activate a component in
-another application, you must deliver a message to the system that specifies your <em>intent</em> to
+<p>Because the system runs each app in a separate process with file permissions that
+restrict access to other apps, your app cannot directly activate a component from
+another app. The Android system, however, can. So, to activate a component in
+another app, you must deliver a message to the system that specifies your <em>intent</em> to
start a particular component. The system then activates the component for you.</p>
@@ -217,7 +195,7 @@
broadcast receivers—are activated by an asynchronous message called an <em>intent</em>.
Intents bind individual components to each other at runtime (you can think of them
as the messengers that request an action from other components), whether the component belongs
-to your application or another.</p>
+to your app or another.</p>
<p>An intent is created with an {@link android.content.Intent} object, which defines a message to
activate either a specific component or a specific <em>type</em> of component—an intent
@@ -273,21 +251,21 @@
<h2 id="Manifest">The Manifest File</h2>
-<p>Before the Android system can start an application component, the system must know that the
-component exists by reading the application's {@code AndroidManifest.xml} file (the "manifest"
-file). Your application must declare all its components in this file, which must be at the root of
-the application project directory.</p>
+<p>Before the Android system can start an app component, the system must know that the
+component exists by reading the app's {@code AndroidManifest.xml} file (the "manifest"
+file). Your app must declare all its components in this file, which must be at the root of
+the app project directory.</p>
-<p>The manifest does a number of things in addition to declaring the application's components,
+<p>The manifest does a number of things in addition to declaring the app's components,
such as:</p>
<ul>
- <li>Identify any user permissions the application requires, such as Internet access or
+ <li>Identify any user permissions the app requires, such as Internet access or
read-access to the user's contacts.</li>
<li>Declare the minimum <a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html#ApiLevels">API Level</a>
-required by the application, based on which APIs the application uses.</li>
- <li>Declare hardware and software features used or required by the application, such as a camera,
+required by the app, based on which APIs the app uses.</li>
+ <li>Declare hardware and software features used or required by the app, such as a camera,
bluetooth services, or a multitouch screen.</li>
- <li>API libraries the application needs to be linked against (other than the Android framework
+ <li>API libraries the app needs to be linked against (other than the Android framework
APIs), such as the <a
href="http://code.google.com/android/add-ons/google-apis/maps-overview.html">Google Maps
library</a>.</li>
@@ -297,7 +275,7 @@
<h3 id="DeclaringComponents">Declaring components</h3>
-<p>The primary task of the manifest is to inform the system about the application's components. For
+<p>The primary task of the manifest is to inform the system about the app's components. For
example, a manifest file can declare an activity as follows: </p>
<pre>
@@ -314,7 +292,7 @@
<p>In the <code><a
href="{@docRoot}guide/topics/manifest/application-element.html"><application></a></code>
element, the {@code android:icon} attribute points to resources for an icon that identifies the
-application.</p>
+app.</p>
<p>In the <code><a
href="{@docRoot}guide/topics/manifest/activity-element.html"><activity></a></code> element,
@@ -322,7 +300,7 @@
android.app.Activity} subclass and the {@code android:label} attributes specifies a string
to use as the user-visible label for the activity.</p>
-<p>You must declare all application components this way:</p>
+<p>You must declare all app components this way:</p>
<ul>
<li><code><a
href="{@docRoot}guide/topics/manifest/activity-element.html"><activity></a></code> elements
@@ -345,7 +323,7 @@
{@link android.content.BroadcastReceiver} objects) and registered with the system by calling
{@link android.content.Context#registerReceiver registerReceiver()}.</p>
-<p>For more about how to structure the manifest file for your application, see <a
+<p>For more about how to structure the manifest file for your app, see <a
href="{@docRoot}guide/topics/manifest/manifest-intro.html">The AndroidManifest.xml File</a>
documentation. </p>
@@ -356,28 +334,43 @@
<p>As discussed above, in <a href="#ActivatingComponents">Activating Components</a>, you can use an
{@link android.content.Intent} to start activities, services, and broadcast receivers. You can do so
by explicitly naming the target component (using the component class name) in the intent. However,
-the real power of intents lies in the concept of intent actions. With intent actions, you simply
-describe the type of action you want to perform (and optionally, the data upon which you’d like to
+the real power of intents lies in the concept of <em>implicit intents</em>. An implicit intent
+simply describe the type of action to perform (and optionally, the data upon which you’d like to
perform the action) and allow the system to find a component on the device that can perform the
action and start it. If there are multiple components that can perform the action described by the
intent, then the user selects which one to use.</p>
<p>The way the system identifies the components that can respond to an intent is by comparing the
-intent received to the <i>intent filters</i> provided in the manifest file of other applications on
+intent received to the <i>intent filters</i> provided in the manifest file of other apps on
the device.</p>
-<p>When you declare a component in your application's manifest, you can optionally include
-intent filters that declare the capabilities of the component so it can respond to intents
-from other applications. You can declare an intent filter for your component by
+<p>When you declare an activity in your app's manifest, you can optionally include
+intent filters that declare the capabilities of the activity so it can respond to intents
+from other apps. You can declare an intent filter for your component by
adding an <a href="{@docRoot}guide/topics/manifest/intent-filter-element.html">{@code
<intent-filter>}</a> element as a child of the component's declaration element.</p>
-<p>For example, an email application with an activity for composing a new email might declare an
-intent filter in its manifest entry to respond to "send" intents (in order to send email). An
-activity in your application can then create an intent with the “send” action ({@link
-android.content.Intent#ACTION_SEND}), which the system matches to the email application’s “send”
-activity and launches it when you invoke the intent with {@link android.app.Activity#startActivity
-startActivity()}.</p>
+<p>For example, if you've built an email app with an activity for composing a new email, you can
+declare an intent filter to respond to "send" intents (in order to send a new email) like this:</p>
+<pre>
+<manifest ... >
+ ...
+ <application ... >
+ <activity android:name="com.example.project.ComposeEmailActivity">
+ <intent-filter>
+ <action android:name="android.intent.action.SEND" />
+ <data android:type="*/*" />
+ <category android:name="android.intent.category.DEFAULT" />
+ </intent-filter>
+ </activity>
+ </application>
+</manifest>
+</pre>
+
+<p>Then, if another app creates an intent with the {@link
+android.content.Intent#ACTION_SEND} action and pass it to {@link android.app.Activity#startActivity
+startActivity()}, the system may start your activity so the user can draft and send an
+email.</p>
<p>For more about creating intent filters, see the <a
href="{@docRoot}guide/components/intents-filters.html">Intents and Intent Filters</a> document.
@@ -385,102 +378,57 @@
-<h3 id="DeclaringRequirements">Declaring application requirements</h3>
+<h3 id="DeclaringRequirements">Declaring app requirements</h3>
<p>There are a variety of devices powered by Android and not all of them provide the
-same features and capabilities. In order to prevent your application from being installed on devices
-that lack features needed by your application, it's important that you clearly define a profile for
-the types of devices your application supports by declaring device and software requirements in your
+same features and capabilities. In order to prevent your app from being installed on devices
+that lack features needed by your app, it's important that you clearly define a profile for
+the types of devices your app supports by declaring device and software requirements in your
manifest file. Most of these declarations are informational only and the system does not read
them, but external services such as Google Play do read them in order to provide filtering
-for users when they search for applications from their device.</p>
+for users when they search for apps from their device.</p>
-<p>For example, if your application requires a camera and uses APIs introduced in Android 2.1 (<a
-href="{@docRoot}guide/topics/manifest/uses-sdk-element.html#ApiLevels">API Level</a> 7), you should declare these as
-requirements in your manifest file. That way, devices that do <em>not</em> have a camera and have an
-Android version <em>lower</em> than 2.1 cannot install your application from Google Play.</p>
+<p>For example, if your app requires a camera and uses APIs introduced in Android 2.1 (<a
+href="{@docRoot}guide/topics/manifest/uses-sdk-element.html#ApiLevels">API Level</a> 7),
+you should declare these as requirements in your manifest file like this:</p>
-<p>However, you can also declare that your application uses the camera, but does not
-<em>require</em> it. In that case, your application must perform a check at runtime to determine
-if the device has a camera and disable any features that use the camera if one is not available.</p>
+<pre>
+<manifest ... >
+ <uses-feature android:name="android.hardware.camera.any"
+ android:required="true" />
+ <uses-sdk android:minSdkVersion="7" android:targetSdkVersion="19" />
+ ...
+</manifest>
+</pre>
-<p>Here are some of the important device characteristics that you should consider as you design and
-develop your application:</p>
+<p>Now, devices that do <em>not</em> have a camera and have an
+Android version <em>lower</em> than 2.1 cannot install your app from Google Play.</p>
-<dl>
- <dt>Screen size and density</dt>
- <dd>In order to categorize devices by their screen type, Android defines two characteristics for
-each device: screen size (the physical dimensions of the screen) and screen density (the physical
-density of the pixels on the screen, or dpi—dots per inch). To simplify all the different
-types of screen configurations, the Android system generalizes them into select groups that make
-them easier to target.
-<p>The screen sizes are: small, normal, large, and extra large.<br/>
-The screen densities are: low density, medium density, high density, and extra high density.</p>
+<p>However, you can also declare that your app uses the camera, but does not
+<em>require</em> it. In that case, your app must set the <a href=
+"{@docRoot}guide/topics/manifest/uses-feature-element.html#required">{@code required}</a>
+attribute to {@code "false"} and check at runtime whether
+the device has a camera and disable any camera features as appropriate.</p>
-<p>By default, your application is compatible with all screen sizes and densities,
-because the Android system makes the appropriate adjustments to your UI layout and image
-resources. However, you should create specialized layouts for certain screen sizes and provide
-specialized images for certain densities, using alternative layout resources, and by declaring in
-your manifest exactly which screen sizes your application supports with the <a
-href="{@docRoot}guide/topics/manifest/supports-screens-element.html">{@code
-<supports-screens>}</a> element.</p>
-<p>For more information, see the <a
-href="{@docRoot}guide/practices/screens_support.html">Supporting Multiple Screens</a>
-document.</p></dd>
-
- <dt>Input configurations</dt>
- <dd>Many devices provide a different type of user input mechanism, such as a hardware keyboard, a
-trackball, or a five-way navigation pad. If your application requires a particular kind of input
-hardware, then you should declare it in your manifest with the <a
-href="{@docRoot}guide/topics/manifest/uses-configuration-element.html">{@code
-<uses-configuration>}</a> element. However, it is rare that an application should require
-a certain input configuration.</dd>
-
- <dt>Device features</dt>
- <dd>There are many hardware and software features that may or may not exist on a given
-Android-powered device, such as a camera, a light sensor, bluetooth, a certain
-version of OpenGL, or the fidelity of the touchscreen. You should never assume that a certain
-feature is available on all Android-powered devices (other than the availability of the standard
-Android library), so you should declare any features used by your application with the <a
-href="{@docRoot}guide/topics/manifest/uses-feature-element.html">{@code <uses-feature>}</a>
-element.</dd>
-
- <dt>Platform Version</dt>
- <dd>Different Android-powered devices often run different versions of the Android platform,
-such as Android 1.6 or Android 2.3. Each successive version often includes additional APIs not
-available in the previous version. In order to indicate which set of APIs are available, each
-platform version specifies an <a
-href="{@docRoot}guide/topics/manifest/uses-sdk-element.html#ApiLevels">API Level</a> (for example, Android 1.0 is API Level
-1 and Android 2.3 is API Level 9). If you use any APIs that were added to the platform after
-version 1.0, you should declare the minimum API Level in which those APIs were introduced using the
-<a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html">{@code <uses-sdk>}</a>
-element.</dd>
-</dl>
-
-<p>It's important that you declare all such requirements for your application, because, when you
-distribute your application on Google Play, the store uses these declarations to filter which
-applications are available on each device. As such, your application should be available only to
-devices that meet all your application requirements.</p>
-
-<p>For more information about how Google Play filters applications based on these (and other)
-requirements, see the <a href="{@docRoot}google/play/filters.html">Filters on Google Play</a>
+<p>More information about how you can manage your app's compatibility with different devices
+is provided in the <a href="{@docRoot}guide/practices/compatibility.html">Device Compatibility</a>
document.</p>
-<h2 id="Resources">Application Resources</h2>
+<h2 id="Resources">App Resources</h2>
-<p>An Android application is composed of more than just code—it requires resources that are
+<p>An Android app is composed of more than just code—it requires resources that are
separate from the source code, such as images, audio files, and anything relating to the visual
-presentation of the application. For example, you should define animations, menus, styles, colors,
-and the layout of activity user interfaces with XML files. Using application resources makes it easy
-to update various characteristics of your application without modifying code and—by providing
-sets of alternative resources—enables you to optimize your application for a variety of
+presentation of the app. For example, you should define animations, menus, styles, colors,
+and the layout of activity user interfaces with XML files. Using app resources makes it easy
+to update various characteristics of your app without modifying code and—by providing
+sets of alternative resources—enables you to optimize your app for a variety of
device configurations (such as different languages and screen sizes).</p>
<p>For every resource that you include in your Android project, the SDK build tools define a unique
-integer ID, which you can use to reference the resource from your application code or from
-other resources defined in XML. For example, if your application contains an image file named {@code
+integer ID, which you can use to reference the resource from your app code or from
+other resources defined in XML. For example, if your app contains an image file named {@code
logo.png} (saved in the {@code res/drawable/} directory), the SDK tools generate a resource ID
named {@code R.drawable.logo}, which you can use to reference the image and insert it in your
user interface.</p>
@@ -504,15 +452,45 @@
qualifier to each layout's directory name. Then, the system automatically applies the appropriate
layout depending on the current device orientation.</p>
-<p>For more about the different kinds of resources you can include in your application and how
-to create alternative resources for various device configurations, see the <a
-href="{@docRoot}guide/topics/resources/index.html">Application Resources</a> developer guide.</p>
+<p>For more about the different kinds of resources you can include in your application and how to
+create alternative resources for different device configurations, read <a href=
+"{@docRoot}guide/topics/resources/providing-resources.html">Providing Resources</a>.</p>
-<!--
-<h2>Beginner's Path</h2>
-<p>For a close look at implementing activities—the components your users use to
-interact with your application—continue with the <b><a
-href="{@docRoot}guide/components/activities.html">Activities</a></b> document.</p>
--->
+<div class="next-docs">
+<div class="col-6">
+ <h2 class="norule">Continue reading about:</h2>
+ <dl>
+ <dt><a href="{@docRoot}guide/components/intents-filters.html">Intents and Intent Filters</a>
+ </dt>
+ <dd>Information about how to use the {@link android.content.Intent} APIs to
+ activate app components, such as activities and services, and how to make your app components
+ available for use by other apps.</dd>
+ <dt><a href="{@docRoot}guide/components/activities.html">Activities</a></dt>
+ <dd>Information about how to create an instance of the {@link android.app.Activity} class,
+ which provides a distinct screen in your application with a user interface.</dd>
+ <dt><a
+href="{@docRoot}guide/topics/resources/providing-resources.html">Providing Resources</a></dt>
+ <dd>Information about how Android apps are structured to separate app resources from the
+ app code, including how you can provide alternative resources for specific device
+ configurations.
+ </dd>
+ </dl>
+</div>
+<div class="col-6">
+ <h2 class="norule">You might also be interested in:</h2>
+ <dl>
+ <dt><a href="{@docRoot}guide/practices/compatibility.html"
+ >Device Compatibility</a></dt>
+ <dd>Information about Android works on different types of devices and an introduction
+ to how you can optimize your app for each device or restrict your app's availability
+ to different devices.</dd>
+ <dt><a href="{@docRoot}guide/topics/security/permissions.html"
+ >System Permissions</a></dt>
+ <dd>Information about how Android restricts app access to certain APIs with a permission
+ system that requires the user's consent for your app to use those APIs.</dd>
+ </dl>
+</div>
+</div>
+
diff --git a/docs/html/guide/components/index.jd b/docs/html/guide/components/index.jd
index 87bae53..37fb7e9 100644
--- a/docs/html/guide/components/index.jd
+++ b/docs/html/guide/components/index.jd
@@ -1,6 +1,6 @@
page.title=App Components
page.landing=true
-page.landing.intro=Android's application framework lets you create extremely rich and innovative apps using a set of reusable components. This section explains how Android apps work and how you use components to build them.
+page.landing.intro=Android's application framework lets you create rich and innovative apps using a set of reusable components. This section explains how you can build the components that define the building blocks of your app and how to connect them together using intents.
page.landing.image=images/develop/app_components.png
@jd:body
diff --git a/docs/html/guide/components/intents-common.jd b/docs/html/guide/components/intents-common.jd
new file mode 100644
index 0000000..f09ef9f
--- /dev/null
+++ b/docs/html/guide/components/intents-common.jd
@@ -0,0 +1,1312 @@
+page.title=Common Intents
+page.tags="IntentFilter"
+@jd:body
+
+<div id="qv-wrapper">
+<div id="qv">
+
+ <h2>In this document
+ <a href="#" onclick="hideNestedItems('#tocIntents',this);return false;" class="header-toggle">
+ <span class="more">show more</span>
+ <span class="less" style="display:none">show less</span></a></h2>
+
+<ol id="tocIntents" class="hide-nested">
+ <li><a href="#Camera">Camera</a>
+ <ol>
+ <li><a href="#ImageCapture">Capture a picture or video and return it</a></li>
+ </ol>
+ </li>
+ <li><a href="#Contacts">Contacts/People App</a>
+ <ol>
+ <li><a href="#PickContact">Select a contact</a></li>
+ <li><a href="#PickContactDat">Select specific contact data</a></li>
+ <li><a href="#ViewContact">View a contact</a></li>
+ <li><a href="#EditContact">Edit an existing contact</a></li>
+ <li><a href="#InsertContact">Insert a contact</a></li>
+ </ol>
+ </li>
+ <li><a href="#Email">Email</a>
+ <ol>
+ <li><a href="#ComposeEmail">Compose an email with optional attachments</a></li>
+ </ol>
+ </li>
+ <li><a href="#Storage">File Storage</a>
+ <ol>
+ <li><a href="#GetFile">Retrieve a specific type of file</a></li>
+ <li><a href="#OpenFile">Open a specific type of file</a></li>
+ </ol>
+ </li>
+ <li><a href="#Maps">Maps</a>
+ <ol>
+ <li><a href="#ViewMap">Show a location on a map</a></li>
+ </ol>
+ </li>
+ <li><a href="#Music">Music or Video</a>
+ <ol>
+ <li><a href="#PlayMedia">Play a media file</a></li>
+ </ol>
+ </li>
+ <li><a href="#Phone">Phone</a>
+ <ol>
+ <li><a href="#DialPhone">Initiate a phone call</a></li>
+ </ol>
+ </li>
+ <li><a href="#Settings">Settings</a>
+ <ol>
+ <li><a href="#OpenSettings">Open a specific section of Settings</a></li>
+ </ol>
+ </li>
+ <li><a href="#Messaging">Text Messaging</a>
+ <ol>
+ <li><a href="#SendMessage">Compose an SMS/MMS message with attachment</a></li>
+ </ol>
+ </li>
+ <li><a href="#Browser">Web Browser</a>
+ <ol>
+ <li><a href="#ViewUrl">Load a web URL</a></li>
+ <li><a href="#SearchWeb">Perform a web search</a></li>
+ </ol>
+ </li>
+</ol>
+
+ <h2>See also</h2>
+ <ol>
+ <li><a href="{@docRoot}guide/components/intents-filters.html">Intents and Intent
+Filters</a></li>
+ </ol>
+</div>
+</div>
+
+
+<p>An intent allows you to start an activity in another app by describing a simple
+action you'd like to perform (such as "view a map" or "take a picture")
+in an {@link android.content.Intent} object. This type of intent is
+called an <em>implicit</em> intent because it does not specify the app component
+to start, but instead specifies an <em>action</em> and provides some
+<em>data</em> with which to perform the action.</p>
+
+<p>When you call
+{@link android.content.Context#startActivity startActivity()} or
+{@link android.app.Activity#startActivityForResult startActivityForResult()} and pass it an
+implicit intent, the system <a href="{@docRoot}guide/components/intents-filters.html#Resolution"
+>resolves the intent</a> to an app that can handle the intent
+and starts its corresponding {@link android.app.Activity}. If there's more than one app
+that can handle the intent, the system presents the user with a dialog to pick which app
+to use.</p>
+
+<p>This page describes several implicit intents that you can use to perform common actions,
+organized by the type of app that handles the intent. Each section also shows how you can
+create an <a href="{@docRoot}guide/components/intents-filters.html#Receiving">intent filter</a> to
+advertise your app's ability to perform the same action.</p>
+
+<p class="caution"><strong>Caution:</strong> If there are no apps on the device that can receive
+the implicit intent, your app will crash when it calls {@link android.content.Context#startActivity
+startActivity()}. To first verify that an app exists to receive the intent, call {@link
+android.content.Intent#resolveActivity resolveActivity()} on your {@link android.content.Intent}
+object. If the result is non-null, there is at least one app that can handle the intent and
+it's safe to call {@link android.content.Context#startActivity startActivity()}. If the result is
+null, you should not use the intent and, if possible, you should disable the feature that invokes
+the intent.</p>
+
+
+<p>If you're not familiar with how to create intents or intent filters, you should first read
+<a href="{@docRoot}guide/components/intents-filters.html">Intents and Intent Filters</a>.</p>
+
+
+
+
+
+<h2 id="Camera">Camera</h2>
+
+
+
+<h3 id="ImageCapture">Capture a picture or video and return it</h3>
+
+<p>To open a camera app and receive the resulting photo or video, use the {@link
+android.provider.MediaStore#ACTION_IMAGE_CAPTURE} or {@link
+android.provider.MediaStore#ACTION_VIDEO_CAPTURE} action. Also specify the URI location where you'd
+like the camera to save the photo or video, in the {@link android.provider.MediaStore#EXTRA_OUTPUT}
+extra.</p>
+
+
+<dl>
+<dt><b>Action</b></dt>
+<dd>{@link android.provider.MediaStore#ACTION_IMAGE_CAPTURE} or<br>
+ {@link android.provider.MediaStore#ACTION_VIDEO_CAPTURE}</dd>
+
+<dt><b>Data URI Scheme</b></dt>
+<dd>None</dd>
+
+<dt><b>MIME Type</b></dt>
+<dd>None</dd>
+
+<dt><b>Extras</b></dt>
+<dd>
+ <dl>
+ <dt>{@link android.provider.MediaStore#EXTRA_OUTPUT}</dt>
+ <dd>The URI location where the camera app should save the photo or
+ video file (as a {@link android.net.Uri} object).</dd>
+ </dl>
+</dd>
+</dl>
+
+<p>When the camera app successfully returns
+focus to your activity (your app receives the {@link android.app.Activity#onActivityResult
+onActivityResult()} callback), you can access the photo or video at the URI you specified
+with the {@link android.provider.MediaStore#EXTRA_OUTPUT} value.</p>
+
+<p class="note"><strong>Note:</strong> When you use {@link
+android.provider.MediaStore#ACTION_IMAGE_CAPTURE} to capture a photo, the camera may also return a
+downscaled copy (a thumbnail) of the photo in the result {@link
+android.content.Intent}, saved as a {@link android.graphics.Bitmap} in an extra field named
+<code>"data"</code>.</p>
+
+
+<p><b>Example intent:</b></p>
+<pre>
+static final int REQUEST_IMAGE_CAPTURE = 1;
+static final Uri mLocationForPhotos;
+
+public void capturePhoto(String targetFilename) {
+ Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
+ intent.putExtra(MediaStore.EXTRA_OUTPUT,
+ Uri.withAppendedPath(mLocationForPhotos, targetFilename);
+ if (intent.resolveActivity(getPackageManager()) != null) {
+ startActivityForResult(intent, REQUEST_IMAGE_CAPTURE);
+ }
+}
+
+@Override
+protected void onActivityResult(int requestCode, int resultCode, Intent data) {
+ if (requestCode == REQUEST_IMAGE_CAPTURE && resultCode == RESULT_OK) {
+ Bitmap thumbnail = data.getParcelable("data");
+ // Do other work with full size photo saved in mLocationForPhotos
+ ...
+ }
+}
+</pre>
+
+<p>For more information about how to use this intent to capture a photo, including
+how to create an appropriate {@link android.net.Uri} for the output location, read
+<a href="{@docRoot}training/camera/photobasics.html">Taking Photos Simply</a> or
+<a href="{@docRoot}training/camera/videobasics.html">Taking Videos Simply</a>.</p>
+
+<p><b>Example intent filter:</b></p>
+<pre>
+<activity ...>
+ <intent-filter>
+ <action android:name="android.media.action.IMAGE_CAPTURE" />
+ <category android:name="android.intent.category.DEFAULT" />
+ </intent-filter>
+</activity>
+</pre>
+
+<p>When handling this intent, your activity should check for the {@link
+android.provider.MediaStore#EXTRA_OUTPUT} extra in the incoming {@link android.content.Intent},
+then save the captured image or video at the location specified by that extra and call {@link
+android.app.Activity#setResult(int,Intent) setResult()} with an
+{@link android.content.Intent} that includes a compressed thumbnail
+in an extra named <code>"data"</code>.</p>
+
+
+
+
+<h2 id="Contacts">Contacts/People App</h2>
+
+
+<h3 id="PickContact">Select a contact</h3>
+
+<p>To have the user select a contact and provide your app access to all the contact information,
+use the {@link android.content.Intent#ACTION_PICK} action and specify the MIME type to
+{@link android.provider.ContactsContract.Contacts#CONTENT_TYPE
+Contacts.CONTENT_TYPE}.</p>
+
+<p>The result {@link android.content.Intent} delivered to your {@link
+android.app.Activity#onActivityResult onActivityResult()} callback contains the
+<code>content:</code> URI pointing to the selected contact. The response grants
+your app temporary permissions to read that contact using the <a
+href="{@docRoot}guide/topics/providers/contacts-provider.html">Contacts Provider</a> API even if
+your app does not include the {@link android.Manifest.permission#READ_CONTACTS} permission.</p>
+
+<p class="note"><strong>Tip:</strong> If you need access to only a specific piece of contact
+information, such as a phone number or email address, instead see the next section about how to
+<a href="#PickContactData">select specific contact data</a>.</p>
+
+<dl>
+<dt><b>Action</b></dt>
+<dd>{@link android.content.Intent#ACTION_PICK}</dd>
+
+<dt><b>Data URI Scheme</b></dt>
+<dd>None</dd>
+
+<dt><b>MIME Type</b></dt>
+<dd>{@link android.provider.ContactsContract.Contacts#CONTENT_TYPE
+Contacts.CONTENT_TYPE}
+</dd>
+</dl>
+
+<p><b>Example intent:</b></p>
+<pre>
+static final int REQUEST_SELECT_CONTACT = 1;
+
+public void selectContact() {
+ Intent intent = new Intent(Intent.ACTION_PICK);
+ intent.setType(ContactsContract.Contacts.CONTENT_TYPE);
+ if (intent.resolveActivity(getPackageManager()) != null) {
+ startActivityForResult(intent, REQUEST_SELECT_CONTACT);
+ }
+}
+
+@Override
+protected void onActivityResult(int requestCode, int resultCode, Intent data) {
+ if (requestCode == REQUEST_SELECT_CONTACT && resultCode == RESULT_OK) {
+ Uri contactUri = data.getData();
+ // Do something with the selected contact at contactUri
+ ...
+ }
+}
+</pre>
+
+<p>For information about how to retrieve contact details once you have the contact URI,
+read <a href="{@docRoot}training/contacts-provider/retrieve-details.html">Retrieving Details
+for a Contact</a>. Remember, when you retrieve the contact URI with the above intent, you
+<strong>do not</strong> need the {@link android.Manifest.permission#READ_CONTACTS} permission
+to read details for that contact.</p>
+
+
+
+
+<h3 id="PickContactDat">Select specific contact data</h3>
+
+<p>To have the user select a specific piece of information from a contact, such as
+a phone number, email address, or other data type, use the
+{@link android.content.Intent#ACTION_PICK} action and specify the MIME type to one
+of the content types listed below, such as
+{@link android.provider.ContactsContract.CommonDataKinds.Phone#CONTENT_TYPE
+CommonDataKinds.Phone.CONTENT_TYPE} to get the contact's phone number.</p>
+
+<p>If you need to retrieve only one type of data from a contact, this technique with a
+{@code CONTENT_TYPE} from the
+{@link android.provider.ContactsContract.CommonDataKinds} classes is more efficient than
+using the {@link android.provider.ContactsContract.Contacts#CONTENT_TYPE
+Contacts.CONTENT_TYPE} (as shown in the previous section) because the result provides you direct
+access to the desired data without requiring you to perform a more complex query to <a
+href="{@docRoot}guide/topics/providers/contacts-provider.html">Contacts Provider</a>.</p>
+
+<p>The result {@link android.content.Intent} delivered to your {@link
+android.app.Activity#onActivityResult onActivityResult()} callback contains the
+<code>content:</code> URI pointing to the selected contact data. The response grants
+your app temporary permissions to read that contact data even if your app does
+not include the {@link android.Manifest.permission#READ_CONTACTS} permission.</p>
+
+<dl>
+<dt><b>Action</b></dt>
+<dd>{@link android.content.Intent#ACTION_PICK}</dd>
+
+<dt><b>Data URI Scheme</b></dt>
+<dd>None</dd>
+
+<dt><b>MIME Type</b></dt>
+<dd>
+ <dl>
+ <dt>{@link android.provider.ContactsContract.CommonDataKinds.Phone#CONTENT_TYPE
+CommonDataKinds.Phone.CONTENT_TYPE}</dt>
+ <dd>Pick from contacts with a phone number.</dd>
+ <dt>{@link android.provider.ContactsContract.CommonDataKinds.Email#CONTENT_TYPE
+CommonDataKinds.Email.CONTENT_TYPE}</dt>
+ <dd>Pick from contacts with an email address.</dd>
+ <dt>{@link android.provider.ContactsContract.CommonDataKinds.StructuredPostal#CONTENT_TYPE
+CommonDataKinds.StructuredPostal.CONTENT_TYPE}</dt>
+ <dd>Pick from contacts with a postal address.</dd>
+ </dl>
+ <p>Or one of many other {@code CONTENT_TYPE} values
+ under {@link android.provider.ContactsContract}.</p>
+</dd>
+</dl>
+
+<p><b>Example intent:</b></p>
+<pre>
+static final int REQUEST_SELECT_PHONE_NUMBER = 1;
+
+public void selectContact() {
+ // Start an activity for the user to pick a phone number from contacts
+ Intent intent = new Intent(Intent.ACTION_PICK);
+ intent.setType(CommonDataKinds.Phone.CONTENT_TYPE);
+ if (intent.resolveActivity(getPackageManager()) != null) {
+ startActivityForResult(intent, REQUEST_SELECT_PHONE_NUMBER);
+ }
+}
+
+@Override
+protected void onActivityResult(int requestCode, int resultCode, Intent data) {
+ if (requestCode == REQUEST_SELECT_PHONE_NUMBER && resultCode == RESULT_OK) {
+ // Get the URI and query the content provider for the phone number
+ Uri contactUri = data.getData();
+ String[] projection = new String[]{CommonDataKinds.Phone.NUMBER};
+ Cursor cursor = getContentResolver().query(contactUri, projection,
+ null, null, null);
+ // If the cursor returned is valid, get the phone number
+ if (cursor != null && cursor.moveToFirst()) {
+ int numberIndex = cursor.getColumnIndex(CommonDataKinds.Phone.NUMBER);
+ String number = cursor.getString(numberIndex);
+ // Do something with the phone number
+ ...
+ }
+ }
+}
+</pre>
+
+
+
+
+
+<h3 id="ViewContact">View a contact</h3>
+
+<p>To display the details for a known contact, use the {@link android.content.Intent#ACTION_VIEW}
+action and specify the contact with a {@code content:} URI as the intent data.</p>
+
+<p>There are primarily two ways to initially retrieve the contact's URI:</p>
+<ul>
+ <li>Use the contact URI returned by the {@link android.content.Intent#ACTION_PICK},
+ shown in the previous section (this does not require any app permissions).</li>
+ <li>Access the list of all contacts directly, as described in <a
+ href="{@docRoot}training/contacts-provider/retrieve-names.html">Retrieving a List of
+ Contacts</a> (this requires the {@link android.Manifest.permission#READ_CONTACTS}
+ permission).</li>
+</ul>
+
+<dl>
+<dt><b>Action</b></dt>
+<dd>{@link android.content.Intent#ACTION_VIEW}</dd>
+
+<dt><b>Data URI Scheme</b></dt>
+<dd>{@code content:<URI>}</dd>
+
+<dt><b>MIME Type</b></dt>
+<dd>None. The type is inferred from contact URI.
+</dd>
+</dl>
+
+<p><b>Example intent:</b></p>
+<pre>
+public void viewContact(Uri contactUri) {
+ Intent intent = new Intent(Intent.ACTION_VIEW, contactUri);
+ if (intent.resolveActivity(getPackageManager()) != null) {
+ startActivity(intent);
+ }
+}
+</pre>
+
+
+
+<h3 id="EditContact">Edit an existing contact</h3>
+
+<p>To edit a known contact, use the {@link android.content.Intent#ACTION_EDIT}
+action, specify the contact with a {@code content:} URI
+as the intent data, and include any known contact information in extras specified by
+constants in {@link android.provider.ContactsContract.Intents.Insert}.</p>
+
+<p>There are primarily two ways to initially retrieve the contact URI:</p>
+<ul>
+ <li>Use the contact URI returned by the {@link android.content.Intent#ACTION_PICK},
+ shown in the previous section (this does not require any app permissions).</li>
+ <li>Access the list of all contacts directly, as described in <a
+ href="{@docRoot}training/contacts-provider/retrieve-names.html">Retrieving a List of
+ Contacts</a> (this requires the {@link android.Manifest.permission#READ_CONTACTS}
+ permission).</li>
+</ul>
+
+<dl>
+<dt><b>Action</b></dt>
+<dd>{@link android.content.Intent#ACTION_EDIT}</dd>
+
+<dt><b>Data URI Scheme</b></dt>
+<dd>{@code content:<URI>}</dd>
+
+<dt><b>MIME Type</b></dt>
+<dd>The type is inferred from contact URI.
+</dd>
+
+<dt><b>Extras</b> (optional)</dt>
+<dd>One or more of the extras defined in {@link android.provider.ContactsContract.Intents.Insert}
+so you can populate fields of the contact details.
+</dd>
+</dl>
+
+<p><b>Example intent:</b></p>
+<pre>
+public void editContact(Uri contactUri, String email) {
+ Intent intent = new Intent(Intent.ACTION_EDIT);
+ intent.setDataAndType(contactUri, Contacts.CONTENT_TYPE);
+ intent.putExtra(Intents.Insert.EMAIL, email);
+ if (intent.resolveActivity(getPackageManager()) != null) {
+ startActivity(intent);
+ }
+}
+</pre>
+
+<p>For more information about how to edit a contact, read <a
+href="{@docRoot}training/contacts-provider/modify-data.html">Modifying
+Contacts Using Intents</a>.</p>
+
+
+
+
+<h3 id="InsertContact">Insert a contact</h3>
+
+<p>To insert a new contact, use the {@link android.content.Intent#ACTION_INSERT} action,
+specify {@link android.provider.ContactsContract.Contacts#CONTENT_TYPE Contacts.CONTENT_TYPE} as
+the MIME type, and include any known contact information in extras specified by
+constants in {@link android.provider.ContactsContract.Intents.Insert}.
+
+<dl>
+<dt><b>Action</b></dt>
+<dd>{@link android.content.Intent#ACTION_INSERT}</dd>
+
+<dt><b>Data URI Scheme</b></dt>
+<dd>None</dd>
+
+<dt><b>MIME Type</b></dt>
+<dd>{@link android.provider.ContactsContract.Contacts#CONTENT_TYPE Contacts.CONTENT_TYPE}</dd>
+
+<dt><b>Extras</b> (optional)</dt>
+<dd>One or more of the extras defined in {@link android.provider.ContactsContract.Intents.Insert}.
+</dd>
+</dl>
+
+<p><b>Example intent:</b></p>
+<pre>
+public void insertContact(String name, String email) {
+ Intent intent = new Intent(Intent.ACTION_INSERT);
+ intent.setType(Contacts.CONTENT_TYPE);
+ intent.putExtra(Intents.Insert.NAME, name);
+ intent.putExtra(Intents.Insert.EMAIL, email);
+ if (intent.resolveActivity(getPackageManager()) != null) {
+ startActivity(intent);
+ }
+}
+</pre>
+
+<p>For more information about how to insert a contact, read <a
+href="{@docRoot}training/contacts-provider/modify-data.html">Modifying
+Contacts Using Intents</a>.</p>
+
+
+
+
+
+
+
+<h2 id="Email">Email</h2>
+
+
+<h3 id="ComposeEmail">Compose an email with optional attachments</h3>
+
+
+<p>To compose an email, use one of the below actions based on whether you'll include attachments,
+and include email details such as the recipient and subject using the extra keys listed below.</p>
+
+<dl>
+<dt><b>Action</b></dt>
+<dd>{@link android.content.Intent#ACTION_SENDTO} (for no attachment) or<br>
+ {@link android.content.Intent#ACTION_SEND} (for one attachment) or<br>
+ {@link android.content.Intent#ACTION_SEND_MULTIPLE} (for multiple attachments)</dd>
+
+<dt><b>Data URI Scheme</b></dt>
+<dd>None</dd>
+
+<dt><b>MIME Type</b></dt>
+<dd>
+ <dl>
+ <dt>{@link org.apache.http.protocol.HTTP#PLAIN_TEXT_TYPE} ("text/plain")
+ <dt><code>"*/*"</code>
+ </dl>
+</dd>
+
+<dt><b>Extras</b> (optional)</dt>
+<dd>
+ <dl>
+ <dt>{@link android.content.Intent#EXTRA_EMAIL Intent.EXTRA_EMAIL}</dt>
+ <dd>A string array of all "To" recipient email addresses.</dd>
+ <dt>{@link android.content.Intent#EXTRA_CC Intent.EXTRA_CC}</dt>
+ <dd>A string array of all "CC" recipient email addresses.</dd>
+ <dt>{@link android.content.Intent#EXTRA_BCC Intent.EXTRA_BCC}</dt>
+ <dd>A string array of all "BCC" recipient email addresses.</dd>
+ <dt>{@link android.content.Intent#EXTRA_SUBJECT Intent.EXTRA_SUBJECT}</dt>
+ <dd>A string with the email subject.</dd>
+ <dt>{@link android.content.Intent#EXTRA_TEXT Intent.EXTRA_TEXT}</dt>
+ <dd>A string with the body of the email.</dd>
+ <dt>{@link android.content.Intent#EXTRA_STREAM Intent.EXTRA_STREAM}</dt>
+ <dd>A {@link android.net.Uri} pointing to the attachment. If using the
+ {@link android.content.Intent#ACTION_SEND_MULTIPLE} action, this should instead
+ be an {@link java.util.ArrayList} containing multiple {@link android.net.Uri} objects.</dd>
+ </dl>
+</dd>
+
+</dl>
+
+
+<p><b>Example intent:</b></p>
+<pre>
+public void composeEmail(String[] addresses, String subject, Uri attachment) {
+ Intent intent = new Intent(Intent.ACTION_SEND);
+ intent.setType("*/*");
+ intent.putExtra(Intent.EXTRA_EMAIL, addresses);
+ intent.putExtra(Intent.EXTRA_SUBJECT, subject);
+ intent.putExtra(Intent.EXTRA_STREAM, attachment);
+ if (intent.resolveActivity(getPackageManager()) != null) {
+ startActivity(intent);
+ }
+}
+</pre>
+
+<p>If you want to ensure that your intent is handled only by an email app (and not other
+text messaging or social apps), then use the {@link android.content.Intent#ACTION_SENDTO} action
+and include the {@code "mailto:"} data scheme. For example:</p>
+
+<pre>
+public void composeEmail(String[] addresses, String subject) {
+ Intent intent = new Intent(Intent.ACTION_SENDTO);
+ intent.setData(Uri.parse("mailto:")); // only email apps should handle this
+ intent.putExtra(Intent.EXTRA_EMAIL, addresses);
+ intent.putExtra(Intent.EXTRA_SUBJECT, subject);
+ if (intent.resolveActivity(getPackageManager()) != null) {
+ startActivity(intent);
+ }
+}
+</pre>
+
+
+<p><b>Example intent filter:</b></p>
+<pre>
+<activity ...>
+ <intent-filter>
+ <action android:name="android.intent.action.SEND" />
+ <data android:type="*/*" />
+ <category android:name="android.intent.category.DEFAULT" />
+ </intent-filter>
+ <intent-filter>
+ <action android:name="android.intent.action.SENDTO" />
+ <data android:scheme="mailto" />
+ <category android:name="android.intent.category.DEFAULT" />
+ </intent-filter>
+</activity>
+</pre>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h2 id="Storage">File Storage</h2>
+
+
+
+<h3 id="GetFile">Retrieve a specific type of file</h3>
+
+<p>To request that the user select a file such as a document or photo and return a reference to
+your app, use the {@link android.content.Intent#ACTION_GET_CONTENT} action and specify your desired
+MIME type. The file reference returned to your app is transient to your activity's current
+lifecycle, so if you want to access it later you must import a copy that you can read later.
+This intent also allows the user to create a new file in the process (for
+example, instead of selecting an existing photo, the user can capture a new photo with the camera).
+</p>
+
+<p>The result intent delivered to your {@link android.app.Activity#onActivityResult
+onActivityResult()} method includes data with a URI pointing to the file.
+The URI could be anything, such as an {@code http:} URI, {@code file:} URI, or {@code content:}
+URI. However, if you'd like to restrict selectable files to only those that are accessible
+from a content provider (a {@code content:} URI) and that are available as a file stream with {@link
+android.content.ContentResolver#openFileDescriptor openFileDescriptor()}, you should add
+the {@link android.content.Intent#CATEGORY_OPENABLE} category to your intent.</p>
+
+<p>On Android 4.3 (API level 18) and higher,
+you can also allow the user to select multiple files by adding
+{@link android.content.Intent#EXTRA_ALLOW_MULTIPLE} to the intent, set to {@code true}.
+You can then access each of the selected files in a {@link android.content.ClipData}
+object returned by {@link android.content.Intent#getClipData()}.</p>
+
+
+<dl>
+<dt><b>Action</b></dt>
+<dd>{@link android.content.Intent#ACTION_GET_CONTENT}</dd>
+
+<dt><b>Data URI Scheme</b></dt>
+<dd>None</dd>
+
+<dt><b>MIME Type</b></dt>
+<dd>The MIME type corresponding to the file type the user should select.
+</dd>
+
+<dt><b>Extras</b> (optional)</dt>
+<dd>
+ <dl>
+ <dt>{@link android.content.Intent#EXTRA_ALLOW_MULTIPLE}
+ <dd>A boolean declaring whether the user can select more than one file at a time.
+ </dd>
+ <dt>{@link android.content.Intent#EXTRA_LOCAL_ONLY}
+ <dd>A boolean that declares whether the returned file must be available directly from
+ the device, rather than requiring a download from a remote service.
+ </dd>
+ </dl>
+</dd>
+
+<dt><b>Category</b> (optional)</dt>
+<dd>
+ <dl>
+ <dt>{@link android.content.Intent#CATEGORY_OPENABLE}</dt>
+ <dd>To return only "openable" files that can be represented as a file stream
+ with {@link android.content.ContentResolver#openFileDescriptor openFileDescriptor()}.</dd>
+ </dl>
+</dd>
+
+</dl>
+
+<p><b>Example intent to get a photo:</b></p>
+<pre>
+static final int REQUEST_IMAGE_GET = 1;
+
+public void selectImage() {
+ Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
+ intent.setType("image/*");
+ if (intent.resolveActivity(getPackageManager()) != null) {
+ startActivityForResult(intent, REQUEST_IMAGE_GET);
+ }
+}
+
+@Override
+protected void onActivityResult(int requestCode, int resultCode, Intent data) {
+ if (requestCode == REQUEST_IMAGE_GET && resultCode == RESULT_OK) {
+ Bitmap thumbnail = data.getParcelable("data");
+ Uri fullPhotoUri = data.getData();
+ // Do work with photo saved at fullPhotoUri
+ ...
+ }
+}
+</pre>
+
+<p><b>Example intent filter to return a photo:</b></p>
+<pre>
+<activity ...>
+ <intent-filter>
+ <action android:name="android.intent.action.GET_CONTENT" />
+ <data android:type="image/*" />
+ <category android:name="android.intent.category.DEFAULT" />
+ <!-- The OPENABLE category declares that the returned file is accessible
+ from a content provider that supports {@link android.provider.OpenableColumns}
+ and {@link android.content.ContentResolver#openFileDescriptor ContentResolver.openFileDescriptor()} -->
+ <category android:name="android.intent.category.OPENABLE" />
+ </intent-filter>
+</activity>
+</pre>
+
+
+
+
+
+
+<h3 id="OpenFile">Open a specific type of file</h3>
+
+<p>Instead of retrieving a copy of a file that you must import to your app
+(by using the {@link android.content.Intent#ACTION_GET_CONTENT} action), when running on Android
+4.4 or higher, you can instead request to <em>open</em> a file that's managed by another app by
+using the {@link android.content.Intent#ACTION_OPEN_DOCUMENT} action and specifying a MIME type.
+To also allow the user to instead create a new document that your app can write to, use the {@link
+android.content.Intent#ACTION_CREATE_DOCUMENT} action instead. For example, instead of
+selecting from existing PDF documents, the {@link android.content.Intent#ACTION_CREATE_DOCUMENT}
+intent allows users to select where they'd like to create a new document (within another app
+that manages the document's storage)—your app then receives the URI location of where it
+can write the new document.</p>
+
+<p>Whereas the intent delivered to your {@link android.app.Activity#onActivityResult
+onActivityResult()} method from the {@link android.content.Intent#ACTION_GET_CONTENT} action may
+return a URI of any type, the result intent from {@link android.content.Intent#ACTION_OPEN_DOCUMENT}
+and {@link android.content.Intent#ACTION_CREATE_DOCUMENT} always specify the chosen file as a {@code
+content:} URI that's backed by a {@link android.provider.DocumentsProvider}. You can open the
+file with {@link android.content.ContentResolver#openFileDescriptor openFileDescriptor()} and
+query its details using columns from {@link android.provider.DocumentsContract.Document}.</p>
+
+<p>The returned URI grants your app long-term read access to the file (also possibly
+with write access). So the {@link android.content.Intent#ACTION_OPEN_DOCUMENT} action is
+particularly useful (instead of using {@link android.content.Intent#ACTION_GET_CONTENT})
+when you want to read an existing file without making a copy into your app,
+or when you want to open and edit a file in place.</p>
+
+<p>You can also allow the user to select multiple files by adding
+{@link android.content.Intent#EXTRA_ALLOW_MULTIPLE} to the intent, set to {@code true}.
+If the user selects just one item, then you can retrieve the item from {@link
+android.content.Intent#getData()}. If the user selects more than one item, then {@link
+android.content.Intent#getData()} returns null and you must instead
+retrieve each item from a {@link android.content.ClipData}
+object that is returned by {@link android.content.Intent#getClipData()}.</p>
+
+<p class="note"><strong>Note:</strong> Your intent <strong>must</strong> specify a MIME type and
+<strong>must</strong> declare the {@link android.content.Intent#CATEGORY_OPENABLE} category. If
+appropriate, you can specify more than one MIME type by adding an array of MIME types with the
+{@link android.content.Intent#EXTRA_MIME_TYPES} extra—if you do so, you must set the
+primary MIME type in {@link android.content.Intent#setType setType()} to {@code "*/*"}.</p>
+
+<dl>
+<dt><b>Action</b></dt>
+<dd>{@link android.content.Intent#ACTION_OPEN_DOCUMENT} or<br/>
+{@link android.content.Intent#ACTION_CREATE_DOCUMENT}</dd>
+
+<dt><b>Data URI Scheme</b></dt>
+<dd>None</dd>
+
+<dt><b>MIME Type</b></dt>
+<dd>The MIME type corresponding to the file type the user should select.
+</dd>
+
+<dt><b>Extras</b> (optional)</dt>
+<dd>
+ <dl>
+ <dt>{@link android.content.Intent#EXTRA_MIME_TYPES}
+ <dd>An array of MIME types corresponding to the types of files your app is
+ requesting. When you use this extra, you must set the primary MIME type in
+ {@link android.content.Intent#setType setType()} to {@code "*/*"}.</dd>
+ <dt>{@link android.content.Intent#EXTRA_ALLOW_MULTIPLE}
+ <dd>A boolean that declares whether the user can select more than one file at a time.
+ </dd>
+ <dt>{@link android.content.Intent#EXTRA_TITLE}
+ <dd>For use with {@link android.content.Intent#ACTION_CREATE_DOCUMENT} to specify
+ an initial file name.
+ </dd>
+ <dt>{@link android.content.Intent#EXTRA_LOCAL_ONLY}
+ <dd>A boolean that declares whether the returned file must be available directly from
+ the device, rather than requiring a download from a remote service.
+ </dd>
+ </dl>
+</dd>
+
+<dt><b>Category</b></dt>
+<dd>
+ <dl>
+ <dt>{@link android.content.Intent#CATEGORY_OPENABLE}</dt>
+ <dd>To return only "openable" files that can be represented as a file stream
+ with {@link android.content.ContentResolver#openFileDescriptor openFileDescriptor()}.</dd>
+ </dl>
+</dd>
+
+</dl>
+
+<p><b>Example intent to get a photo:</b></p>
+<pre>
+static final int REQUEST_IMAGE_OPEN = 1;
+
+public void selectImage() {
+ Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT);
+ intent.setType("image/*");
+ intent.addCategory(Intent.CATEGORY_OPENABLE);
+ // Only the system receives the ACTION_OPEN_DOCUMENT, so no need to test.
+ startActivityForResult(intent, REQUEST_IMAGE_OPEN);
+}
+
+@Override
+protected void onActivityResult(int requestCode, int resultCode, Intent data) {
+ if (requestCode == REQUEST_IMAGE_OPEN && resultCode == RESULT_OK) {
+ Uri fullPhotoUri = data.getData();
+ // Do work with full size photo saved at fullPhotoUri
+ ...
+ }
+}
+</pre>
+
+<p>Third party apps cannot actually respond to an intent with the
+{@link android.content.Intent#ACTION_OPEN_DOCUMENT} action. Instead, the system receives this
+intent and displays all the files available from various apps in a unified user interface.</p>
+
+<p>To provide your app's files in this UI and allow other apps to open them, you must implement
+a {@link android.provider.DocumentsProvider} and include an intent filter for
+{@link android.provider.DocumentsContract#PROVIDER_INTERFACE}
+({@code "android.content.action.DOCUMENTS_PROVIDER"}). For example:
+
+<pre>
+<provider ...
+ android:grantUriPermissions="true"
+ android:exported="true"
+ android:permission="android.permission.MANAGE_DOCUMENTS">
+ <intent-filter>
+ <action android:name="android.content.action.DOCUMENTS_PROVIDER" />
+ </intent-filter>
+</provider>
+</pre>
+
+<p>For more information about how to make the files managed by your app openable from other apps,
+read the <a href="{@docRoot}guide/topics/providers/document-provider.html">Storage Access
+Framework</a> guide.</p>
+
+
+
+
+
+
+
+
+
+
+
+<h2 id="Maps">Maps</h2>
+
+<h3 id="ViewMap">Show a location on a map</h3>
+
+<p>To open a map, use the {@link android.content.Intent#ACTION_VIEW} action and specify
+the location information in the intent data with one of the schemes defined below.</p>
+
+<dl>
+<dt><b>Action</b></dt>
+<dd>{@link android.content.Intent#ACTION_VIEW}</dd>
+
+<dt><b>Data URI Scheme</b></dt>
+<dd>
+<dl>
+ <dt><code>geo:<em>latitude</em>,<em>longitude</em></code></dt>
+ <dd>Show the map at the given longitude and latitude.
+ <p>Example: <code>"geo:47.6,-122.3"</code>
+ </dd>
+ <dt><code>geo:<em>latitude</em>,<em>longitude</em>?z=<em>zoom</em></code></dt>
+ <dd>Show the map at the given longitude and latitude at a certain zoom level. A zoom level of
+ 1 shows the whole Earth, centered at the given <em>lat</em>,<em>lng</em>. The highest
+ (closest) zoom level is 23.
+ <p>Example: <code>"geo:47.6,-122.3?z=11"</code>
+ </dd>
+ <dt><code>geo:0,0?q=lat,lng(label)</code></dt>
+ <dd>Show the map at the given longitude and latitude with a string label.
+ <p>Example: <code>"geo:0,0?q=34.99,-106.61(Treasure)"</code>
+ </dd>
+ <dt><code>geo:0,0?q=my+street+address</code></dt>
+ <dd>Show the location for "my street address" (may be a specific address or location query).
+ <p>Example: <code>"geo:0,0?q=1600+amphitheatre+parkway+ca"</code>
+ </dd>
+</dl>
+</dd>
+
+<dt><b>MIME Type</b></dt>
+<dd>None</dd>
+
+</dl>
+
+<p><b>Example intent:</b></p>
+<pre>
+public void showMap(Uri geoLocation) {
+ Intent intent = new Intent(Intent.ACTION_VIEW);
+ intent.setData(geoLocation);
+ if (intent.resolveActivity(getPackageManager()) != null) {
+ startActivity(intent);
+ }
+}
+</pre>
+
+<p><b>Example intent filter:</b></p>
+<pre>
+<activity ...>
+ <intent-filter>
+ <action android:name="android.intent.action.VIEW" />
+ <data android:scheme="geo" />
+ <category android:name="android.intent.category.DEFAULT" />
+ </intent-filter>
+</activity>
+</pre>
+
+
+
+
+
+
+
+
+<h2 id="Music">Music or Video</h2>
+
+
+<h3 id="PlayMedia">Play a media file</h3>
+
+<p>To play a music file, use the {@link android.content.Intent#ACTION_VIEW} action and
+specify the URI location of the file in the intent data.</p>
+
+<dl>
+<dt><b>Action</b></dt>
+<dd>{@link android.content.Intent#ACTION_VIEW}</dd>
+
+<dt><b>Data URI Scheme</b></dt>
+<dd>
+ <dl>
+ <dt>{@code file:<em><URI></em>}
+ <dt>{@code content:<em><URI></em>}
+ <dt>{@code http:<em><URL></em>}
+ </dl>
+</dd>
+
+<dt><b>MIME Type</b></dt>
+<dd>
+ <dl>
+ <dt><code>"audio/*"</code>
+ <dt><code>"application/ogg"</code>
+ <dt><code>"application/x-ogg"</code>
+ <dt><code>"application/itunes"</code>
+ <dt>Or any other that your app may require.
+ </dl>
+</dd>
+
+</dl>
+
+<p><b>Example intent:</b></p>
+<pre>
+public void playMedia(Uri file) {
+ Intent intent = new Intent(Intent.ACTION_VIEW);
+ intent.setData(file);
+ if (intent.resolveActivity(getPackageManager()) != null) {
+ startActivity(intent);
+ }
+}
+</pre>
+
+
+<p><b>Example intent filter:</b></p>
+<pre>
+<activity ...>
+ <intent-filter>
+ <action android:name="android.intent.action.VIEW" />
+ <data android:type="audio/*" />
+ <data android:type="application/ogg" />
+ <category android:name="android.intent.category.DEFAULT" />
+ </intent-filter>
+</activity>
+</pre>
+
+
+
+
+
+
+
+
+<h2 id="Phone">Phone</h2>
+
+
+<h3 id="DialPhone">Initiate a phone call</h3>
+
+<p>To open the phone app and dial a phone number, use the {@link
+android.content.Intent#ACTION_DIAL} action and specify a phone number using
+the URI scheme defined below. When the phone app opens, it displays the phone number
+but the user must press the <em>Call</em> button to begin the phone call.</p>
+
+
+<dl>
+<dt><b>Action</b></dt>
+<dd>{@link android.content.Intent#ACTION_DIAL}</dd>
+
+<dt><b>Data URI Scheme</b></dt>
+<dd>{@code tel:<phone-number>}</dd>
+
+<dt><b>MIME Type</b></dt>
+<dd>None</dd>
+
+</dl>
+
+
+<p>Valid telephone numbers are those defined
+in <a href="http://tools.ietf.org/html/rfc3966">the IETF RFC 3966</a>.
+Valid examples include the following:</p>
+<ul>
+<li><code>tel:2125551212</code> </li>
+<li><code>tel:(212) 555 1212</code></li>
+</ul>
+<p>The Phone's dialer is good at normalizing schemes, such as
+telephone numbers. So the scheme described isn't strictly required in the
+{@link android.net.Uri#parse(String) Uri.parse()} method.
+However, if you have not tried a scheme or are unsure whether it
+can be handled, use the {@link android.net.Uri#fromParts Uri.fromParts()}
+method instead.</p>
+
+
+<p><b>Example intent:</b></p>
+<pre>
+public void dialPhoneNumber(String phoneNumber) {
+ Intent intent = new Intent(Intent.ACTION_DIAL);
+ intent.setData(Uri.parse("tel:" + phoneNumber));
+ if (intent.resolveActivity(getPackageManager()) != null) {
+ startActivity(intent);
+ }
+}
+</pre>
+
+
+
+
+
+
+
+
+
+
+<h2 id="Settings">Settings</h2>
+
+<h3 id="OpenSettings">Open a specific section of Settings</h3>
+
+<p>To open a screen in the system settings when your app requires the user to change something,
+use one of the following intent actions to open the settings screen respective to the action name.
+</p>
+
+<dl>
+<dt><b>Action</b></dt>
+<dd>
+{@link android.provider.Settings#ACTION_SETTINGS}<br/>
+{@link android.provider.Settings#ACTION_WIRELESS_SETTINGS}<br/>
+{@link android.provider.Settings#ACTION_AIRPLANE_MODE_SETTINGS}<br/>
+{@link android.provider.Settings#ACTION_WIFI_SETTINGS}<br/>
+{@link android.provider.Settings#ACTION_APN_SETTINGS}<br/>
+{@link android.provider.Settings#ACTION_BLUETOOTH_SETTINGS}<br/>
+{@link android.provider.Settings#ACTION_DATE_SETTINGS}<br/>
+{@link android.provider.Settings#ACTION_LOCALE_SETTINGS}<br/>
+{@link android.provider.Settings#ACTION_INPUT_METHOD_SETTINGS}<br/>
+{@link android.provider.Settings#ACTION_DISPLAY_SETTINGS}<br/>
+{@link android.provider.Settings#ACTION_SECURITY_SETTINGS}<br/>
+{@link android.provider.Settings#ACTION_LOCATION_SOURCE_SETTINGS}<br/>
+{@link android.provider.Settings#ACTION_INTERNAL_STORAGE_SETTINGS}<br/>
+{@link android.provider.Settings#ACTION_MEMORY_CARD_SETTINGS}<br/>
+<p>See the {@link android.provider.Settings} documentation for additional settings screens
+that are available.</p>
+</dd>
+
+<dt><b>Data URI Scheme</b></dt>
+<dd>None</dd>
+
+<dt><b>MIME Type</b></dt>
+<dd>None</dd>
+
+</dl>
+
+<p><b>Example intent:</b></p>
+<pre>
+public void openWifiSettings() {
+ Intent intent = new Intent(Intent.ACTION_WIFI_SETTINGS);
+ if (intent.resolveActivity(getPackageManager()) != null) {
+ startActivity(intent);
+ }
+}
+</pre>
+
+
+
+
+
+
+
+<h2 id="Messaging">Text Messaging</h2>
+
+<h3 id="SendMessage">Compose an SMS/MMS message with attachment</h3>
+
+<p>To initiate an SMS or MMS text message, use one of the intent actions below and specify message
+details such as the phone number, subject, and message body using the extra keys listed below.</p>
+
+<dl>
+<dt><b>Action</b></dt>
+<dd>{@link android.content.Intent#ACTION_SENDTO} or<br>
+ {@link android.content.Intent#ACTION_SEND} or<br>
+ {@link android.content.Intent#ACTION_SEND_MULTIPLE}</dd>
+
+<dt><b>Data URI Scheme</b></dt>
+<dd>
+ <dl>
+ <dt>{@code sms:<em><phone_number></em>}
+ <dt>{@code smsto:<em><phone_number></em>}
+ <dt>{@code mms:<em><phone_number></em>}
+ <dt>{@code mmsto:<em><phone_number></em>}
+ </dl>
+ <p>Each of these schemes are handled the same.
+</dd>
+
+<dt><b>MIME Type</b></dt>
+<dd>
+ <dl>
+ <dt>{@link org.apache.http.protocol.HTTP#PLAIN_TEXT_TYPE} (<code>"text/plain"</code>)
+ <dt><code>"image/*"</code>
+ <dt><code>"video/*"</code>
+ </dl>
+</dd>
+
+<dt><b>Extras</b> (optional)</dt>
+<dd>
+ <dl>
+ <dt><code>"subject"</code></dt>
+ <dd>A string for the message subject (usually for MMS only).</dd>
+ <dt><code>"sms_body"</code></dt>
+ <dd>A string for the text message.</dd>
+ <dt>{@link android.content.Intent#EXTRA_STREAM}</dt>
+ <dd>A {@link android.net.Uri} pointing to the
+image or video to attach. If using the {@link android.content.Intent#ACTION_SEND_MULTIPLE} action,
+this extra should be an {@link java.util.ArrayList} of {@link
+android.net.Uri}s pointing to the images/videos to attach.</dd>
+ <dl>
+</dd>
+
+</dl>
+
+<p><b>Example intent:</b></p>
+<pre>
+public void composeMmsMessage(String message, Uri attachment) {
+ Intent intent = new Intent(Intent.ACTION_SEND);
+ intent.setType(HTTP.PLAIN_TEXT_TYPE);
+ intent.putExtra("sms_body", message);
+ intent.putExtra(Intent.EXTRA_STREAM, attachment);
+ if (intent.resolveActivity(getPackageManager()) != null) {
+ startActivity(intent);
+ }
+}
+</pre>
+
+<p>If you want to ensure that your intent is handled only by a text messaging app (and not other
+email or social apps), then use the {@link android.content.Intent#ACTION_SENDTO} action
+and include the {@code "smsto:"} data scheme. For example:</p>
+
+<pre>
+public void composeMmsMessage(String message, Uri attachment) {
+ Intent intent = new Intent(Intent.ACTION_SEND);
+ intent.setData(Uri.parse("smsto:")); // This ensures only SMS apps respond
+ intent.putExtra("sms_body", message);
+ intent.putExtra(Intent.EXTRA_STREAM, attachment);
+ if (intent.resolveActivity(getPackageManager()) != null) {
+ startActivity(intent);
+ }
+}
+</pre>
+
+
+<p><b>Example intent filter:</b></p>
+<pre>
+<activity ...>
+ <intent-filter>
+ <action android:name="android.intent.action.SEND" />
+ <data android:type="text/plain" />
+ <data android:type="image/*" />
+ <category android:name="android.intent.category.DEFAULT" />
+ </intent-filter>
+</activity>
+</pre>
+
+<p class="note"><strong>Note:</strong> If you're developing an SMS/MMS messaging app, you must
+implement intent filters for several additional actions in order to be available as the
+<em>default SMS app</em> on Android 4.4 and higher. For more information, see the documentation
+at {@link android.provider.Telephony}.</p>
+
+
+
+
+
+
+
+
+
+
+<h2 id="Browser">Web Browser</h2>
+
+<h3 id="ViewUrl">Load a web URL</h3>
+
+<p>To open a web page, use the {@link android.content.Intent#ACTION_VIEW} action
+and specify the web URL in the intent data.</p>
+
+<dl>
+ <dt><b>Action</b></dt>
+ <dd>{@link android.content.Intent#ACTION_VIEW}<dd>
+
+ <dt><b>Data URI Scheme</b></dt>
+ <dd>{@code http:<em><URL></em>}<br/>
+ {@code https:<em><URL></em>}</dd>
+
+ <dt><b>MIME Type</b></dt>
+ <dd>
+ <dl>
+ <dt>{@link org.apache.http.protocol.HTTP#PLAIN_TEXT_TYPE} (<code>"text/plain"</code>)
+ <dt><code>"text/html"</code>
+ <dt><code>"application/xhtml+xml"</code>
+ <dt><code>"application/vnd.wap.xhtml+xml"</code>
+ </dl>
+ </dd>
+</dl>
+
+
+<p><b>Example intent:</b></p>
+<pre>
+public void openWebPage(String url) {
+ Uri webpage = Uri.parse(url);
+ Intent intent = new Intent(Intent.ACTION_VIEW, webpage);
+ if (intent.resolveActivity(getPackageManager()) != null) {
+ startActivity(intent);
+ }
+}
+</pre>
+
+
+<p><b>Example intent filter:</b></p>
+<pre>
+<activity ...>
+ <intent-filter>
+ <action android:name="android.intent.action.VIEW" />
+ <!-- Include the host attribute if you want your app to respond
+ only to URLs with your app's domain. -->
+ <data android:scheme="http" android:host="www.example.com" />
+ <category android:name="android.intent.category.DEFAULT" />
+ <!-- The BROWSABLE category is required to get links from web pages. -->
+ <category android:name="android.intent.category.BROWSABLE" />
+ </intent-filter>
+</activity>
+</pre>
+
+
+<p class="note"><strong>Tip:</strong> If your Android app provides functionality similar to
+your web site, include an intent filter for URLs that point to your web site. Then,
+if users have your app installed, links from emails or other web pages pointing to your web site
+open your Android app instead of your web page.</p>
+
+
+
+
+<h3 id="SearchWeb">Perform a web search</h3>
+
+<p>To initiate a web search, use the {@link android.content.Intent#ACTION_WEB_SEARCH} action
+and specify the search string in the
+{@link android.app.SearchManager#QUERY SearchManager.QUERY} extra.</p>
+
+
+<dl>
+ <dt><b>Action</b></dt>
+ <dd>{@link android.content.Intent#ACTION_WEB_SEARCH}</dd>
+
+ <dt><b>Data URI Scheme</b></dt>
+ <dd>None</dd>
+
+ <dt><b>MIME Type</b></dt>
+ <dd>None</dd>
+
+ <dt><b>Extras</b></dt>
+ <dd>
+ <dl>
+ <dt>{@link android.app.SearchManager#QUERY SearchManager.QUERY}</dt>
+ <dd>The search string.</dd>
+ </dl>
+ </dd>
+</dl>
+
+<p><b>Example intent:</b></p>
+<pre>
+public void searchWeb(String query) {
+ Intent intent = new Intent(Intent.ACTION_SEARCH);
+ intent.putExtra(SearchManager.QUERY, query);
+ if (intent.resolveActivity(getPackageManager()) != null) {
+ startActivity(intent);
+ }
+}
+</pre>
+
+
+
diff --git a/docs/html/guide/components/intents-filters.jd b/docs/html/guide/components/intents-filters.jd
index dfe5fac..2f8c407 100644
--- a/docs/html/guide/components/intents-filters.jd
+++ b/docs/html/guide/components/intents-filters.jd
@@ -1,4 +1,5 @@
page.title=Intents and Intent Filters
+page.tags="IntentFilter"
@jd:body
<div id="qv-wrapper">
@@ -6,1050 +7,907 @@
<h2>In this document</h2>
<ol>
-<li><a href="#iobjs">Intent Objects</a></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>
+ <li><a href="#Types">Intent Types</a></li>
+ <li><a href="#Building">Building an Intent</a>
+ <ol>
+ <li><a href="#ExampleExplicit">Example explicit intent</a></li>
+ <li><a href="#ExampleSend">Example implicit intent</a></li>
+ <li><a href="#ForceChooser">Forcing an app chooser</a></li>
+ </ol>
+ </li>
+ <li><a href="#Receiving">Receiving an Implicit Intent</a>
+ <ol>
+ <li><a href="#ExampleFilters">Example filters</a></li>
+ </ol>
+ </li>
+ <li><a href="#PendingIntent">Using a Pending Intent</a></li>
+ <li><a href="#Resolution">Intent Resolution</a>
+ <ol>
+ <li><a href="#ActionTest">Action test</a></li>
+ <li><a href="#CategoryTest">Category test</a></li>
+ <li><a href="#DataTest">Data test</a></li>
+ <li><a href="#imatch">Intent matching</a></li>
+ </ol>
+ </li>
</ol>
-<h2>Key classes</h2>
+<h2>See also</h2>
<ol>
-<li>{@link android.content.Intent}</li>
-<li>{@link android.content.IntentFilter}</li>
-<li>{@link android.content.BroadcastReceiver}</li>
-<li>{@link android.content.pm.PackageManager}</li>
+<li><a href="{@docRoot}training/basics/intents/index.html">Interacting with Other Apps</a></li>
+<li><a href="{@docRoot}training/sharing/index.html">Sharing Content</a></li>
</ol>
</div>
</div>
-<p>
-Three of the core components of an application — activities, services, and
-broadcast receivers — are activated through messages, called <i>intents</i>.
-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, 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>
+
+
+<p>An {@link android.content.Intent} is a messaging object you can use to request an action
+from another <a href="{@docRoot}guide/components/fundamentals.html#Components">app component</a>.
+Although intents facilitate communication between components in several ways, there are three
+fundamental use-cases:</p>
<ul>
-<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. (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><b>To start an activity:</b>
+<p>An {@link android.app.Activity} represents a single screen in an app. You can start a new
+instance of an {@link android.app.Activity} by passing an {@link android.content.Intent}
+to {@link android.content.Context#startActivity startActivity()}. The {@link android.content.Intent}
+describes the activity to start and carries any necessary data.</p>
-<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
-ongoing service. Similarly, an intent can be passed to <code>{@link
-android.content.Context#bindService Context.bindService()}</code> to establish a
-connection between the calling component and a target service. It can optionally
-initiate the service if it's not already running.</p></li>
+<p>If you want to receive a result from the activity when it finishes,
+call {@link android.app.Activity#startActivityForResult
+startActivityForResult()}. Your activity receives the result
+as a separate {@link android.content.Intent} object in your activity's {@link
+android.app.Activity#onActivityResult onActivityResult()} callback.
+For more information, see the <a
+href="{@docRoot}guide/components/activities.html">Activities</a> guide.</p></li>
-<li><p>Intent objects passed to any of the broadcast methods (such as <code>{@link
-android.content.Context#sendBroadcast(Intent) Context.sendBroadcast()}</code>,
-<code>{@link android.content.Context#sendOrderedBroadcast(Intent, String)
-Context.sendOrderedBroadcast()}</code>, or <code>{@link
-android.content.Context#sendStickyBroadcast Context.sendStickyBroadcast()}</code>)
-are delivered to all interested broadcast receivers. Many kinds of broadcasts
-originate in system code.</p></li>
+<li><b>To start a service:</b>
+<p>A {@link android.app.Service} is a component that performs operations in the background
+without a user interface. You can start a service to perform a one-time operation
+(such as download a file) by passing an {@link android.content.Intent}
+to {@link android.content.Context#startService startService()}. The {@link android.content.Intent}
+describes the service to start and carries any necessary data.</p>
+
+<p>If the service is designed with a client-server interface, you can bind to the service
+from another component by passing an {@link android.content.Intent} to {@link
+android.content.Context#bindService bindService()}</code>. For more information, see the <a
+href="{@docRoot}guide/components/services.html">Services</a> guide.</p></li>
+
+<li><b>To deliver a broadcast:</b>
+<p>A broadcast is a message that any app can receive. The system delivers various
+broadcasts for system events, such as when the system boots up or the device starts charging.
+You can deliver a broadcast to other apps by passing an {@link android.content.Intent}
+to {@link android.content.Context#sendBroadcast(Intent) sendBroadcast()},
+{@link android.content.Context#sendOrderedBroadcast(Intent, String)
+sendOrderedBroadcast()}, or {@link
+android.content.Context#sendStickyBroadcast sendStickyBroadcast()}.</p>
+</li>
</ul>
-<p>
-In each case, the Android system finds the appropriate activity, service, or set
-of broadcast receivers to respond to the intent, instantiating them if necessary.
-There is no overlap within these messaging systems: Broadcast intents are delivered
-only to broadcast receivers, never to activities or services. An intent passed to
-{@code startActivity()} is delivered only to an activity, never to a service or
-broadcast receiver, and so on.
+
+
+
+<h2 id="Types">Intent Types</h2>
+
+<p>There are two types of intents:</p>
+
+<ul>
+<li><b>Explicit intents</b> specify the component to start by name (the
+fully-qualified class name). You'll typically use an explicit intent to start a component in
+your own app, because you know the class name of the activity or service you want to start. For
+example, start a new activity in response to a user action or start a service to download
+a file in the background.</li>
+
+<li><b>Implicit intents</b> do not name a specific component, but instead declare a general action
+to perform, which allows a component from another app to handle it. For example, if you want to
+show the user a location on a map, you can use an implicit intent to request that another capable
+app show a specified location on a map.</li>
+</ul>
+
+<p>When you create an explicit intent to start an activity or service, the system immediately
+starts the app component specified in the {@link android.content.Intent} object.</p>
+
+<div class="figure" style="width:446px">
+<img src="{@docRoot}images/components/intent-filters@2x.png" width="446" alt=""/>
+<p class="img-caption"><strong>Figure 1.</strong> Illustration of how an implicit intent is
+delivered through the system to start another activity: <b>[1]</b> <em>Activity A</em> creates an
+{@link android.content.Intent} with an action description and passes it to {@link
+android.content.Context#startActivity startActivity()}. <b>[2]</b> The Android System searches all
+apps for an intent filter that matches the intent. When a match is found, <b>[3]</b> the system
+starts the matching activity (<em>Activity B</em>) by invoking its {@link
+android.app.Activity#onCreate onCreate()} method and passing it the {@link android.content.Intent}.
</p>
+</div>
-<p>
-This document begins with a description of Intent objects. It then describes the
-rules Android uses to map intents to components — how it resolves which
-component should receive an intent message. For intents that don't explicitly
-name a target component, this process involves testing the Intent object against
-<i>intent filters</i> associated with potential targets.
-</p>
+<p>When you create an implicit intent, the Android system finds the appropriate component to start
+by comparing the contents of the intent to the <em>intent filters</em> declared in the <a href=
+"{@docRoot}guide/topics/manifest/manifest-intro.html">manifest file</a> of other apps on the
+device. If the intent matches an intent filter, the system starts that component and delivers it
+the {@link android.content.Intent} object. If multiple intent filters are compatible, the system
+displays a dialog so the user can pick which app to use.</p>
+
+<p>An intent filter is an expression in an app's manifest file that
+specifies the type of intents that the component
+would like to receive. For instance, by declaring an intent filter for an activity,
+you make it possible for other apps to directly start your activity with a certain kind of intent.
+Likewise, if you do <em>not</em> declare any intent filters for an activity, then it can be started
+only with an explicit intent.</p>
+
+<p class="caution"><strong>Caution:</strong> To ensure your app is secure, always use an explicit
+intent when starting a {@link android.app.Service} and do not
+declare intent filters for your services. Using an implicit intent to start a service is a
+security hazard because you cannot be certain what service will respond to the intent,
+and the user cannot see which service starts.</p>
-<h2><a name="iobjs"></a>Intent Objects</h2>
-<p>
-An {@link android.content.Intent} object is a bundle of information. It
-contains information of interest to the component that receives the intent
-(such as the action to be taken and the data to act on) plus information
-of interest to the Android system (such as the category of component that
-should handle the intent and instructions on how to launch a target activity).
-Principally, it can contain the following:
-</p>
+
+
+<h2 id="Building">Building an Intent</h2>
+
+<p>An {@link android.content.Intent} object carries information that the Android system uses
+to determine which component to start (such as the exact component name or component
+category that should receive the intent), plus information that the recipient component uses in
+order to properly perform the action (such as the action to take and the data to act upon).</p>
+
+
+<p>The primary information contained in an {@link android.content.Intent} is the following:</p>
<dl>
-<dt><b>Component name</b><a name="cname"></a></dt>
-<dd>The name of the component that should handle the intent. This field is
-a {@link android.content.ComponentName} object — a combination of the
-fully qualified class name of the target component (for example "{@code
-com.example.project.app.FreneticActivity}") and the package name set
-in the manifest file of the application where the component resides (for
-example, "{@code com.example.project}"). The package part of the component
-name and the package name set in the manifest do not necessarily have to match.
+<dt><b>Component name</b></dt>
+<dd>The name of the component to start.
-<p>
-The component name is optional. If it is set, the Intent object is
-delivered to an instance of the designated class. If it is not set,
-Android uses other information in the Intent object to locate a suitable
-target — see <a href="#ires">Intent Resolution</a>, later in this
-document.
-</p>
+<p>This is optional, but it's the critical piece of information that makes an intent
+<b>explicit</b>, meaning that the intent should be delivered only to the app component
+defined by the component name. Without a component name, the intent is <b>implicit</b> and the
+system decides which component should receive the intent based on the other intent information
+(such as the action, data, and category—described below). So if you need to start a specific
+component in your app, you should specify the component name.</p>
-<p>
-The component name is set by <code>{@link android.content.Intent#setComponent
-setComponent()}</code>, <code>{@link android.content.Intent#setClass
-setClass()}</code>, or <code>{@link android.content.Intent#setClassName(String, String)
-setClassName()}</code> and read by <code>{@link android.content.Intent#getComponent
-getComponent()}</code>.
-</p>
+<p class="note"><strong>Note:</strong> When starting a {@link android.app.Service}, you should
+<strong>always specify the component name</strong>. Otherwise, you cannot be certain what service
+will respond to the intent, and the user cannot see which service starts.</p>
+
+<p>This field of the {@link android.content.Intent} is a
+{@link android.content.ComponentName} object, which you can specify using a fully
+qualified class name of the target component, including the package name of the app. For example,
+{@code com.example.ExampleActivity}. You can set the component name with {@link
+android.content.Intent#setComponent setComponent()}, {@link android.content.Intent#setClass
+setClass()}, {@link android.content.Intent#setClassName(String, String) setClassName()}, or with the
+{@link android.content.Intent} constructor.</p>
+
</dd>
<p><dt><b>Action</b></dt>
-<dd>A string naming the action to be performed — or, in the case of broadcast
-intents, the action that took place and is being reported. The Intent class defines
-a number of action constants, including these:
-</p>
+<dd>A string that specifies the generic action to perform (such as <em>view</em> or <em>pick</em>).
-<table>
-<tr>
- <th>Constant</th>
- <th>Target component</th>
- <th>Action</th>
-</tr><tr>
- <td>{@code ACTION_CALL}
- <td>activity
- <td>Initiate a phone call.
-</tr><tr>
- <td>{@code ACTION_EDIT}
- <td>activity
- <td>Display data for the user to edit.
-</tr><tr>
- <td>{@code ACTION_MAIN}
- <td>activity
- <td>Start up as the initial activity of a task, with no data input and no returned output.
-</tr><tr>
- <td>{@code ACTION_SYNC}
- <td>activity
- <td>Synchronize data on a server with data on the mobile device.
-</tr><tr>
- <td>{@code ACTION_BATTERY_LOW}
- <td>broadcast receiver
- <td>A warning that the battery is low.
-</tr><tr>
- <td>{@code ACTION_HEADSET_PLUG}
- <td>broadcast receiver
- <td>A headset has been plugged into the device, or unplugged from it.
-</tr><tr>
- <td>{@code ACTION_SCREEN_ON}
- <td>broadcast receiver
- <td>The screen has been turned on.
-</tr><tr>
- <td>{@code ACTION_TIMEZONE_CHANGED}
- <td>broadcast receiver
- <td>The setting for the time zone has changed.
-</tr>
-</table>
+<p>In the case of a broadcast intent, this is the action that took place and is being reported.
+The action largely determines how the rest of the intent is structured—particularly
+what is contained in the data and extras.
-<p>
-See the {@link android.content.Intent} class description for a list of
-pre-defined constants for generic actions. Other actions are defined
-elsewhere in the Android API.
-You can also define your own action strings for activating the components
-in your application. Those you invent should include the application
-package as a prefix — for example:
-"<code>com.example.project.SHOW_COLOR</code>".
-</p>
+<p>You can specify your own actions for use by intents within your app (or for use by other
+apps to invoke components in your app), but you should usually use action constants
+defined by the {@link android.content.Intent} class or other framework classes. Here are some
+common actions for starting an activity:</p>
-<p>
-The action largely determines how the rest of the intent is structured
-— particularly the <a href="#data">data</a> and
-<a href="#extras">extras</a> fields —
-much as a method name determines a set of arguments and a return value.
-For this reason, it's a good idea to use action names that are
-as specific as possible, and to couple them tightly to the other fields of
-the intent. In other words, instead of defining an action in isolation,
-define an entire protocol for the Intent objects your components can handle.
-</p>
+<dl>
+<dt>{@link android.content.Intent#ACTION_VIEW}</dt>
+ <dd>Use this action in an intent with {@link
+ android.content.Context#startActivity startActivity()} when you have some information that
+ an activity can show to the user, such as a photo to view in a gallery app, or an address to
+ view in a map app.</dd>
-<p>
-The action in an Intent object is set by the
-<code>{@link android.content.Intent#setAction setAction()}</code>
-method and read by
-<code>{@link android.content.Intent#getAction getAction()}</code>.
-</p>
+<dt>{@link android.content.Intent#ACTION_SEND}</dt>
+ <dd>Also known as the "share" intent, you should use this in an intent with {@link
+ android.content.Context#startActivity startActivity()} when you have some data that the user can
+ share through another app, such as an email app or social sharing app.</dd>
+</dl>
+
+<p>See the {@link android.content.Intent} class reference for more
+constants that define generic actions. Other actions are defined
+elsewhere in the Android framework, such as in {@link android.provider.Settings} for actions
+that open specific screens in the system's Settings app.</p>
+
+<p>You can specify the action for an intent with {@link android.content.Intent#setAction
+setAction()} or with an {@link android.content.Intent} constructor.</p>
+
+<p>If you define your own actions, be sure to include your app's package name
+as a prefix. For example:</p>
+<pre>static final String ACTION_TIMETRAVEL = "com.example.action.TIMETRAVEL";</pre>
</dd>
-<p><dt><b>Data</b><a name="data"></a></dt>
-<dd>The URI of the data to be acted on and the MIME type of that data. Different
-actions are paired with different kinds of data specifications. For example, if
-the action field is {@code ACTION_EDIT},
-the data field would contain the URI of the document to be displayed for editing.
-If the action is {@code ACTION_CALL}, the data field would be a {@code tel:} URI
-with the number to call. Similarly, if the action is {@code ACTION_VIEW} and the
-data field is an {@code http:} URI, the receiving activity would be called upon
-to download and display whatever data the URI refers to.
+<dt><b>Data</b></dt>
+<dd>The URI (a {@link android.net.Uri} object) that references the data to be acted on and/or the
+MIME type of that data. The type of data supplied is generally dictated by the intent's action. For
+example, if the action is {@link android.content.Intent#ACTION_EDIT}, the data should contain the
+URI of the document to edit.
-<p>
-When matching an intent to a component that is capable of handling the data,
-it's often important to know the type of data (its MIME type) in addition to its URI.
-For example, a component able to display image data should not be called
-upon to play an audio file.
-</p>
+<p>When creating an intent,
+it's often important to specify the type of data (its MIME type) in addition to its URI.
+For example, an activity that's able to display images probably won't be able
+to play an audio file, even though the URI formats could be similar.
+So specifying the MIME type of your data helps the Android
+system find the best component to receive your intent.
+However, the MIME type can sometimes be inferred from the URI—particularly when the data is a
+{@code content:} URI, which indicates the data is located on the device and controlled by a
+{@link android.content.ContentProvider}, which makes the data MIME type visible to the system.</p>
-<p>
-In many cases, the data type can be inferred from the URI — particularly
-{@code content:} URIs, which indicate that the data is located on the device and
-controlled by a content provider (see the
-<a href="{@docRoot}guide/topics/providers/content-providers.html">separate
-discussion on content providers</a>). But the type can also be explicitly set
-in the Intent object.
-The <code>{@link android.content.Intent#setData setData()}</code> method specifies
-data only as a URI, <code>{@link android.content.Intent#setType setType()}</code>
-specifies it only as a MIME type, and <code>{@link
-android.content.Intent#setDataAndType setDataAndType()}</code> specifies it as both
-a URI and a MIME type. The URI is read by <code>{@link
-android.content.Intent#getData getData()}</code> and the type by <code>{@link
-android.content.Intent#getType getType()}</code>.
-</p>
+<p>To set only the data URI, call {@link android.content.Intent#setData setData()}.
+To set only the MIME type, call {@link android.content.Intent#setType setType()}. If necessary, you
+can set both explicitly with {@link
+android.content.Intent#setDataAndType setDataAndType()}.</p>
+
+<p class="caution"><strong>Caution:</strong> If you want to set both the URI and MIME type,
+<strong>do not</strong> call {@link android.content.Intent#setData setData()} and
+{@link android.content.Intent#setType setType()} because they each nullify the value of the other.
+Always use {@link android.content.Intent#setDataAndType setDataAndType()} to set both
+URI and MIME type.</p>
</dd>
<p><dt><b>Category</b></dt>
-<dd>A string containing additional information about the kind of component
-that should handle the intent. Any number of category descriptions can be
-placed in an Intent object. As it does for actions, the Intent class defines
-several category constants, including these:
+<dd>A string containing additional information about the kind of component
+that should handle the intent. Any number of category descriptions can be
+placed in an intent, but most intents do not require a category.
+Here are some common categories:
-<table>
-<tr>
- <th>Constant</th>
- <th>Meaning</th>
-</tr><tr>
- <td>{@code CATEGORY_BROWSABLE}
- <td>The target activity can be safely invoked by the browser to display data
- referenced by a link — for example, an image or an e-mail message.
-</tr><tr>
- <td>{@code CATEGORY_GADGET}
- <td>The activity can be embedded inside of another activity that hosts gadgets.
-</tr><tr>
- <td>{@code CATEGORY_HOME}
- <td>The activity displays the home screen, the first screen the user sees when
- the device is turned on or when the <em>Home</em> button is pressed.
-</tr><tr>
- <td>{@code CATEGORY_LAUNCHER}
- <td>The activity can be the initial activity of a task and is listed in
- the top-level application launcher.
-</tr><tr>
- <td>{@code CATEGORY_PREFERENCE}
- <td>The target activity is a preference panel.
-</tr>
-</table>
+<dl>
+<dt>{@link android.content.Intent#CATEGORY_BROWSABLE}</dt>
+ <dd>The target activity allows itself to be started by a web browser to display data
+ referenced by a link—such as an image or an e-mail message.
+ </dd>
+<dt>{@link android.content.Intent#CATEGORY_LAUNCHER}</dt>
+ <dd>The activity is the initial activity of a task and is listed in
+ the system's application launcher.
+ </dd>
+</dl>
-<p>
-See the {@link android.content.Intent} class description for the full list of
-categories.
-</p>
+<p>See the {@link android.content.Intent} class description for the full list of
+categories.</p>
-<p>
-The <code>{@link android.content.Intent#addCategory addCategory()}</code> method
-places a category in an Intent object, <code>{@link android.content.Intent#removeCategory
-removeCategory()}</code> deletes a category previously added, and <code>{@link android.content.Intent#getCategories getCategories()}</code> gets the set of all
-categories currently in the object.
-</p>
+<p>You can specify a category with {@link android.content.Intent#addCategory addCategory()}.</p>
+</dd>
+</dl>
+
+
+<p>These properties listed above (component name, action, data, and category) represent the
+defining characteristics of an intent. By reading these properties, the Android system
+is able to resolve which app component it should start.</p>
+
+<p>However, an intent can carry additional information that does not affect
+how it is resolved to an app component. An intent can also supply:</p>
+
+<dl>
+<dt><b>Extras</b></dt>
+<dd>Key-value pairs that carry additional information required to accomplish the requested action.
+Just as some actions use particular kinds of data URIs, some actions also use particular extras.
+
+<p>You can add extra data with various {@link android.content.Intent#putExtra putExtra()} methods,
+each accepting two parameters: the key name and the value.
+You can also create a {@link android.os.Bundle} object with all the extra data, then insert
+the {@link android.os.Bundle} in the {@link android.content.Intent} with {@link
+android.content.Intent#putExtras putExtras()}.</p>
+
+<p>For example, when creating an intent to send an email with
+{@link android.content.Intent#ACTION_SEND}, you can specify the "to" recipient with the
+{@link android.content.Intent#EXTRA_EMAIL} key, and specify the "subject" with the
+{@link android.content.Intent#EXTRA_SUBJECT} key.</p>
+
+<p>The {@link android.content.Intent} class specifies many {@code EXTRA_*} constants
+for standardized data types. If you need to declare your own extra keys (for intents that
+your app receives), be sure to include your app's package name
+as a prefix. For example:</p>
+<pre>static final String EXTRA_GIGAWATTS = "com.example.EXTRA_GIGAWATTS";</pre>
</dd>
-<p><dt><b>Extras</b><a name="extras"></a></dt>
-<dd>Key-value pairs for additional information that should be delivered to the
-component handling the intent. Just as some actions are paired with particular
-kinds of data URIs, some are paired with particular extras. For example, an
-{@code ACTION_TIMEZONE_CHANGED} intent has a "{@code time-zone}" extra that
-identifies the new time zone, and {@code ACTION_HEADSET_PLUG} has a
-"{@code state}" extra indicating whether the headset is now plugged in or
-unplugged, as well as a "{@code name}" extra for the type of headset.
-If you were to invent a {@code SHOW_COLOR} action, the color value would
-be set in an extra key-value pair.
+<dt><b>Flags</b></dt>
+<dd>Flags defined in the {@link android.content.Intent} class that function as metadata for the
+intent. The flags may instruct the Android system how to launch an activity (for example, which
+<a href="{@docRoot}guide/components/tasks-and-back-stack.html">task</a> the activity should belong
+to) and how to treat it after it's launched (for example, whether it belongs in the list of recent
+activities).
-<p>
-The Intent object has a series of {@code put...()} methods for inserting various
-types of extra data and a similar set of {@code get...()} methods for reading
-the data. These methods parallel those for {@link android.os.Bundle} objects.
-In fact, the extras can be installed and read as a Bundle using the <code>{@link
-android.content.Intent#putExtras putExtras()}</code> and <code>{@link
-android.content.Intent#getExtras getExtras()}</code> methods.
-</p>
-</dd>
-
-<p><dt><b>Flags</b></dt>
-<dd>Flags of various sorts. Many instruct the Android system how to launch an
-activity (for example, which task the activity should belong to) and how to treat
-it after it's launched (for example, whether it belongs in the list of recent
-activities). All these flags are defined in the Intent class.
+<p>For more information, see the {@link android.content.Intent#setFlags setFlags()} method.</p>
</dd>
</dl>
-<p>
-The Android system and the applications that come with the platform employ
-Intent objects both to send out system-originated broadcasts and to activate
-system-defined components. To see how to structure an intent to activate a
-system component, consult the
-<a href="{@docRoot}guide/appendix/g-app-intents.html">list of intents</a>
-in the reference.
-</p>
-<h2><a name="ires"></a>Intent Resolution</h2>
-<p>
-Intents can be divided into two groups:
-</p>
+<h3 id="ExampleExplicit">Example explicit intent</h3>
-<ul>
-<li><i>Explicit intents</i> designate the target component by its
-name (the <a href="#cname">component name field</a>, mentioned earlier,
-has a value set). Since component names would generally not be known to
-developers of other applications, explicit intents are typically used
-for application-internal messages — such as an activity starting
-a subordinate service or launching a sister activity.</li>
+<p>An explicit intent is one that you use to launch a specific app component, such as
+a particular activity or service in your app. To create an explicit intent, define
+the component name for the {@link android.content.Intent} object—all
+other intent properties are optional.</p>
-<li><p><i>Implicit intents</i> do not name a target (the field for
-the component name is blank). Implicit intents are often used to
-activate components in other applications.</p></li>
-</ul>
+<p>For example, if you built a service in your app, named {@code DownloadService},
+designed to download a file from the web, you can start it with the following code:</p>
-<p>
-Android delivers an explicit intent to an instance of the designated
-target class. Nothing in the Intent object other than the component
-name matters for determining which component should get the intent.
-</p>
+<pre>
+// Executed in an Activity, so 'this' is the {@link android.content.Context}
+// The fileUrl is a string URL, such as "http://www.example.com/image.png"
+Intent downloadIntent = new Intent(this, DownloadService.class);
+downloadIntent.setData({@link android.net.Uri#parse Uri.parse}(fileUrl));
+startService(downloadIntent);
+</pre>
-<p>
-A different strategy is needed for implicit intents. In the absence of a
-designated target, the Android system must find the best component (or
-components) to handle the intent — a single activity or service to
-perform the requested action or the set of broadcast receivers to respond
-to the broadcast announcement. It does so by comparing the contents of
-the Intent object to <i>intent filters</i>, structures associated with
-components that can potentially receive intents. Filters advertise the
-capabilities of a component and delimit the intents it can handle. They
-open the component to the possibility of receiving implicit intents of
-the advertised type. If a component does not have any intent filters,
-it can receive only explicit intents. A component with filters can
-receive both explicit and implicit intents.
-</p>
+<p>The {@link android.content.Intent#Intent(Context,Class)}
+constructor supplies the app {@link android.content.Context} and the
+component a {@link java.lang.Class} object. As such,
+this intent explicitly starts the {@code DownloadService} class in the app.</p>
-<p>
-Only three aspects of an Intent object are consulted when the object
-is tested against an intent filter:
-</p>
-
-<p style="margin-left: 2em">action
-<br/>data (both URI and data type)
-<br/>category</p>
-
-<p>
-The extras and flags play no part in resolving which component receives
-an intent.
-</p>
+<p>For more information about building and starting a service, see the
+<a href="{@docRoot}guide/components/services.html">Services</a> guide.</p>
-<h3><a name="ifs"></a>Intent filters</h3>
-<p>
-To inform the system which implicit intents they can handle, activities,
-services, and broadcast receivers can have one or more intent filters.
-Each filter describes a capability of the component, a set of intents that
-the component is willing to receive. It, in effect, filters in
-intents of a desired type, while filtering out unwanted
-intents — but only unwanted implicit intents (those that don't name
-a target class). An explicit intent is always delivered to its target,
-no matter what it contains; the filter is not consulted. But an implicit
-intent is delivered to a component only if it can pass through one of the
-component's filters.
-</p>
-<p>
-A component has separate filters for each job it can do, each face it can
-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>
+<h3 id="ExampleSend">Example implicit intent</h3>
+
+<p>An implicit intent specifies an action that can invoke any app on the device able
+to perform the action. Using an implicit intent is useful when your app cannot perform the
+action, but other apps probably can and you'd like the user to pick which app to use.</p>
+
+<p>For example, if you have content you want the user to share with other people, create an intent
+with the {@link android.content.Intent#ACTION_SEND} action
+and add extras that specify the content to share. When you call
+{@link android.content.Context#startActivity startActivity()} with that intent, the user can
+pick an app through which to share the content.</p>
+
+<p class="caution"><strong>Caution:</strong> It's possible that a user won't have <em>any</em>
+apps that handle the implicit intent you send to {@link android.content.Context#startActivity
+startActivity()}. If that happens, the call will fail and your app will crash. To verify
+that an activity will receive the intent, call {@link android.content.Intent#resolveActivity
+resolveActivity()} on your {@link android.content.Intent} object. If the result is non-null,
+then there is at least one app that can handle the intent and it's safe to call
+{@link android.content.Context#startActivity startActivity()}. If the result is null,
+you should not use the intent and, if possible, you should disable the feature that issues
+the intent.</p>
+
+
+<pre>
+// Create the text message with a string
+Intent sendIntent = new Intent();
+sendIntent.setAction(Intent.ACTION_SEND);
+sendIntent.putExtra(Intent.EXTRA_TEXT, textMessage);
+sendIntent.setType({@link
+ org.apache.http.protocol.HTTP#PLAIN_TEXT_TYPE
+ HTTP.PLAIN_TEXT_TYPE}); // "text/plain" MIME type
+
+// Verify that the intent will resolve to an activity
+if (sendIntent.resolveActivity(getPackageManager()) != null) {
+ startActivity(sendIntent);
+}
+</pre>
+
+<p class="note"><strong>Note:</strong> In this case, a URI is not used, but the intent's data type
+is declared to specify the content carried by the extras.</p>
+
+
+<p>When {@link android.content.Context#startActivity startActivity()} is called, the system
+examines all of the installed apps to determine which ones can handle this kind of intent (an
+intent with the {@link android.content.Intent#ACTION_SEND} action and that carries "text/plain"
+data). If there's only one app that can handle it, that app opens immediately and is given the
+intent. If multiple activities accept the intent, the system
+displays a dialog so the user can pick which app to use..</p>
+
+
+<div class="figure" style="width:200px">
+ <img src="{@docRoot}images/training/basics/intent-chooser.png" alt="">
+ <p class="img-caption"><strong>Figure 2.</strong> A chooser dialog.</p>
+</div>
+
+<h3 id="ForceChooser">Forcing an app chooser</h3>
+
+<p>When there is more than one app that responds to your implicit intent,
+the user can select which app to use and make that app the default choice for the
+action. This is nice when performing an action for which the user
+probably wants to use the same app from now on, such as when opening a web page (users
+often prefer just one web browser) .</p>
+
+<p>However, if multiple apps can respond to the intent and the user might want to use a different
+app each time, you should explicitly show a chooser dialog. The chooser dialog asks the
+user to select which app to use for the action every time (the user cannot select a default app for
+the action). For example, when your app performs "share" with the {@link
+android.content.Intent#ACTION_SEND} action, users may want to share using a different app depending
+on their current situation, so you should always use the chooser dialog, as shown in figure 2.</p>
+
+
+
+
+<p>To show the chooser, create an {@link android.content.Intent} using {@link
+android.content.Intent#createChooser createChooser()} and pass it to {@link
+android.app.Activity#startActivity startActivity()}. For example:</p>
+
+<pre>
+Intent intent = new Intent(Intent.ACTION_SEND);
+...
+
+// Always use string resources for UI text.
+// This says something like "Share this photo with"
+String title = getResources().getString(R.string.chooser_title);
+// Create intent to show chooser
+Intent chooser = Intent.createChooser(intent, title);
+
+// Verify the intent will resolve to at least one activity
+if (sendIntent.resolveActivity(getPackageManager()) != null) {
+ startActivity(sendIntent);
+}
+</pre>
+
+<p>This displays a dialog with a list of apps that respond to the intent passed to the {@link
+android.content.Intent#createChooser createChooser()} method and uses the supplied text as the
+dialog title.</p>
+
+
+
+
+
+
+
+
+
+<h2 id="Receiving">Receiving an Implicit Intent</h2>
+
+<p>To advertise which implicit intents your app can receive, declare one or more intent filters for
+each of your app components with an <a href=
+"{@docRoot}guide/topics/manifest/intent-filter-element.html">{@code <intent-filter>}</a>
+element in your <a href="{@docRoot}guide/topics/manifest/manifest-intro.html">manifest file</a>.
+Each intent filter specifies the type of intents it accepts based on the intent's action,
+data, and category. The system will deliver an implicit intent to your app component only if the
+intent can pass through one of your intent filters.</p>
+
+<p class="note"><strong>Note:</strong> An explicit intent is always delivered to its target,
+regardless of any intent filters the component declares.</p>
+
+<p>An app component should declare separate filters for each unique job it can do.
+For example, one activity in an image gallery app may have two filters: one filter
+to view an image, and another filter to edit an image. When the activity starts,
+it inspects the {@link android.content.Intent} and decides how to behave based on the information
+in the {@link android.content.Intent} (such as to show the editor controls or not).</p>
+
+<p>Each intent filter is defined by an <a
+href="{@docRoot}guide/topics/manifest/intent-filter-element.html">{@code <intent-filter>}</a>
+element in the app's manifest file, nested in the corresponding app component (such
+as an <a href="{@docRoot}guide/topics/manifest/activity-element.html">{@code <activity>}</a>
+element). Inside the <a
+href="{@docRoot}guide/topics/manifest/intent-filter-element.html">{@code <intent-filter>}</a>,
+you can specify the type of intents to accept using one or more
+of these three elements:</p>
+
+<dl>
+<dt><a href="{@docRoot}guide/topics/manifest/action-element.html">{@code <action>}</a></dt>
+ <dd>Declares the intent action accepted, in the {@code name} attribute. The value
+ must be the literal string value of an action, not the class constant.</dd>
+<dt><a href="{@docRoot}guide/topics/manifest/data-element.html">{@code <data>}</a></dt>
+ <dd>Declares the type of data accepted, using one or more attributes that specify various
+ aspects of the data URI (<code>scheme</code>, <code>host</code>, <code>port</code>,
+ <code>path</code>, etc.) and MIME type.</dd>
+<dt><a href="{@docRoot}guide/topics/manifest/category-element.html">{@code <category>}</a></dt>
+ <dd>Declares the intent category accepted, in the {@code name} attribute. The value
+ must be the literal string value of an action, not the class constant.
+
+ <p class="note"><strong>Note:</strong> In order to receive implicit intents, you
+ <strong>must include</strong> the
+ {@link android.content.Intent#CATEGORY_DEFAULT} category in the intent filter. The methods
+ {@link android.app.Activity#startActivity startActivity()} and
+ {@link android.app.Activity#startActivityForResult startActivityForResult()} treat all intents
+ as if they declared the {@link android.content.Intent#CATEGORY_DEFAULT} category.
+ If you do not declare this category in your intent filter, no implicit intents will resolve to
+ your activity.</p>
+ </dd>
+</dl>
+
+<p>For example, here's an activity declaration with an intent filter to receive an
+{@link android.content.Intent#ACTION_SEND} intent when the data type is text:</p>
+
+<pre>
+<activity android:name="ShareActivity">
+ <intent-filter>
+ <action android:name="android.intent.action.SEND"/>
+ <category android:name="android.intent.category.DEFAULT"/>
+ <data android:mimeType="text/plain"/>
+ </intent-filter>
+</activity>
+</pre>
+
+<p>It's okay to create a filter that includes more than one instance of
+<a href="{@docRoot}guide/topics/manifest/action-element.html">{@code <action>}</a>,
+<a href="{@docRoot}guide/topics/manifest/data-element.html">{@code <data>}</a>, or
+<a href="{@docRoot}guide/topics/manifest/category-element.html">{@code <category>}</a>.
+If you do, you simply need to be certain that the component can handle any and all combinations
+of those filter elements.</p>
+
+<p>When you want to handle multiple kinds of intents, but only in specific combinations of
+action, data, and category type, then you need to create multiple intent filters.</p>
+
<div class="sidebox-wrapper">
<div class="sidebox">
-<h2>Filters and security</h2>
-<p>An intent filter cannot be relied on for security. While it opens a
-component to receiving only certain kinds of implicit intents, it does
-nothing to prevent explicit intents from targeting the component. Even
-though a filter restricts the intents a component will be asked to handle
-to certain actions and data sources, someone could always put
-together an explicit intent with a different action and data source, and
-name the component as the target.
+<h2>Restricting access to components</h2>
+<p>Using an intent filter is not a secure way to prevent other apps from starting
+your components. Although intent filters restrict a component to respond to only
+certain kinds of implicit intents, another app can potentially start your app component
+by using an explicit intent if the developer determines your component names.
+If it's important that <em>only your own app</em> is able to start one of your components,
+set the <a href="{@docRoot}guide/topics/manifest/activity-element.html#exported">{@code
+exported}</a> attribute to {@code "false"} for that component.
</p>
</div>
-</div>
+</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>An implicit intent is tested against a filter by comparing the intent to each of the
+three elements. To be delivered to the component, the intent must pass all three tests.
+If it fails to match even one of them, the Android system won't deliver the intent to the
+component. However, because a component may have multiple intent filters, an intent that does
+not pass through one of a component's filters might make it through on another filter.
+More information about how the system resolves intents is provided in the section below
+about <a href="#Resolution">Intent Resolution</a>.</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.
-If it fails even one of them, the Android system won't deliver it to the
-component — at least not on the basis of that filter. However, since a
-component can have multiple intent filters, an intent that does not pass
-through one of a component's filters might make it through on another.
-</p>
+<p class="caution"><strong>Caution:</strong> To avoid inadvertently running a different app's
+{@link android.app.Service}, always use an explicit intent to start your own service and do not
+declare intent filters for your service.</p>
-<p>
-Each of the three tests is described in detail below:
-</p>
+<p class="note"><strong>Note:</strong>
+For all activities, you must declare your intent filters in the manifest file.
+However, filters for broadcast receivers can be registered dynamically by calling
+{@link android.content.Context#registerReceiver(BroadcastReceiver, IntentFilter, String,
+Handler) registerReceiver()}. You can then unregister the receiver with {@link
+android.content.Context#unregisterReceiver unregisterReceiver()}. Doing so allows your app
+to listen for specific broadcasts during only a specified period of time while your app
+is running.</p>
-<dl>
-<dt><b>Action test</b></dt>
-<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" />
- <action android:name="com.example.project.SHOW_RECENT" />
- <action android:name="com.example.project.SHOW_PENDING" />
- . . .
-</intent-filter></pre>
-<p>
-As the example shows, while an Intent object names just a single action,
-a filter may list more than one. The list cannot be empty; a filter must
-contain at least one {@code <action>} element, or it
-will block all intents.
-</p>
-<p>
-To pass this test, the action specified in the Intent object must match
-one of the actions listed in the filter. If the object or the filter
-does not specify an action, the results are as follows:
-</p>
+
+
+<h3 id="ExampleFilters">Example filters</h3>
+
+<p>To better understand some of the intent filter behaviors, look at the following snippet
+from the manifest file of a social-sharing app.</p>
+
+<pre>
+<activity android:name="MainActivity">
+ <!-- This activity is the main entry, should appear in app launcher -->
+ <intent-filter>
+ <action android:name="android.intent.action.MAIN" />
+ <category android:name="android.intent.category.LAUNCHER" />
+ </intent-filter>
+</activity>
+
+<activity android:name="ShareActivity">
+ <!-- This activity handles "SEND" actions with text data -->
+ <intent-filter>
+ <action android:name="android.intent.action.SEND"/>
+ <category android:name="android.intent.category.DEFAULT"/>
+ <data android:mimeType="text/plain"/>
+ </intent-filter>
+ <!-- This activity also handles "SEND" and "SEND_MULTIPLE" with media data -->
+ <intent-filter>
+ <action android:name="android.intent.action.SEND"/>
+ <action android:name="android.intent.action.SEND_MULTIPLE"/>
+ <category android:name="android.intent.category.DEFAULT"/>
+ <data android:mimeType="application/vnd.google.panorama360+jpg"/>
+ <data android:mimeType="image/*"/>
+ <data android:mimeType="video/*"/>
+ </intent-filter>
+</activity>
+</pre>
+
+<p>The first activity, {@code MainActivity}, is the app's main entry point—the activity that
+opens when the user initially launches the app with the launcher icon:</p>
+<ul>
+ <li>The {@link android.content.Intent#ACTION_MAIN} action
+ indicates this is the main entry point and does not expect any intent data.</li>
+ <li>The {@link android.content.Intent#CATEGORY_LAUNCHER} category indicates that this activity's
+ icon should be placed in the system's app launcher. If the <a
+ href="{@docRoot}guide/topics/manifest/activity-element.html">{@code <activity>}</a> element
+ does not specify an icon with {@code icon}, then the system uses the icon from the <a
+ href="{@docRoot}guide/topics/manifest/application-element.html">{@code <application>}</a>
+ element.</li>
+</ul>
+<p>These two must be paired together in order for the activity to appear in the app launcher.</p>
+
+<p>The second activity, {@code ShareActivity}, is intended to facilitate sharing text and media
+content. Although users might enter this activity by navigating to it from {@code MainActivity},
+they can also enter {@code ShareActivity} directly from another app that issues an implicit
+intent matching one of the two intent filters.</p>
+
+<p class="note"><strong>Note:</strong> The MIME type,
+<a href="https://developers.google.com/panorama/android/">{@code
+application/vnd.google.panorama360+jpg}</a>, is a special data type that specifies
+panoramic photos, which you can handle with the <a
+href="{@docRoot}reference/com/google/android/gms/panorama/package-summary.html">Google
+panorama</a> APIs.</p>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<h2 id="PendingIntent">Using a Pending Intent</h2>
+
+<p>A {@link android.app.PendingIntent} object is a wrapper around an {@link
+android.content.Intent} object. The primary purpose of a {@link android.app.PendingIntent}
+is to grant permission to a foreign application
+to use the contained {@link android.content.Intent} as if it were executed from your
+app's own process.</p>
+
+<p>Major use cases for a pending intent include:</p>
+<ul>
+ <li>Declare an intent to be executed when the user performs an action with your <a
+ href="{@docRoot}guide/topics/ui/notifiers/notifications.html">Notification</a>
+ (the Android system's {@link android.app.NotificationManager}
+ executes the {@link android.content.Intent}).
+ <li>Declare an intent to be executed when the user performs an action with your
+ <a href="{@docRoot}guide/topics/appwidgets/index.html">App Widget</a>
+ (the Home screen app executes the {@link android.content.Intent}).
+ <li>Declare an intent to be executed at a specified time in the future (the Android
+ system's {@link android.app.AlarmManager} executes the {@link android.content.Intent}).
+</ul>
+
+<p>Because each {@link android.content.Intent} object is designed to be handled by a specific
+type of app component (either an {@link android.app.Activity}, a {@link android.app.Service}, or
+a {@link android.content.BroadcastReceiver}), so too must a {@link android.app.PendingIntent} be
+created with the same consideration. When using a pending intent, your app will not
+execute the intent with a call such as {@link android.content.Context#startActivity
+startActivity()}. You must instead declare the intended component type when you create the
+{@link android.app.PendingIntent} by calling the respective creator method:</p>
<ul>
-<li>If the filter fails to list any actions, there is nothing for an
-intent to match, so all intents fail the test. No intents can get
-through the filter.</li>
+ <li>{@link android.app.PendingIntent#getActivity PendingIntent.getActivity()} for an
+ {@link android.content.Intent} that starts an {@link android.app.Activity}.</li>
+ <li>{@link android.app.PendingIntent#getService PendingIntent.getService()} for an
+ {@link android.content.Intent} that starts a {@link android.app.Service}.</li>
+ <li>{@link android.app.PendingIntent#getBroadcast PendingIntent.getBroadcast()} for a
+ {@link android.content.Intent} that starts an {@link android.content.BroadcastReceiver}.</li>
+</ul>
-<li><p>On the other hand, an Intent object that doesn't specify an
-action automatically passes the test — as long as the filter
-contains at least one action.</p></li>
-</ul
-</dd>
+<p>Unless your app is <em>receiving</em> pending intents from other apps,
+the above methods to create a {@link android.app.PendingIntent} are the only
+{@link android.app.PendingIntent} methods you'll probably ever need.</p>
-<dt><b>Category test</b></dt>
-<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:
+<p>Each method takes the current app {@link android.content.Context}, the
+{@link android.content.Intent} you want to wrap, and one or more flags that specify
+how the intent should be used (such as whether the intent can be used more than once).</p>
-<pre><intent-filter . . . >
+<p>More information about using pending intents is provided with the documentation for each
+of the respective use cases, such as in the <a
+href="{@docRoot}guide/topics/ui/notifiers/notifications.html">Notifications</a>
+and <a href="{@docRoot}guide/topics/appwidgets/index.html">App Widgets</a> API guides.</p>
+
+
+
+
+
+
+
+<h2 id="Resolution">Intent Resolution</h2>
+
+
+<p>When the system receives an implicit intent to start an activity, it searches for the
+best activity for the intent by comparing the intent to intent filters based on three aspects:</p>
+
+<ul>
+ <li>The intent action
+ <li>The intent data (both URI and data type)
+ <li>The intent category
+</ul>
+
+<p>The following sections describe how an intents are matched to the appropriate component(s)
+in terms of how the intent filter is declared in an app's manifest file.</p>
+
+
+<h3 id="ActionTest">Action test</h3>
+
+<p>To specify accepted intent actions, an intent filter can declare zero or more
+<a href="{@docRoot}guide/topics/manifest/action-element.html">{@code
+<action>}</a> elements. For example:</p>
+
+<pre>
+<intent-filter>
+ <action android:name="android.intent.action.EDIT" />
+ <action android:name="android.intent.action.VIEW" />
+ ...
+</intent-filter>
+</pre>
+
+<p>To get through this filter, the action specified in the {@link android.content.Intent}
+ must match one of the actions listed in the filter.</p>
+
+<p>If the filter does not list any actions, there is nothing for an
+intent to match, so all intents fail the test. However, if an {@link android.content.Intent}
+does not specify an action, it will pass the test (as long as the filter
+contains at least one action).</p>
+
+
+
+<h3 id="CategoryTest">Category test</h3>
+
+<p>To specify accepted intent categories, an intent filter can declare zero or more
+<a href="{@docRoot}guide/topics/manifest/category-element.html">{@code
+<category>}</a> elements. For example:</p>
+
+<pre>
+<intent-filter>
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
- . . .
-</intent-filter></pre>
+ ...
+</intent-filter>
+</pre>
-<p>
-Note that the constants described earlier for actions and categories are not
-used in the manifest file. The full string values are used instead. For
-instance, the "{@code android.intent.category.BROWSABLE}" string in the example
-above corresponds to the {@code CATEGORY_BROWSABLE} constant mentioned earlier
-in this document. Similarly, the string "{@code android.intent.action.EDIT}"
-corresponds to the {@code ACTION_EDIT} constant.
+<p>For an intent to pass the category test, every category in the {@link android.content.Intent}
+must match a category in the filter. The reverse is not necessary—the intent filter may
+declare more categories than are specified in the {@link android.content.Intent} and the
+{@link android.content.Intent} will still pass. Therefore, an intent with no categories should
+always pass this test, regardless of what categories are declared in the filter.</p>
+
+<p class="note"><strong>Note:</strong>
+Android automatically applies the the {@link android.content.Intent#CATEGORY_DEFAULT} category
+to all implicit intents passed to {@link
+android.content.Context#startActivity startActivity()} and {@link
+android.app.Activity#startActivityForResult startActivityForResult()}.
+So if you want your activity to receive implicit intents, it must
+include a category for {@code "android.intent.category.DEFAULT"} in its intent filters (as
+shown in the previous {@code <intent-filter>} example.</p>
+
+
+
+<h3 id="DataTest">Data test</h3>
+
+<p>To specify accepted intent data, an intent filter can declare zero or more
+<a href="{@docRoot}guide/topics/manifest/data-element.html">{@code
+<data>}</a> elements. For example:</p>
+
+<pre>
+<intent-filter>
+ <data android:mimeType="video/mpeg" android:scheme="http" ... />
+ <data android:mimeType="audio/mpeg" android:scheme="http" ... />
+ ...
+</intent-filter>
+</pre>
+
+<p>Each <code><a href="{@docRoot}guide/topics/manifest/data-element.html"><data></a></code>
+element can specify a URI structure 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>
-<p>
-For an intent to pass the category test, every category in the Intent object
-must match a category in the filter. The filter can list additional categories,
-but it cannot omit any that are in the intent.
-</p>
+<p style="margin-left: 2em">{@code <scheme>://<host>:<port>/<path>}</p>
<p>
-In principle, therefore, an Intent object with no categories should always pass
-this test, regardless of what's in the filter. That's mostly true. However,
-with one exception, Android treats all implicit intents passed to {@link
-android.content.Context#startActivity startActivity()} as if they contained
-at least one category: "{@code android.intent.category.DEFAULT}" (the
-{@code CATEGORY_DEFAULT} constant).
-Therefore, activities that are willing to receive implicit intents must
-include "{@code android.intent.category.DEFAULT}" in their intent filters.
-(Filters with "{@code android.intent.action.MAIN}" and
-"{@code android.intent.category.LAUNCHER}" settings are the exception.
-They mark activities that begin new tasks and that are represented on the
-launcher screen. They can include "{@code android.intent.category.DEFAULT}"
-in the list of categories, but don't need to.) See <a href="#imatch">Using
-intent matching</a>, later, for more on these filters.)
-</p>
-<dd>
-
-<dt><b>Data test</b></dt>
-<dd>Like the action and categories, the data specification for an intent filter
-is contained in a subelement. And, as in those cases, the subelement can appear
-multiple times, or not at all. For example:
-
-<pre><intent-filter . . . >
- <data android:mimeType="video/mpeg" android:scheme="http" . . . />
- <data android:mimeType="audio/mpeg" android:scheme="http" . . . />
- . . .
-</intent-filter></pre>
-
-<p>
-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>
-
-<p style="margin-left: 2em">{@code scheme://host:port/path}</p>
-
-<p>
-For example, in the following URI,
+For example:
</p>
<p style="margin-left: 2em">{@code content://com.example.project:200/folder/subfolder/etc}</p>
-<p> the scheme is "{@code content}", the host is "{@code com.example.project}",
-the port is "{@code 200}", and the path is "{@code folder/subfolder/etc}".
-The host and port together constitute the URI <i>authority</i>; if a host is
-not specified, the port is ignored.
+<p>In this URI, the scheme is {@code content}, the host is {@code com.example.project},
+the port is {@code 200}, and the path is {@code folder/subfolder/etc}.
</p>
-<p>
-Each of these attributes is optional, but they are not independent of each other:
-For an authority to be meaningful, a scheme must also be specified.
-For a path to be meaningful, both a scheme and an authority must be specified.
-</p>
+<p>Each of these attributes is optional in a <a
+href="{@docRoot}guide/topics/manifest/data-element.html">{@code <data>}</a> element,
+but there are linear dependencies:</p>
+<ul>
+ <li>If a scheme is not specified, the host is ignored.</li>
+ <li>If a host is not specified, the port is ignored.</li>
+ <li>If both the scheme and host are not specified, the path is ignored.</li>
+</ul>
-<p>
-When the URI in an Intent object is compared to a URI specification in a filter,
-it's compared only to the parts of the URI actually mentioned in the filter.
-For example, if a filter specifies only a scheme, all URIs with that scheme match
-the filter. If a filter specifies a scheme and an authority but no path, all URIs
-with the same scheme and authority match, regardless of their paths. If a filter
-specifies a scheme, an authority, and a path, only URIs with the same scheme,
-authority, and path match. However, a path specification in the filter can
-contain wildcards to require only a partial match of the path.
-</p>
+<p>When the URI in an intent is compared to a URI specification in a filter,
+it's compared only to the parts of the URI included in the filter. For example:</p>
+<ul>
+ <li>If a filter specifies only a scheme, all URIs with that scheme match
+the filter.</li>
+ <li>If a filter specifies a scheme and an authority but no path, all URIs
+with the same scheme and authority pass the filter, regardless of their paths.</li>
+ <li>If a filter specifies a scheme, an authority, and a path, only URIs with the same scheme,
+authority, and path pass the filter.</li>
+</ul>
-<p>
-The {@code type} attribute of a {@code <data>} element specifies the MIME type
-of the data. It's more common in filters than a URI. Both the Intent object and
-the filter can use a "*" wildcard for the subtype field — for example,
-"{@code text/*}" or "{@code audio/*}" — indicating any subtype matches.
-</p>
+<p class="note"><strong>Note:</strong> A path specification can
+contain a wildcard asterisk (*) to require only a partial match of the path name.</p>
-<p>
-The data test compares both the URI and the data type in the Intent object to a URI
-and data type specified in the filter. The rules are as follows:
+<p>The data test compares both the URI and the MIME type in the intent to a URI
+and MIME type specified in the filter. The rules are as follows:
</p>
<ol type="a">
-<li>An Intent object that contains neither a URI nor a data type passes the
-test only if the filter likewise does not specify any URIs or data types.</li>
+<li>An intent that contains neither a URI nor a MIME type passes the
+test only if the filter does not specify any URIs or MIME types.</li>
-<li><p>An Intent object that contains a URI but no data type (and a type cannot
-be inferred from the URI) passes the test only if its URI matches a URI in the
-filter and the filter likewise does not specify a type. This will be the case
-only for URIs like {@code mailto:} and {@code tel:} that do not refer to actual data.</p></li>
+<li>An intent that contains a URI but no MIME type (neither explicit nor inferable from the
+URI) passes the test only if its URI matches the filter's URI format
+and the filter likewise does not specify a MIME type.</li>
-<li><p>An Intent object that contains a data type but not a URI passes the test
-only if the filter lists the same data type and similarly does not specify a URI.</p></li>
+<li>An intent that contains a MIME type but not a URI passes the test
+only if the filter lists the same MIME type and does not specify a URI format.</li>
-<li><p>An Intent object that contains both a URI and a data type (or a data type
-can be inferred from the URI) passes the data type part of the test only if its
-type matches a type listed in the filter. It passes the URI part of the test
-either if its URI matches a URI in the filter or if it has a {@code content:}
-or {@code file:} URI and the filter does not specify a URI. In other words,
+<li>An intent that contains both a URI and a MIME type (either explicit or inferable from the
+URI) passes the MIME type part of the test only if that
+type matches a type listed in the filter. It passes the URI part of the test
+either if its URI matches a URI in the filter or if it has a {@code content:}
+or {@code file:} URI and the filter does not specify a URI. In other words,
a component is presumed to support {@code content:} and {@code file:} data if
-its filter lists only a data type.</p></li>
+its filter lists <em>only</em> a MIME type.</p></li>
</ol>
-</dl>
<p>
-If an intent can pass through the filters of more than one activity or service,
-the user may be asked which component to activate. An exception is raised if
-no target can be found.
-</p>
-
-
-<h3><a name="ccases"></a>Common cases</h3>
-
-<p>
-The last rule shown above for the data test, rule (d), reflects the expectation
+This last rule, rule (d), reflects the expectation
that components are able to get local data from a file or content provider.
Therefore, their filters can list just a data type and do not need to explicitly
name the {@code content:} and {@code file:} schemes.
-This is a typical case. A {@code <data>} element like the following,
-for example, tells Android that the component can get image data from a content
+This is a typical case. A <a
+href="{@docRoot}guide/topics/manifest/data-element.html">{@code <data>}</a> element
+like the following, for example, tells Android that the component can get image data from a content
provider and display it:
</p>
-<pre><data android:mimeType="image/*" /></pre>
+<pre>
+<intent-filter>
+ <data android:mimeType="image/*" />
+ ...
+</intent-filter></pre>
<p>
-Since most available data is dispensed by content providers, filters that
+Because most available data is dispensed by content providers, filters that
specify a data type but not a URI are perhaps the most common.
</p>
<p>
Another common configuration is filters with a scheme and a data type. For
-example, a {@code <data>} element like the following tells Android that
-the component can get video data from the network and display it:
+example, a <a
+href="{@docRoot}guide/topics/manifest/data-element.html">{@code <data>}</a>
+element like the following tells Android that
+the component can retrieve video data from the network in order to perform the action:
</p>
-<pre><data android:scheme="http" android:type="video/*" /></pre>
-
-<p>
-Consider, for example, what the browser application does when
-the user follows a link on a web page. It first tries to display the data
-(as it could if the link was to an HTML page). If it can't display the data,
-it puts together an implicit intent with the scheme and data type and tries
-to start an activity that can do the job. If there are no takers, it asks the
-download manager to download the data. That puts it under the control
-of a content provider, so a potentially larger pool of activities
-(those with filters that just name a data type) can respond.
-</p>
-
-<p>
-Most applications also have a way to start fresh, without a reference
-to any particular data. Activities that can initiate applications
-have filters with "{@code android.intent.action.MAIN}" specified as
-the action. If they are to be represented in the application launcher,
-they also specify the "{@code android.intent.category.LAUNCHER}"
-category:
-</p>
-
-<pre><intent-filter . . . >
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.LAUNCHER" />
+<pre>
+<intent-filter>
+ <data android:scheme="http" android:type="video/*" />
+ ...
</intent-filter></pre>
-<h3><a name="imatch"></a>Using intent matching</h3>
-<p>
-Intents are matched against intent filters not only to discover a target
+<h3 id="imatch">Intent matching</h3>
+
+<p>Intents are matched against intent filters not only to discover a target
component to activate, but also to discover something about the set of
-components on the device. For example, the Android system populates the
-application launcher, the top-level screen that shows the applications
-that are available for the user to launch, by finding all the activities
- with intent filters that specify the "{@code android.intent.action.MAIN}"
-action and "{@code android.intent.category.LAUNCHER}" category
-(as illustrated in the previous section). It then displays the icons and
-labels of those activities in the launcher. Similarly, it discovers the
-home screen by looking for the activity with
-"{@code android.intent.category.HOME}" in its filter.
-</p>
+components on the device. For example, the Home app populates the app launcher
+by finding all the activities with intent filters that specify the
+{@link android.content.Intent#ACTION_MAIN} action and
+{@link android.content.Intent#CATEGORY_LAUNCHER} category.</p>
-<p>
-Your application can use intent matching is a similar way.
+<p>Your application can use intent matching in a similar way.
The {@link android.content.pm.PackageManager} has a set of {@code query...()}
-methods that return all components that can accept a particular intent, and
+methods that return all components that can accept a particular intent, and
a similar series of {@code resolve...()} methods that determine the best
-component to respond to an intent. For example,
-{@link android.content.pm.PackageManager#queryIntentActivities
+component to respond to an intent. For example,
+{@link android.content.pm.PackageManager#queryIntentActivities
queryIntentActivities()} returns a list of all activities that can perform
-the intent passed as an argument, and {@link
-android.content.pm.PackageManager#queryIntentServices
-queryIntentServices()} returns a similar list of services.
+the intent passed as an argument, and {@link
+android.content.pm.PackageManager#queryIntentServices
+queryIntentServices()} returns a similar list of services.
Neither method activates the components; they just list the ones that
-can respond. There's a similar method,
-{@link android.content.pm.PackageManager#queryBroadcastReceivers
+can respond. There's a similar method,
+{@link android.content.pm.PackageManager#queryBroadcastReceivers
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}resources/samples/index.html">Tutorials and Sample Code</a>
-section <a href="{@docRoot}resources/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 — 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/providers/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/guide/components/services.jd b/docs/html/guide/components/services.jd
index 30da33a..da01d2c 100644
--- a/docs/html/guide/components/services.jd
+++ b/docs/html/guide/components/services.jd
@@ -212,41 +212,35 @@
</manifest>
</pre>
+<p>See the <a
+href="{@docRoot}guide/topics/manifest/service-element.html">{@code <service>}</a> element
+reference for more information about declaring your service in the manifest.</p>
+
<p>There are other attributes you can include in the <a
href="{@docRoot}guide/topics/manifest/service-element.html">{@code <service>}</a> element to
define properties such as permissions required to start the service and the process in
which the service should run. The <a
href="{@docRoot}guide/topics/manifest/service-element.html#nm">{@code android:name}</a>
attribute is the only required attribute—it specifies the class name of the service. Once
-you publish your application, you should not change this name, because if you do, you might break
-some functionality where explicit intents are used to reference your service (read the blog post, <a
+you publish your application, you should not change this name, because if you do, you risk breaking
+code due to dependence on explicit intents to start or bind the service (read the blog post, <a
href="http://android-developers.blogspot.com/2011/06/things-that-cannot-change.html">Things
That Cannot Change</a>).
-<p>See the <a
-href="{@docRoot}guide/topics/manifest/service-element.html">{@code <service>}</a> element
-reference for more information about declaring your service in the manifest.</p>
+<p>To ensure your app is secure, <strong>always use an explicit intent when starting or binding
+your {@link android.app.Service}</strong> and do not declare intent filters for the service. If
+it's critical that you allow for some amount of ambiguity as to which service starts, you can
+supply intent filters for your services and exclude the component name from the {@link
+android.content.Intent}, but you then must set the package for the intent with {@link
+android.content.Intent#setPackage setPackage()}, which provides sufficient disambiguation for the
+target service.</p>
-<p>Just like an activity, a service can define intent filters that allow other components to
-invoke the service using implicit intents. By declaring intent filters, components
-from any application installed on the user's device can potentially start your service if your
-service declares an intent filter that matches the intent another application passes to {@link
-android.content.Context#startService startService()}.</p>
-
-<p>If you plan on using your service only locally (other applications do not use it), then you
-don't need to (and should not) supply any intent filters. Without any intent filters, you must
-start the service using an intent that explicitly names the service class. More information
-about <a href="#StartingAService">starting a service</a> is discussed below.</p>
-
-<p>Additionally, you can ensure that your service is private to your application only if
-you include the <a
+<p>Additionally, you can ensure that your service is available to only your app by
+including the <a
href="{@docRoot}guide/topics/manifest/service-element.html#exported">{@code android:exported}</a>
-attribute and set it to {@code "false"}. This is effective even if your service supplies intent
-filters.</p>
+attribute and setting it to {@code "false"}. This effectively stops other apps from starting your
+service, even when using an explicit intent.</p>
-<p>For more information about creating intent filters for your service, see the <a
-href="{@docRoot}guide/components/intents-filters.html">Intents and Intent Filters</a>
-document.</p>
@@ -333,7 +327,7 @@
<pre>
public class HelloIntentService extends IntentService {
- /**
+ /**
* A constructor is required, and must call the super {@link android.app.IntentService#IntentService}
* constructor with a name for the worker thread.
*/
@@ -443,8 +437,8 @@
HandlerThread thread = new HandlerThread("ServiceStartArguments",
Process.THREAD_PRIORITY_BACKGROUND);
thread.start();
-
- // Get the HandlerThread's Looper and use it for our Handler
+
+ // Get the HandlerThread's Looper and use it for our Handler
mServiceLooper = thread.getLooper();
mServiceHandler = new ServiceHandler(mServiceLooper);
}
@@ -458,7 +452,7 @@
Message msg = mServiceHandler.obtainMessage();
msg.arg1 = startId;
mServiceHandler.sendMessage(msg);
-
+
// If we get killed, after returning from here, restart
return START_STICKY;
}
@@ -468,10 +462,10 @@
// We don't provide binding, so return null
return null;
}
-
+
@Override
public void onDestroy() {
- Toast.makeText(this, "service done", Toast.LENGTH_SHORT).show();
+ Toast.makeText(this, "service done", Toast.LENGTH_SHORT).show();
}
}
</pre>
@@ -652,7 +646,7 @@
<h2 id="Foreground">Running a Service in the Foreground</h2>
<p>A foreground service is a service that's considered to be something the
-user is actively aware of and thus not a candidate for the system to kill when low on memory. A
+user is actively aware of and thus not a candidate for the system to kill when low on memory. A
foreground service must provide a notification for the status bar, which is placed under the
"Ongoing" heading, which means that the notification cannot be dismissed unless the service is
either stopped or removed from the foreground.</p>
diff --git a/docs/html/guide/guide_toc.cs b/docs/html/guide/guide_toc.cs
index 8f2795a..18b234e 100644
--- a/docs/html/guide/guide_toc.cs
+++ b/docs/html/guide/guide_toc.cs
@@ -6,16 +6,40 @@
localized titles are added in the language order specified below.
?>
<ul id="nav">
- <!-- Walkthrough for Developers -- quick overview of what it's like to develop on Android -->
- <!--<li style="color:red">Overview</li> -->
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="<?cs var:toroot ?>guide/index.html">
+ <span class="en">Introduction</span>
+ </a></div>
+ <ul>
+ <li><a href="<?cs var:toroot ?>guide/components/fundamentals.html">
+ <span class="en">App Fundamentals</span></a>
+ </li>
+ <li><a href="<?cs var:toroot ?>guide/practices/compatibility.html">
+ <span class="en">Device Compatibility</span>
+ </a></li>
+ <li><a href="<?cs var:toroot ?>guide/topics/security/permissions.html">
+ <span class="en">System Permissions</span>
+ </a>
+ </li>
+ </ul>
+ </li>
+
<li class="nav-section">
<div class="nav-section-header"><a href="<?cs var:toroot ?>guide/components/index.html">
<span class="en">App Components</span>
</a></div>
<ul>
- <li><a href="<?cs var:toroot ?>guide/components/fundamentals.html">
- <span class="en">App Fundamentals</span></a>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="<?cs var:toroot ?>guide/components/intents-filters.html">
+ <span class="en">Intents and Intent Filters</span>
+ </a></div>
+ <ul>
+ <li><a href="<?cs var:toroot ?>guide/components/intents-common.html">
+ <span class="en">Common Intents</span>
+ </a></li>
+ </ul>
</li>
<li class="nav-section">
<div class="nav-section-header"><a href="<?cs var:toroot ?>guide/components/activities.html">
@@ -68,17 +92,6 @@
</a></li>
</ul>
</li>
- <li><a href="<?cs var:toroot ?>guide/components/intents-filters.html">
- <span class="en">Intents and Intent Filters</span>
- </a></li>
- <li><a href="<?cs var:toroot ?>guide/components/processes-and-threads.html">
- <span class="en">Processes and Threads</span>
- </a>
- </li>
- <li><a href="<?cs var:toroot ?>guide/topics/security/permissions.html">
- <span class="en">Permissions</span>
- </a>
- </li>
<li class="nav-section">
<div class="nav-section-header"><a href="<?cs var:toroot ?>guide/topics/appwidgets/index.html">
<span class="en">App Widgets</span>
@@ -89,43 +102,90 @@
</a></li>
</ul>
</li>
- <li class="nav-section">
- <div class="nav-section-header"><a href="<?cs var:toroot ?>guide/topics/manifest/manifest-intro.html">
- <span class="en">Android Manifest</span>
- </a></div>
- <ul>
- <li><a href="<?cs var:toroot ?>guide/topics/manifest/action-element.html"><action></a></li>
- <li><a href="<?cs var:toroot ?>guide/topics/manifest/activity-element.html"><activity></a></li>
- <li><a href="<?cs var:toroot ?>guide/topics/manifest/activity-alias-element.html"><activity-alias></a></li>
- <li><a href="<?cs var:toroot ?>guide/topics/manifest/application-element.html"><application></a></li>
- <li><a href="<?cs var:toroot ?>guide/topics/manifest/category-element.html"><category></a></li>
- <li><a href="<?cs var:toroot ?>guide/topics/manifest/compatible-screens-element.html"><compatible-screens></a></li>
- <li><a href="<?cs var:toroot ?>guide/topics/manifest/data-element.html"><data></a></li>
- <li><a href="<?cs var:toroot ?>guide/topics/manifest/grant-uri-permission-element.html"><grant-uri-permission></a></li>
- <li><a href="<?cs var:toroot ?>guide/topics/manifest/instrumentation-element.html"><instrumentation></a></li>
- <li><a href="<?cs var:toroot ?>guide/topics/manifest/intent-filter-element.html"><intent-filter></a></li>
- <li><a href="<?cs var:toroot ?>guide/topics/manifest/manifest-element.html"><manifest></a></li>
- <li><a href="<?cs var:toroot ?>guide/topics/manifest/meta-data-element.html"><meta-data></a></li>
- <li><a href="<?cs var:toroot ?>guide/topics/manifest/path-permission-element.html"><path-permission></a></li>
- <li><a href="<?cs var:toroot ?>guide/topics/manifest/permission-element.html"><permission></a></li>
- <li><a href="<?cs var:toroot ?>guide/topics/manifest/permission-group-element.html"><permission-group></a></li>
- <li><a href="<?cs var:toroot ?>guide/topics/manifest/permission-tree-element.html"><permission-tree></a></li>
- <li><a href="<?cs var:toroot ?>guide/topics/manifest/provider-element.html"><provider></a></li>
- <li><a href="<?cs var:toroot ?>guide/topics/manifest/receiver-element.html"><receiver></a></li>
- <li><a href="<?cs var:toroot ?>guide/topics/manifest/service-element.html"><service></a></li>
- <li><a href="<?cs var:toroot ?>guide/topics/manifest/supports-gl-texture-element.html"><supports-gl-texture></a></li>
- <li><a href="<?cs var:toroot ?>guide/topics/manifest/supports-screens-element.html"><supports-screens></a></li><!-- ##api level 4## -->
- <li><a href="<?cs var:toroot ?>guide/topics/manifest/uses-configuration-element.html"><uses-configuration></a></li>
- <li><a href="<?cs var:toroot ?>guide/topics/manifest/uses-feature-element.html"><uses-feature></a></li> <!-- ##api level 4## -->
- <li><a href="<?cs var:toroot ?>guide/topics/manifest/uses-library-element.html"><uses-library></a></li>
- <li><a href="<?cs var:toroot ?>guide/topics/manifest/uses-permission-element.html"><uses-permission></a></li>
- <li><a href="<?cs var:toroot ?>guide/topics/manifest/uses-sdk-element.html"><uses-sdk></a></li>
- </ul>
- </li><!-- end of the manifest file -->
-
+ <li><a href="<?cs var:toroot ?>guide/components/processes-and-threads.html">
+ <span class="en">Processes and Threads</span>
+ </a>
+ </li>
</ul>
</li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="<?cs var:toroot ?>guide/topics/resources/index.html">
+ <span class="en">App Resources</span>
+ </a></div>
+ <ul>
+ <li><a href="<?cs var:toroot ?>guide/topics/resources/overview.html">
+ <span class="en">Overview</span>
+ </a></li>
+ <li><a href="<?cs var:toroot ?>guide/topics/resources/providing-resources.html">
+ <span class="en">Providing Resources</span>
+ </a></li>
+ <li><a href="<?cs var:toroot ?>guide/topics/resources/accessing-resources.html">
+ <span class="en">Accessing Resources</span>
+ </a></li>
+ <li><a href="<?cs var:toroot ?>guide/topics/resources/runtime-changes.html">
+ <span class="en">Handling Runtime Changes</span>
+ </a></li>
+ <li><a href="<?cs var:toroot ?>guide/topics/resources/localization.html">
+ <span class="en">Localization</span>
+ </a></li>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="<?cs var:toroot ?>guide/topics/resources/available-resources.html">
+ <span class="en">Resource Types</span>
+ </a></div>
+ <ul>
+ <li><a href="<?cs var:toroot ?>guide/topics/resources/animation-resource.html">Animation</a></li>
+ <li><a href="<?cs var:toroot ?>guide/topics/resources/color-list-resource.html">Color State List</a></li>
+ <li><a href="<?cs var:toroot ?>guide/topics/resources/drawable-resource.html">Drawable</a></li>
+ <li><a href="<?cs var:toroot ?>guide/topics/resources/layout-resource.html">Layout</a></li>
+ <li><a href="<?cs var:toroot ?>guide/topics/resources/menu-resource.html">Menu</a></li>
+ <li><a href="<?cs var:toroot ?>guide/topics/resources/string-resource.html">String</a></li>
+ <li><a href="<?cs var:toroot ?>guide/topics/resources/style-resource.html">Style</a></li>
+ <li><a href="<?cs var:toroot ?>guide/topics/resources/more-resources.html">More Types</a></li>
+ </ul>
+ </li><!-- end of resource types -->
+ </ul>
+ </li><!-- end of app resources -->
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="<?cs var:toroot ?>guide/topics/manifest/manifest-intro.html">
+ <span class="en">App Manifest</span>
+ </a></div>
+ <ul>
+ <li><a href="<?cs var:toroot ?>guide/topics/manifest/action-element.html"><action></a></li>
+ <li><a href="<?cs var:toroot ?>guide/topics/manifest/activity-element.html"><activity></a></li>
+ <li><a href="<?cs var:toroot ?>guide/topics/manifest/activity-alias-element.html"><activity-alias></a></li>
+ <li><a href="<?cs var:toroot ?>guide/topics/manifest/application-element.html"><application></a></li>
+ <li><a href="<?cs var:toroot ?>guide/topics/manifest/category-element.html"><category></a></li>
+ <li><a href="<?cs var:toroot ?>guide/topics/manifest/compatible-screens-element.html"><compatible-screens></a></li>
+ <li><a href="<?cs var:toroot ?>guide/topics/manifest/data-element.html"><data></a></li>
+ <li><a href="<?cs var:toroot ?>guide/topics/manifest/grant-uri-permission-element.html"><grant-uri-permission></a></li>
+ <li><a href="<?cs var:toroot ?>guide/topics/manifest/instrumentation-element.html"><instrumentation></a></li>
+ <li><a href="<?cs var:toroot ?>guide/topics/manifest/intent-filter-element.html"><intent-filter></a></li>
+ <li><a href="<?cs var:toroot ?>guide/topics/manifest/manifest-element.html"><manifest></a></li>
+ <li><a href="<?cs var:toroot ?>guide/topics/manifest/meta-data-element.html"><meta-data></a></li>
+ <li><a href="<?cs var:toroot ?>guide/topics/manifest/path-permission-element.html"><path-permission></a></li>
+ <li><a href="<?cs var:toroot ?>guide/topics/manifest/permission-element.html"><permission></a></li>
+ <li><a href="<?cs var:toroot ?>guide/topics/manifest/permission-group-element.html"><permission-group></a></li>
+ <li><a href="<?cs var:toroot ?>guide/topics/manifest/permission-tree-element.html"><permission-tree></a></li>
+ <li><a href="<?cs var:toroot ?>guide/topics/manifest/provider-element.html"><provider></a></li>
+ <li><a href="<?cs var:toroot ?>guide/topics/manifest/receiver-element.html"><receiver></a></li>
+ <li><a href="<?cs var:toroot ?>guide/topics/manifest/service-element.html"><service></a></li>
+ <li><a href="<?cs var:toroot ?>guide/topics/manifest/supports-gl-texture-element.html"><supports-gl-texture></a></li>
+ <li><a href="<?cs var:toroot ?>guide/topics/manifest/supports-screens-element.html"><supports-screens></a></li><!-- ##api level 4## -->
+ <li><a href="<?cs var:toroot ?>guide/topics/manifest/uses-configuration-element.html"><uses-configuration></a></li>
+ <li><a href="<?cs var:toroot ?>guide/topics/manifest/uses-feature-element.html"><uses-feature></a></li> <!-- ##api level 4## -->
+ <li><a href="<?cs var:toroot ?>guide/topics/manifest/uses-library-element.html"><uses-library></a></li>
+ <li><a href="<?cs var:toroot ?>guide/topics/manifest/uses-permission-element.html"><uses-permission></a></li>
+ <li><a href="<?cs var:toroot ?>guide/topics/manifest/uses-sdk-element.html"><uses-sdk></a></li>
+ </ul>
+ </li><!-- end of the manifest file -->
+
+
+
<li class="nav-section">
<div class="nav-section-header"><a href="<?cs var:toroot ?>guide/topics/ui/index.html">
<span class="en">User Interface</span>
@@ -252,44 +312,6 @@
</ul>
</li><!-- end of User Interface -->
- <li class="nav-section">
- <div class="nav-section-header"><a href="<?cs var:toroot ?>guide/topics/resources/index.html">
- <span class="en">App Resources</span>
- </a></div>
- <ul>
- <li><a href="<?cs var:toroot ?>guide/topics/resources/overview.html">
- <span class="en">Overview</span>
- </a></li>
- <li><a href="<?cs var:toroot ?>guide/topics/resources/providing-resources.html">
- <span class="en">Providing Resources</span>
- </a></li>
- <li><a href="<?cs var:toroot ?>guide/topics/resources/accessing-resources.html">
- <span class="en">Accessing Resources</span>
- </a></li>
- <li><a href="<?cs var:toroot ?>guide/topics/resources/runtime-changes.html">
- <span class="en">Handling Runtime Changes</span>
- </a></li>
- <li><a href="<?cs var:toroot ?>guide/topics/resources/localization.html">
- <span class="en">Localization</span>
- </a></li>
- <li class="nav-section">
- <div class="nav-section-header"><a href="<?cs var:toroot ?>guide/topics/resources/available-resources.html">
- <span class="en">Resource Types</span>
- </a></div>
- <ul>
- <li><a href="<?cs var:toroot ?>guide/topics/resources/animation-resource.html">Animation</a></li>
- <li><a href="<?cs var:toroot ?>guide/topics/resources/color-list-resource.html">Color State List</a></li>
- <li><a href="<?cs var:toroot ?>guide/topics/resources/drawable-resource.html">Drawable</a></li>
- <li><a href="<?cs var:toroot ?>guide/topics/resources/layout-resource.html">Layout</a></li>
- <li><a href="<?cs var:toroot ?>guide/topics/resources/menu-resource.html">Menu</a></li>
- <li><a href="<?cs var:toroot ?>guide/topics/resources/string-resource.html">String</a></li>
- <li><a href="<?cs var:toroot ?>guide/topics/resources/style-resource.html">Style</a></li>
- <li><a href="<?cs var:toroot ?>guide/topics/resources/more-resources.html">More Types</a></li>
- </ul>
- </li><!-- end of resource types -->
- </ul>
- </li><!-- end of app resources -->
-
<li class="nav-section">
<div class="nav-section-header"><a href="<?cs var:toroot ?>guide/topics/graphics/index.html">
<span class="en">Animation and Graphics</span>
@@ -520,9 +542,6 @@
<span class="zh-tw" style="display:none">最佳實務</span>
</div></a>
<ul>
- <li><a href="<?cs var:toroot ?>guide/practices/compatibility.html">
- <span class="en">Compatibility</span>
- </a></li>
<li class="nav-section">
<div class="nav-section-header"><a href="<?cs var:toroot ?>guide/practices/screens_support.html">
<span class="en">Supporting Multiple Screens</span>
@@ -543,74 +562,7 @@
</ul>
</li>
- <!-- this needs to move
- <li class="nav-section">
- <div class="nav-section-header"><a href="<?cs var:toroot ?>guide/practices/ui_guidelines/index.html">
- <span class="en">UI Guidelines</span>
- </a></div>
- <ul>
- <li class="nav-section">
- <div class="nav-section-header"><a href="<?cs var:toroot ?>guide/practices/ui_guidelines/icon_design.html">
- <span class="en">Icon Design</span>
- </a></div>
- <ul>
- <li><a href="<?cs var:toroot ?>guide/practices/ui_guidelines/icon_design_launcher.html">
- <span class="en">Launcher Icons</span>
- </a></li>
- <li><a href="<?cs var:toroot ?>guide/practices/ui_guidelines/icon_design_menu.html">
- <span class="en">Menu Icons</span>
- </a></li>
- <li><a href="<?cs var:toroot ?>guide/practices/ui_guidelines/icon_design_action_bar.html">
- <span class="en">Action Bar Icons</span>
- </a></li>
- <li><a href="<?cs var:toroot ?>guide/practices/ui_guidelines/icon_design_status_bar.html">
- <span class="en">Status Bar Icons</span>
- </a></li>
- <li><a href="<?cs var:toroot ?>guide/practices/ui_guidelines/icon_design_tab.html">
- <span class="en">Tab Icons</span>
- </a></li>
- <li><a href="<?cs var:toroot ?>guide/practices/ui_guidelines/icon_design_dialog.html">
- <span class="en">Dialog Icons</span>
- </a></li>
- <li><a href="<?cs var:toroot ?>guide/practices/ui_guidelines/icon_design_list.html">
- <span class="en">List View Icons</span>
- </a></li>
- </ul>
- </li>
- <li><div><a href="<?cs var:toroot ?>guide/practices/ui_guidelines/widget_design.html">
- <span class="en">App Widget Design</span>
- </a></div>
- </li>
- </ul>
- </li>
- </ul> -->
-<!-- Remove
- <li class="nav-section">
- <div class="nav-section-header"><a href="<?cs var:toroot ?>guide/appendix/index.html">
- <span class="en">Appendix</span>
- <span class="de" style="display:none">Anhang</span>
- <span class="es" style="display:none">Apéndice</span>
- <span class="fr" style="display:none">Annexes</span>
- <span class="it" style="display:none">Appendice</span>
- <span class="ja" style="display:none">付録</span>
- <span class="zh-cn" style="display:none">附录</span>
- <span class="zh-tw" style="display:none">附錄</span>
- </a></div>
- <ul>
- <li><a href="<?cs var:toroot ?>guide/appendix/g-app-intents.html">
- <span class="en">Intents List: Google Apps</span>
- </a></li>
-
-
- <li><a href="<?cs var:toroot ?>guide/appendix/glossary.html">
- <span class="en">Glossary</span>
- </a></li>
- </ul>
- </li>
-
-</li>
--->
</ul>
diff --git a/docs/html/guide/index.jd b/docs/html/guide/index.jd
new file mode 100644
index 0000000..d78a1b1
--- /dev/null
+++ b/docs/html/guide/index.jd
@@ -0,0 +1,75 @@
+page.title=Introduction to Android
+
+@jd:body
+
+
+<div class="sidebox" style="width:220px"><!-- width to match col-4 below -->
+<p>To learn how apps work, start with
+<a href="{@docRoot}guide/components/fundamentals.html">App Fundamentals</a>.</p>
+<p>To begin coding right away, read <a
+href="{@docRoot}training/basics/firstapp/index.html">Building Your First App</a>.</p>
+</div>
+
+<p>Android provides a rich application framework that allows you to build innovative apps and games
+for mobile devices in a Java language environment. The documents listed in the left
+navigation provide details about how to build apps using Android's various APIs.</p>
+
+<p>If you're new to Android development, it's important that you understand
+the following fundamental concepts about the Android app framework:</p>
+
+
+<div class="landing-banner">
+
+<div class="col-6">
+
+<h4>Apps provide multiple entry points</h4>
+
+<p>Android apps are built as a combination of distinct components that can be invoked
+individually. For instance, an individual <em>activity</em> provides a single
+screen for a user interface, and a <em>service</em> independently performs
+work in the background.</p>
+
+<p>From one component you can start another component using an <em>intent</em>. You can even start
+a component in a different app, such an activity in a maps app to show an address. This model
+provides multiple entry points for a single app and allows any app to behave as a user's "default"
+for an action that other apps may invoke.</p>
+
+
+<p><b>Learn more:</b></p>
+<ul class="nolist">
+<li><a href="{@docRoot}guide/components/fundamentals.html">App Fundamentals</a>
+<li><a href="{@docRoot}guide/components/intents-filters.html">Intents and Intent Filters</a>
+<li><a href="{@docRoot}guide/components/activities.html">Activities</a>
+</ul>
+
+</div>
+
+
+<div class="col-6">
+
+<h4>Apps adapt to different devices</h4>
+
+<p>Android provides an adaptive app framework that allows you to provide unique resources
+for different device configurations. For example, you can create different XML
+layout files for different screen sizes and the system
+determines which layout to apply based on the current device's screen size.</p>
+
+<p>You can query the availability of device features at runtime if any app features require
+specific hardware such as a camera. If necessary, you can also declare features your app requires
+so app markets such as Google Play Store do not allow installation on devices that do not support
+that feature.</p>
+
+
+<p><b>Learn more:</b></p>
+<ul class="nolist">
+<li><a href="{@docRoot}guide/practices/compatibility.html">Device Compatibility</a>
+<li><a href="{@docRoot}guide/topics/resources/overview.html">Resources Overview</a>
+<li><a href="{@docRoot}guide/topics/ui/overview.html">User Interface Overview</a>
+</ul>
+
+</div>
+
+</div><!-- end landing-banner -->
+
+
+
diff --git a/docs/html/guide/practices/compatibility.jd b/docs/html/guide/practices/compatibility.jd
index 9e3d461..db1642e 100644
--- a/docs/html/guide/practices/compatibility.jd
+++ b/docs/html/guide/practices/compatibility.jd
@@ -1,248 +1,333 @@
-page.title=Android Compatibility
+page.title=Device Compatibility
excludeFromSuggestions=true
@jd:body
<div id="qv-wrapper">
<div id="qv">
+<h2>In this document</h2>
+<ol>
+ <li><a href="#defined">What Does "Compatibility" Mean?</a></li>
+ <li><a href="#how">Controlling Your App's Availability to Devices</a>
+ <ol>
+ <li><a href="#Features">Device features</a></li>
+ <li><a href="#Versions">Platform version</a></li>
+ <li><a href="#Screens">Screen configuration</a></li>
+ </ol>
+ </li>
+ <li><a href="#filtering">Controlling Your App's Availability for Business Reasons</a></li>
+</ol>
<h2>See also</h2>
<ol>
<li><a
href="{@docRoot}google/play/filters.html">Filtering on Google Play</a></li>
<li><a
-href="{@docRoot}guide/topics/resources/providing-resources.html#AlternativeResources">Providing Alternative Resources</a></li>
-<li><a
-href="{@docRoot}guide/practices/screens_support.html">Supporting Multiple Screens</a></li>
-<li style="margin-top:3px;"><code><a
-href="{@docRoot}guide/topics/manifest/supports-screens-element.html"><supports-screens></a></code></li>
-<li><code><a
-href="{@docRoot}guide/topics/manifest/uses-configuration-element.html"><uses-configuration></a></code></li>
-<li><code><a
-href="{@docRoot}guide/topics/manifest/uses-feature-element.html"><uses-feature></a></code></li>
-<li><code><a
-href="{@docRoot}guide/topics/manifest/uses-library-element.html"><uses-library></a></code></li>
-<li><code><a
-href="{@docRoot}guide/topics/manifest/uses-permission-element.html"><uses-permission></a></code></li>
-<li><code><a
-href="{@docRoot}guide/topics/manifest/uses-sdk-element.html"><uses-sdk></code></a></li>
+href="{@docRoot}guide/topics/resources/providing-resources.html">Providing Resources</a></li>
+<li><a href="http://source.android.com/compatibility/index.html" class="external-link">
+Android Compatibility</a></li>
</ol>
</div> </div>
-<p>Android is designed to run on many different types of devices. For
-developers, the range and number of devices means a huge potential audience: the
-more devices that run Android apps, the more users who can access your app. In
-exchange, however, it also means that your apps will have to cope with that same
-variety of hardware.</p>
+<p>Android is designed to run on many different types of devices, from phones
+to tablets and televisions. As a developer,
+the range of devices provides a huge potential audience for your app. In order for your app
+to be successful on all these devices, it should tolerate some feature variability
+and provide a flexible user interface that adapts to different screen
+configurations.</p>
-<p>Fortunately, Android has built-in tools and support that make it easy for
-your apps to do that, while at the same time letting you maintain control of
-what types of devices your app is available to. With a bit of forethought and
-some minor changes in your app's manifest file, you can ensure that users
-whose devices can’t run your app will never see it on Google Play, and
-will not get in trouble by downloading it. This page explains how you can
-control which devices have access to your apps, and how to prepare your apps to
-make sure they reach the right audience.</p>
+<p>To facilitate your effort toward that goal, Android provides a dynamic app framework in which
+you can provide configuration-specific <a href="{@docRoot}guide/topics/resources/overview.html"
+>app resources</a> in static files (such as different XML layouts
+for different screen sizes). Android then loads the appropriate resources based on
+the current device configuration. So with some forethought to your app design and some additional
+app resources, you can publish a single application package (APK) that provides an optimized user
+experience on a variety of devices.
+
+<p>If necessary, however, you can specify your app's feature requirements and control
+which types of devices can install your app from Google Play Store. This page explains how you can
+control which devices have access to your apps, and how to prepare your apps to make sure they
+reach the right audience. For more information about how you can make your app adapt
+to different devices, read <a href="{@docRoot}training/basics/supporting-devices/index.html"
+>Supporting Different Devices</a>.</p>
-<h3 id="defined">What does “compatibility” mean?</h3>
-<p>A device is “Android compatible” if it can correctly run apps written for the
+<h2 id="defined">What Does "Compatibility" Mean?</h2>
+
+<p>As you read more about Android development, you'll probably encounter the term "compatibility"
+in various situations. There are two types of compatibility: <em>device compatibility</em>
+and <em>app compatibility</em>.
+
+<p>Because Android is an open source project, any hardware manufacturer can build a device
+that runs the Android operating system. Yet, a <b>device is "Android compatible"</b> only if
+it can correctly run apps written for the
<em>Android execution environment</em>. The exact details of the Android execution
-environment</em> are defined by the Android Compatibility Definition Document,
-but the single most important characteristic of a compatible device is the
-ability to install and correctly run an Android <code>.apk</code> file.</p>
+environment are defined by the <a href="http://source.android.com/compatibility/overview.html"
+class="external-link">Android compatibility program</a> and each device must pass the Compatibility
+Test Suite (CTS) in order to be considered compatible.</p>
-<p>There is exactly one Android API for each <a
-href="{@docRoot}guide/topics/manifest/uses-sdk-element.html#ApiLevels">API level</a>, and it’s the same
-API no matter what kind of device it’s installed on. No parts of the API are
-optional, and you never have to worry about parts of the API missing on some
-devices. Every compatible Android device your app will land on will include
-every class and every API for that API level.</p>
+<p>As an app developer, you don't need to worry about whether a device is Android compatible, because
+only devices that are Android compatible include Google Play Store. So you can rest assured that
+users who install your app from Google Play Store are using an Android compatible device.</p>
-<p>Of course, some APIs won’t work correctly if a particular device lacks the
-corresponding hardware or feature. But that’s not a problem: we also designed
-Android to prevent apps from being visible to devices which don’t have features
-the apps require. We’ve built support for this right into the SDK tools, and
-it’s part of the Android platform itself, as well as part of Google Play.</p>
-<p>As a developer, you have complete control of how and where your apps are
-available. Android provides tools as a first-class part of the platform that let
-you manage this. You control the availability of your apps, so that they reach
-only the devices capable of running them.</p>
+<p>However, you do need to consider whether your <b>app is compatible</b> with each potential
+device configuration. Because Android runs on a wide range of device configurations, some features are not
+available on all devices. For example, some devices may not include a
+compass sensor. If your app's core functionality requires the use
+of a compass sensor, then your app is compatible only with devices that
+include a compass sensor.</p>
-<h3 id="how">How does it work?</h3>
-<p>You manage your app’s availability through a simple three-step process:</p>
-<ol>
-<li>You state the features your app requires by declaring <a
-href="{@docRoot}guide/topics/manifest/uses-feature-element.html"><code><uses-feature></code></a>
-elements its manifest file.</li>
-<li>Devices are required to declare the features they include to Google
-Play.</li>
-<li>Google Play uses your app’s stated requirements to filter it from devices
-that don’t meet those requirements.</li>
-</ol>
-<p>This way, users never even see apps that won’t work properly on their
-devices. As long as you accurately describe your app’s requirements, you don’t
-need to worry about users blaming you for compatibility problems.</p>
+<h2 id="how">Controlling Your App's Availability to Devices</h2>
-<p>If you’re familiar with web development, you may recognize this model as
-“capability detection”. Web developers typically prefer this approach to
-“browser detection”, because it’s very difficult to keep up as new browsers and
-new versions of current browsers are released. By checking for support for
-specific required capabilities instead of the current browser, web developers
-get better fine-grained control. That’s the same approach Android uses: since
-it’s impossible to keep up with all the Android devices being released, you
-instead use the fine-grained controls Android provides.</p>
+<p>Android supports a variety of features your app can leverage through platform APIs. Some
+features are hardware-based (such as a compass sensor), some are software-based (such as app
+widgets), and some are dependent on the platform version. Not every device supports every feature,
+so you may need to control your app's availability to devices based on your app's required
+features.</p>
-<h3>Filtering for technical reasons</h3>
- <div class="sidebox-wrapper">
- <img id="rule" src="{@docRoot}assets/images/grad-rule-qv.png">
- <div id="qv-sub-rule">
- <img src="{@docRoot}assets/images/icon_play.png" style="float:left;margin:0;padding:0;">
- <p style="color:#669999;">Filtering on Google Play</p>
+<p>To achieve the largest user-base possible for your app, you should strive to support as many
+device configurations as possible using a single APK. In most situations, you can do so by
+disabling optional features at runtime and <a
+href="{@docRoot}guide/topics/resources/providing-resources.html">providing app resources</a>
+with alternatives for different configurations (such as different layouts for different
+screen sizes).
+If necessary, however, you can restrict your app's availability to devices through Google Play
+Store based on the following device characteristics:</p>
- <p>Google Play filters the applications that are visible to users, so
-that users can see and download only those applications that are compatible with
-their devices.</p>
+<ul>
+ <li><a href="#Features">Device features</a>
+ <li><a href="#Version">Platform version</a>
+ <li><a href="#Screens">Screen configuration</a>
+</ul>
- <p style="margin-top:1em;">One of the ways Google Play filters applications is by
-feature compatibility. To do this, Google Play checks the
-<code><uses-feature></code> elements in each application's manifest, to
-establish the app's feature needs. Google Play then shows or hides the application to
-each user, based on a comparison with the features available on the user's
-device.
-<p style="margin-top:1em;">For information about other filters that you can
-use to control the availability of your apps, see the
+<h3 id="Features">Device features</h3>
+
+<p>In order for you to manage your app’s availability based on device features,
+Android defines <em>feature IDs</em> for any hardware or software feature
+that may not be available on all devices. For instance, the
+feature ID for the compass sensor is {@link
+android.content.pm.PackageManager#FEATURE_SENSOR_COMPASS} and the feature ID for app widgets
+is {@link android.content.pm.PackageManager#FEATURE_APP_WIDGETS}.</p>
+
+<p>If necessary, you can prevent users from installing your app when their devices don't provide a
+given feature by declaring it with a <a href=
+"{@docRoot}guide/topics/manifest/uses-feature-element.html">{@code <uses-feature>}</a>
+element in your app's <a href="{@docRoot}guide/topics/manifest/manifest-intro.html">manifest
+file</a>.</p>
+
+<p>For example, if your app does not make sense on a device that lacks a compass sensor,
+you can declare the compass sensor as required with the following manifest tag:</p>
+
+<pre>
+<manifest ... >
+ <uses-feature android:name="android.hardware.sensor.compass"
+ android:required="true" />
+ ...
+</manifest>
+</pre>
+
+<p>Google Play Store compares the features your app requires to the features available on
+each user's device to determine whether your app is compatible with each device.
+If the device does not provide all the features your app requires, the user cannot install
+your app.</p>
+
+<p>However, if your app's primary functionality does not <em>require</em>
+a device feature, you should set the <a href=
+"{@docRoot}guide/topics/manifest/uses-feature-element.html#required">{@code required}</a>
+attribute to {@code "false"} and check
+for the device feature at runtime. If the app feature is not available on the current device,
+gracefully degrade the corresponding app feature. For example, you can query whether
+a feature is available by calling
+{@link android.content.pm.PackageManager#hasSystemFeature hasSystemFeature()} like this:</p>
+
+<pre>
+PackageManager pm = getPackageManager();
+if (!pm.hasSystemFeature(PackageManager.FEATURE_SENSOR_COMPASS)) {
+ // This device does not have a compass, turn off the compass feature
+ disableCompassFeature();
+}
+</pre>
+
+<p>For information about all the filters you can
+use to control the availability of your app to users through Google Play Store, see the
<a href="{@docRoot}google/play/filters.html">Filters on Google Play</a>
document.</p>
- </div>
-</div>
-<p>Android includes support for a lot of features, some hardware and some
-software. Examples include compass and accelerometer sensors, cameras, and Live
-Wallpapers. However, not every device will support every feature. For instance,
-some devices don’t have the hardware horsepower to display Live Wallpapers
-well.</p>
-
-<p>To manage this, Android defines <em>feature IDs</em>. Every capability has a
-corresponding feature ID defined by the Android platform. For instance, the
-feature ID for compass is <code>“android.hardware.sensor.compass”</code>,
-while the feature
-ID for Live Wallpapers is <code>“android.software.live_wallpapers”</code>. Each of these IDs
-also has a corresponding Java-language constant on the
-{@link android.content.pm.PackageManager} class that you can use to query whether
-feature is supported at runtime. As Android adds support for new features in
-future versions, new feature IDs will be added as well.</p>
-
-<p>When you write your application, you specify which features your app requires
-by listing their feature IDs in <code><uses-feature></code> elements in
-the <code>AndroidManifest.xml</code> file. This is the information that Google
-Play uses to match your app to devices that can run it. For instance, if you
-state that your app requires android.software.live_wallpapers, it won’t be shown
-to devices that don’t support Live Wallpapers.</p>
-
-<p>This puts you in total control of your app — because you don’t have to
-declare these features. Consider an example involving cameras.</p>
-
-<p>If you’re building a really impressive next-generation augmented-reality app,
-your app won’t function at all without a camera. However, if you’re building a
-shopping app that only uses the camera for barcode scanning, users without
-cameras might still find it useful even if they can’t scan barcodes. While both
-apps need to acquire the permission to access the camera, only the first app
-needs to state that it requires a camera. (The shopping app can simply check at
-runtime and disable the camera-related features if there’s no camera
-present.)</p>
-
-<p>Since only you can say what the best approach is for your app, Android
-provides the tools and lets you make your own tradeoff between maximizing
-audience size and minimizing development costs.</p>
+<p class="note"><strong>Note:</strong> Some <a href=
+"{@docRoot}guide/topics/security/permissions.html">system permissions</a> implicitly require the
+availability of a device feature. For example, if your app requests permission to access to {@link
+android.Manifest.permission#BLUETOOTH}, this implicitly requires the {@link
+android.content.pm.PackageManager#FEATURE_BLUETOOTH} device feature. You can disable filtering based
+on this feature and make your app available to devices without Bluetooth by setting the <a href=
+"{@docRoot}guide/topics/manifest/uses-feature-element.html#required">{@code required}</a> attribute
+to {@code "false"} in the <a href=
+"{@docRoot}guide/topics/manifest/uses-feature-element.html">{@code <uses-feature>}</a> tag.
+For more information about implicitly required device features, read <a href=
+"{@docRoot}guide/topics/manifest/uses-feature-element.html#permissions">Permissions that Imply
+Feature Requirements</a>.</p>
-<h3 id="filtering">Filtering for business reasons</h3>
-<p>It’s possible that you may need to restrict your app’s availability for
+
+
+
+
+<h3 id="Versions">Platform version</h3>
+
+<p>Different devices may run different versions of the Android platform,
+such as Android 4.0 or Android 4.4. Each successive platform version often adds new APIs not
+available in the previous version. To indicate which set of APIs are available, each
+platform version specifies an <a
+href="{@docRoot}guide/topics/manifest/uses-sdk-element.html#ApiLevels">API level</a>. For instance,
+Android 1.0 is API level 1 and Android 4.4 is API level 19.</p>
+
+<p>The API level allows you to declare the minimum version with which your app is
+compatible, using the <a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html">{@code
+<uses-sdk>}</a> manifest tag and its <a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html#min">{@code minSdkVersion}</a> attribute.</p>
+
+<p>For example, the <a href="{@docRoot}guide/topics/providers/calendar-provider.html">Calendar
+Provider</a> APIs were added in Android 4.0 (API level 14). If your app cannot function without
+these APIs, you should declare API level 14 as your app's minimum supported
+version like this:</p>
+
+<pre>
+<manifest ... >
+ <uses-sdk android:minSdkVersion="14" android:targetSdkVersion="19" />
+ ...
+</manifest>
+</pre>
+
+<p>The <a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html#min">{@code
+minSdkVersion}</a> attribute declares the minimum version with which your app is compatible
+and the <a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html#target">{@code
+targetSdkVersion}</a> attribute declares the highest version on which you've optimized
+your app.</p>
+
+<p>Each successive version of Android provides compatibility for apps that were built using
+the APIs from previous platform versions, so your app should always be compitible with future
+versions of Android while using the documented Android APIs.</p>
+
+<p class="note"><strong>Note:</strong>
+The <a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html#target">{@code
+targetSdkVersion}</a> attribute does not prevent your app from being installed on platform
+versions that are higher than the specified value,
+but it is important because it indicates to the system whether your
+app should inherit behavior changes in newer versions. If you don't update the
+<a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html#target">{@code
+targetSdkVersion}</a> to the latest version, the system assumes that your
+app requires some backward-compatibility behaviors when running on the latest version.
+For example, among the <a href="{@docRoot}about/versions/android-4.4.html#Behaviors"
+>behavior changes in Android 4.4</a>, alarms created with the {@link android.app.AlarmManager} APIs
+are now inexact by default so the system can batch app alarms and preserve system power,
+but the system will retain the previous API behavior for your app if your target API level
+is lower than "19".</p>
+
+<p>However, if your app uses APIs added in a more recent
+platform version, but does not require them for its primary functionality,
+you should check the API level at runtime and gracefully degrade
+the corresponding features when the API level is too low. In this case,
+set the <a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html#min">{@code
+minSdkVersion}</a> to the lowest value possible for your app's primary functionality,
+then compare the current system's version, {@link android.os.Build.VERSION#SDK_INT}, to one the
+codename constants in {@link android.os.Build.VERSION_CODES} that corresponds to the
+API level you want to check. For example:</p>
+
+<pre>
+if (Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB) {
+ // Running on something older than API level 11, so disable
+ // the drag/drop features that use {@link android.content.ClipboardManager} APIs
+ disableDragAndDrop();
+}
+</pre>
+
+
+
+
+
+
+<h3 id="Screens">Screen configuration</h3>
+
+<p>Android runs on devices of various sizes, from phones to tablets and TVs.
+In order to categorize devices by their screen type, Android defines two characteristics for
+each device: screen size (the physical size of the screen) and screen density (the physical
+density of the pixels on the screen, known as <acronym title="dots per inch">DPI</acronym>).
+To simplify the different configurations, Android generalizes these variants into groups that make
+them easier to target:</p>
+
+<ul>
+ <li>Four generalized sizes: small, normal, large, and xlarge.</li>
+ <li>And several generalized densities: mdpi (medium), hdpi (hdpi), xhdpi (extra high),
+ xxhdpi (extra-extra high), and others.</li>
+</ul>
+
+<p>By default, your app is compatible with all screen sizes and densities,
+because the system makes the appropriate adjustments to your UI layout and image
+resources as necessary for each screen. However, you should optimize the user experience for each
+screen configuration by adding specialized layouts for different screen sizes and
+optimized bitmap images for common screen densities.</p>
+
+<p>For information about how to create alternative resources for different screens
+and how to restrict your app to certain screen sizes when necessary, read <a
+href="{@docRoot}training/basics/supporting-devices/screens.html">Supporting Different Screens</a>.
+</p>
+
+
+
+
+
+
+
+
+<h2 id="filtering">Controlling Your App's Availability for Business Reasons</h2>
+
+<p>In addition to restricting your app's availability based on device characteristics,
+it’s possible you may need to restrict your app’s availability for
business or legal reasons. For instance, an app that displays train schedules
for the London Underground is unlikely to be useful to users outside the United
-Kingdom. Other apps might not be permitted in certain countries for business or
-legal reasons. For cases such as these, Google Play itself provides
-developers with filtering options that allow them control their app’s
-availability for non-technical reasons.</p>
-
-<p>The help information for Google Play provides full details, but in a
-nutshell, developers can use the Google Play publisher UI to:</p>
-
-<ul>
-<li>List the countries an app is available in.</li>
-<li>Select which carrier’s users are able to access the app.</li>
-</ul>
+Kingdom. For this type of situation, Google Play Store provides
+filtering options in the developer console that allow you to control your app’s
+availability for non-technical reasons such as the user's locale or wireless carrier.</p>
<p>Filtering for technical compatibility (such as required hardware components)
-is always based on information contained within your <code>.apk</code> file. But
-filtering for non-technical reasons (such as geographic restrictions) is always
-handled in the Google Play user interface.</p>
-
-<h3 id="futureproofing">Future-proofing</h3>
-
-<p>There’s one additional quirk that we haven’t yet addressed: protecting apps
-from changes made to future versions of Android. If the Android platform
-introduces a new feature or changes how existing features are handled, what
-happens to existing apps that were written without any knowledge of the new
-behavior?</p>
-
-<p>Simply put, Android commits to not making existing apps available to devices
-where they won’t work properly, even when the platform changes. The best way to
-explain this is through examples, so here are two:</p>
-
-<ul>
-<li>Android 1.0 through 1.5 required a 2 megapixel camera with auto-focus.
-However, with version 1.6, Android devices were permitted to omit the auto-focus
-capability, though a (fixed-focus) camera was still required. Some apps such as
-barcode scanners do not function as well with cameras that do not auto-focus. To
-prevent users from having a bad experience with those apps, existing apps that
-obtain permission to use the Camera were assumed by default to require
-auto-focus. This allowed Google Play to filter those apps from devices that
-lack auto-focus.</li>
-
-<li>Android 2.2, meanwhile, allowed the microphone to be optional on some
-devices, such as set-top boxes. Android 2.2 included a new feature ID for the
-microphone which allows developers to filter their apps if necessary, but
-— as with camera — apps that obtain permission to record audio are
-assumed to require the microphone feature by default. If your app can use a
-microphone but doesn’t strictly need it, you can explicitly state that you don’t
-require it; but unless you do that, your app won’t be shown to devices without
-microphones.</li>
-</ul>
-
-<p>In other words, whenever Android introduces new features or changes existing
-ones, we will always take steps to protect existing applications so that they
-don’t end up being available to devices where they won’t work.</p>
-
-<p>This is implemented, in part, using the <code>aapt</code> tool in the SDK.
-To see which features your app explicitly requires or is implicitly assumed to
-require, you can use the command <code>aapt dump badging</code>.</p>
-
-<h3 id="conclusion">Conclusion</h3>
-
-<p>The goal of Android is to create a huge installed base for developers to take
-advantage of. One of the ways we will achieve this is through different kinds of
-hardware running the same software environment. But we also recognize that only
-developers know which kinds of devices their apps make sense on. We’ve built in
-tools to the SDK and set up policies and requirements to ensure that developers
-remain in control of their apps, today and in the future. With the information
-you just read, and the resources listed in the sidebar of this document, you
-can publish your app with the confidence that only users who can run it will
-see it.</p>
-
-<p>For more information about Android device compatibility, please visit:</p>
-
-<p style="margin-left:2em;"><a href="http://source.android.com/compatibility/index.html">http://source.android.com/compatibility/index.html</a></p>
+is always based on information contained within your APK file. But
+filtering for non-technical reasons (such as geographic locale) is always
+handled in the Google Play developer console.</p>
-
\ No newline at end of file
+
+
+
+
+<div class="next-docs">
+<div class="col-6">
+ <h2 class="norule">Continue reading about:</h2>
+ <dl>
+ <dt><a
+href="{@docRoot}guide/topics/resources/providing-resources.html">Providing Resources</a></dt>
+ <dd>Information about how Android apps are structured to separate app resources from the
+ app code, including how you can provide alternative resources for specific device
+ configurations.
+ </dd>
+ <dt><a href="{@docRoot}google/play/filters.html">Filters on Google Play</a></dt>
+ <dd>Information about the different ways that Google Play Store can prevent your app
+ from being installed on different devices.</dd>
+ </dl>
+</div>
+<div class="col-6">
+ <h2 class="norule">You might also be interested in:</h2>
+ <dl>
+ <dt><a href="{@docRoot}guide/topics/security/permissions.html"
+ >System Permissions</a></dt>
+ <dd>How Android restricts app access to certain APIs with a permission system that requires
+ the user's consent for your app to use those APIs.</dd>
+ </dl>
+</div>
+</div>
diff --git a/docs/html/guide/practices/screens_support.jd b/docs/html/guide/practices/screens_support.jd
index ca29589..8c76411 100644
--- a/docs/html/guide/practices/screens_support.jd
+++ b/docs/html/guide/practices/screens_support.jd
@@ -25,8 +25,7 @@
<li><a href="#qualifiers">Using configuration qualifiers</a></li>
<li><a href="#DesigningResources">Designing alternative layouts and drawables</a></li>
</ol></li>
- <li><a href="#DeclaringTabletLayouts">Declaring Tablet Layouts for Android 3.2</a> <span
-class="new">new!</span>
+ <li><a href="#DeclaringTabletLayouts">Declaring Tablet Layouts for Android 3.2</a>
<ol>
<li><a href="#NewQualifiers">Using new size qualifiers</a></li>
<li><a href="#ConfigurationExamples">Configuration examples</a></li>
diff --git a/docs/html/guide/topics/connectivity/bluetooth-le.jd b/docs/html/guide/topics/connectivity/bluetooth-le.jd
index 21950c2..449c892 100644
--- a/docs/html/guide/topics/connectivity/bluetooth-le.jd
+++ b/docs/html/guide/topics/connectivity/bluetooth-le.jd
@@ -44,6 +44,15 @@
</div>
</div>
+<a class="notice-developers-video" href="http://www.youtube.com/watch?v=vUbFB1Qypg8">
+<div>
+ <h3>Video</h3>
+ <p>DevBytes: Bluetooth Low Energy API</p>
+</div>
+</a>
+
+
+
<p>
Android 4.3 (API Level 18) introduces built-in platform support for Bluetooth Low
diff --git a/docs/html/guide/topics/connectivity/nfc/hce.jd b/docs/html/guide/topics/connectivity/nfc/hce.jd
index 4ef6859..d6efaa7 100644
--- a/docs/html/guide/topics/connectivity/nfc/hce.jd
+++ b/docs/html/guide/topics/connectivity/nfc/hce.jd
@@ -33,13 +33,13 @@
-<p>Many Android-powered devices that offer NFC functionality already support NFC card
-emulation. In most cases, the card is emulated by a separate
-chip in the device, called a <em>secure element</em>. Many SIM cards provided by
+<p>Many Android-powered devices that offer NFC functionality already support NFC card
+emulation. In most cases, the card is emulated by a separate
+chip in the device, called a <em>secure element</em>. Many SIM cards provided by
wireless carriers also contain a secure element.</p>
-<p>Android 4.4 introduces an additional method of card emulation that does not
-involve a secure element, called <em>host-based card emulation</em>. This allows any
+<p>Android 4.4 introduces an additional method of card emulation that does not
+involve a secure element, called <em>host-based card emulation</em>. This allows any
Android application to emulate a card and talk directly to the NFC reader. This
document describes how host-based card emulation (HCE) works on Android and how you
can develop an app that emulates an NFC card using this technique.</p>
@@ -48,23 +48,23 @@
<h2 id="SecureElement">Card Emulation with a Secure Element</h2>
<p>When NFC card emulation is provided using a secure element, the card to be emulated
-is provisioned into the secure element on
-the device through an Android application. Then, when the user holds the
-device over an NFC terminal, the NFC controller in the device routes all data
+is provisioned into the secure element on
+the device through an Android application. Then, when the user holds the
+device over an NFC terminal, the NFC controller in the device routes all data
from the reader directly to the secure element. Figure 1 illustrates this concept.</p>
<img src="{@docRoot}images/nfc/secure-element.png" />
<p class="img-caption"><strong>Figure 1.</strong> NFC card emulation with a secure element.</p>
-<p>The secure element itself performs the communication with the NFC terminal,
-and no Android application is involved in the transaction at all. After the
-transaction is complete, an Android application can query the secure element
+<p>The secure element itself performs the communication with the NFC terminal,
+and no Android application is involved in the transaction at all. After the
+transaction is complete, an Android application can query the secure element
directly for the transaction status and notify the user.</p>
<h2 id="HCE">Host-based Card Emulation</h2>
-<p>When an NFC card is emulated using host-based card emulation, the data is routed to
+<p>When an NFC card is emulated using host-based card emulation, the data is routed to
the host CPU on which Android applications are running directly, instead of routing the NFC
protocol frames to a secure element. Figure 2 illustrates how host-based card emulation
works.</p>
@@ -80,23 +80,23 @@
<p class="img-caption"><strong>Figure 3.</strong> Android's HCE protocol stack.</p>
</div>
-<p>The NFC standards offer support for many different protocols, and there are
+<p>The NFC standards offer support for many different protocols, and there are
different types of cards that can be emulated.</p>
-<p>Android 4.4 supports several protocols that are common in the
-market today. Many existing contactless cards are already based on these
-protocols, such as contactless payment cards. These protocols are also
-supported by many NFC readers in the market today, including Android NFC
+<p>Android 4.4 supports several protocols that are common in the
+market today. Many existing contactless cards are already based on these
+protocols, such as contactless payment cards. These protocols are also
+supported by many NFC readers in the market today, including Android NFC
devices functioning as readers themselves (see the {@link android.nfc.tech.IsoDep} class).
-This allows you to build and deploy an end-to-end NFC solution
+This allows you to build and deploy an end-to-end NFC solution
around HCE using only Android-powered devices.</p>
-<p>Specifically, Android 4.4 supports emulating cards that are based on the
-NFC-Forum ISO-DEP specification (based on ISO/IEC 14443-4) and process
-Application Protocol Data Units (APDUs) as defined in the ISO/IEC 7816-4
-specification. Android mandates emulating ISO-DEP only on top of the
-Nfc-A (ISO/IEC 14443-3 Type A) technology. Support for Nfc-B (ISO/IEC 14443-4
-Type B) technology is optional. The layering of all these specifications is
+<p>Specifically, Android 4.4 supports emulating cards that are based on the
+NFC-Forum ISO-DEP specification (based on ISO/IEC 14443-4) and process
+Application Protocol Data Units (APDUs) as defined in the ISO/IEC 7816-4
+specification. Android mandates emulating ISO-DEP only on top of the
+Nfc-A (ISO/IEC 14443-3 Type A) technology. Support for Nfc-B (ISO/IEC 14443-4
+Type B) technology is optional. The layering of all these specifications is
shown in the figure 3.</p>
@@ -105,12 +105,12 @@
<p>The HCE architecture in Android is based around Android {@link android.app.Service} components
(known as "HCE services").
-One of the key advantages of a service is that it can run in the background without
-any user interface. This is a natural fit for many HCE applications like loyalty or transit cards,
-with which the user shouldn't need to launch the app to use it.
-Instead, tapping the device against the NFC reader starts the correct service (if not already
-running) and executes the transaction in the background. Of course, you are free
-to launch additional UI (such as user notifications) from your service if that makes
+One of the key advantages of a service is that it can run in the background without
+any user interface. This is a natural fit for many HCE applications like loyalty or transit cards,
+with which the user shouldn't need to launch the app to use it.
+Instead, tapping the device against the NFC reader starts the correct service (if not already
+running) and executes the transaction in the background. Of course, you are free
+to launch additional UI (such as user notifications) from your service if that makes
sense.</p>
@@ -118,72 +118,78 @@
<h3 id="ServiceSelection">Service selection</h3>
<p>When the user taps a device to an NFC reader, the Android system needs to
- know which HCE service the NFC reader actually wants to talk to.
-This is where the ISO/IEC 7816-4 specification comes in: it defines a way to
-select applications, centered around an Application ID (AID). An AID
-consists of up to 16 bytes. If you are emulating cards for an existing NFC reader
-infrastructure, the AIDs that those readers are looking for are typically
-well-known and publicly registered (for example, the AIDs of payment networks
+know which HCE service the NFC reader actually wants to talk to.
+This is where the ISO/IEC 7816-4 specification comes in: it defines a way to
+select applications, centered around an Application ID (AID). An AID
+consists of up to 16 bytes. If you are emulating cards for an existing NFC reader
+infrastructure, the AIDs that those readers are looking for are typically
+well-known and publicly registered (for example, the AIDs of payment networks
such as Visa and MasterCard).</p>
-<p>If you want to deploy new reader infrastructure for your own application, you
-will need to register your own AID(s). The registration procedure for AIDs is
-defined in the ISO/IEC 7816-5 specification. Google recommends registering an
-AID as per 7816-5 if you are deploying a HCE application for Android, as it will avoid
+<p>If you want to deploy new reader infrastructure for your own application, you
+will need to register your own AID(s). The registration procedure for AIDs is
+defined in the ISO/IEC 7816-5 specification. Google recommends registering an
+AID as per 7816-5 if you are deploying a HCE application for Android, as it will avoid
collisions with other applications.</p>
<h3 id="AidGroups">AID groups</h3>
-<p>In some cases, an HCE service may need to register multiple AIDs to implement a
-certain application, and it needs to be sure that it is the default handler for
-all of these AIDs (as opposed to some AIDs in the group going to another
+<p>In some cases, an HCE service may need to register multiple AIDs to implement a
+certain application, and it needs to be sure that it is the default handler for
+all of these AIDs (as opposed to some AIDs in the group going to another
service).</p>
-<p>An AID group is a list of AIDs that should be considered as belonging together
-by the OS. For all AIDs in an AID group, Android guarantees one of the
+<p>An AID group is a list of AIDs that should be considered as belonging together
+by the OS. For all AIDs in an AID group, Android guarantees one of the
following:</p>
<ul>
<li>All AIDs in the group are routed to this HCE service</li>
-<li>No AIDs in the group are routed to this HCE service (for example, because the user
-preferred another service which requested one or more AIDs in your group as
+<li>No AIDs in the group are routed to this HCE service (for example, because the user
+preferred another service which requested one or more AIDs in your group as
well)</li>
</ul>
-<p>In other words, there is no in-between state, where some AIDs in the group can
+<p>In other words, there is no in-between state, where some AIDs in the group can
be routed to one HCE service, and some to another.</p>
<h3 id="GroupsCategories">AID groups and categories</h3>
-<p>Each AID group can be associated with a category. This allows Android to group
-HCE services together by category, and that in turn allows the user to set
-defaults at the category level instead of the AID level. In general, avoid
-mentioning AIDs in any user-facing parts of your application: they do not mean
+<p>Each AID group can be associated with a category. This allows Android to group
+HCE services together by category, and that in turn allows the user to set
+defaults at the category level instead of the AID level. In general, avoid
+mentioning AIDs in any user-facing parts of your application: they do not mean
anything to the average user.</p>
<p>Android 4.4 supports two categories: {@link
- android.nfc.cardemulation.CardEmulation#CATEGORY_PAYMENT} (covering payment
+android.nfc.cardemulation.CardEmulation#CATEGORY_PAYMENT} (covering industry-standard payment
apps) and {@link android.nfc.cardemulation.CardEmulation#CATEGORY_OTHER}
(for all other HCE apps).</p>
-
+<div class="note">
+ <p><strong>Note:</strong>
+ Only one AID group in the {@link
+ android.nfc.cardemulation.CardEmulation#CATEGORY_PAYMENT} category may be enabled in the system at any given time. Typically, this will be an app that understands major credit card payment protcols and which can work at any merchant.</p>
+ <p>For <em>closed-loop</em> payment apps that only work at one merchant (such as stored-value cards), you should use {@link
+ android.nfc.cardemulation.CardEmulation#CATEGORY_OTHER}. AID groups in this category can be always active, and can be given priority by NFC readers during AID selection if necessary.</p>
+</div>
<h2 id="ImplementingService">Implementing an HCE Service</h2>
<p>To emulate an NFC card using host-based card emulation, you need to create
- a {@link android.app.Service} component that handles the NFC transactions.
+ a {@link android.app.Service} component that handles the NFC transactions.
<h3 id="CheckingforSupport">Checking for HCE support</h3>
-<p>Your application can check whether a device supports HCE by checking for the
-{@link android.content.pm.PackageManager#FEATURE_NFC_HOST_CARD_EMULATION} feature. You should use the
-<a href="{@docRoot}guide/topics/manifest/uses-feature-element.html">{@code <uses-feature>}</a> tag in the manifest of your application to declare that your app
+<p>Your application can check whether a device supports HCE by checking for the
+{@link android.content.pm.PackageManager#FEATURE_NFC_HOST_CARD_EMULATION} feature. You should use the
+<a href="{@docRoot}guide/topics/manifest/uses-feature-element.html">{@code <uses-feature>}</a> tag in the manifest of your application to declare that your app
uses the HCE feature, and whether it is required for the app to function or not.</p>
<h3 id="ServiceImplementation">Service implementation</h3>
-<p>Android 4.4 comes with a convenience {@link android.app.Service} class that can be used as a
+<p>Android 4.4 comes with a convenience {@link android.app.Service} class that can be used as a
basis for implementing a HCE service: the {@link android.nfc.cardemulation.HostApduService} class.</p>
<p>The first step is therefore to extend {@link android.nfc.cardemulation.HostApduService}.</p>
@@ -197,7 +203,7 @@
@Override
public void onDeactivated(int reason) {
...
- }
+ }
}
</pre>
@@ -205,238 +211,237 @@
declares two abstract methods that need to be overridden and implemented.</p>
<p>{@link android.nfc.cardemulation.HostApduService#processCommandApdu processCommandApdu()}
- is called whenever a NFC reader sends an Application
-Protocol Data Unit (APDU) to your service. APDUs are defined in the ISO/IEC
-7816-4 specification as well. APDUs are the application-level packets being
-exchanged between the NFC reader and your HCE service. That application-level
-protocol is half-duplex: the NFC reader will send you a command APDU, and it
+is called whenever a NFC reader sends an Application
+Protocol Data Unit (APDU) to your service. APDUs are defined in the ISO/IEC
+7816-4 specification as well. APDUs are the application-level packets being
+exchanged between the NFC reader and your HCE service. That application-level
+protocol is half-duplex: the NFC reader will send you a command APDU, and it
will wait for you to send a response APDU in return.</p>
<p class="note"><strong>Note:</strong>
- The ISO/IEC 7816-4 specification also defines the concept of multiple logical channels,
- where you can have multiple parallel APDU exchanges on separate logical channels. Android’s
- HCE implementation however only supports a single logical channel, so there’s only a
- single-threaded exchange of APDUs.</p>
-
+ The ISO/IEC 7816-4 specification also defines the concept of multiple logical channels,
+ where you can have multiple parallel APDU exchanges on separate logical channels. Android’s
+ HCE implementation however only supports a single logical channel, so there’s only a
+ single-threaded exchange of APDUs.</p>
-<p>As mentioned previously, Android uses the AID to determine which HCE service the
-reader wants to talk to. Typically, the first APDU an NFC reader sends to your
-device is a "SELECT AID" APDU; this APDU contains the AID that the reader wants
-to talk to. Android extracts that AID from the APDU, resolves it to an HCE service,
+
+<p>As mentioned previously, Android uses the AID to determine which HCE service the
+reader wants to talk to. Typically, the first APDU an NFC reader sends to your
+device is a "SELECT AID" APDU; this APDU contains the AID that the reader wants
+to talk to. Android extracts that AID from the APDU, resolves it to an HCE service,
then forwards that APDU to the resolved service.</p>
-<p>You can send a response APDU by returning the bytes of the response APDU from
+<p>You can send a response APDU by returning the bytes of the response APDU from
{@link android.nfc.cardemulation.HostApduService#processCommandApdu processCommandApdu()}.
- Note that this method will be called on the main thread of
-your application, which shouldn't be blocked. So if you can't compute and return
-a response APDU immediately, return null. You can then do the necessary work on
-another thread, and use the {@link android.nfc.cardemulation.HostApduService#sendResponseApdu
- sendResponseApdu()} method defined
+ Note that this method will be called on the main thread of
+your application, which shouldn't be blocked. So if you can't compute and return
+a response APDU immediately, return null. You can then do the necessary work on
+another thread, and use the {@link android.nfc.cardemulation.HostApduService#sendResponseApdu sendResponseApdu()} method defined
in the {@link android.nfc.cardemulation.HostApduService} class to send the response when you are done.</p>
-<p>Android will keep forwarding new APDUs from the reader to your service, until
+<p>Android will keep forwarding new APDUs from the reader to your service, until
either:</p>
<ol>
-<li>The NFC reader sends another "SELECT AID" APDU, which the OS resolves to a
+<li>The NFC reader sends another "SELECT AID" APDU, which the OS resolves to a
different service;</li>
<li>The NFC link between the NFC reader and your device is broken.</li>
</ol>
<p>In both of these cases, your class's
- {@link android.nfc.cardemulation.HostApduService#onDeactivated onDeactivated()}
- implementation is
+{@link android.nfc.cardemulation.HostApduService#onDeactivated onDeactivated()}
+implementation is
called with an argument indicating which of the two happened.</p>
-<p>If you are working with existing reader infrastructure, you need to
-implement the existing application-level protocol that the readers expect in
+<p>If you are working with existing reader infrastructure, you need to
+implement the existing application-level protocol that the readers expect in
your HCE service.</p>
-<p>If you are deploying new reader infrastructure which you control as well, you
-can define your own protocol and APDU sequence. In general try to limit the
-amount of APDUs and the size of the data that needs to be exchanged: this makes
-sure that your users will only have to hold their device over the NFC reader for
-a short amount of time. A sane upper bound is about 1KB of data, which can
+<p>If you are deploying new reader infrastructure which you control as well, you
+can define your own protocol and APDU sequence. In general try to limit the
+amount of APDUs and the size of the data that needs to be exchanged: this makes
+sure that your users will only have to hold their device over the NFC reader for
+a short amount of time. A sane upper bound is about 1KB of data, which can
usually be exchanged within 300ms.</p>
<h3 id="ManifestDeclaration">Service manifest declaration and AID registration</h3>
-<p>Your service must be declared in the manifest as usual, but some additional
+<p>Your service must be declared in the manifest as usual, but some additional
pieces must be added to the service declaration as well.</p>
-<p>First, to tell the platform that it is a HCE service implementing a
-{@link android.nfc.cardemulation.HostApduService} interface, your service declaration must contain an
+<p>First, to tell the platform that it is a HCE service implementing a
+{@link android.nfc.cardemulation.HostApduService} interface, your service declaration must contain an
intent filter for the {@link android.nfc.cardemulation.HostApduService#SERVICE_INTERFACE} action.</p>
-<p>Additionally, to tell the platform which AIDs groups are requested by this
-service, a {@link android.nfc.cardemulation.HostApduService#SERVICE_META_DATA}
-<code><meta-data></code> tag must be included in
-the declaration of the service, pointing to an XML resource with additional
+<p>Additionally, to tell the platform which AIDs groups are requested by this
+service, a {@link android.nfc.cardemulation.HostApduService#SERVICE_META_DATA}
+<code><meta-data></code> tag must be included in
+the declaration of the service, pointing to an XML resource with additional
information about the HCE service.</p>
-<p>Finally, you must set the {@code android:exported} attribute to true, and require the
-{@code "android.permission.BIND_NFC_SERVICE"} permission in your service declaration.
-The former ensures that the service can be bound to by external applications.
-The latter then enforces that only external applications that hold the
-{@code ""android.permission.BIND_NFC_SERVICE"} permission can bind to your service. Since
-{@code ""android.permission.BIND_NFC_SERVICE"} is a system permission, this effectively
+<p>Finally, you must set the {@code android:exported} attribute to true, and require the
+{@code "android.permission.BIND_NFC_SERVICE"} permission in your service declaration.
+The former ensures that the service can be bound to by external applications.
+The latter then enforces that only external applications that hold the
+{@code "android.permission.BIND_NFC_SERVICE"} permission can bind to your service. Since
+{@code "android.permission.BIND_NFC_SERVICE"} is a system permission, this effectively
enforces that only the Android OS can bind to your service. </p>
<p>Here's an example of a {@link android.nfc.cardemulation.HostApduService} manifest declaration:</p>
<pre>
<service android:name=".MyHostApduService" android:exported="true"
- android:permission="android.permission.BIND_NFC_SERVICE">
- <intent-filter>
- <action android:name="android.nfc.cardemulation.action.HOST_APDU_SERVICE"/>
- </intent-filter>
+ android:permission="android.permission.BIND_NFC_SERVICE">
+ <intent-filter>
+ <action android:name="android.nfc.cardemulation.action.HOST_APDU_SERVICE"/>
+ </intent-filter>
<meta-data android:name="android.nfc.cardemulation.host_apdu_service"
- android:resource="@xml/apduservice"/>
-</service>
+ android:resource="@xml/apduservice"/>
+</service>
</pre>
-<p>This meta-data tag points to an {@code apduservice.xml} file. An example of such a file
-with a single AID group declaration containing two proprietary AIDs is shown
+<p>This meta-data tag points to an {@code apduservice.xml} file. An example of such a file
+with a single AID group declaration containing two proprietary AIDs is shown
below:</p>
<pre>
<host-apdu-service xmlns:android="http://schemas.android.com/apk/res/android"
- android:description="@string/servicedesc"
- android:requireDeviceUnlock="false">
- <aid-group android:description="@string/aiddescription"
- android:category="other">
- <aid-filter android:name="F0010203040506"/>
- <aid-filter android:name="F0394148148100"/>
- </aid-group>
-</host-apdu-service>
+ android:description="@string/servicedesc"
+ android:requireDeviceUnlock="false">
+ <aid-group android:description="@string/aiddescription"
+ android:category="other">
+ <aid-filter android:name="F0010203040506"/>
+ <aid-filter android:name="F0394148148100"/>
+ </aid-group>
+</host-apdu-service>
</pre>
-<p>The <code><host-apdu-service></code> tag is required to contain a <code><android:description></code>
-attribute that contains a user-friendly description of the service that may be
-shown in UI. The <code><requireDeviceUnlock></code> attribute can be used to specify that the
+<p>The <code><host-apdu-service></code> tag is required to contain a <code><android:description></code>
+attribute that contains a user-friendly description of the service that may be
+shown in UI. The <code>requireDeviceUnlock</code> attribute can be used to specify that the
device must be unlocked before this service can be invoked to handle APDUs.</p>
-<p>The <code><host-apdu-service></code> must contain one or more <code><aid-group></code> tags. Each
-<code><aid-group></code> tag is required to contain a <code>android:description</code> attribute that
-contains a user-friendly description of the AID group that may be shown in UI.
-Each <code><aid-group></code> tag must also have the android:category attribute set to
-indicate the category the AID group belongs to, e.g. the string constants
-defined by CardEmulation.CATEGORY_PAYMENT or CardEmulation.CATEGORY_OTHER. Each
-<code><aid-group></code> must contain one or more <code><aid-filter></code> tags, each of which contains a
-single AID. The AID must be specified in hexadecimal format, and contain an even
-number of characters.</p>
+<p>The <code><host-apdu-service></code> must contain one or more <code><aid-group></code> tags. Each
+<code><aid-group></code> tag is required to:</p>
-<p>As a final note, your application also needs to hold the NFC permission,
- {@link android.Manifest.permission#NFC} to be able to register as a HCE service.</p>
+<ul>
+<li>Contain an <code>android:description</code> attribute that
+contains a user-friendly description of the AID group, suitable for display in UI.</li>
+<li>Have its <code>android:category</code> attribute set to
+indicate the category the AID group belongs to, e.g. the string constants
+defined by {@link android.nfc.cardemulation.CardEmulation#CATEGORY_PAYMENT}
+or {@link android.nfc.cardemulation.CardEmulation#CATEGORY_OTHER}.</li>
+<li>Each <code><aid-group></code> must contain one or more
+<code><aid-filter></code> tags, each of which contains a single AID. The AID
+must be specified in hexadecimal format, and contain an even number of characters.</li>
+</ul>
-
-
+<p>As a final note, your application also needs to hold the
+{@link android.Manifest.permission#NFC} permission to be able to register as a HCE service.</p>
<h2 id="AidConflicts">AID Conflict Resolution</h2>
<p>Multiple {@link android.nfc.cardemulation.HostApduService} components
- may be installed on a single device, and the same AID
-can be registered by more than one service. The Android platform resolves AID
-conflicts depending on which category an AID belongs to. Each category may have
-a different conflict resolution policy. </p>
+may be installed on a single device, and the same AID
+can be registered by more than one service. The Android platform resolves AID
+conflicts depending on which category an AID belongs to. Each category may have
+a different conflict resolution policy.</p>
-<p>For example, for some categories (like payment) the user may be able to select a
-default service in the Android settings UI. For other categories, the policy may
-be to always ask the user which service is to be invoked in case of conflict. To
-query the conflict resolution policy for a certain category, see
+<p>For example, for some categories (like payment) the user may be able to select a
+default service in the Android settings UI. For other categories, the policy may
+be to always ask the user which service is to be invoked in case of conflict. To
+query the conflict resolution policy for a certain category, see
{@link android.nfc.cardemulation.CardEmulation#getSelectionModeForCategory
- getSelectionModeForCategory()}.</p>
+getSelectionModeForCategory()}.</p>
<h3 id="CheckingIfDefault">Checking if your service is the default</h3>
-<p>Applications can check whether their HCE service is the default service for a
-certain category by using the
+<p>Applications can check whether their HCE service is the default service for a
+certain category by using the
{@link android.nfc.cardemulation.CardEmulation#isDefaultServiceForCategory} API.</p>
-<p>If your service is not the default, you can request it to be made the default.
+<p>If your service is not the default, you can request it to be made the default.
See {@link android.nfc.cardemulation.CardEmulation#ACTION_CHANGE_DEFAULT}.</p>
-
-
<h2 id="PaymentApps">Payment Applications</h2>
-<p>Android considers HCE services that have declared an AID group with the
-"payment" category as payment applications. The Android 4.4 release contains a
-top-level Settings menu entry called "tap & pay", which enumerates all such
-payment applications. In this settings menu, the user can select the default
+<p>Android considers HCE services that have declared an AID group with the
+"payment" category as payment applications. The Android 4.4 release contains a
+top-level Settings menu entry called "tap & pay", which enumerates all such
+payment applications. In this settings menu, the user can select the default
payment application that will be invoked when a payment terminal is tapped.</p>
<h3 id="RequiredAssets">Required assets for payment applications</h3>
-<p>To provide a more visually attractive user experience, HCE payment applications
-are required to provide an additional asset for their service: a so-called
+<p>To provide a more visually attractive user experience, HCE payment applications
+are required to provide an additional asset for their service: a so-called
service banner.</p>
-<p>This asset should be sized 260x96 dp, and can be specified in your meta-data XML
-file by adding the <code>android:apduServiceBanner</code> attribute to the
-<code><host-apdu-service></code> tag, which points to the drawable resource. An example is
+<p>This asset should be sized 260x96 dp, and can be specified in your meta-data XML
+file by adding the <code>android:apduServiceBanner</code> attribute to the
+<code><host-apdu-service></code> tag, which points to the drawable resource. An example is
shown below:</p>
<pre>
<host-apdu-service xmlns:android="http://schemas.android.com/apk/res/android"
- android:description="@string/servicedesc"
+ android:description="@string/servicedesc"
android:requireDeviceUnlock="false"
- android:apduServiceBanner="@drawable/my_banner">
+ android:apduServiceBanner="@drawable/my_banner">
<aid-group android:description="@string/aiddescription"
- android:category="payment">
- <aid-filter android:name="F0010203040506"/>
- <aid-filter android:name="F0394148148100"/>
- </aid-group>
-</host-apdu-service>
+ android:category="payment">
+ <aid-filter android:name="F0010203040506"/>
+ <aid-filter android:name="F0394148148100"/>
+ </aid-group>
+</host-apdu-service>
</pre>
<h2 id="ScreenOffBehavior">Screen Off and Lock-screen Behavior</h2>
-<p>Current Android implementations turn the NFC controller and the application
-processor off completely when the screen of the device is turned off. HCE
+<p>Current Android implementations turn the NFC controller and the application
+processor off completely when the screen of the device is turned off. HCE
services will therefore not work when the screen is off.</p>
-<p>HCE services can function from the lock-screen however: this is controlled by
-the <code>android:requireDeviceUnlock</code> attribute in the <code><host-apdu-service></code> tag of your
-HCE service. By default, device unlock is not required, and your service will be
+<p>HCE services can function from the lock-screen however: this is controlled by
+the <code>android:requireDeviceUnlock</code> attribute in the <code><host-apdu-service></code> tag of your
+HCE service. By default, device unlock is not required, and your service will be
invoked even if the device is locked.</p>
-<p>If you set the <code><android:requireDeviceUnlock</code> attribute to "true" for your HCE
-service, Android will prompt the user to unlock the device when you tap an NFC
-reader that selects an AID that is resolved to your service. After unlocking,
-Android will show a dialog prompting the user to tap again to complete the
-transaction. This is necessary because the user may have moved the device away
+<p>If you set the <code>android:requireDeviceUnlock</code> attribute to "true" for your HCE
+service, Android will prompt the user to unlock the device when you tap an NFC
+reader that selects an AID that is resolved to your service. After unlocking,
+Android will show a dialog prompting the user to tap again to complete the
+transaction. This is necessary because the user may have moved the device away
from the NFC reader in order to unlock it.</p>
<h2 id="Coexistence">Coexistence with Secure Element Cards</h2>
-<p>This section is of interest for developers that have deployed an application
-that relies on a secure element for card emulation. Android's HCE implementation
-is designed to work in parallel with other methods of implementing card
+<p>This section is of interest for developers that have deployed an application
+that relies on a secure element for card emulation. Android's HCE implementation
+is designed to work in parallel with other methods of implementing card
emulation, including the use of secure elements.</p>
<p class="note"><strong>Note:</strong> Android does not offer APIs for directly communicating with a secure element itself.</p>
-<p>This coexistence is based on a principle called "AID routing": the NFC
-controller keeps a routing table that consists of a (finite) list of routing
-rules. Each routing rule contains an AID and a destination. The destination can
-either be the host CPU (where Android apps are running), or a connected secure
+<p>This coexistence is based on a principle called "AID routing": the NFC
+controller keeps a routing table that consists of a (finite) list of routing
+rules. Each routing rule contains an AID and a destination. The destination can
+either be the host CPU (where Android apps are running), or a connected secure
element.</p>
-<p>When the NFC reader sends an APDU with a "SELECT AID", the NFC controller parses
-it and checks whether the AIDs matchesNo converter for: FOOTNOTE with any AID in
-its routing table. If it matches, that APDU and all APDUs following it will be
-sent to the destination associated with the AID, until another "SELECT AID" APDU
-is received or the NFC link is broken.</p>
+<p>When the NFC reader sends an APDU with a "SELECT AID", the NFC controller parses
+it and checks whether the AIDs matches with any AID in its routing table. If it
+matches, that APDU and all APDUs following it will be sent to the destination
+associated with the AID, until another "SELECT AID" APDU is received or the NFC
+link is broken.</p>
<p class="note"><strong>Note:</strong>
- While ISO/IEC 7816-4 defines the concept of “partial matches” as well, this is currently not supported by Android HCE devices.</p>
-
+While ISO/IEC 7816-4 defines the concept of “partial matches” as well, this is currently not supported by Android HCE devices.</p>
+
<p>This architecture is illustrated in figure 4.</p>
@@ -445,46 +450,46 @@
and host-card emulation.</p>
-<p>The NFC controller typically also contains a default route for APDUs. When an
-AID is not found in the routing table, the default route is used. Beginning with Android
-4.4, the default route is required to be set to the host CPU. This
-means that the routing table typically only contains entries for AIDs that need
+<p>The NFC controller typically also contains a default route for APDUs. When an
+AID is not found in the routing table, the default route is used. Beginning with Android
+4.4, the default route is required to be set to the host CPU. This
+means that the routing table typically only contains entries for AIDs that need
to go to a secure element.</p>
-<p>Android applications that implement a HCE service or that use a secure element
-don't have to worry about configuring the routing table - that is taking care of
-by Android automatically. Android merely needs to know which AIDs can be handled
-by HCE services and which ones can be handled by the secure element. Based on
-which services are installed and which the user has configured as preferred, the
+<p>Android applications that implement a HCE service or that use a secure element
+don't have to worry about configuring the routing table - that is taking care of
+by Android automatically. Android merely needs to know which AIDs can be handled
+by HCE services and which ones can be handled by the secure element. Based on
+which services are installed and which the user has configured as preferred, the
routing table is configured automatically.</p>
-<p>We've already described how to declare AIDs for HCE services. The following
-section explains how to declare AIDs for applications that use a secure element
+<p>We've already described how to declare AIDs for HCE services. The following
+section explains how to declare AIDs for applications that use a secure element
for card emulation.</p>
<h3 id="SecureElementReg">Secure element AID registration</h3>
-<p>Applications using a secure element for card emulation can declare a so-called
-"off host service" in their manifest. The declaration of such a service is
+<p>Applications using a secure element for card emulation can declare a so-called
+"off host service" in their manifest. The declaration of such a service is
almost identical to the declaration of a HCE service. The exceptions are:</p>
<ul>
-<li>The action used in the intent-filter must be set to
-{@link android.nfc.cardemulation.OffHostApduService#SERVICE_INTERFACE}</li>
-<li>The meta-data name attribute must be set to
-{@link android.nfc.cardemulation.OffHostApduService#SERVICE_META_DATA}</li>
-<li><p>The meta-data XML file must use the <code><offhost-apdu-service></code> root tag</p>
+<li>The action used in the intent-filter must be set to
+{@link android.nfc.cardemulation.OffHostApduService#SERVICE_INTERFACE}.</li>
+<li>The meta-data name attribute must be set to
+{@link android.nfc.cardemulation.OffHostApduService#SERVICE_META_DATA}.</li>
+<li><p>The meta-data XML file must use the <code><offhost-apdu-service></code> root tag.</p>
<pre>
<service android:name=".MyOffHostApduService" android:exported="true"
- android:permission="android.permission.BIND_NFC_SERVICE">
- <intent-filter>
- <action android:name="android.nfc.cardemulation.action.OFF_HOST_APDU_SERVICE"/>
- </intent-filter>
+ android:permission="android.permission.BIND_NFC_SERVICE">
+ <intent-filter>
+ <action android:name="android.nfc.cardemulation.action.OFF_HOST_APDU_SERVICE"/>
+ </intent-filter>
<meta-data android:name="android.nfc.cardemulation.off_host_apdu_ervice"
- android:resource="@xml/apduservice"/>
-</service>
+ android:resource="@xml/apduservice"/>
+</service>
</pre>
</li>
</ul>
@@ -493,126 +498,126 @@
<pre>
<offhost-apdu-service xmlns:android="http://schemas.android.com/apk/res/android"
- android:description="@string/servicedesc">
- <aid-group android:description="@string/subscription" android:category="other">
- <aid-filter android:name="F0010203040506"/>
- <aid-filter android:name="F0394148148100"/>
- </aid-group>
-</offhost-apdu-service>
+ android:description="@string/servicedesc">
+ <aid-group android:description="@string/subscription" android:category="other">
+ <aid-filter android:name="F0010203040506"/>
+ <aid-filter android:name="F0394148148100"/>
+ </aid-group>
+</offhost-apdu-service>
</pre>
-<p>The <code>android:requireDeviceUnlock</code> attribute does not apply to off host services,
-because the host CPU is not involved in the transaction and therefore cannot
-prevent the secure element from executing transactions when the device is
+<p>The <code>android:requireDeviceUnlock</code> attribute does not apply to off host services,
+because the host CPU is not involved in the transaction and therefore cannot
+prevent the secure element from executing transactions when the device is
locked.</p>
-<p>The <code>android:apduServiceBanner</code> attribute must be used for off host services that
-are payment applications as well in order to be selectable as a default payment
+<p>The <code>android:apduServiceBanner</code> attribute must be used for off host services that
+are payment applications as well in order to be selectable as a default payment
application.</p>
<h3 id="OffHostInvocation">Off host service invocation</h3>
-<p>Android itself will never start or bind to a service that is declared as "off
-host". This is because the actual transactions are executed by the secure
-element and not by the Android service itself. The service declaration merely
+<p>Android itself will never start or bind to a service that is declared as "off
+host". This is because the actual transactions are executed by the secure
+element and not by the Android service itself. The service declaration merely
allows applications to register AIDs present on the secure element.</p>
<h2 id="HceSecurity">HCE and Security</h2>
-<p>The HCE architecture itself provides one core piece of security: because your
+<p>The HCE architecture itself provides one core piece of security: because your
service is protected by the {@link android.Manifest.permission#BIND_NFC_SERVICE}
- system permission, only the OS can
-bind to and communicate with your service. This ensures that any APDU you
-receive is actually an APDU that was received by the OS from the NFC controller,
-and that any APDU you send back will only go to the OS, which in turn directly
+ system permission, only the OS can
+bind to and communicate with your service. This ensures that any APDU you
+receive is actually an APDU that was received by the OS from the NFC controller,
+and that any APDU you send back will only go to the OS, which in turn directly
forwards the APDUs to the NFC controller.</p>
-<p>The core remaining piece is where you get the data from that you're sending back
-to the NFC reader. This is intentionally decoupled in the HCE design: it does
-not care where the data comes from, it just makes sure that it is safely
+<p>The core remaining piece is where you get your data that your app sends
+to the NFC reader. This is intentionally decoupled in the HCE design: it does
+not care where the data comes from, it just makes sure that it is safely
transported to the NFC controller and out to the NFC reader.</p>
-<p>For securely storing and retrieving the data that you want to send from your HCE
-service, you can for example rely on the Android Application Sandbox, which
-isolates your app's data from other apps. For more details on Android security,
-read
-<a href="{@docRoot}training/articles/security-tips.html">Security Tips</a>
+<p>For securely storing and retrieving the data that you want to send from your HCE
+service, you can, for example, rely on the Android Application Sandbox, which
+isolates your app's data from other apps. For more details on Android security,
+read
+<a href="{@docRoot}training/articles/security-tips.html">Security Tips</a>
.</p>
<h2 id="ProtocolParams">Protocol parameters and details</h2>
-<p>This section is of interest for developers that want to understand what protocol
-parameters HCE devices use during the anti-collision and activations phases of
-the NFC protocols. This allows them to build a reader infrastructure that is
+<p>This section is of interest for developers that want to understand what protocol
+parameters HCE devices use during the anti-collision and activation phases of
+the NFC protocols. This allows building a reader infrastructure that is
compatible with Android HCE devices.</p>
<h3 id="AntiCollisionAct">Nfc-A (ISO/IEC 14443 type A) protocol anti-collision and activation</h3>
<p>As part of the Nfc-A protocol activation, multiple frames are exchanged.</p>
-<p>In the first part of the exchange the HCE device will present its UID; HCE
-devices should be assumed to have a random UID. This means that on every tap,
-the UID that is presented to the reader will be a randomly generated UID.
-Because of this, NFC readers should not depend on the UID of HCE devices as a
+<p>In the first part of the exchange the HCE device will present its UID; HCE
+devices should be assumed to have a random UID. This means that on every tap,
+the UID that is presented to the reader will be a randomly generated UID.
+Because of this, NFC readers should not depend on the UID of HCE devices as a
form of authentication or identification.</p>
-<p>The NFC reader can subsequently select the HCE device by sending a SEL_REQ
-command. The SEL_RES response of the HCE device will at least have the 6th bit
-(0x20) set, indicating that the device supports ISO-DEP. Note that other bits in
-the SEL_RES may be set as well, indicating for example support for the NFC-DEP
-(p2p) protocol. Since other bits may be set, readers wanting to interact with
-HCE devices should explicitly check for the 6th bit only, and <stront>not</strong> compare the
+<p>The NFC reader can subsequently select the HCE device by sending a SEL_REQ
+command. The SEL_RES response of the HCE device will at least have the 6th bit
+(0x20) set, indicating that the device supports ISO-DEP. Note that other bits in
+the SEL_RES may be set as well, indicating for example support for the NFC-DEP
+(p2p) protocol. Since other bits may be set, readers wanting to interact with
+HCE devices should explicitly check for the 6th bit only, and <stront>not</strong> compare the
complete SEL_RES with a value of 0x20.</p>
<h3 id="IsoDepAct">ISO-DEP activation</h3>
-<p>After the Nfc-A protocol is activated, the ISO-DEP protocol activation is
-initiated by the NFC reader. It sends a "RATS" (Request for Answer To Select)
-command. The RATS response, the ATS, is completely generated by the NFC
-controller and not configurable by HCE services. However, HCE implementations
-are required to meet NFC Forum requirements for the ATS response, so NFC readers
-can count on these parameters being set in accordance with NFC Forum
+<p>After the Nfc-A protocol is activated, the ISO-DEP protocol activation is
+initiated by the NFC reader. It sends a "RATS" (Request for Answer To Select)
+command. The RATS response, the ATS, is completely generated by the NFC
+controller and not configurable by HCE services. However, HCE implementations
+are required to meet NFC Forum requirements for the ATS response, so NFC readers
+can count on these parameters being set in accordance with NFC Forum
requirements for any HCE device.</p>
-<p>The section below provides more details on the individual bytes of the ATS
+<p>The section below provides more details on the individual bytes of the ATS
response provided by the NFC controller on a HCE device:</p>
<ul>
-<li>TL: length of the ATS response. Must not indicate a length greater than 20
+<li>TL: length of the ATS response. Must not indicate a length greater than 20
bytes.</li>
-<li>T0: bits 5, 6 and 7 must be set on all HCE devices, indicating TA(1), TB(1)
-and TC(1) are included in the ATS response. Bits 1 to 4 indicate the FSCI,
-coding the maximum frame size. On HCE devices the value of FSCI must be
+<li>T0: bits 5, 6 and 7 must be set on all HCE devices, indicating TA(1), TB(1)
+and TC(1) are included in the ATS response. Bits 1 to 4 indicate the FSCI,
+coding the maximum frame size. On HCE devices the value of FSCI must be
between 0h and 8h.</li>
-<li>T(A)1: defines bitrates between reader and emulator, and whether they can be
+<li>T(A)1: defines bitrates between reader and emulator, and whether they can be
asymmetric. There are no bitrate requirements or guarantees for HCE devices.</li>
-<li>T(B)1: bits 1 to 4 indicate the Start-up Frame Guard time Integer (SFGI). On
-HCE devices, SFGI must be <= 8h. Bits 5 to 8 indicate the Frame Waiting time
-Integer (FWI) and codes the Frame Waiting Time (FWT). On HCE devices, FWI must
+<li>T(B)1: bits 1 to 4 indicate the Start-up Frame Guard time Integer (SFGI). On
+HCE devices, SFGI must be <= 8h. Bits 5 to 8 indicate the Frame Waiting time
+Integer (FWI) and codes the Frame Waiting Time (FWT). On HCE devices, FWI must
be <= 8h.</li>
-<li>T(C)1: bit 5 indicates support for "Advanced Protocol features". HCE devices
-may or may not support "Advanced Protocol features". Bit 2 indicates support
-for DID. HCE devices may or may not support DID. Bit 1 indicates support for
+<li>T(C)1: bit 5 indicates support for "Advanced Protocol features". HCE devices
+may or may not support "Advanced Protocol features". Bit 2 indicates support
+for DID. HCE devices may or may not support DID. Bit 1 indicates support for
NAD. HCE devices must not support NAD and set bit 1 to zero.</li>
-<li>Historical bytes: HCE devices may return up to 15 historical bytes. NFC
-readers willing to interact with HCE services should make no assumptions about
+<li>Historical bytes: HCE devices may return up to 15 historical bytes. NFC
+readers willing to interact with HCE services should make no assumptions about
the contents of the historical bytes or their presence.</li>
</ul>
-<p>Note that many HCE devices are likely made compliant with protocol requirements
-that the payment networks united in EMVCo have specified in their "Contactless
+<p>Note that many HCE devices are likely made compliant with protocol requirements
+that the payment networks united in EMVCo have specified in their "Contactless
Communication Protocol" specification. In particular:</p>
<ul>
<li>FSCI in T0 must be between 2h and 8h.</li>
-<li>T(A)1 must be set to 0x80, indicating only the 106 kbit/s bitrate is
-supported, and asymmetric bitrates between reader and emulator are not
+<li>T(A)1 must be set to 0x80, indicating only the 106 kbit/s bitrate is
+supported, and asymmetric bitrates between reader and emulator are not
supported.</li>
<li>FWI in T(B)1 must be <= 7h.</li>
</ul>
<h3 id="ApduExchange">APDU data exchange</h3>
-<p>As noted earlier, HCE implementations only support a single logical channel.
-Attempting to select applications on different logical channels will not work on
+<p>As noted earlier, HCE implementations only support a single logical channel.
+Attempting to select applications on different logical channels will not work on
a HCE device.</p>
diff --git a/docs/html/guide/topics/data/data-storage.jd b/docs/html/guide/topics/data/data-storage.jd
index 385c116..4b8a647 100644
--- a/docs/html/guide/topics/data/data-storage.jd
+++ b/docs/html/guide/topics/data/data-storage.jd
@@ -233,138 +233,197 @@
(non-removable) storage. Files saved to the external storage are world-readable and can
be modified by the user when they enable USB mass storage to transfer files on a computer.</p>
-<p>It's possible that a device using a partition of the
-internal storage for the external storage may also offer an SD card slot. In this case,
-the SD card is <em>not</em> part of the external storage and your app cannot access it (the extra
-storage is intended only for user-provided media that the system scans).</p>
-
<p class="caution"><strong>Caution:</strong> External storage can become unavailable if the user mounts the
external storage on a computer or removes the media, and there's no security enforced upon files you
save to the external storage. All applications can read and write files placed on the external
storage and the user can remove them.</p>
+<h3 id="ExternalPermissions">Getting access to external storage</h3>
+
+<p>In order to read or write files on the external storage, your app must acquire the
+{@link android.Manifest.permission#READ_EXTERNAL_STORAGE}
+or {@link android.Manifest.permission#WRITE_EXTERNAL_STORAGE} system
+permissions. For example:</p>
+<pre>
+<manifest ...>
+ <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
+ ...
+</manifest>
+</pre>
+
+<p>If you need to both read and write files, then you need to request only the
+{@link android.Manifest.permission#WRITE_EXTERNAL_STORAGE} permission, because it
+implicitly requires read access as well.</p>
+
+<p class="note"><strong>Note:</strong> Beginning with Android 4.4, these permissions are not
+required if you're reading or writing only files that are private to your app. For more
+information, see the section below about
+<a href="#AccessingExtFiles">saving files that are app-private</a>.</p>
+
+
<h3 id="MediaAvail">Checking media availability</h3>
<p>Before you do any work with the external storage, you should always call {@link
android.os.Environment#getExternalStorageState()} to check whether the media is available. The
media might be mounted to a computer, missing, read-only, or in some other state. For example,
-here's how you can check the availability:</p>
+here are a couple methods you can use to check the availability:</p>
<pre>
-boolean mExternalStorageAvailable = false;
-boolean mExternalStorageWriteable = false;
-String state = Environment.getExternalStorageState();
+/* Checks if external storage is available for read and write */
+public boolean isExternalStorageWritable() {
+ String state = Environment.getExternalStorageState();
+ if (Environment.MEDIA_MOUNTED.equals(state)) {
+ return true;
+ }
+ return false;
+}
-if (Environment.MEDIA_MOUNTED.equals(state)) {
- // We can read and write the media
- mExternalStorageAvailable = mExternalStorageWriteable = true;
-} else if (Environment.MEDIA_MOUNTED_READ_ONLY.equals(state)) {
- // We can only read the media
- mExternalStorageAvailable = true;
- mExternalStorageWriteable = false;
-} else {
- // Something else is wrong. It may be one of many other states, but all we need
- // to know is we can neither read nor write
- mExternalStorageAvailable = mExternalStorageWriteable = false;
+/* Checks if external storage is available to at least read */
+public boolean isExternalStorageReadable() {
+ String state = Environment.getExternalStorageState();
+ if (Environment.MEDIA_MOUNTED.equals(state) ||
+ Environment.MEDIA_MOUNTED_READ_ONLY.equals(state)) {
+ return true;
+ }
+ return false;
}
</pre>
-<p>This example checks whether the external storage is available to read and write. The
-{@link android.os.Environment#getExternalStorageState()} method returns other states that you
+<p>The {@link android.os.Environment#getExternalStorageState()} method returns other states that you
might want to check, such as whether the media is being shared (connected to a computer), is missing
entirely, has been removed badly, etc. You can use these to notify the user with more information
when your application needs to access the media.</p>
-<h3 id="AccessingExtFiles">Accessing files on external storage</h3>
+<h3 id="SavingSharedFiles">Saving files that can be shared with other apps</h3>
-<p>If you're using API Level 8 or greater, use {@link
-android.content.Context#getExternalFilesDir(String) getExternalFilesDir()} to open a {@link
-java.io.File} that represents the external storage directory where you should save your
-files. This method takes a <code>type</code> parameter that specifies the type of subdirectory you
-want, such as {@link android.os.Environment#DIRECTORY_MUSIC} and
-{@link android.os.Environment#DIRECTORY_RINGTONES} (pass <code>null</code> to receive
-the root of your application's file directory). This method will create the
-appropriate directory if necessary. By specifying the type of directory, you
-ensure that the Android's media scanner will properly categorize your files in the system (for
-example, ringtones are identified as ringtones and not music). If the user uninstalls your
-application, this directory and all its contents will be deleted.</p>
-
-<p>If you're using API Level 7 or lower, use {@link
-android.os.Environment#getExternalStorageDirectory()}, to open a {@link
-java.io.File} representing the root of the external storage. You should then write your data in the
-following directory:</p>
-<pre class="no-pretty-print classic">
-/Android/data/<em><package_name></em>/files/
-</pre>
-<p>The {@code <em><package_name></em>} is your Java-style package name, such as "{@code
-com.example.android.app}". If the user's device is running API Level 8 or greater and they
-uninstall your application, this directory and all its contents will be deleted.</p>
-
-
-<div class="sidebox-wrapper" style="margin-top:3em">
+<div class="sidebox-wrapper" >
<div class="sidebox">
<h4>Hiding your files from the Media Scanner</h4>
<p>Include an empty file named {@code .nomedia} in your external files directory (note the dot
-prefix in the filename). This will prevent Android's media scanner from reading your media
-files and including them in apps like Gallery or Music.</p>
+prefix in the filename). This prevents media scanner from reading your media
+files and providing them to other apps through the {@link android.provider.MediaStore}
+content provider. However, if your files are truly private to your app, you should
+<a href="#AccessingExtFiles">save them in an app-private directory</a>.</p>
</div>
</div>
+<p>Generally, new files that the user may acquire through your app should be saved to a "public"
+location on the device where other apps can access them and the user can easily copy them from the
+device. When doing so, you should use to one of the shared public directories, such as {@code
+Music/}, {@code Pictures/}, and {@code Ringtones/}.</p>
-<h3 id="SavingSharedFiles">Saving files that should be shared</h3>
-
-<p>If you want to save files that are not specific to your application and that should <em>not</em>
-be deleted when your application is uninstalled, save them to one of the public directories on the
-external storage. These directories lay at the root of the external storage, such as {@code
-Music/}, {@code Pictures/}, {@code Ringtones/}, and others.</p>
-
-<p>In API Level 8 or greater, use {@link
+<p>To get a {@link java.io.File} representing the appropriate public directory, call {@link
android.os.Environment#getExternalStoragePublicDirectory(String)
-getExternalStoragePublicDirectory()}, passing it the type of public directory you want, such as
+getExternalStoragePublicDirectory()}, passing it the type of directory you want, such as
{@link android.os.Environment#DIRECTORY_MUSIC}, {@link android.os.Environment#DIRECTORY_PICTURES},
-{@link android.os.Environment#DIRECTORY_RINGTONES}, or others. This method will create the
-appropriate directory if necessary.</p>
+{@link android.os.Environment#DIRECTORY_RINGTONES}, or others. By saving your files to the
+corresponding media-type directory,
+the system's media scanner can properly categorize your files in the system (for
+instance, ringtones appear in system settings as ringtones, not as music).</p>
-<p>If you're using API Level 7 or lower, use {@link
-android.os.Environment#getExternalStorageDirectory()} to open a {@link java.io.File} that represents
-the root of the external storage, then save your shared files in one of the following
-directories:</p>
-<ul class="nolist"></li>
- <li><code>Music/</code> - Media scanner classifies all media found here as user music.</li>
- <li><code>Podcasts/</code> - Media scanner classifies all media found here as a podcast.</li>
- <li><code>Ringtones/ </code> - Media scanner classifies all media found here as a ringtone.</li>
- <li><code>Alarms/</code> - Media scanner classifies all media found here as an alarm sound.</li>
- <li><code>Notifications/</code> - Media scanner classifies all media found here as a notification
-sound.</li>
- <li><code>Pictures/</code> - All photos (excluding those taken with the camera).</li>
- <li><code>Movies/</code> - All movies (excluding those taken with the camcorder).</li>
- <li><code>Download/</code> - Miscellaneous downloads.</li>
-</ul>
+<p>For example, here's a method that creates a directory for a new photo album in
+the public pictures directory:</p>
+
+<pre>
+public File getAlbumStorageDir(String albumName) {
+ // Get the directory for the user's public pictures directory.
+ File file = new File(Environment.getExternalStoragePublicDirectory(
+ Environment.DIRECTORY_PICTURES), albumName);
+ if (!file.mkdirs()) {
+ Log.e(LOG_TAG, "Directory not created");
+ }
+ return file;
+}
+</pre>
+
+
+
+<h3 id="AccessingExtFiles">Saving files that are app-private</h3>
+
+<p>If you are handling files that are not intended for other apps to use
+(such as graphic textures or sound effects used by only your app), you should use
+a private storage directory on the external storage by calling {@link
+android.content.Context#getExternalFilesDir(String) getExternalFilesDir()}.
+This method also takes a <code>type</code> argument to specify the type of subdirectory
+(such as {@link android.os.Environment#DIRECTORY_MOVIES}). If you don't need a specific
+media directory, pass <code>null</code> to receive
+the root directory of your app's private directory.</p>
+
+<p>Beginning with Android 4.4, reading or writing files in your app's private
+directories does not require the {@link android.Manifest.permission#READ_EXTERNAL_STORAGE}
+or {@link android.Manifest.permission#WRITE_EXTERNAL_STORAGE}
+permissions. So you can declare the permission should be requested only on the lower versions
+of Android by adding the <a
+href="{@docRoot}guide/topics/manifest/uses-permission-element.html#maxSdk">{@code maxSdkVersion}</a>
+attribute:</p>
+<pre>
+<manifest ...>
+ <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"
+ android:maxSdkVersion="18" />
+ ...
+</manifest>
+</pre>
+
+<p class="note"><strong>Note:</strong>
+When the user uninstalls your application, this directory and all its contents are deleted.
+Also, the system media scanner does not read files in these directories, so they are not accessible
+from the {@link android.provider.MediaStore} content provider. As such, you <b>should not
+use these directories</b> for media that ultimately belongs to the user, such as photos
+captured or edited with your app, or music the user has purchased with your app—those
+files should be <a href="#SavingSharedFiles">saved in the public directories</a>.</p>
+
+<p>Sometimes, a device that has allocated a partition of the
+internal memory for use as the external storage may also offer an SD card slot.
+When such a device is running Android 4.3 and lower, the {@link
+android.content.Context#getExternalFilesDir(String) getExternalFilesDir()} method provides
+access to only the internal partition and your app cannot read or write to the SD card.
+Beginning with Android 4.4, however, you can access both locations by calling
+{@link android.content.Context#getExternalFilesDirs getExternalFilesDirs()},
+which returns a {@link
+java.io.File} array with entries each location. The first entry in the array is considered
+the primary external storage and you should use that location unless it's full or
+unavailable. If you'd like to access both possible locations while also supporting Android
+4.3 and lower, use the <a href="{@docRoot}tools/support-library/index.html">support library's</a>
+static method, {@link android.support.v4.content.ContextCompat#getExternalFilesDirs
+ContextCompat.getExternalFilesDirs()}. This also returns a {@link
+java.io.File} array, but always includes only one entry on Android 4.3 and lower.</p>
+
+<p class="caution"><strong>Caution</strong> Although the directories provided by {@link
+android.content.Context#getExternalFilesDir(String) getExternalFilesDir()} and {@link
+android.content.Context#getExternalFilesDirs getExternalFilesDirs()} are not accessible by the
+{@link android.provider.MediaStore} content provider, other apps with the {@link
+android.Manifest.permission#READ_EXTERNAL_STORAGE} permission can access all files on the external
+storage, including these. If you need to completely restrict access for your files, you should
+instead write your files to the <a href="#filesInternal">internal storage</a>.</p>
+
+
+
<h3 id="ExternalCache">Saving cache files</h3>
-<p>If you're using API Level 8 or greater, use {@link
-android.content.Context#getExternalCacheDir()} to open a {@link java.io.File} that represents the
-external storage directory where you should save cache files. If the user uninstalls your
-application, these files will be automatically deleted. However, during the life of your
-application, you should manage these cache files and remove those that aren't needed in order to
-preserve file space.</p>
+<p>To open a {@link java.io.File} that represents the
+external storage directory where you should save cache files, call {@link
+android.content.Context#getExternalCacheDir()}. If the user uninstalls your
+application, these files will be automatically deleted.</p>
-<p>If you're using API Level 7 or lower, use {@link
-android.os.Environment#getExternalStorageDirectory()} to open a {@link java.io.File} that represents
-the root of the external storage, then write your cache data in the following directory:</p>
-<pre class="no-pretty-print classic">
-/Android/data/<em><package_name></em>/cache/
-</pre>
-<p>The {@code <em><package_name></em>} is your Java-style package name, such as "{@code
-com.example.android.app}".</p>
+<p>Similar to {@link android.support.v4.content.ContextCompat#getExternalFilesDirs
+ContextCompat.getExternalFilesDirs()}, mentioned above, you can also access a cache directory on
+a secondary external storage (if available) by calling
+{@link android.support.v4.content.ContextCompat#getExternalCacheDirs
+ContextCompat.getExternalCacheDirs()}.</p>
+
+<p class="note"><strong>Tip:</strong>
+To preserve file space and maintain your app's performance,
+it's important that you carefully manage your cache files and remove those that aren't
+needed anymore throughout your app's lifecycle.</p>
+
diff --git a/docs/html/guide/topics/manifest/application-element.jd b/docs/html/guide/topics/manifest/application-element.jd
index 6bfa3dc..46500aa 100644
--- a/docs/html/guide/topics/manifest/application-element.jd
+++ b/docs/html/guide/topics/manifest/application-element.jd
@@ -40,6 +40,7 @@
<dt>can contain:</dt>
<dd><code><a href="{@docRoot}guide/topics/manifest/activity-element.html"><activity></a></code>
<br/><code><a href="{@docRoot}guide/topics/manifest/activity-alias-element.html"><activity-alias></a></code>
+<br/><code><a href="{@docRoot}guide/topics/manifest/meta-data-element.html"><meta-data></a></code>
<br/><code><a href="{@docRoot}guide/topics/manifest/service-element.html"><service></a></code>
<br/><code><a href="{@docRoot}guide/topics/manifest/receiver-element.html"><receiver></a></code>
<br/><code><a href="{@docRoot}guide/topics/manifest/provider-element.html"><provider></a></code>
diff --git a/docs/html/guide/topics/manifest/category-element.jd b/docs/html/guide/topics/manifest/category-element.jd
index 41a2cfded..a4b93ee 100644
--- a/docs/html/guide/topics/manifest/category-element.jd
+++ b/docs/html/guide/topics/manifest/category-element.jd
@@ -27,6 +27,14 @@
the string value for {@code CATEGORY_LAUNCHER} is
"{@code android.intent.category.LAUNCHER}".
+<p class="note"><strong>Note:</strong> In order to receive implicit intents, you must include the
+{@link android.content.Intent#CATEGORY_DEFAULT} category in the intent filter. The methods
+{@link android.app.Activity#startActivity startActivity()} and
+{@link android.app.Activity#startActivityForResult startActivityForResult()} treat all intents
+as if they declared the {@link android.content.Intent#CATEGORY_DEFAULT} category.
+If you do not declare it in your intent filter, no implicit intents will resolve to
+your activity.</p>
+
<p>
Custom categories should use the package name as a prefix, to ensure
that they are unique.
diff --git a/docs/html/guide/topics/manifest/data-element.jd b/docs/html/guide/topics/manifest/data-element.jd
index 766d2d7..27950d0 100644
--- a/docs/html/guide/topics/manifest/data-element.jd
+++ b/docs/html/guide/topics/manifest/data-element.jd
@@ -5,34 +5,35 @@
<dl class="xml">
<dt>syntax:</dt>
-<dd><pre class="stx"><data android:<a href="#host">host</a>="<i>string</i>"
- android:<a href="#mime">mimeType</a>="<i>string</i>"
+<dd><pre class="stx"><data android:<a href="#scheme">scheme</a>="<i>string</i>"
+ android:<a href="#host">host</a>="<i>string</i>"
+ android:<a href="#port">port</a>="<i>string</i>"
android:<a href="#path">path</a>="<i>string</i>"
android:<a href="#path">pathPattern</a>="<i>string</i>"
android:<a href="#path">pathPrefix</a>="<i>string</i>"
- android:<a href="#port">port</a>="<i>string</i>"
- android:<a href="#scheme">scheme</a>="<i>string</i>" /></pre></dd>
+ android:<a href="#mime">mimeType</a>="<i>string</i>" /></pre></dd>
<dt>contained in:</dt>
<dd><code><a href="{@docRoot}guide/topics/manifest/intent-filter-element.html"><intent-filter></a></code></dd>
<dt>description:</dt>
-<dd>Adds a data specification to an intent filter. The specification can
-be just a data type (the <code><a href="{@docRoot}guide/topics/manifest/data-element.html#mime">mimeType</a></code> attribute),
-just a URI, or both a data type and a URI. A URI is specified by separate
+<dd>Adds a data specification to an intent filter. The specification can
+be just a data type (the <code><a href="{@docRoot}guide/topics/manifest/data-element.html#mime">mimeType</a></code> attribute),
+just a URI, or both a data type and a URI. A URI is specified by separate
attributes for each of its parts:
-<p style="margin-left: 2em">{@code scheme://host:port/path} <i>or</i>
-{@code pathPrefix} <i>or</i> {@code pathPattern}</p>
+<p style="margin-left: 2em">
+{@code <scheme>://<host>:<port>/[<path>|<pathPrefix>|<pathPattern>]}</p>
<p>
-These attributes are optional, but also mutually dependent:
-If a <code><a href="{@docRoot}guide/topics/manifest/data-element.html#scheme">scheme</a></code> is not specified for the
-intent filter, all the other URI attributes are ignored. If a
-<code><a href="{@docRoot}guide/topics/manifest/data-element.html#host">host</a></code> is not specified for the filter,
-the {@code port} attribute and all the path attributes are ignored.
-</p>
+These attributes that specify the URL format are optional, but also mutually dependent:
+<ul>
+ <li>If a <code><a href="{@docRoot}guide/topics/manifest/data-element.html#scheme">scheme</a></code>
+is not specified for the intent filter, all the other URI attributes are ignored.</li>
+ <li>If a <code><a href="{@docRoot}guide/topics/manifest/data-element.html#host">host</a></code>
+is not specified for the filter, the {@code port} attribute and all the path attributes are ignored.
+</ul>
<p>
All the {@code <data>} elements contained within the same
@@ -54,93 +55,26 @@
</intent-filter></pre>
<p>
-You can place any number of <data> elements inside an
-<code><a href="{@docRoot}guide/topics/manifest/intent-filter-element.html"><intent-filter></a></code> to give it multiple data
-options. None of its attributes have default values.
+You can place any number of {@code <data>} elements inside an
+<code><a href="{@docRoot}guide/topics/manifest/intent-filter-element.html"><intent-filter></a></code> to give it multiple data
+options. None of its attributes have default values.
</p>
<p>
Information on how intent filters work, including the rules for how Intent objects
are matched against filters, can be found in another document,
<a href="{@docRoot}guide/components/intents-filters.html">Intents and
-Intent Filters</a>. See also the
-<a href="{@docRoot}guide/topics/manifest/manifest-intro.html#ifs">Intent Filters</a>
-section in the introduction.
+Intent Filters</a>. See also the
+<a href="{@docRoot}guide/topics/manifest/manifest-intro.html#ifs">Intent Filters</a>
+section in the manifest file overview.
</p></dd>
<dt>attributes:</dt>
<dd><dl class="attr">
-<dt><a name="host"></a>{@code android:host}</dt>
-<dd>The host part of a URI authority. This attribute is meaningless
-unless a <code><a href="{@docRoot}guide/topics/manifest/data-element.html#scheme">scheme</a></code> attribute is also
-specified for the filter.
-
-<p class="note">Note: host name matching in the Android framework is
-case-sensitive, unlike the formal RFC. As a result, you should always specify
-host names using lowercase letters.</p>
-</dd>
-
-<dt><a name="mime"></a>{@code android:mimeType}</dt>
-<dd>A MIME media type, such as {@code image/jpeg} or {@code audio/mpeg4-generic}.
-The subtype can be the asterisk wildcard ({@code *}) to indicate that any
-subtype matches.
-
-<p>It's common for an intent filter to declare a {@code <data>} that includes
-only the {@code android:mimeType} attribute.</p>
-
-<p class="note">Note: MIME type matching in the Android framework is
-case-sensitive, unlike formal RFC MIME types. As a result, you should always
-specify MIME types using lowercase letters.</p>
-</dd>
-
-<dt><a name="path"></a>{@code android:path}
-<br/>{@code android:pathPrefix}
-<br/>{@code android:pathPattern}</dt>
-<dd>The path part of a URI. The {@code path} attribute specifies a complete
-path that is matched against the complete path in an Intent object. The
-{@code pathPrefix} attribute specifies a partial path that is matched against
-only the initial part of the path in the Intent object. The {@code pathPattern}
-attribute specifies a complete path that is matched against the complete path
-in the Intent object, but it can contain the following wildcards:
-
-<ul>
-<li>An asterisk ('{@code *}') matches a sequence of 0 to many occurrences of
-the immediately preceding character.</li>
-
-<li>A period followed by an asterisk ("{@code .*}") matches any sequence of
-0 to many characters.</li>
-</ul>
-
-<p>
-Because '{@code \}' is used as an escape character when the string is read
-from XML (before it is parsed as a pattern), you will need to double-escape:
-For example, a literal '{@code *}' would be written as "{@code \\*}" and a
-literal '{@code \}' would be written as "{@code \\\\}". This is basically
-the same as what you would need to write if constructing the string in Java code.
-</p>
-
-<p>
-For more information on these three types of patterns, see the descriptions of
-{@link android.os.PatternMatcher#PATTERN_LITERAL},
-{@link android.os.PatternMatcher#PATTERN_PREFIX}, and
-{@link android.os.PatternMatcher#PATTERN_SIMPLE_GLOB} in the
-{@link android.os.PatternMatcher} class.
-</p>
-
-<p>These attributes are meaningful only if the
-<code><a href="#scheme">scheme</a></code> and <code><a href="#host">host</a></code>
-attributes are also specified for the filter.
-</p></dd>
-
-<dt><a name="port"></a>{@code android:port}</dt>
-<dd>The port part of a URI authority. This attribute is meaningful only
-if the <code><a href="#scheme">scheme</a></code> and
-<code><a href="#host">host</a></code> attributes are also specified for
-the filter.</dd>
<dt><a name="scheme"></a>{@code android:scheme}</dt>
-<dd>The scheme part of a URI. This is the minimal essential attribute for
-specifying a URI; at least one {@code scheme} attribute must be set
+<dd>The scheme part of a URI. This is the minimal essential attribute for
+specifying a URI; at least one {@code scheme} attribute must be set
for the filter, or none of the other URI attributes are meaningful.
<p>
@@ -149,16 +83,89 @@
</p>
<p>
-If the filter has a data type set (the <code><a href="{@docRoot}guide/topics/manifest/data-element.html#mime">mimeType</a></code>
+If the filter has a data type set (the <code><a
+href="{@docRoot}guide/topics/manifest/data-element.html#mime">mimeType</a></code>
attribute) but no scheme, the {@code content:} and {@code file:} schemes are
assumed.
</p>
-<p class="note">Note: scheme matching in the Android framework is
+<p class="note"><strong>Note</strong>: Scheme matching in the Android framework is
case-sensitive, unlike the RFC. As a result, you should always specify schemes
using lowercase letters.</p>
</dd>
-</dl></dd>
+
+<dt><a name="host"></a>{@code android:host}</dt>
+<dd>The host part of a URI authority. This attribute is meaningless
+unless a <code><a href="{@docRoot}guide/topics/manifest/data-element.html#scheme">scheme</a></code> attribute is also
+specified for the filter.
+
+<p class="note"><strong>Note</strong>: host name matching in the Android framework is
+case-sensitive, unlike the formal RFC. As a result, you should always specify
+host names using lowercase letters.</p>
+</dd>
+
+
+<dt><a name="port"></a>{@code android:port}</dt>
+<dd>The port part of a URI authority. This attribute is meaningful only
+if the <code><a href="#scheme">scheme</a></code> and
+<code><a href="#host">host</a></code> attributes are also specified for
+the filter.</dd>
+
+
+<dt><a name="path"></a>{@code android:path}
+<br/>{@code android:pathPrefix}
+<br/>{@code android:pathPattern}</dt>
+<dd>The path part of a URI. The {@code path} attribute specifies a complete
+path that is matched against the complete path in an Intent object. The
+{@code pathPrefix} attribute specifies a partial path that is matched against
+only the initial part of the path in the Intent object. The {@code pathPattern}
+attribute specifies a complete path that is matched against the complete path
+in the Intent object, but it can contain the following wildcards:
+
+<ul>
+<li>An asterisk ('{@code *}') matches a sequence of 0 to many occurrences of
+the immediately preceding character.</li>
+
+<li>A period followed by an asterisk ("{@code .*}") matches any sequence of
+0 to many characters.</li>
+</ul>
+
+<p>
+Because '{@code \}' is used as an escape character when the string is read
+from XML (before it is parsed as a pattern), you will need to double-escape:
+For example, a literal '{@code *}' would be written as "{@code \\*}" and a
+literal '{@code \}' would be written as "{@code \\\\}". This is basically
+the same as what you would need to write if constructing the string in Java code.
+</p>
+
+<p>
+For more information on these three types of patterns, see the descriptions of
+{@link android.os.PatternMatcher#PATTERN_LITERAL},
+{@link android.os.PatternMatcher#PATTERN_PREFIX}, and
+{@link android.os.PatternMatcher#PATTERN_SIMPLE_GLOB} in the
+{@link android.os.PatternMatcher} class.
+</p>
+
+<p>These attributes are meaningful only if the
+<code><a href="#scheme">scheme</a></code> and <code><a href="#host">host</a></code>
+attributes are also specified for the filter.
+</p></dd>
+
+<dt><a name="mime"></a>{@code android:mimeType}</dt>
+<dd>A MIME media type, such as {@code image/jpeg} or {@code audio/mpeg4-generic}.
+The subtype can be the asterisk wildcard ({@code *}) to indicate that any
+subtype matches.
+
+<p>It's common for an intent filter to declare a {@code <data>} that includes
+only the {@code android:mimeType} attribute.</p>
+
+
+<p class="note"><strong>Note</strong>: MIME type matching in the Android framework is
+case-sensitive, unlike formal RFC MIME types. As a result, you should always
+specify MIME types using lowercase letters.</p>
+</dd>
+
+</dl></dd>
<!-- ##api level indication## -->
<dt>introduced in:</dt>
diff --git a/docs/html/guide/topics/manifest/manifest-element.jd b/docs/html/guide/topics/manifest/manifest-element.jd
index cce951e..12690d2 100644
--- a/docs/html/guide/topics/manifest/manifest-element.jd
+++ b/docs/html/guide/topics/manifest/manifest-element.jd
@@ -25,12 +25,16 @@
<dd><code><a href="{@docRoot}guide/topics/manifest/application-element.html"><application></a></code></dd>
<dt>can contain:</dt>
-<dd><code><a href="{@docRoot}guide/topics/manifest/instrumentation-element.html"><instrumentation></a></code>
+<dd><code><a href="{@docRoot}guide/topics/manifest/compatible-screens-element.html"><compatible-screens></a></code>
+<br/><code><a href="{@docRoot}guide/topics/manifest/instrumentation-element.html"><instrumentation></a></code>
<br/><code><a href="{@docRoot}guide/topics/manifest/permission-element.html"><permission></a></code>
<br/><code><a href="{@docRoot}guide/topics/manifest/permission-group-element.html"><permission-group></a></code>
<br/><code><a href="{@docRoot}guide/topics/manifest/permission-tree-element.html"><permission-tree></a></code>
+<br/><code><a href="{@docRoot}guide/topics/manifest/supports-gl-texture.html"><supports-gl-texture></a></code
+<br/><code><a href="{@docRoot}guide/topics/manifest/supports-screens-element.html"><supports-screens></a></code>
<br/><code><a href="{@docRoot}guide/topics/manifest/uses-configuration-element.html"><uses-configuration></a></code> <!-- ##api level 3## -->
-<br/><code><a href="{@docRoot}guide/topics/manifest/uses-permission-element.html"><uses-permission></a></code></dd>
+<br/><code><a href="{@docRoot}guide/topics/manifest/uses-feature-element.html"><uses-feature></a></code>
+<br/><code><a href="{@docRoot}guide/topics/manifest/uses-permission-element.html"><uses-permission></a></code>
<br/><code><a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html"><uses-sdk></a></code></dd>
<p>
@@ -189,4 +193,4 @@
<dd>
<code><a href="{@docRoot}guide/topics/manifest/application-element.html"><application></a></code></dd>
-</dl>
+</dl>
\ No newline at end of file
diff --git a/docs/html/guide/topics/manifest/manifest-intro.jd b/docs/html/guide/topics/manifest/manifest-intro.jd
index d25a513..76fe2a2 100644
--- a/docs/html/guide/topics/manifest/manifest-intro.jd
+++ b/docs/html/guide/topics/manifest/manifest-intro.jd
@@ -1,4 +1,4 @@
-page.title=The AndroidManifest.xml File
+page.title=App Manifest
@jd:body
<div id="qv-wrapper">
diff --git a/docs/html/guide/topics/manifest/meta-data-element.jd b/docs/html/guide/topics/manifest/meta-data-element.jd
index 56a214c..ee80c84 100644
--- a/docs/html/guide/topics/manifest/meta-data-element.jd
+++ b/docs/html/guide/topics/manifest/meta-data-element.jd
@@ -12,8 +12,10 @@
<dt>contained in:</dt>
<dd><code><a href="{@docRoot}guide/topics/manifest/activity-element.html"><activity></a></code>
<br/><code><a href="{@docRoot}guide/topics/manifest/activity-alias-element.html"><activity-alias></a></code>
-<br/><code><a href="{@docRoot}guide/topics/manifest/service-element.html"><service></a></code>
+<br/><code><a href="{@docRoot}guide/topics/manifest/application-element.html"><application></a></code>
+<br/><code><a href="{@docRoot}guide/topics/manifest/provider-element.html"><provider></a></code>
<br/><code><a href="{@docRoot}guide/topics/manifest/receiver-element.html"><receiver></a></code></dd>
+<br/><code><a href="{@docRoot}guide/topics/manifest/service-element.html"><service></a></code>
<dt>description:</dt>
<dd>A name-value pair for an item of additional, arbitrary data that can
diff --git a/docs/html/guide/topics/manifest/uses-feature-element.jd b/docs/html/guide/topics/manifest/uses-feature-element.jd
index 95f62a5..cb92f6d 100644
--- a/docs/html/guide/topics/manifest/uses-feature-element.jd
+++ b/docs/html/guide/topics/manifest/uses-feature-element.jd
@@ -136,7 +136,7 @@
<dd>Specifies a single hardware or software feature used by the application,
as a descriptor string. Valid descriptor values are listed in the <a
href="#hw-features">Hardware features</a> and <a href="#sw-features">Software
-features</a> tables, below. </dd>
+features</a> tables, below. Descriptor string values are case-sensitive.</dd>
<dt><a name="required"></a><code>android:required</code></dt> <!-- added in api level 5 -->
<dd>Boolean value that indicates whether the application requires
diff --git a/docs/html/guide/topics/manifest/uses-sdk-element.jd b/docs/html/guide/topics/manifest/uses-sdk-element.jd
index 9169658..8de4739 100644
--- a/docs/html/guide/topics/manifest/uses-sdk-element.jd
+++ b/docs/html/guide/topics/manifest/uses-sdk-element.jd
@@ -273,55 +273,55 @@
<td>{@link android.os.Build.VERSION_CODES#HONEYCOMB_MR1}</td>
<td><a href="{@docRoot}about/versions/android-3.1-highlights.html">Platform Highlights</a></td></tr>
- <tr><td><a href="{@docRoot}about/versions/android-3.0.html">Android 3.0.x</td>
+ <tr><td><a href="{@docRoot}about/versions/android-3.0.html">Android 3.0.x</a></td>
<td><a href="{@docRoot}sdk/api_diff/11/changes.html" title="Diff Report">11</a></td>
<td>{@link android.os.Build.VERSION_CODES#HONEYCOMB}</td>
<td><a href="{@docRoot}about/versions/android-3.0-highlights.html">Platform Highlights</a></td></tr>
- <tr><td><a href="{@docRoot}about/versions/android-2.3.3.html">Android 2.3.4<br>Android 2.3.3</td>
+ <tr><td><a href="{@docRoot}about/versions/android-2.3.3.html">Android 2.3.4<br>Android 2.3.3</a></td>
<td><a href="{@docRoot}sdk/api_diff/10/changes.html" title="Diff Report">10</a></td>
<td>{@link android.os.Build.VERSION_CODES#GINGERBREAD_MR1}</td>
<td rowspan="2"><a href="{@docRoot}about/versions/android-2.3-highlights.html">Platform
Highlights</a></td></tr>
- <tr><td><a href="{@docRoot}about/versions/android-2.3.html">Android 2.3.2<br>Android 2.3.1<br>Android
-2.3</td>
+ <tr><td><a href="{@docRoot}about/versions/android-2.3.html">Android 2.3.2<br>Android 2.3.1<br>
+ Android 2.3</a></td>
<td><a href="{@docRoot}sdk/api_diff/9/changes.html" title="Diff Report">9</a></td>
<td>{@link android.os.Build.VERSION_CODES#GINGERBREAD}</td>
</tr>
- <tr><td><a href="{@docRoot}about/versions/android-2.2.html">Android 2.2.x</td>
+ <tr><td><a href="{@docRoot}about/versions/android-2.2.html">Android 2.2.x</a></td>
<td ><a href="{@docRoot}sdk/api_diff/8/changes.html" title="Diff Report">8</a></td>
<td>{@link android.os.Build.VERSION_CODES#FROYO}</td>
<td><a href="{@docRoot}about/versions/android-2.2-highlights.html">Platform Highlights</a></td></tr>
- <tr><td><a href="{@docRoot}about/versions/android-2.1.html">Android 2.1.x</td>
+ <tr><td><a href="{@docRoot}about/versions/android-2.1.html">Android 2.1.x</a></td>
<td><a href="{@docRoot}sdk/api_diff/7/changes.html" title="Diff Report">7</a></td>
<td>{@link android.os.Build.VERSION_CODES#ECLAIR_MR1}</td>
<td rowspan="3" ><a href="{@docRoot}about/versions/android-2.0-highlights.html">Platform
Highlights</a></td></tr>
- <tr><td><a href="{@docRoot}about/versions/android-2.0.1.html">Android 2.0.1</td>
+ <tr><td><a href="{@docRoot}about/versions/android-2.0.1.html">Android 2.0.1</a></td>
<td><a href="{@docRoot}sdk/api_diff/6/changes.html" title="Diff Report">6</a></td>
<td>{@link android.os.Build.VERSION_CODES#ECLAIR_0_1}</td>
</tr>
- <tr><td><a href="{@docRoot}about/versions/android-2.0.html">Android 2.0</td>
+ <tr><td><a href="{@docRoot}about/versions/android-2.0.html">Android 2.0</a></td>
<td><a href="{@docRoot}sdk/api_diff/5/changes.html" title="Diff Report">5</a></td>
<td>{@link android.os.Build.VERSION_CODES#ECLAIR}</td>
</tr>
- <tr><td><a href="{@docRoot}about/versions/android-1.6.html">Android 1.6</td>
+ <tr><td><a href="{@docRoot}about/versions/android-1.6.html">Android 1.6</a></td>
<td><a href="{@docRoot}sdk/api_diff/4/changes.html" title="Diff Report">4</a></td>
<td>{@link android.os.Build.VERSION_CODES#DONUT}</td>
<td><a href="{@docRoot}about/versions/android-1.6-highlights.html">Platform Highlights</a></td></tr>
- <tr><td><a href="{@docRoot}about/versions/android-1.5.html">Android 1.5</td>
+ <tr><td><a href="{@docRoot}about/versions/android-1.5.html">Android 1.5</a></td>
<td><a href="{@docRoot}sdk/api_diff/3/changes.html" title="Diff Report">3</a></td>
<td>{@link android.os.Build.VERSION_CODES#CUPCAKE}</td>
<td><a href="{@docRoot}about/versions/android-1.5-highlights.html">Platform Highlights</a></td></tr>
- <tr><td><a href="{@docRoot}about/versions/android-1.1.html">Android 1.1</td>
+ <tr><td><a href="{@docRoot}about/versions/android-1.1.html">Android 1.1</a></td>
<td>2</td>
<td>{@link android.os.Build.VERSION_CODES#BASE_1_1}</td><td></td></tr>
diff --git a/docs/html/guide/topics/media/mediaplayer.jd b/docs/html/guide/topics/media/mediaplayer.jd
index fb272d2..dc789d2 100644
--- a/docs/html/guide/topics/media/mediaplayer.jd
+++ b/docs/html/guide/topics/media/mediaplayer.jd
@@ -119,7 +119,7 @@
<p>In this case, a "raw" resource is a file that the system does not
try to parse in any particular way. However, the content of this resource should not
-be raw audio. It should be a properly encoded and formatted media file in one
+be raw audio. It should be a properly encoded and formatted media file in one
of the supported formats.</p>
<p>And here is how you might play from a URI available locally in the system
@@ -207,7 +207,7 @@
cannot call {@link android.media.MediaPlayer#start start()} again until you
prepare the {@link android.media.MediaPlayer} again.</p>
-<p>Always keep <a href='{@docRoot}images/mediaplayer_state_diagram.gif'>the state diagram</a>
+<p>Always keep <a href='{@docRoot}images/mediaplayer_state_diagram.gif'>the state diagram</a>
in mind when writing code that interacts with a
{@link android.media.MediaPlayer} object, because calling its methods from the wrong state is a
common cause of bugs.</p>
@@ -238,7 +238,7 @@
<p>As an example, consider the problems that could happen if you
forgot to release the {@link android.media.MediaPlayer} when your activity is stopped, but create a
new one when the activity starts again. As you may know, when the user changes the
-screen orientation (or changes the device configuration in another way),
+screen orientation (or changes the device configuration in another way),
the system handles that by restarting the activity (by default), so you might quickly
consume all of the system resources as the user
rotates the device back and forth between portrait and landscape, because at each
@@ -287,7 +287,7 @@
<pre>
public class MyService extends Service implements MediaPlayer.OnPreparedListener {
- private static final ACTION_PLAY = "com.example.action.PLAY";
+ private static final String ACTION_PLAY = "com.example.action.PLAY";
MediaPlayer mMediaPlayer = null;
public int onStartCommand(Intent intent, int flags, int startId) {
@@ -346,7 +346,7 @@
<p>When designing applications that play media
in the background, the device may go to sleep
while your service is running. Because the Android system tries to conserve
-battery while the device is sleeping, the system tries to shut off any
+battery while the device is sleeping, the system tries to shut off any
of the phone's features that are
not necessary, including the CPU and the WiFi hardware.
However, if your service is playing or streaming music, you want to prevent
@@ -473,7 +473,7 @@
Android 2.2, the platform offers a way for applications to negotiate their
use of the device's audio output. This mechanism is called Audio Focus.</p>
-<p>When your application needs to output audio such as music or a notification,
+<p>When your application needs to output audio such as music or a notification,
you should always request audio focus. Once it has focus, it can use the sound output freely, but it
should
always listen for focus changes. If it is notified that it has lost the audio
@@ -691,7 +691,7 @@
intent. You should then implement this class:</p>
<pre>
-public class MusicIntentReceiver implements android.content.BroadcastReceiver {
+public class MusicIntentReceiver extends android.content.BroadcastReceiver {
@Override
public void onReceive(Context ctx, Intent intent) {
if (intent.getAction().equals(
diff --git a/docs/html/guide/topics/providers/document-provider.jd b/docs/html/guide/topics/providers/document-provider.jd
index 9af8d5a..8ea08bd 100644
--- a/docs/html/guide/topics/providers/document-provider.jd
+++ b/docs/html/guide/topics/providers/document-provider.jd
@@ -3,8 +3,11 @@
<div id="qv-wrapper">
<div id="qv">
-<h2>In this document</h2>
-<ol>
+<h2>In this document
+ <a href="#" onclick="hideNestedItems('#toc44',this);return false;" class="header-toggle">
+ <span class="more">show more</span>
+ <span class="less" style="display:none">show less</span></a></h2>
+<ol id="toc44" class="hide-nested">
<li>
<a href="#overview">Overview</a>
</li>
@@ -38,8 +41,25 @@
<ol>
<li>{@link android.provider.DocumentsProvider}</li>
<li>{@link android.provider.DocumentsContract}</li>
- <li>{@link android.provider.DocumentsContract.Document}</li>
- <li>{@link android.provider.DocumentsContract.Root}</li>
+</ol>
+
+<h2>Videos</h2>
+
+<ol>
+ <li><a href="http://www.youtube.com/watch?v=zxHVeXbK1P4">
+DevBytes: Android 4.4 Storage Access Framework: Provider</a></li>
+ <li><a href="http://www.youtube.com/watch?v=UFj9AEz0DHQ">
+DevBytes: Android 4.4 Storage Access Framework: Client</a></li>
+</ol>
+
+
+<h2>Code Samples</h2>
+
+<ol>
+ <li><a href="{@docRoot}samples/StorageProvider/index.html">
+Storage Provider</a></li>
+ <li><a href="{@docRoot}samples/StorageClient/index.html">
+StorageClient</a></li>
</ol>
<h2>See Also</h2>
@@ -50,18 +70,28 @@
</a>
</li>
</ol>
+
</div>
</div>
-<p>Android 4.4 (API level 19) introduces the Storage Access Framework. The
-Storage Access Framework encapsulates capabilities in the Android platform that
-allow apps to request files from file storage services. The Storage Access
-Framework includes the following:</p>
+
+
+<p>Android 4.4 (API level 19) introduces the Storage Access Framework (SAF). The SAF
+ makes it simple for users to browse and open documents, images, and other files
+across all of their their preferred document storage providers. A standard, easy-to-use UI
+lets users browse files and access recents in a consistent way across apps and providers.</p>
+
+<p>Cloud or local storage services can participate in this ecosystem by implementing a
+{@link android.provider.DocumentsProvider} that encapsulates their services. Client
+apps that need access to a provider's documents can integrate with the SAF with just a few
+lines of code.</p>
+
+<p>The SAF includes the following:</p>
<ul>
<li><strong>Document provider</strong>—A content provider that allows a
-storage service (such as Google Drive) to reveal the files it manages. This is
+storage service (such as Google Drive) to reveal the files it manages. A document provider is
implemented as a subclass of the {@link android.provider.DocumentsProvider} class.
-The document provider schema is based on a traditional file hierarchy,
+The document-provider schema is based on a traditional file hierarchy,
though how your document provider physically stores data is up to you.
The Android platform includes several built-in document providers, such as
Downloads, Images, and Videos.</li>
@@ -75,7 +105,7 @@
document providers that satisfy the client app's search criteria.</li>
</ul>
-<p>Some of the features offered by the Storage Access Framework are as follows:</p>
+<p>Some of the features offered by the SAF are as follows:</p>
<ul>
<li>Lets users browse content from all document providers, not just a single app.</li>
<li>Makes it possible for your app to have long term, persistent access to
@@ -87,7 +117,7 @@
<h2 id ="overview">Overview</h2>
-<p>The Storage Access Framework centers around a content provider that is a
+<p>The SAF centers around a content provider that is a
subclass of the {@link android.provider.DocumentsProvider} class. Within a <em>document provider</em>, data is
structured as a traditional file hierarchy:</p>
<p><img src="{@docRoot}images/providers/storage_datamodel.png" alt="data model" /></p>
@@ -134,7 +164,7 @@
long as it can be accessed through the {@link android.provider.DocumentsProvider} API. For example, you
could use tag-based cloud storage for your data.</p>
-<p>Figure 2 shows an example of how a photo app might use the Storage Access Framework
+<p>Figure 2 shows an example of how a photo app might use the SAF
to access stored data:</p>
<p><img src="{@docRoot}images/providers/storage_dataflow.png" alt="app" /></p>
@@ -143,7 +173,7 @@
<p>Note the following:</p>
<ul>
-<li>In the Storage Access Framework, providers and clients don't interact
+<li>In the SAF, providers and clients don't interact
directly. A client requests permission to interact
with files (that is, to read, edit, create, or delete files).</li>
@@ -430,7 +460,7 @@
<h3 id="edit">Edit a document</h3>
-<p>You can use the Storage Access Framework to edit a text document in place.
+<p>You can use the SAF to edit a text document in place.
This snippet fires
the {@link android.content.Intent#ACTION_OPEN_DOCUMENT} intent and uses the
category {@link android.content.Intent#CATEGORY_OPENABLE} to to display only
@@ -513,8 +543,8 @@
<p>
If you're developing an app that provides storage services for files (such as
-a cloud save service), you can make your files available through the Storage
-Access Framework by writing a custom document provider. This section describes
+a cloud save service), you can make your files available through the
+SAF by writing a custom document provider. This section describes
how to do this.</p>
@@ -540,13 +570,25 @@
You must export your provider so that other apps can see it.</li>
<li>The attribute <code>android:grantUriPermissions</code> set to
-<code>"true"</code>. This allows the system to grant other apps access
+<code>"true"</code>. This setting allows the system to grant other apps access
to content in your provider. For a discussion of how to persist a grant for
a particular document, see <a href="#permissions">Persist permissions</a>.</li>
<li>The {@code MANAGE_DOCUMENTS} permission. By default a provider is available
-to everyone. Adding this permission restricts your provider to the system,
-which is important for security. </li>
+to everyone. Adding this permission restricts your provider to the system.
+This restriction is important for security.</li>
+
+<li>The {@code android:enabled} attribute set to a boolean value defined in a resource
+file. The purpose of this attribute is to disable the provider on devices running Android 4.3 or lower.
+For example, {@code android:enabled="@bool/atLeastKitKat"}. In
+addition to including this attribute in the manifest, you need to do the following:
+<ul>
+<li>In your {@code bool.xml} resources file under {@code res/values/}, add
+this line: <pre><bool name="atLeastKitKat">false</bool></pre></li>
+
+<li>In your {@code bool.xml} resources file under {@code res/values-v19/}, add
+this line: <pre><bool name="atLeastKitKat">true</bool></pre></li>
+</ul></li>
<li>An intent filter that includes the
{@code android.content.action.DOCUMENTS_PROVIDER} action, so that your provider
@@ -566,7 +608,8 @@
android:authorities="com.example.android.storageprovider.documents"
android:grantUriPermissions="true"
android:exported="true"
- android:permission="android.permission.MANAGE_DOCUMENTS">
+ android:permission="android.permission.MANAGE_DOCUMENTS"
+ android:enabled="@bool/atLeastKitKat">
<intent-filter>
<action android:name="android.content.action.DOCUMENTS_PROVIDER" />
</intent-filter>
@@ -575,7 +618,7 @@
</manifest></pre>
-<h4>Supporting devices running Android 4.3 and lower</h4>
+<h4 id="43">Supporting devices running Android 4.3 and lower</h4>
<p>The
{@link android.content.Intent#ACTION_OPEN_DOCUMENT} intent is only available
@@ -583,7 +626,7 @@
If you want your application to support {@link android.content.Intent#ACTION_GET_CONTENT}
to accommodate devices that are running Android 4.3 and lower, you should
disable the {@link android.content.Intent#ACTION_GET_CONTENT} intent filter in
-your manifest if a device is running Android 4.4 or higher. A
+your manifest for devices running Android 4.4 or higher. A
document provider and {@link android.content.Intent#ACTION_GET_CONTENT} should be considered
mutually exclusive. If you support both of them simultaneously, your app will
appear twice in the system picker UI, offering two different ways of accessing
@@ -630,7 +673,7 @@
<a href="{@docRoot}guide/topics/providers/content-provider-creating.html#ContractClass">
Content Providers</a> developers guide. A contract class is a {@code public final} class
that contains constant definitions for the URIs, column names, MIME types, and
-other metadata that pertain to the provider. The Storage Access Framework
+other metadata that pertain to the provider. The SAF
provides these contract classes for you, so you don't need to write your
own:</p>
@@ -872,4 +915,4 @@
getContentResolver().notifyChange(DocumentsContract
.buildRootsUri(AUTHORITY), null);
}
-</pre>
+</pre>
\ No newline at end of file
diff --git a/docs/html/guide/topics/security/permissions.jd b/docs/html/guide/topics/security/permissions.jd
index 4ad9b7c..6f919da 100644
--- a/docs/html/guide/topics/security/permissions.jd
+++ b/docs/html/guide/topics/security/permissions.jd
@@ -1,4 +1,4 @@
-page.title=Permissions
+page.title=System Permissions
@jd:body
<div id="qv-wrapper">
@@ -20,10 +20,6 @@
</ol>
</div>
</div>
-<p>This document describes how application developers can use the
-security features provided by Android. A more general <a
-href="http://source.android.com/tech/security/index.html"> Android Security
-Overview</a> is provided in the Android Open Source Project.</p>
<p>Android is a privilege-separated operating system, in which each
application runs with a distinct system identity (Linux user ID and group
@@ -33,7 +29,13 @@
<p>Additional finer-grained security features are provided through a
"permission" mechanism that enforces restrictions on the specific operations
that a particular process can perform, and per-URI permissions for granting
-ad-hoc access to specific pieces of data.</p>
+ad hoc access to specific pieces of data.</p>
+
+<p>This document describes how application developers can use the
+security features provided by Android. A more general <a
+href="http://source.android.com/tech/security/index.html"> Android Security
+Overview</a> is provided in the Android Open Source Project.</p>
+
<a name="arch"></a>
<h2>Security Architecture</h2>
@@ -42,10 +44,10 @@
application, by default, has permission to perform any operations that would
adversely impact other applications, the operating system, or the user. This
includes reading or writing the user's private data (such as contacts or
-e-mails), reading or writing another application's files, performing
-network access, keeping the device awake, etc.</p>
+emails), reading or writing another application's files, performing
+network access, keeping the device awake, and so on.</p>
-<p>Because Android sandboxes applications from each other, applications
+<p>Because each Android application operates in a process sandbox, applications
must explicitly share resources and data. They do this by declaring the
<em>permissions</em> they need for additional capabilities not provided by
the basic sandbox. Applications statically declare the permissions they
@@ -65,10 +67,10 @@
<a name="signing"></a>
<h2>Application Signing</h2>
-<p>All Android applications (.apk files) must be signed with a certificate
+<p>All APKs ({@code .apk} files) must be signed with a certificate
whose private key is held by their developer. This certificate identifies
the author of the application. The certificate does <em>not</em> need to be
-signed by a certificate authority: it is perfectly allowable, and typical,
+signed by a certificate authority; it is perfectly allowable, and typical,
for Android applications to use self-signed certificates. The purpose of
certificates in Android is to distinguish application authors. This allows
the system to grant or deny applications access to <a
@@ -86,7 +88,7 @@
what matters is that each package has a distinct UID on a given device.</p>
<p>Because security enforcement happens at the
-process level, the code of any two packages can not normally
+process level, the code of any two packages cannot normally
run in the same process, since they need to run as different Linux users.
You can use the {@link android.R.attr#sharedUserId} attribute in the
<code>AndroidManifest.xml</code>'s
@@ -114,7 +116,7 @@
<h2>Using Permissions</h2>
<p>A basic Android application has no permissions associated with it by default,
-meaning it can not do anything that would adversely impact the user experience
+meaning it cannot do anything that would adversely impact the user experience
or any data on the device. To make use of protected features of the device,
you must include in your <code>AndroidManifest.xml</code> one or more
<code>{@link android.R.styleable#AndroidManifestUsesPermission <uses-permission>}</code>
@@ -133,9 +135,9 @@
granted to it by the package installer, based on checks against the
signatures of the applications declaring those permissions and/or interaction
with the user. <em>No</em> checks with the user
-are done while an application is running: it either was granted a particular
+are done while an application is running; the app is either granted a particular
permission when installed, and can use that feature as desired, or the
-permission was not granted and any attempt to use the feature will fail
+permission is not granted and any attempt to use the feature fails
without prompting the user.</p>
<p>Often times a permission failure will result in a {@link
@@ -146,6 +148,12 @@
will not receive an exception if there are permission failures. In almost all
cases, however, a permission failure will be printed to the system log.</p>
+<p>However, in a normal user situation (such as when the app is installed
+from Google Play Store), an app cannot be installed if the user does not grant the app
+each of the requested permissions. So you generally don't need to worry about runtime failures
+caused by missing permissions because the mere fact that the app is installed at all
+means that your app has been granted its desired permissions.</p>
+
<p>The permissions provided by the Android system can be found at {@link
android.Manifest.permission}. Any application may also define and enforce its
own permissions, so this is not a comprehensive list of all possible
@@ -433,3 +441,37 @@
{@link android.content.Context#checkUriPermission Context.checkUriPermission()}
methods.</p>
+
+
+
+
+<div class="next-docs">
+<div class="col-6">
+ <h2 class="norule">Continue reading about:</h2>
+ <dl>
+ <dt><a href="{@docRoot}guide/topics/manifest/uses-feature-element.html#permissions"
+ >Permissions that Imply Feature Requirements</a></dt>
+ <dd>Information about how requesting some permissions will implicitly restrict your app
+ to devices that include the corresponding hardware or software feature.</dd>
+ <dt><a href="{@docRoot}guide/topics/manifest/uses-permission-element.html">{@code
+ <uses-permission>}</a></dt>
+ <dd>API reference for the manifest tag that declare's your app's required system permissions.
+ </dd>
+ <dt>{@link android.Manifest.permission}</dt>
+ <dd>API reference for all system permissions.</dd>
+ </dl>
+</div>
+<div class="col-6">
+ <h2 class="norule">You might also be interested in:</h2>
+ <dl>
+ <dt><a href="{@docRoot}guide/practices/compatibility.html"
+ >Device Compatibility</a></dt>
+ <dd>Information about Android works on different types of devices and an introduction
+ to how you can optimize your app for each device or restrict your app's availability
+ to different devices.</dd>
+ <dt><a href="{@docRoot}http://source.android.com/devices/tech/security/index.html"
+ class="external-link">Android Security Overview</a></dt>
+ <dd>A detailed discussion about the Android platform's security model.</dd>
+ </dl>
+</div>
+</div>
diff --git a/docs/html/guide/topics/ui/dialogs.jd b/docs/html/guide/topics/ui/dialogs.jd
index d934c4b..043879c 100644
--- a/docs/html/guide/topics/ui/dialogs.jd
+++ b/docs/html/guide/topics/ui/dialogs.jd
@@ -281,7 +281,7 @@
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
- builder.setTitle(R.string.pick_color);
+ builder.setTitle(R.string.pick_color)
.setItems(R.array.colors_array, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// The 'which' argument contains the index position
diff --git a/docs/html/images/community/aco1small.png b/docs/html/images/community/aco1small.png
new file mode 100644
index 0000000..ce4cb66
--- /dev/null
+++ b/docs/html/images/community/aco1small.png
Binary files differ
diff --git a/docs/html/images/community/hackathon-gdgaug.jpg b/docs/html/images/community/hackathon-gdgaug.jpg
new file mode 100644
index 0000000..8c939c5
--- /dev/null
+++ b/docs/html/images/community/hackathon-gdgaug.jpg
Binary files differ
diff --git a/docs/html/images/community/kk-hero.jpg b/docs/html/images/community/kk-hero.jpg
new file mode 100644
index 0000000..713c861
--- /dev/null
+++ b/docs/html/images/community/kk-hero.jpg
Binary files differ
diff --git a/docs/html/images/community/kk-hero2.jpg b/docs/html/images/community/kk-hero2.jpg
new file mode 100644
index 0000000..c404116
--- /dev/null
+++ b/docs/html/images/community/kk-hero2.jpg
Binary files differ
diff --git a/docs/html/images/components/intent-filters@2x.png b/docs/html/images/components/intent-filters@2x.png
new file mode 100644
index 0000000..5b1e38b
--- /dev/null
+++ b/docs/html/images/components/intent-filters@2x.png
Binary files differ
diff --git a/docs/html/images/google/gps-drive.png b/docs/html/images/google/gps-drive.png
new file mode 100644
index 0000000..d8e2fb5
--- /dev/null
+++ b/docs/html/images/google/gps-drive.png
Binary files differ
diff --git a/docs/html/images/kk-devices.png b/docs/html/images/kk-devices.png
new file mode 100644
index 0000000..3c7bbf1
--- /dev/null
+++ b/docs/html/images/kk-devices.png
Binary files differ
diff --git a/docs/html/images/systrace/systrace-button.png b/docs/html/images/systrace/systrace-button.png
new file mode 100644
index 0000000..7d93ad0
--- /dev/null
+++ b/docs/html/images/systrace/systrace-button.png
Binary files differ
diff --git a/docs/html/images/training/backward-compatible-inputmanager.png b/docs/html/images/training/backward-compatible-inputmanager.png
new file mode 100644
index 0000000..fdac78a
--- /dev/null
+++ b/docs/html/images/training/backward-compatible-inputmanager.png
Binary files differ
diff --git a/docs/html/images/training/game-controller-profiles.png b/docs/html/images/training/game-controller-profiles.png
new file mode 100644
index 0000000..f8c1cbb
--- /dev/null
+++ b/docs/html/images/training/game-controller-profiles.png
Binary files differ
diff --git a/docs/html/index.jd b/docs/html/index.jd
index 3e59068..191e0fb 100644
--- a/docs/html/index.jd
+++ b/docs/html/index.jd
@@ -1,6 +1,7 @@
fullpage=true
no_footer_links=true
carousel=true
+excludeFromSuggestions=true
page.metaDescription=The official site for Android developers. Provides the Android SDK and documentation for app developers and designers.
page.customHeadTag=<meta name="google-site-verification" content="sa-bIAI6GKvct3f61-WpRguHq-aNjtF7xJjMTSi79as" />
diff --git a/docs/html/legal.jd b/docs/html/legal.jd
index 1698af0f..aaa3c39 100644
--- a/docs/html/legal.jd
+++ b/docs/html/legal.jd
@@ -88,16 +88,12 @@
href="http://www.android.com/us/developer-content-policy.html#showlanguages">Developer Program
Policies</a></p></dd>
- <dt>Google Maps API</dt>
- <dd>The Android Maps APIs are a collection of services (including, but not limited to, the
-MapView and MapActivity classes) that allow you to include
-maps, geocoding, geolocation, and other content from Google and its content providers in your
-Android
-apps. If you want to develop an Android app that displays Google Maps data, you must agree
-to the terms of service, register, and get an API Key. Registration is free.
+ <dt>Google Maps Android API</dt>
+ <dd>The Google Maps Android API is a collection of services that allow you
+ to include maps, geocoding, geolocation, and other content from Google and its content providers in your Android apps. If you want to develop an Android app that makes use of this API you must agree to the terms of service and obtain an API Key.
<p><a
-href="https://developers.google.com/maps/documentation/android/maps-api-signup"
->Google Maps Android API Key Signup</a>, <a href="http://m.google.com/legalnotices">Mobile Legal
+href="https://developers.google.com/maps/documentation/android/start"
+>Google Maps Android API Getting Started</a>, <a href="http://m.google.com/legalnotices">Mobile Legal
Notices</a></p>
</dd>
diff --git a/docs/html/license.jd b/docs/html/license.jd
index 20e68fa..b98c912 100644
--- a/docs/html/license.jd
+++ b/docs/html/license.jd
@@ -1,5 +1,6 @@
page.title=Content License
fullpage=1
+excludeFromSuggestions=true
@jd:body
<div class="wrap" style="width:940px;">
diff --git a/docs/html/offline.jd b/docs/html/offline.jd
index 73da779..6d4483f 100644
--- a/docs/html/offline.jd
+++ b/docs/html/offline.jd
@@ -1,5 +1,6 @@
home=true
page.title=Welcome
+excludeFromSuggestions=true
@jd:body
<style type="text/css">
diff --git a/docs/html/reference/com/google/android/gms/R.attr.html b/docs/html/reference/com/google/android/gms/R.attr.html
index 1e4794f..3277800 100644
--- a/docs/html/reference/com/google/android/gms/R.attr.html
+++ b/docs/html/reference/com/google/android/gms/R.attr.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
@@ -808,12 +821,23 @@
static
int</nobr></td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.attr.html#adSizes">adSizes</a></td>
+ <td class="jd-descrcol" width="100%">A comma-separated list of the supported ad sizes.</td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ public
+ static
+
+ int</nobr></td>
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.attr.html#adUnitId">adUnitId</a></td>
<td class="jd-descrcol" width="100%">The ad unit ID.</td>
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
public
static
@@ -824,7 +848,7 @@
</tr>
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
public
static
@@ -835,7 +859,7 @@
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
public
static
@@ -846,7 +870,7 @@
</tr>
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
public
static
@@ -857,7 +881,7 @@
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
public
static
@@ -868,7 +892,7 @@
</tr>
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
public
static
@@ -879,7 +903,7 @@
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
public
static
@@ -891,7 +915,7 @@
</tr>
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
public
static
@@ -902,7 +926,7 @@
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
public
static
@@ -913,7 +937,7 @@
</tr>
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
public
static
@@ -924,7 +948,7 @@
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
public
static
@@ -935,7 +959,7 @@
</tr>
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
public
static
@@ -946,7 +970,7 @@
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
public
static
@@ -957,7 +981,7 @@
</tr>
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
public
static
@@ -968,7 +992,7 @@
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
public
static
@@ -979,7 +1003,7 @@
</tr>
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
public
static
@@ -990,7 +1014,7 @@
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
public
static
@@ -1001,7 +1025,7 @@
</tr>
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
public
static
@@ -1012,7 +1036,7 @@
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
public
static
@@ -1023,7 +1047,7 @@
</tr>
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
public
static
@@ -1034,7 +1058,7 @@
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
public
static
@@ -1045,7 +1069,7 @@
</tr>
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
public
static
@@ -1056,7 +1080,7 @@
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
public
static
@@ -1067,7 +1091,7 @@
</tr>
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
public
static
@@ -1078,7 +1102,7 @@
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
public
static
@@ -1089,7 +1113,7 @@
</tr>
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
public
static
@@ -1100,7 +1124,7 @@
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
public
static
@@ -1111,7 +1135,7 @@
</tr>
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
public
static
@@ -1122,7 +1146,7 @@
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
public
static
@@ -1133,7 +1157,7 @@
</tr>
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
public
static
@@ -1144,7 +1168,7 @@
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
public
static
@@ -1155,7 +1179,7 @@
</tr>
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
public
static
@@ -1166,7 +1190,7 @@
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
public
static
@@ -1177,7 +1201,7 @@
</tr>
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
public
static
@@ -1508,6 +1532,44 @@
+<A NAME="adSizes"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+ static
+
+ int
+ </span>
+ adSizes
+ </h4>
+ <div class="api-level">
+
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>A comma-separated list of the supported ad sizes. The sizes must be one of
+ BANNER, FULL_BANNER, LEADERBOARD, MEDIUM_RECTANGLE, SMART_BANNER,
+ WIDE_SKYSCRAPER, or <width>x<height>.
+
+ <p>Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character.
+<p>This may also be a reference to a resource (in the form
+"<code>@[<i>package</i>:]<i>type</i>:<i>name</i></code>") or
+theme attribute (in the form
+"<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>")
+containing a value of this type.
+</p></div>
+
+
+ </div>
+</div>
+
+
+
<A NAME="adUnitId"></A>
<div class="jd-details api apilevel-">
@@ -2367,6 +2429,8 @@
<tr><th>Constant</th><th>Value</th><th>Description</th></tr>
<tr><td><code>match_global_nicknames</code></td><td>1</td><td> Enable global nickname matching on this section </td></tr>
<tr><td><code>demote_common_words</code></td><td>2</td><td> Demote common words by a factor in this section </td></tr>
+<tr><td><code>demote_rfc822_hostnames</code></td><td>3</td><td> Demote RFC822 hostnames by a factor in this section. Only applicable to RFC822
+ sections </td></tr>
</table>
</p></div>
diff --git a/docs/html/reference/com/google/android/gms/R.color.html b/docs/html/reference/com/google/android/gms/R.color.html
index e18f487..9103237 100644
--- a/docs/html/reference/com/google/android/gms/R.color.html
+++ b/docs/html/reference/com/google/android/gms/R.color.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/R.drawable.html b/docs/html/reference/com/google/android/gms/R.drawable.html
index 3946968..a250092 100644
--- a/docs/html/reference/com/google/android/gms/R.drawable.html
+++ b/docs/html/reference/com/google/android/gms/R.drawable.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/R.html b/docs/html/reference/com/google/android/gms/R.html
index e731b8e..a8baf5e 100644
--- a/docs/html/reference/com/google/android/gms/R.html
+++ b/docs/html/reference/com/google/android/gms/R.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/R.id.html b/docs/html/reference/com/google/android/gms/R.id.html
index dc59f21..11f8d99 100644
--- a/docs/html/reference/com/google/android/gms/R.id.html
+++ b/docs/html/reference/com/google/android/gms/R.id.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
@@ -808,7 +821,7 @@
static
int</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.id.html#html">html</a></td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.id.html#demote_rfc822_hostnames">demote_rfc822_hostnames</a></td>
<td class="jd-descrcol" width="100%"></td>
</tr>
@@ -819,12 +832,23 @@
static
int</nobr></td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.id.html#html">html</a></td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ public
+ static
+
+ int</nobr></td>
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.id.html#hybrid">hybrid</a></td>
<td class="jd-descrcol" width="100%"></td>
</tr>
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
public
static
@@ -835,7 +859,7 @@
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
public
static
@@ -846,7 +870,7 @@
</tr>
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
public
static
@@ -857,7 +881,7 @@
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
public
static
@@ -868,7 +892,7 @@
</tr>
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
public
static
@@ -879,7 +903,7 @@
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
public
static
@@ -890,7 +914,7 @@
</tr>
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
public
static
@@ -901,7 +925,7 @@
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
public
static
@@ -912,7 +936,7 @@
</tr>
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
public
static
@@ -923,7 +947,7 @@
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
public
static
@@ -934,7 +958,7 @@
</tr>
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
public
static
@@ -945,7 +969,7 @@
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
public
static
@@ -956,7 +980,7 @@
</tr>
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
public
static
@@ -967,7 +991,7 @@
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
public
static
@@ -978,7 +1002,7 @@
</tr>
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
public
static
@@ -987,13 +1011,13 @@
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.id.html#text1">text1</a></td>
<td class="jd-descrcol" width="100%"></td>
</tr>
-
-
- <tr class="alt-color api apilevel-" >
+
+
+ <tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
public
static
-
+
int</nobr></td>
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.id.html#text2">text2</a></td>
<td class="jd-descrcol" width="100%"></td>
@@ -1310,6 +1334,34 @@
+<A NAME="demote_rfc822_hostnames"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+ static
+
+ int
+ </span>
+ demote_rfc822_hostnames
+ </h4>
+ <div class="api-level">
+
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+
+ </div>
+</div>
+
+
+
<A NAME="html"></A>
<div class="jd-details api apilevel-">
diff --git a/docs/html/reference/com/google/android/gms/R.integer.html b/docs/html/reference/com/google/android/gms/R.integer.html
index 1c72378..e7b4cb8 100644
--- a/docs/html/reference/com/google/android/gms/R.integer.html
+++ b/docs/html/reference/com/google/android/gms/R.integer.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/R.string.html b/docs/html/reference/com/google/android/gms/R.string.html
index cf92f5c..00635ba 100644
--- a/docs/html/reference/com/google/android/gms/R.string.html
+++ b/docs/html/reference/com/google/android/gms/R.string.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/R.styleable.html b/docs/html/reference/com/google/android/gms/R.styleable.html
index 7f37faf..8aad05a 100644
--- a/docs/html/reference/com/google/android/gms/R.styleable.html
+++ b/docs/html/reference/com/google/android/gms/R.styleable.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
@@ -798,12 +811,19 @@
<tr class=" api apilevel-" >
<td class="jd-typecol">int</td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.styleable.html#AdsAttrs_adSizes">AdsAttrs_adSizes</a></td>
+ <td class="jd-descrcol" width="100%"><p>A comma-separated list of the supported ad sizes.</td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.styleable.html#AdsAttrs_adUnitId">AdsAttrs_adUnitId</a></td>
<td class="jd-descrcol" width="100%"><p>The ad unit ID.</td>
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.styleable.html#Corpus_contentProviderUri">Corpus_contentProviderUri</a></td>
<td class="jd-descrcol" width="100%"><p>The URI of the content provider that the index should crawl to get the data for this
@@ -811,91 +831,91 @@
</tr>
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.styleable.html#Corpus_id">Corpus_id</a></td>
<td class="jd-descrcol" width="100%"><p>The ID of the corpus.</td>
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.styleable.html#Corpus_trimmable">Corpus_trimmable</a></td>
<td class="jd-descrcol" width="100%"><p>Indicates if documents from this corpus can be trimmed when the index reaches its quota.</td>
</tr>
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.styleable.html#Corpus_version">Corpus_version</a></td>
<td class="jd-descrcol" width="100%"><p>The version of the corpus.</td>
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.styleable.html#GlobalSearchCorpus_enabled">GlobalSearchCorpus_enabled</a></td>
<td class="jd-descrcol" width="100%"><p>Whether or not global search is enabled for this corpus.</td>
</tr>
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.styleable.html#GlobalSearchSection_content">GlobalSearchSection_content</a></td>
<td class="jd-descrcol" width="100%"><p>The content of this global search section.</td>
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.styleable.html#GlobalSearchSection_sectionId">GlobalSearchSection_sectionId</a></td>
<td class="jd-descrcol" width="100%"><p>The global search section ID for this mapping.</td>
</tr>
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.styleable.html#GlobalSearch_defaultIntentAction">GlobalSearch_defaultIntentAction</a></td>
<td class="jd-descrcol" width="100%"><p>The default value for the global search section <code>default_intent_action</code>.</td>
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.styleable.html#GlobalSearch_defaultIntentActivity">GlobalSearch_defaultIntentActivity</a></td>
<td class="jd-descrcol" width="100%"><p>The default value for the global search section <code>default_intent_aactivity</code>.</td>
</tr>
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.styleable.html#GlobalSearch_defaultIntentData">GlobalSearch_defaultIntentData</a></td>
<td class="jd-descrcol" width="100%"><p>The default value for the global search section <code>default_intent_data</code>.</td>
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.styleable.html#GlobalSearch_enabled">GlobalSearch_enabled</a></td>
<td class="jd-descrcol" width="100%"><p>Whether or not global search is enabled for this app.</td>
</tr>
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.styleable.html#GlobalSearch_label">GlobalSearch_label</a></td>
<td class="jd-descrcol" width="100%"><p>A localized string to identify this apps data within the global search app.</td>
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.styleable.html#GlobalSearch_settingsDescription">GlobalSearch_settingsDescription</a></td>
<td class="jd-descrcol" width="100%"><p>A localized string to describe this apps data within the global search apps settings.</td>
</tr>
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.styleable.html#MapAttrs_cameraBearing">MapAttrs_cameraBearing</a></td>
<td class="jd-descrcol" width="100%"><p>This symbol is the offset where the <code><a href="/reference/com/google/android/gms/R.attr.html#cameraBearing">cameraBearing</a></code>
@@ -903,7 +923,7 @@
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.styleable.html#MapAttrs_cameraTargetLat">MapAttrs_cameraTargetLat</a></td>
<td class="jd-descrcol" width="100%"><p>This symbol is the offset where the <code><a href="/reference/com/google/android/gms/R.attr.html#cameraTargetLat">cameraTargetLat</a></code>
@@ -911,7 +931,7 @@
</tr>
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.styleable.html#MapAttrs_cameraTargetLng">MapAttrs_cameraTargetLng</a></td>
<td class="jd-descrcol" width="100%"><p>This symbol is the offset where the <code><a href="/reference/com/google/android/gms/R.attr.html#cameraTargetLng">cameraTargetLng</a></code>
@@ -919,7 +939,7 @@
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.styleable.html#MapAttrs_cameraTilt">MapAttrs_cameraTilt</a></td>
<td class="jd-descrcol" width="100%"><p>This symbol is the offset where the <code><a href="/reference/com/google/android/gms/R.attr.html#cameraTilt">cameraTilt</a></code>
@@ -927,7 +947,7 @@
</tr>
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.styleable.html#MapAttrs_cameraZoom">MapAttrs_cameraZoom</a></td>
<td class="jd-descrcol" width="100%"><p>This symbol is the offset where the <code><a href="/reference/com/google/android/gms/R.attr.html#cameraZoom">cameraZoom</a></code>
@@ -935,7 +955,7 @@
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.styleable.html#MapAttrs_mapType">MapAttrs_mapType</a></td>
<td class="jd-descrcol" width="100%"><p>This symbol is the offset where the <code><a href="/reference/com/google/android/gms/R.attr.html#mapType">mapType</a></code>
@@ -943,7 +963,7 @@
</tr>
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.styleable.html#MapAttrs_uiCompass">MapAttrs_uiCompass</a></td>
<td class="jd-descrcol" width="100%"><p>This symbol is the offset where the <code><a href="/reference/com/google/android/gms/R.attr.html#uiCompass">uiCompass</a></code>
@@ -951,7 +971,7 @@
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.styleable.html#MapAttrs_uiRotateGestures">MapAttrs_uiRotateGestures</a></td>
<td class="jd-descrcol" width="100%"><p>This symbol is the offset where the <code><a href="/reference/com/google/android/gms/R.attr.html#uiRotateGestures">uiRotateGestures</a></code>
@@ -959,7 +979,7 @@
</tr>
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.styleable.html#MapAttrs_uiScrollGestures">MapAttrs_uiScrollGestures</a></td>
<td class="jd-descrcol" width="100%"><p>This symbol is the offset where the <code><a href="/reference/com/google/android/gms/R.attr.html#uiScrollGestures">uiScrollGestures</a></code>
@@ -967,7 +987,7 @@
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.styleable.html#MapAttrs_uiTiltGestures">MapAttrs_uiTiltGestures</a></td>
<td class="jd-descrcol" width="100%"><p>This symbol is the offset where the <code><a href="/reference/com/google/android/gms/R.attr.html#uiTiltGestures">uiTiltGestures</a></code>
@@ -975,7 +995,7 @@
</tr>
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.styleable.html#MapAttrs_uiZoomControls">MapAttrs_uiZoomControls</a></td>
<td class="jd-descrcol" width="100%"><p>This symbol is the offset where the <code><a href="/reference/com/google/android/gms/R.attr.html#uiZoomControls">uiZoomControls</a></code>
@@ -983,7 +1003,7 @@
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.styleable.html#MapAttrs_uiZoomGestures">MapAttrs_uiZoomGestures</a></td>
<td class="jd-descrcol" width="100%"><p>This symbol is the offset where the <code><a href="/reference/com/google/android/gms/R.attr.html#uiZoomGestures">uiZoomGestures</a></code>
@@ -991,7 +1011,7 @@
</tr>
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.styleable.html#MapAttrs_useViewLifecycle">MapAttrs_useViewLifecycle</a></td>
<td class="jd-descrcol" width="100%"><p>This symbol is the offset where the <code><a href="/reference/com/google/android/gms/R.attr.html#useViewLifecycle">useViewLifecycle</a></code>
@@ -999,7 +1019,7 @@
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.styleable.html#MapAttrs_zOrderOnTop">MapAttrs_zOrderOnTop</a></td>
<td class="jd-descrcol" width="100%"><p>This symbol is the offset where the <code><a href="/reference/com/google/android/gms/R.attr.html#zOrderOnTop">zOrderOnTop</a></code>
@@ -1007,63 +1027,63 @@
</tr>
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.styleable.html#SectionFeature_type">SectionFeature_type</a></td>
<td class="jd-descrcol" width="100%"><p>The type of this section.</td>
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.styleable.html#Section_format">Section_format</a></td>
<td class="jd-descrcol" width="100%"><p>The format of the section.</td>
</tr>
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.styleable.html#Section_id">Section_id</a></td>
<td class="jd-descrcol" width="100%"><p>The ID of the section.</td>
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.styleable.html#Section_indexPrefixes">Section_indexPrefixes</a></td>
<td class="jd-descrcol" width="100%"><p>Indicates if this section should support prefix matching.</td>
</tr>
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.styleable.html#Section_noIndex">Section_noIndex</a></td>
<td class="jd-descrcol" width="100%"><p>Indicates if this section should not be indexed.</td>
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.styleable.html#Section_subsectionSeparator">Section_subsectionSeparator</a></td>
<td class="jd-descrcol" width="100%"><p>Subsection separator.</td>
</tr>
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.styleable.html#Section_weight">Section_weight</a></td>
<td class="jd-descrcol" width="100%"><p>The weight of the section.</td>
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.styleable.html#Set_name">Set_name</a></td>
<td class="jd-descrcol" width="100%"><p>The name of this parameter.</td>
</tr>
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/R.styleable.html#Set_value">Set_value</a></td>
<td class="jd-descrcol" width="100%"><p>The value of this parameter.</td>
@@ -1526,6 +1546,56 @@
+<A NAME="AdsAttrs_adSizes"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+ static
+ final
+ int
+ </span>
+ AdsAttrs_adSizes
+ </h4>
+ <div class="api-level">
+
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p><p>A comma-separated list of the supported ad sizes. The sizes must be one of
+ BANNER, FULL_BANNER, LEADERBOARD, MEDIUM_RECTANGLE, SMART_BANNER,
+ WIDE_SKYSCRAPER, or <width>x<height>.
+
+
+
+ <p>Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character.
+<p>This may also be a reference to a resource (in the form
+"<code>@[<i>package</i>:]<i>type</i>:<i>name</i></code>") or
+theme attribute (in the form
+"<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>")
+containing a value of this type.
+ <p>This is a private symbol.</p></div>
+
+
+ <div class="jd-tagdata">
+ <span class="jd-tagtitle">Constant Value: </span>
+ <span>
+
+ 1
+ (0x00000001)
+
+ </span>
+ </div>
+
+ </div>
+</div>
+
+
+
<A NAME="AdsAttrs_adUnitId"></A>
<div class="jd-details api apilevel-">
@@ -1562,8 +1632,8 @@
<span class="jd-tagtitle">Constant Value: </span>
<span>
- 1
- (0x00000001)
+ 2
+ (0x00000002)
</span>
</div>
@@ -2901,6 +2971,8 @@
<tr><th>Constant</th><th>Value</th><th>Description</th></tr>
<tr><td><code>match_global_nicknames</code></td><td>1</td><td> Enable global nickname matching on this section </td></tr>
<tr><td><code>demote_common_words</code></td><td>2</td><td> Demote common words by a factor in this section </td></tr>
+<tr><td><code>demote_rfc822_hostnames</code></td><td>3</td><td> Demote RFC822 hostnames by a factor in this section. Only applicable to RFC822
+ sections </td></tr>
</table>
<p>This is a private symbol.</p></div>
@@ -3340,11 +3412,13 @@
<tr><th>Attribute</th><th>Description</th></tr>
<tr><td><code><code><a href="/reference/com/google/android/gms/R.styleable.html#AdsAttrs_adSize">com.google.android.gms:adSize</a></code></code></td><td>
The size of the ad.</td></tr>
+ <tr><td><code><code><a href="/reference/com/google/android/gms/R.styleable.html#AdsAttrs_adSizes">com.google.android.gms:adSizes</a></code></code></td><td>
+ A comma-separated list of the supported ad sizes.</td></tr>
<tr><td><code><code><a href="/reference/com/google/android/gms/R.styleable.html#AdsAttrs_adUnitId">com.google.android.gms:adUnitId</a></code></code></td><td> The ad unit ID.</td></tr>
</table></p></div>
<div class="jd-tagdata">
<h5 class="jd-tagtitle">See Also</h5>
- <ul class="nolist"><li><code><a href="/reference/com/google/android/gms/R.styleable.html#AdsAttrs_adSize">AdsAttrs_adSize</a></code></li><li><code><a href="/reference/com/google/android/gms/R.styleable.html#AdsAttrs_adUnitId">AdsAttrs_adUnitId</a></code></li>
+ <ul class="nolist"><li><code><a href="/reference/com/google/android/gms/R.styleable.html#AdsAttrs_adSize">AdsAttrs_adSize</a></code></li><li><code><a href="/reference/com/google/android/gms/R.styleable.html#AdsAttrs_adSizes">AdsAttrs_adSizes</a></code></li><li><code><a href="/reference/com/google/android/gms/R.styleable.html#AdsAttrs_adUnitId">AdsAttrs_adUnitId</a></code></li>
</ul>
</div>
diff --git a/docs/html/reference/com/google/android/gms/ads/AdListener.html b/docs/html/reference/com/google/android/gms/ads/AdListener.html
index 5665c54..dd082ca 100644
--- a/docs/html/reference/com/google/android/gms/ads/AdListener.html
+++ b/docs/html/reference/com/google/android/gms/ads/AdListener.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
@@ -744,7 +757,7 @@
<h2>Class Overview</h2>
-<p itemprop="articleBody">An interface for receiving notifications during the lifecycle of an ad.
+<p itemprop="articleBody">A listener for receiving notifications during the lifecycle of an ad.
</p>
diff --git a/docs/html/reference/com/google/android/gms/ads/AdRequest.Builder.html b/docs/html/reference/com/google/android/gms/ads/AdRequest.Builder.html
index 2a3d395..0e367ac 100644
--- a/docs/html/reference/com/google/android/gms/ads/AdRequest.Builder.html
+++ b/docs/html/reference/com/google/android/gms/ads/AdRequest.Builder.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
@@ -914,7 +927,7 @@
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad"><a href="/reference/com/google/android/gms/ads/AdRequest.Builder.html#setBirthday(java.util.Date)">setBirthday</a></span>(Date birthday)</nobr>
- <div class="jd-descrdiv">Set the user's birthday for targeting purposes.</div>
+ <div class="jd-descrdiv">Sets the user's birthday for targeting purposes.</div>
</td></tr>
@@ -932,7 +945,7 @@
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad"><a href="/reference/com/google/android/gms/ads/AdRequest.Builder.html#setGender(int)">setGender</a></span>(int gender)</nobr>
- <div class="jd-descrdiv">Set the user's gender for targeting purposes.</div>
+ <div class="jd-descrdiv">Sets the user's gender for targeting purposes.</div>
</td></tr>
@@ -948,6 +961,24 @@
<a href="/reference/com/google/android/gms/ads/AdRequest.Builder.html">AdRequest.Builder</a></nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/ads/AdRequest.Builder.html#setLocation(android.location.Location)">setLocation</a></span>(Location location)</nobr>
+
+ <div class="jd-descrdiv">Sets the user's location for targeting purposes.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ <a href="/reference/com/google/android/gms/ads/AdRequest.Builder.html">AdRequest.Builder</a></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
<span class="sympad"><a href="/reference/com/google/android/gms/ads/AdRequest.Builder.html#tagForChildDirectedTreatment(boolean)">tagForChildDirectedTreatment</a></span>(boolean tagForChildDirectedTreatment)</nobr>
<div class="jd-descrdiv">This method allows you to specify whether you would like your app to be treated as
@@ -1399,7 +1430,7 @@
</div>
<div class="jd-details-descr">
- <div class="jd-tagdata jd-tagdescr"><p>Set the user's birthday for targeting purposes.
+ <div class="jd-tagdata jd-tagdescr"><p>Sets the user's birthday for targeting purposes.
</p></div>
</div>
@@ -1429,7 +1460,7 @@
</div>
<div class="jd-details-descr">
- <div class="jd-tagdata jd-tagdescr"><p>Set the user's gender for targeting purposes. This should be
+ <div class="jd-tagdata jd-tagdescr"><p>Sets the user's gender for targeting purposes. This should be
<code><a href="/reference/com/google/android/gms/ads/AdRequest.html#GENDER_MALE">GENDER_MALE</a></code>, <code><a href="/reference/com/google/android/gms/ads/AdRequest.html#GENDER_FEMALE">GENDER_FEMALE</a></code>, or <code><a href="/reference/com/google/android/gms/ads/AdRequest.html#GENDER_UNKNOWN">GENDER_UNKNOWN</a></code>.
</p></div>
@@ -1437,6 +1468,36 @@
</div>
+<A NAME="setLocation(android.location.Location)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ <a href="/reference/com/google/android/gms/ads/AdRequest.Builder.html">AdRequest.Builder</a>
+ </span>
+ <span class="sympad">setLocation</span>
+ <span class="normal">(Location location)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Sets the user's location for targeting purposes.
+</p></div>
+
+ </div>
+</div>
+
+
<A NAME="tagForChildDirectedTreatment(boolean)"></A>
<div class="jd-details api apilevel-">
diff --git a/docs/html/reference/com/google/android/gms/ads/AdRequest.html b/docs/html/reference/com/google/android/gms/ads/AdRequest.html
index d5d9738..a714e28 100644
--- a/docs/html/reference/com/google/android/gms/ads/AdRequest.html
+++ b/docs/html/reference/com/google/android/gms/ads/AdRequest.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
@@ -752,6 +765,10 @@
<h2>Class Overview</h2>
<p itemprop="articleBody">An <code><a href="/reference/com/google/android/gms/ads/AdRequest.html">AdRequest</a></code> contains targeting information used to fetch an ad. Ad requests are created
using <code><a href="/reference/com/google/android/gms/ads/AdRequest.Builder.html">AdRequest.Builder</a></code>.
+ <p>
+ Publishers using DoubleClick for Publishers or Search Ads for Apps should use
+ <code><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdRequest.html">PublisherAdRequest</a></code> or
+ <code><a href="/reference/com/google/android/gms/ads/search/SearchAdRequest.html">SearchAdRequest</a></code>, respectively.
</p>
@@ -888,7 +905,8 @@
final
String</nobr></td>
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/ads/AdRequest.html#DEVICE_ID_EMULATOR">DEVICE_ID_EMULATOR</a></td>
- <td class="jd-descrcol" width="100%">The <code>deviceId</code> for emulators to be used with <code><a href="/reference/com/google/android/gms/ads/AdRequest.Builder.html#addTestDevice(java.lang.String)">addTestDevice(String)</a></code>.</td>
+ <td class="jd-descrcol" width="100%">The <code>deviceId</code> for emulators to be used with
+ <code><a href="/reference/com/google/android/gms/ads/AdRequest.Builder.html#addTestDevice(java.lang.String)">addTestDevice(String)</a></code>.</td>
</tr>
@@ -971,6 +989,24 @@
+
+ Location</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/ads/AdRequest.html#getLocation()">getLocation</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Returns the user's location targeting information.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
<T extends <a href="/reference/com/google/android/gms/ads/mediation/NetworkExtras.html">NetworkExtras</a>>
T</nobr>
</td>
@@ -983,7 +1019,7 @@
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
@@ -1546,7 +1582,8 @@
</div>
<div class="jd-details-descr">
- <div class="jd-tagdata jd-tagdescr"><p>The <code>deviceId</code> for emulators to be used with <code><a href="/reference/com/google/android/gms/ads/AdRequest.Builder.html#addTestDevice(java.lang.String)">addTestDevice(String)</a></code>.
+ <div class="jd-tagdata jd-tagdescr"><p>The <code>deviceId</code> for emulators to be used with
+ <code><a href="/reference/com/google/android/gms/ads/AdRequest.Builder.html#addTestDevice(java.lang.String)">addTestDevice(String)</a></code>.
</p></div>
@@ -1665,6 +1702,37 @@
</div>
+<A NAME="getLocation()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ Location
+ </span>
+ <span class="sympad">getLocation</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Returns the user's location targeting information. Returns <code>null</code> if the location was
+ not set.
+</p></div>
+
+ </div>
+</div>
+
+
<A NAME="getNetworkExtras(java.lang.Class<T>)"></A>
<div class="jd-details api apilevel-">
diff --git a/docs/html/reference/com/google/android/gms/ads/AdSize.html b/docs/html/reference/com/google/android/gms/ads/AdSize.html
index 6724572..2cb4cca 100644
--- a/docs/html/reference/com/google/android/gms/ads/AdSize.html
+++ b/docs/html/reference/com/google/android/gms/ads/AdSize.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
@@ -951,6 +964,8 @@
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad"><a href="/reference/com/google/android/gms/ads/AdSize.html#equals(java.lang.Object)">equals</a></span>(Object other)</nobr>
+ <div class="jd-descrdiv">Compares this <code><a href="/reference/com/google/android/gms/ads/AdSize.html">AdSize</a></code> with the specified object and indicates if they are equal.</div>
+
</td></tr>
@@ -1596,7 +1611,7 @@
<div class="jd-details-descr">
<div class="jd-tagdata jd-tagdescr"><p>IAB wide skyscraper ad size (160x600 density-independent pixels). This size is currently not
- supported by the Google Ads network; this is intended for mediation ad networks only.
+ supported by the Google Mobile Ads network; this is intended for mediation ad networks only.
</p></div>
@@ -1704,7 +1719,8 @@
</div>
<div class="jd-details-descr">
- <div class="jd-tagdata jd-tagdescr"><p></p></div>
+ <div class="jd-tagdata jd-tagdescr"><p>Compares this <code><a href="/reference/com/google/android/gms/ads/AdSize.html">AdSize</a></code> with the specified object and indicates if they are equal.
+</p></div>
</div>
</div>
diff --git a/docs/html/reference/com/google/android/gms/ads/AdView.html b/docs/html/reference/com/google/android/gms/ads/AdView.html
index cc1f550..faff2fb 100644
--- a/docs/html/reference/com/google/android/gms/ads/AdView.html
+++ b/docs/html/reference/com/google/android/gms/ads/AdView.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
@@ -844,6 +857,10 @@
<p itemprop="articleBody">The <code><a href="/reference/android/view/View.html">View</a></code> to display banner ads. The ad size and ad unit ID must be set
prior to calling <code><a href="/reference/com/google/android/gms/ads/AdView.html#loadAd(com.google.android.gms.ads.AdRequest)">loadAd(AdRequest)</a></code>.
<p>
+ Publishers using DoubleClick for Publishers or Search Ads for Apps should use
+ <code><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdView.html">PublisherAdView</a></code> or
+ <code><a href="/reference/com/google/android/gms/ads/search/SearchAdView.html">SearchAdView</a></code>, respectively.
+ <p>
Sample code:
<pre>
public class MyActivity extends Activity {
@@ -1471,145 +1488,152 @@
<tr class="alt-color api apilevel-" >
<td class="jd-typecol">int</td>
- <td class="jd-linkcol">SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN</td>
+ <td class="jd-linkcol">SYSTEM_UI_FLAG_IMMERSIVE_STICKY</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
<tr class=" api apilevel-" >
<td class="jd-typecol">int</td>
+ <td class="jd-linkcol">SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
<td class="jd-linkcol">SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol">SYSTEM_UI_FLAG_LAYOUT_STABLE</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol">SYSTEM_UI_FLAG_LOW_PROFILE</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol">SYSTEM_UI_FLAG_VISIBLE</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol">SYSTEM_UI_LAYOUT_FLAGS</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol">TEXT_ALIGNMENT_CENTER</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol">TEXT_ALIGNMENT_GRAVITY</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol">TEXT_ALIGNMENT_INHERIT</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol">TEXT_ALIGNMENT_TEXT_END</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol">TEXT_ALIGNMENT_TEXT_START</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol">TEXT_ALIGNMENT_VIEW_END</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol">TEXT_ALIGNMENT_VIEW_START</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol">TEXT_DIRECTION_ANY_RTL</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol">TEXT_DIRECTION_FIRST_STRONG</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol">TEXT_DIRECTION_INHERIT</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol">TEXT_DIRECTION_LOCALE</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol">TEXT_DIRECTION_LTR</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol">TEXT_DIRECTION_RTL</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
-
-
- <tr class=" api apilevel-" >
+
+
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol">String</td>
<td class="jd-linkcol">VIEW_LOG_TAG</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol">VISIBLE</td>
<td class="jd-descrcol" width="100%"></td>
@@ -2309,7 +2333,7 @@
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad"><a href="/reference/com/google/android/gms/ads/AdView.html#loadAd(com.google.android.gms.ads.AdRequest)">loadAd</a></span>(<a href="/reference/com/google/android/gms/ads/AdRequest.html">AdRequest</a> adRequest)</nobr>
- <div class="jd-descrdiv">Start loading the ad on a background thread.</div>
+ <div class="jd-descrdiv">Starts loading the ad on a background thread.</div>
</td></tr>
@@ -2327,7 +2351,7 @@
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad"><a href="/reference/com/google/android/gms/ads/AdView.html#pause()">pause</a></span>()</nobr>
- <div class="jd-descrdiv">Pause any extra processing associated with this <code><a href="/reference/com/google/android/gms/ads/AdView.html">AdView</a></code>.</div>
+ <div class="jd-descrdiv">Pauses any extra processing associated with this <code><a href="/reference/com/google/android/gms/ads/AdView.html">AdView</a></code>.</div>
</td></tr>
@@ -2345,7 +2369,7 @@
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad"><a href="/reference/com/google/android/gms/ads/AdView.html#resume()">resume</a></span>()</nobr>
- <div class="jd-descrdiv">Resume an <code><a href="/reference/com/google/android/gms/ads/AdView.html">AdView</a></code> after a previous call to <code><a href="/reference/com/google/android/gms/ads/AdView.html#pause()">pause()</a></code>.</div>
+ <div class="jd-descrdiv">Resumes an <code><a href="/reference/com/google/android/gms/ads/AdView.html">AdView</a></code> after a previous call to <code><a href="/reference/com/google/android/gms/ads/AdView.html#pause()">pause()</a></code>.</div>
</td></tr>
@@ -2363,7 +2387,7 @@
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad"><a href="/reference/com/google/android/gms/ads/AdView.html#setAdListener(com.google.android.gms.ads.AdListener)">setAdListener</a></span>(<a href="/reference/com/google/android/gms/ads/AdListener.html">AdListener</a> adListener)</nobr>
- <div class="jd-descrdiv">Set an <code><a href="/reference/com/google/android/gms/ads/AdListener.html">AdListener</a></code> for this <code><a href="/reference/com/google/android/gms/ads/AdView.html">AdView</a></code>.</div>
+ <div class="jd-descrdiv">Sets an <code><a href="/reference/com/google/android/gms/ads/AdListener.html">AdListener</a></code> for this <code><a href="/reference/com/google/android/gms/ads/AdView.html">AdView</a></code>.</div>
</td></tr>
@@ -13274,8 +13298,14 @@
</div>
<div class="jd-details-descr">
- <div class="jd-tagdata jd-tagdescr"><p>Returns the size of the banner ad.
-</p></div>
+ <div class="jd-tagdata jd-tagdescr"><p>Returns the size of the banner ad. Returns <code>null</code> if <code><a href="/reference/com/google/android/gms/ads/AdView.html#setAdSize(com.google.android.gms.ads.AdSize)">setAdSize(AdSize)</a></code> hasn't been
+ called yet.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Related XML Attributes</h5>
+ <ul class="nolist">
+ <li><a href="/reference/com/google/android/gms/ads/AdView.html#attr_com.google.android.gms:adSize">com.google.android.gms:adSize</a></li>
+ </ul>
+ </div>
</div>
</div>
@@ -13304,8 +13334,13 @@
</div>
<div class="jd-details-descr">
- <div class="jd-tagdata jd-tagdescr"><p>Returns the ad unit ID.
-</p></div>
+ <div class="jd-tagdata jd-tagdescr"><p>Returns the ad unit ID.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Related XML Attributes</h5>
+ <ul class="nolist">
+ <li><a href="/reference/com/google/android/gms/ads/AdView.html#attr_com.google.android.gms:adUnitId">com.google.android.gms:adUnitId</a></li>
+ </ul>
+ </div>
</div>
</div>
@@ -13334,12 +13369,12 @@
</div>
<div class="jd-details-descr">
- <div class="jd-tagdata jd-tagdescr"><p>Start loading the ad on a background thread.</p></div>
+ <div class="jd-tagdata jd-tagdescr"><p>Starts loading the ad on a background thread.</p></div>
<div class="jd-tagdata">
<h5 class="jd-tagtitle">Throws</h5>
<table class="jd-tagtable">
<tr>
- <th>IllegalArgumentException</td>
+ <th>IllegalStateException</td>
<td>If the size of the banner ad or the ad unit ID have not been
set.
</td>
@@ -13374,7 +13409,7 @@
</div>
<div class="jd-details-descr">
- <div class="jd-tagdata jd-tagdescr"><p>Pause any extra processing associated with this <code><a href="/reference/com/google/android/gms/ads/AdView.html">AdView</a></code>. This method should be called
+ <div class="jd-tagdata jd-tagdescr"><p>Pauses any extra processing associated with this <code><a href="/reference/com/google/android/gms/ads/AdView.html">AdView</a></code>. This method should be called
in the parent Activity's <code><a href="/reference/android/app/Activity.html#onPause()">onPause()</a></code> method.
</p></div>
@@ -13405,7 +13440,7 @@
</div>
<div class="jd-details-descr">
- <div class="jd-tagdata jd-tagdescr"><p>Resume an <code><a href="/reference/com/google/android/gms/ads/AdView.html">AdView</a></code> after a previous call to <code><a href="/reference/com/google/android/gms/ads/AdView.html#pause()">pause()</a></code>. This method should be
+ <div class="jd-tagdata jd-tagdescr"><p>Resumes an <code><a href="/reference/com/google/android/gms/ads/AdView.html">AdView</a></code> after a previous call to <code><a href="/reference/com/google/android/gms/ads/AdView.html#pause()">pause()</a></code>. This method should be
called in the parent Activity's <code><a href="/reference/android/app/Activity.html#onResume()">onResume()</a></code> method.
</p></div>
@@ -13436,7 +13471,7 @@
</div>
<div class="jd-details-descr">
- <div class="jd-tagdata jd-tagdescr"><p>Set an <code><a href="/reference/com/google/android/gms/ads/AdListener.html">AdListener</a></code> for this <code><a href="/reference/com/google/android/gms/ads/AdView.html">AdView</a></code>.
+ <div class="jd-tagdata jd-tagdescr"><p>Sets an <code><a href="/reference/com/google/android/gms/ads/AdListener.html">AdListener</a></code> for this <code><a href="/reference/com/google/android/gms/ads/AdView.html">AdView</a></code>.
</p></div>
</div>
@@ -13477,7 +13512,7 @@
<h5 class="jd-tagtitle">Throws</h5>
<table class="jd-tagtable">
<tr>
- <th>IllegalArgumentException</td>
+ <th>IllegalStateException</td>
<td>If the size of the banner ad was already set.
</td>
</tr>
@@ -13522,7 +13557,7 @@
<h5 class="jd-tagtitle">Throws</h5>
<table class="jd-tagtable">
<tr>
- <th>IllegalArgumentException</td>
+ <th>IllegalStateException</td>
<td>If the ad unit ID was already set.
</td>
</tr>
diff --git a/docs/html/reference/com/google/android/gms/ads/InterstitialAd.html b/docs/html/reference/com/google/android/gms/ads/InterstitialAd.html
index c1c3fe0..c4a6e538 100644
--- a/docs/html/reference/com/google/android/gms/ads/InterstitialAd.html
+++ b/docs/html/reference/com/google/android/gms/ads/InterstitialAd.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
@@ -746,6 +759,9 @@
<h2>Class Overview</h2>
<p itemprop="articleBody">Full-screen interstitial ads. The ad unit ID must be set prior to calling <code><a href="/reference/com/google/android/gms/ads/InterstitialAd.html#loadAd(com.google.android.gms.ads.AdRequest)">loadAd(AdRequest)</a></code>.
<p>
+ Publishers using DoubleClick for Publishers should use
+ <code><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherInterstitialAd.html">PublisherInterstitialAd</a></code>.
+ <p>
Sample code:
<pre>
public class MyActivity extends Activity {
@@ -779,7 +795,7 @@
mInterstitialAd.setAdListener(new AdListener() {
@Override
public void onAdLoaded() {
- Toast.makeText(InterstitialActivity.this,
+ Toast.makeText(MyActivity.this,
"The interstitial is loaded", Toast.LENGTH_SHORT).show();
}
@@ -1001,7 +1017,7 @@
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad"><a href="/reference/com/google/android/gms/ads/InterstitialAd.html#setAdListener(com.google.android.gms.ads.AdListener)">setAdListener</a></span>(<a href="/reference/com/google/android/gms/ads/AdListener.html">AdListener</a> adListener)</nobr>
- <div class="jd-descrdiv">Set an <code><a href="/reference/com/google/android/gms/ads/AdListener.html">AdListener</a></code> for this <code><a href="/reference/com/google/android/gms/ads/InterstitialAd.html">InterstitialAd</a></code>.</div>
+ <div class="jd-descrdiv">Sets an <code><a href="/reference/com/google/android/gms/ads/AdListener.html">AdListener</a></code> for this <code><a href="/reference/com/google/android/gms/ads/InterstitialAd.html">InterstitialAd</a></code>.</div>
</td></tr>
@@ -1455,7 +1471,7 @@
<h5 class="jd-tagtitle">Throws</h5>
<table class="jd-tagtable">
<tr>
- <th>IllegalArgumentException</td>
+ <th>IllegalStateException</td>
<td>If the the ad unit ID has not been set.
</td>
</tr>
@@ -1489,7 +1505,7 @@
</div>
<div class="jd-details-descr">
- <div class="jd-tagdata jd-tagdescr"><p>Set an <code><a href="/reference/com/google/android/gms/ads/AdListener.html">AdListener</a></code> for this <code><a href="/reference/com/google/android/gms/ads/InterstitialAd.html">InterstitialAd</a></code>.
+ <div class="jd-tagdata jd-tagdescr"><p>Sets an <code><a href="/reference/com/google/android/gms/ads/AdListener.html">AdListener</a></code> for this <code><a href="/reference/com/google/android/gms/ads/InterstitialAd.html">InterstitialAd</a></code>.
</p></div>
</div>
@@ -1524,7 +1540,7 @@
<h5 class="jd-tagtitle">Throws</h5>
<table class="jd-tagtable">
<tr>
- <th>IllegalArgumentException</td>
+ <th>IllegalStateException</td>
<td>If the ad unit ID was already set.
</td>
</tr>
diff --git a/docs/html/reference/com/google/android/gms/ads/doubleclick/AppEventListener.html b/docs/html/reference/com/google/android/gms/ads/doubleclick/AppEventListener.html
new file mode 100644
index 0000000..6d532ed
--- /dev/null
+++ b/docs/html/reference/com/google/android/gms/ads/doubleclick/AppEventListener.html
@@ -0,0 +1,936 @@
+<!DOCTYPE html>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<html>
+<head>
+
+
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<meta name="viewport" content="width=device-width" />
+
+<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
+<title>AppEventListener | Android Developers</title>
+
+<!-- STYLESHEETS -->
+<link rel="stylesheet"
+href="//fonts.googleapis.com/css?family=Roboto:regular,medium,thin,italic,mediumitalic,bold" title="roboto">
+<link href="/assets/css/default.css" rel="stylesheet" type="text/css">
+
+
+
+<!-- JAVASCRIPT -->
+<script src="//www.google.com/jsapi" type="text/javascript"></script>
+<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
+<script type="text/javascript">
+ var toRoot = "/";
+ var metaTags = [];
+ var devsite = false;
+</script>
+<script src="/assets/js/docs.js" type="text/javascript"></script>
+
+<script type="text/javascript">
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-5831155-1']);
+ _gaq.push(['_trackPageview']);
+
+ (function() {
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+ })();
+</script>
+</head>
+<body class="gc-documentation google
+ develop" itemscope itemtype="http://schema.org/Article">
+ <div id="doc-api-level" class="" style="display:none"></div>
+ <a name="top"></a>
+
+<a name="top"></a>
+
+ <!-- Header -->
+ <div id="header">
+ <div class="wrap" id="header-wrap">
+ <div class="col-3 logo">
+ <a href="/index.html">
+ <img src="/assets/images/dac_logo.png" width="123" height="25" alt="Android Developers" />
+ </a>
+ <div class="btn-quicknav" id="btn-quicknav">
+ <a href="#" class="arrow-inactive">Quicknav</a>
+ <a href="#" class="arrow-active">Quicknav</a>
+ </div>
+ </div>
+ <ul class="nav-x col-9">
+ <li class="design">
+ <a href="/design/index.html"
+ zh-tw-lang="設計"
+ zh-cn-lang="设计"
+ ru-lang="Проектирование"
+ ko-lang="디자인"
+ ja-lang="設計"
+ es-lang="Diseñar"
+ >Design</a></li>
+ <li class="develop"><a href="/develop/index.html"
+ zh-tw-lang="開發"
+ zh-cn-lang="开发"
+ ru-lang="Разработка"
+ ko-lang="개발"
+ ja-lang="開発"
+ es-lang="Desarrollar"
+ >Develop</a></li>
+ <li class="distribute last"><a href="/distribute/index.html"
+ zh-tw-lang="發佈"
+ zh-cn-lang="分发"
+ ru-lang="Распространение"
+ ko-lang="배포"
+ ja-lang="配布"
+ es-lang="Distribuir"
+ >Distribute</a></li>
+ </ul>
+
+ <!-- New Search -->
+ <div class="menu-container">
+ <div class="moremenu">
+ <div id="more-btn"></div>
+ </div>
+ <div class="morehover" id="moremenu">
+ <div class="top"></div>
+ <div class="mid">
+ <div class="header">Links</div>
+ <ul>
+ <li><a href="https://play.google.com/apps/publish/">Google Play Developer Console</a></li>
+ <li><a href="http://android-developers.blogspot.com/">Android Developers Blog</a></li>
+ <li><a href="/about/index.html">About Android</a></li>
+ </ul>
+ <div class="header">Android Sites</div>
+ <ul>
+ <li><a href="http://www.android.com">Android.com</a></li>
+ <li class="active"><a>Android Developers</a></li>
+ <li><a href="http://source.android.com">Android Open Source Project</a></li>
+ </ul>
+
+
+
+ <div class="header">Language</div>
+ <div id="language" class="locales">
+ <select name="language" onChange="changeLangPref(this.value, true)">
+ <option value="en">English</option>
+ <option value="es">Español</option>
+ <option value="ja">日本語</option>
+ <option value="ko">한국어</option>
+ <option value="ru">Русский</option>
+ <option value="zh-cn">中文 (中国)</option>
+ <option value="zh-tw">中文 (台灣)</option>
+ </select>
+ </div>
+ <script type="text/javascript">
+ <!--
+ loadLangPref();
+ //-->
+ </script>
+
+
+
+
+ <br class="clearfix" />
+ </div>
+ <div class="bottom"></div>
+ </div>
+ <div class="search" id="search-container">
+ <div class="search-inner">
+ <div id="search-btn"></div>
+ <div class="left"></div>
+ <form onsubmit="return submit_search()">
+ <input id="search_autocomplete" type="text" value="" autocomplete="off" name="q"
+onfocus="search_focus_changed(this, true)" onblur="search_focus_changed(this, false)"
+onkeydown="return search_changed(event, true, '/')"
+onkeyup="return search_changed(event, false, '/')" />
+ </form>
+ <div class="right"></div>
+ <a class="close hide">close</a>
+ <div class="left"></div>
+ <div class="right"></div>
+ </div>
+ </div>
+
+ <div class="search_filtered_wrapper reference">
+ <div class="suggest-card reference no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ </div>
+
+ <div class="search_filtered_wrapper docs">
+ <div class="suggest-card dummy no-display"> </div>
+ <div class="suggest-card develop no-display">
+ <ul class="search_filtered">
+ </ul>
+ <div class="child-card guides no-display">
+ </div>
+ <div class="child-card training no-display">
+ </div>
+ <div class="child-card samples no-display">
+ </div>
+ </div>
+ <div class="suggest-card design no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ <div class="suggest-card distribute no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ </div>
+
+ </div>
+ <!-- /New Search>
+
+
+ <!-- Expanded quicknav -->
+ <div id="quicknav" class="col-9">
+ <ul>
+ <li class="design">
+ <ul>
+ <li><a href="/design/index.html">Get Started</a></li>
+ <li><a href="/design/style/index.html">Style</a></li>
+ <li><a href="/design/patterns/index.html">Patterns</a></li>
+ <li><a href="/design/building-blocks/index.html">Building Blocks</a></li>
+ <li><a href="/design/downloads/index.html">Downloads</a></li>
+ <li><a href="/design/videos/index.html">Videos</a></li>
+ </ul>
+ </li>
+ <li class="develop">
+ <ul>
+ <li><a href="/training/index.html"
+ zh-tw-lang="訓練課程"
+ zh-cn-lang="培训"
+ ru-lang="Курсы"
+ ko-lang="교육"
+ ja-lang="トレーニング"
+ es-lang="Capacitación"
+ >Training</a></li>
+ <li><a href="/guide/index.html"
+ zh-tw-lang="API 指南"
+ zh-cn-lang="API 指南"
+ ru-lang="Руководства по API"
+ ko-lang="API 가이드"
+ ja-lang="API ガイド"
+ es-lang="Guías de la API"
+ >API Guides</a></li>
+ <li><a href="/reference/packages.html"
+ zh-tw-lang="參考資源"
+ zh-cn-lang="参考"
+ ru-lang="Справочник"
+ ko-lang="참조문서"
+ ja-lang="リファレンス"
+ es-lang="Referencia"
+ >Reference</a></li>
+ <li><a href="/tools/index.html"
+ zh-tw-lang="相關工具"
+ zh-cn-lang="工具"
+ ru-lang="Инструменты"
+ ko-lang="도구"
+ ja-lang="ツール"
+ es-lang="Herramientas"
+ >Tools</a>
+ <ul><li><a href="/sdk/index.html">Get the SDK</a></li></ul>
+ </li>
+ <li><a href="/google/index.html">Google Services</a>
+ </li>
+
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
+ </ul>
+ </li>
+ <li class="distribute last">
+ <ul>
+ <li><a href="/distribute/index.html">Google Play</a></li>
+ <li><a href="/distribute/googleplay/publish/index.html">Publishing</a></li>
+ <li><a href="/distribute/googleplay/promote/index.html">Promoting</a></li>
+ <li><a href="/distribute/googleplay/quality/index.html">App Quality</a></li>
+ <li><a href="/distribute/googleplay/spotlight/index.html">Spotlight</a></li>
+ <li><a href="/distribute/open.html">Open Distribution</a></li>
+ </ul>
+ </li>
+ </ul>
+ </div>
+ <!-- /Expanded quicknav -->
+ </div>
+ </div>
+ <!-- /Header -->
+
+
+ <div id="searchResults" class="wrap" style="display:none;">
+ <h2 id="searchTitle">Results</h2>
+ <div id="leftSearchControl" class="search-control">Loading...</div>
+ </div>
+
+
+
+ <!-- Secondary x-nav -->
+ <div id="nav-x">
+ <div class="wrap">
+ <ul class="nav-x col-9 develop" style="width:100%">
+ <li class="training"><a href="/training/index.html"
+ zh-tw-lang="訓練課程"
+ zh-cn-lang="培训"
+ ru-lang="Курсы"
+ ko-lang="교육"
+ ja-lang="トレーニング"
+ es-lang="Capacitación"
+ >Training</a></li>
+ <li class="guide"><a href="/guide/index.html"
+ zh-tw-lang="API 指南"
+ zh-cn-lang="API 指南"
+ ru-lang="Руководства по API"
+ ko-lang="API 가이드"
+ ja-lang="API ガイド"
+ es-lang="Guías de la API"
+ >API Guides</a></li>
+ <li class="reference"><a href="/reference/packages.html"
+ zh-tw-lang="參考資源"
+ zh-cn-lang="参考"
+ ru-lang="Справочник"
+ ko-lang="참조문서"
+ ja-lang="リファレンス"
+ es-lang="Referencia"
+ >Reference</a></li>
+ <li class="tools"><a href="/tools/index.html"
+ zh-tw-lang="相關工具"
+ zh-cn-lang="工具"
+ ru-lang="Инструменты"
+ ko-lang="도구"
+ ja-lang="ツール"
+ es-lang="Herramientas"
+ >Tools</a></li>
+ <li class="google"><a href="/google/index.html"
+ >Google Services</a>
+ </li>
+
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
+ </ul>
+ </div>
+
+ </div>
+ <!-- /Sendondary x-nav -->
+
+
+
+
+
+
+
+
+
+ <div class="wrap clearfix" id="body-content">
+ <div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
+ <div id="devdoc-nav" class="scroll-pane">
+<a class="totop" href="#top" data-g-event="left-nav-top">to top</a>
+
+
+
+<ul id="nav">
+
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/index.html">
+ <span class="en">Overview</span>
+ </a></div>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/games.html">
+ <span class="en">Games</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/location.html">
+ <span class="en">Location</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/plus.html">
+ <span class="en">Google+</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/maps.html">
+ <span class="en">Maps</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play-services/ads.html">
+ <span class="en">Ads</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play-services/id.html">
+ <span class="en">Advertising ID</span></a>
+ </li>
+ </ul>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/wallet.html">
+ <span class="en">Wallet</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/auth.html">
+ <span class="en">Authorization</span>
+ </a></div>
+ </li>
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play-services/index.html">
+ <span class="en">Google Play Services</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play-services/setup.html">
+ <span class="en">Setup</span></a>
+ </li>
+ <li id="gms-tree-list" class="nav-section">
+ <div class="nav-section-header">
+ <a href="/reference/gms-packages.html">
+ <span class="en">Reference</span>
+ </a>
+ <div>
+ </li>
+ </ul>
+ </li>
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/billing/index.html">
+ <span class="en">Google Play In-app Billing</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/billing/billing_overview.html">
+ <span class="en">Overview</span></a>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/api.html">
+ <span class="en">Version 3 API</span></a></div>
+ <ul>
+ <li><a href="/google/play/billing/billing_integrate.html">
+ <span class="en">Implementing the API</span></a></li>
+ <li><a href="/google/play/billing/billing_reference.html">
+ <span class="en">Reference</span></a></li>
+ </ul>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/v2/api.html">
+ <span class="en">Version 2 API</span></a></div>
+ <ul>
+ <li><a href="/google/play/billing/v2/billing_integrate.html">
+ <span class="en">Implementing the API</span></a></li>
+ <li><a href="/google/play/billing/v2/billing_subscriptions.html">
+ <span class="en">Subscriptions</span></a></li>
+ <li><a href="/google/play/billing/v2/billing_reference.html">
+ <span class="en">Reference</span></a></li>
+ </ul>
+ </li>
+ <li><a href="/google/play/billing/billing_subscriptions.html">
+ <span class="en">Subscriptions</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_best_practices.html">
+ <span class="en">Security and Design</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_testing.html">
+ <span class="en">Testing In-app Billing</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_admin.html">
+ <span class="en">Administering In-app Billing</span></a>
+ </li>
+ <li><a href="/google/play/billing/gp-purchase-status-api.html">
+ <span class="en">Purchase Status API</span></a>
+ </li>
+ <li><a href="/google/play/billing/versions.html">
+ <span class="en">Version Notes</span></a>
+ </li>
+ </ul>
+ </li>
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/gcm/index.html">
+ <span class="en">Google Cloud Messaging</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
+ <li><a href="/google/gcm/gs.html">
+ <span class="en">Getting Started</span></a>
+ </li>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
+ </li>
+ <li><a href="/google/gcm/notifications.html">
+ <span class="en">User Notifications</span></a>
+ </li>
+ <li><a href="/google/gcm/adv.html">
+ <span class="en">Advanced Topics</span></a>
+ </li>
+ <li><a href="/google/gcm/c2dm.html">
+ <span class="en">Migration</span></a>
+ </li>
+ <li id="gcm-tree-list" class="nav-section">
+ <div class="nav-section-header">
+ <a href="/reference/gcm-packages.html">
+ <span class="en">Reference</span>
+ </a>
+ <div>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/dist.html">
+ <span class="en">Google Play Distribution</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/filters.html">
+ <span class="en">Filters on Google Play</span></a>
+ </li>
+
+ <li><a href="/google/play/publishing/multiple-apks.html">
+ <span class="en">Multiple APK Support</span></a>
+ </li>
+ <li><a href="/google/play/expansion-files.html">
+ <span class="en">APK Expansion Files</span></a>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/licensing/index.html">
+ <span class="en">Application Licensing</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/licensing/overview.html">
+ <span class="en">Licensing Overview</span></a>
+ </li>
+ <li><a href="/google/play/licensing/setting-up.html">
+ <span class="en">Setting Up for Licensing</span></a>
+ </li>
+ <li><a href="/google/play/licensing/adding-licensing.html">
+ <span class="en">Adding Licensing to Your App</span></a>
+ </li>
+ <li><a href="/google/play/licensing/licensing-reference.html">
+ <span class="en">Licensing Reference</span></a>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/backup/index.html">
+ Android Backup Service</a>
+ </div>
+ <ul>
+ <li><a href="/google/backup/signup.html">
+ Register</a>
+ </li>
+ </ul>
+ </li>
+
+ </ul>
+
+</li>
+
+
+
+</ul>
+
+<script type="text/javascript">
+<!--
+ buildToggleLists();
+ changeNavLang(getLangPref());
+//-->
+</script>
+
+
+
+
+ </div>
+ <script type="text/javascript">
+ showGoogleRefTree();
+
+ </script>
+ </div> <!-- end side-nav -->
+ <script>
+ $(document).ready(function() {
+ scrollIntoView("devdoc-nav");
+ });
+ </script>
+
+
+
+
+
+
+<div class="col-12" id="doc-col">
+
+<div id="api-info-block">
+
+
+
+
+<div class="sum-details-links">
+
+</div><!-- end sum-details-links -->
+<div class="api-level">
+
+
+
+
+</div>
+</div><!-- end api-info-block -->
+
+
+<!-- ======== START OF CLASS DATA ======== -->
+
+<div id="jd-header">
+ public
+
+
+
+ interface
+<h1 itemprop="name">AppEventListener</h1>
+
+
+
+
+
+
+
+
+</div><!-- end header -->
+
+<div id="naMessage"></div>
+
+<div id="jd-content" class="api apilevel-">
+<table class="jd-inheritance-table">
+
+
+ <tr>
+
+ <td colspan="1" class="jd-inheritance-class-cell">com.google.android.gms.ads.doubleclick.AppEventListener</td>
+ </tr>
+
+
+</table>
+
+
+
+
+
+
+
+<div class="jd-descr">
+
+
+<h2>Class Overview</h2>
+<p itemprop="articleBody">A listener interface for app events triggered by ads. App events allow JavaScript within an ad to
+ trigger events in the application. The ad can trigger the app event with a name and optional
+ data. It is then up to the application to decide how to handle the event.
+</p>
+
+
+
+
+
+</div><!-- jd-descr -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<div class="jd-descr">
+
+
+<h2>Summary</h2>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
+
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/ads/doubleclick/AppEventListener.html#onAppEvent(java.lang.String, java.lang.String)">onAppEvent</a></span>(String name, String data)</nobr>
+
+ <div class="jd-descrdiv">Called when an app event occurs.</div>
+
+ </td></tr>
+
+
+
+</table>
+
+
+
+
+
+
+
+</div><!-- jd-descr (summary) -->
+
+<!-- Details -->
+
+
+
+
+
+
+
+
+<!-- XML Attributes -->
+
+
+<!-- Enum Values -->
+
+
+<!-- Constants -->
+
+
+<!-- Fields -->
+
+
+<!-- Public ctors -->
+
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<!-- Protected ctors -->
+
+
+
+<!-- ========= METHOD DETAIL ======== -->
+<!-- Public methdos -->
+
+<h2>Public Methods</h2>
+
+
+
+<A NAME="onAppEvent(java.lang.String, java.lang.String)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+ abstract
+
+ void
+ </span>
+ <span class="sympad">onAppEvent</span>
+ <span class="normal">(String name, String data)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Called when an app event occurs.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>name</td>
+ <td>The name of the app event.</td>
+ </tr>
+ <tr>
+ <th>data</td>
+ <td>Extra data included with the app event. The data can be <code>null</code>.
+</td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
+
+
+
+<!-- ========= METHOD DETAIL ======== -->
+
+
+
+<!-- ========= END OF CLASS DATA ========= -->
+<A NAME="navbar_top"></A>
+
+<div id="footer" class="wrap" >
+
+
+ <div id="copyright">
+
+ Except as noted, this content is licensed under <a
+ href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.
+ For details and restrictions, see the <a href="/license.html">
+ Content License</a>.
+ </div>
+ <div id="build_info">
+
+<script src="/timestamp.js" type="text/javascript"></script>
+<script>document.write(BUILD_TIMESTAMP)</script>
+
+ </div>
+
+
+ <div id="footerlinks">
+
+ <p>
+ <a href="/about/index.html">About Android</a> |
+ <a href="/legal.html">Legal</a> |
+ <a href="/support.html">Support</a>
+ </p>
+ </div>
+
+</div> <!-- end footer -->
+</div> <!-- jd-content -->
+
+</div><!-- end doc-content -->
+
+</div> <!-- end body-content -->
+
+
+
+
+
+
+</body>
+</html>
diff --git a/docs/html/reference/com/google/android/gms/auth/RecoveryDecision.html b/docs/html/reference/com/google/android/gms/ads/doubleclick/PublisherAdRequest.Builder.html
similarity index 64%
copy from docs/html/reference/com/google/android/gms/auth/RecoveryDecision.html
copy to docs/html/reference/com/google/android/gms/ads/doubleclick/PublisherAdRequest.Builder.html
index 59a1346..e593d41 100644
--- a/docs/html/reference/com/google/android/gms/auth/RecoveryDecision.html
+++ b/docs/html/reference/com/google/android/gms/ads/doubleclick/PublisherAdRequest.Builder.html
@@ -83,7 +83,7 @@
<meta name="viewport" content="width=device-width" />
<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
-<title>RecoveryDecision | Android Developers</title>
+<title>PublisherAdRequest.Builder | Android Developers</title>
<!-- STYLESHEETS -->
<link rel="stylesheet"
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -128,7 +129,7 @@
<img src="/assets/images/dac_logo.png" width="123" height="25" alt="Android Developers" />
</a>
<div class="btn-quicknav" id="btn-quicknav">
- <a href="#" class="arrow-inactive">Quicknav</a>
+ <a href="#" class="arrow-inactive">Quicknav</a>
<a href="#" class="arrow-active">Quicknav</a>
</div>
</div>
@@ -140,7 +141,7 @@
ru-lang="Проектирование"
ko-lang="디자인"
ja-lang="設計"
- es-lang="Diseñar"
+ es-lang="Diseñar"
>Design</a></li>
<li class="develop"><a href="/develop/index.html"
zh-tw-lang="開發"
@@ -148,7 +149,7 @@
ru-lang="Разработка"
ko-lang="개발"
ja-lang="開発"
- es-lang="Desarrollar"
+ es-lang="Desarrollar"
>Develop</a></li>
<li class="distribute last"><a href="/distribute/index.html"
zh-tw-lang="發佈"
@@ -156,10 +157,10 @@
ru-lang="Распространение"
ko-lang="배포"
ja-lang="配布"
- es-lang="Distribuir"
+ es-lang="Distribuir"
>Distribute</a></li>
</ul>
-
+
<!-- New Search -->
<div class="menu-container">
<div class="moremenu">
@@ -180,9 +181,9 @@
<li class="active"><a>Android Developers</a></li>
<li><a href="http://source.android.com">Android Open Source Project</a></li>
</ul>
-
-
-
+
+
+
<div class="header">Language</div>
<div id="language" class="locales">
<select name="language" onChange="changeLangPref(this.value, true)">
@@ -200,8 +201,8 @@
loadLangPref();
//-->
</script>
-
-
+
+
<br class="clearfix" />
@@ -215,7 +216,7 @@
<form onsubmit="return submit_search()">
<input id="search_autocomplete" type="text" value="" autocomplete="off" name="q"
onfocus="search_focus_changed(this, true)" onblur="search_focus_changed(this, false)"
-onkeydown="return search_changed(event, true, '/')"
+onkeydown="return search_changed(event, true, '/')"
onkeyup="return search_changed(event, false, '/')" />
</form>
<div class="right"></div>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -254,8 +257,8 @@
</div>
<!-- /New Search>
-
-
+
+
<!-- Expanded quicknav -->
<div id="quicknav" class="col-9">
<ul>
@@ -277,15 +280,15 @@
ru-lang="Курсы"
ko-lang="교육"
ja-lang="トレーニング"
- es-lang="Capacitación"
+ es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
ko-lang="API 가이드"
ja-lang="API ガイド"
- es-lang="Guías de la API"
+ es-lang="Guías de la API"
>API Guides</a></li>
<li><a href="/reference/packages.html"
zh-tw-lang="參考資源"
@@ -293,7 +296,7 @@
ru-lang="Справочник"
ko-lang="참조문서"
ja-lang="リファレンス"
- es-lang="Referencia"
+ es-lang="Referencia"
>Reference</a></li>
<li><a href="/tools/index.html"
zh-tw-lang="相關工具"
@@ -301,13 +304,16 @@
ru-lang="Инструменты"
ko-lang="도구"
ja-lang="ツール"
- es-lang="Herramientas"
+ es-lang="Herramientas"
>Tools</a>
<ul><li><a href="/sdk/index.html">Get the SDK</a></li></ul>
</li>
<li><a href="/google/index.html">Google Services</a>
</li>
-
+
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -326,15 +332,15 @@
</div>
</div>
<!-- /Header -->
-
-
+
+
<div id="searchResults" class="wrap" style="display:none;">
<h2 id="searchTitle">Results</h2>
<div id="leftSearchControl" class="search-control">Loading...</div>
</div>
-
-
-
+
+
+
<!-- Secondary x-nav -->
<div id="nav-x">
<div class="wrap">
@@ -345,15 +351,15 @@
ru-lang="Курсы"
ko-lang="교육"
ja-lang="トレーニング"
- es-lang="Capacitación"
+ es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
ko-lang="API 가이드"
ja-lang="API ガイド"
- es-lang="Guías de la API"
+ es-lang="Guías de la API"
>API Guides</a></li>
<li class="reference"><a href="/reference/packages.html"
zh-tw-lang="參考資源"
@@ -361,7 +367,7 @@
ru-lang="Справочник"
ko-lang="참조문서"
ja-lang="リファレンス"
- es-lang="Referencia"
+ es-lang="Referencia"
>Reference</a></li>
<li class="tools"><a href="/tools/index.html"
zh-tw-lang="相關工具"
@@ -374,21 +380,25 @@
<li class="google"><a href="/google/index.html"
>Google Services</a>
</li>
-
+
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
-
+
</div>
<!-- /Sendondary x-nav -->
-
-
-
+
+
+
<div class="wrap clearfix" id="body-content">
<div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
<div id="devdoc-nav" class="scroll-pane">
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
@@ -618,12 +631,12 @@
</script>
-
+
</div>
<script type="text/javascript">
showGoogleRefTree();
-
+
</script>
</div> <!-- end side-nav -->
<script>
@@ -633,7 +646,7 @@
</script>
-
+
@@ -643,21 +656,12 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
<div class="sum-details-links">
@@ -669,22 +673,16 @@
- <a href="#inhconstants">Inherited Constants</a>
-
-
-
- | <a href="#lfields">Fields</a>
-
- | <a href="#pubctors">Ctors</a>
-
+ <a href="#pubctors">Ctors</a>
+
| <a href="#pubmethods">Methods</a>
-
+
@@ -694,9 +692,9 @@
</div><!-- end sum-details-links -->
<div class="api-level">
-
-
-
+
+
+
</div>
</div><!-- end api-info-block -->
@@ -706,28 +704,23 @@
<div id="jd-header">
public
-
-
-
+ static
+ final
+
class
-<h1 itemprop="name">RecoveryDecision</h1>
+<h1 itemprop="name">PublisherAdRequest.Builder</h1>
-
+
extends Object<br/>
-
-
-
-
-
- implements
-
- Parcelable
-
-
-
+
+
+
+
+
+
</div><!-- end header -->
@@ -739,18 +732,18 @@
<tr>
-
+
<td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
</tr>
-
+
<tr>
-
+
<td class="jd-inheritance-space"> ↳</td>
-
- <td colspan="1" class="jd-inheritance-class-cell">com.google.android.gms.auth.RecoveryDecision</td>
+
+ <td colspan="1" class="jd-inheritance-class-cell">com.google.android.gms.ads.doubleclick.PublisherAdRequest.Builder</td>
</tr>
-
+
</table>
@@ -763,6 +756,10 @@
<div class="jd-descr">
+<h2>Class Overview</h2>
+<p itemprop="articleBody">Builds a <code><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdRequest.html">PublisherAdRequest</a></code>.
+</p>
+
@@ -804,130 +801,6 @@
-<!-- =========== ENUM CONSTANT SUMMARY =========== -->
-<table id="inhconstants" class="jd-sumtable"><tr><th>
- <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
- <div style="clear:left;">Inherited Constants</div></th></tr>
-
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-
- <a href="#" onclick="return toggleInherited(this, null)" id="inherited-constants-android.os.Parcelable" class="jd-expando-trigger closed"
- ><img id="inherited-constants-android.os.Parcelable-trigger"
- src="/assets/images/triangle-closed.png"
- class="jd-expando-trigger-img" /></a>From interface
-android.os.Parcelable
-<div id="inherited-constants-android.os.Parcelable">
- <div id="inherited-constants-android.os.Parcelable-list"
- class="jd-inheritedlinks">
- </div>
- <div id="inherited-constants-android.os.Parcelable-summary" style="display: none;">
- <table class="jd-sumtable-expando">
-
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol">int</td>
- <td class="jd-linkcol">CONTENTS_FILE_DESCRIPTOR</td>
- <td class="jd-descrcol" width="100%"></td>
- </tr>
-
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol">int</td>
- <td class="jd-linkcol">PARCELABLE_WRITE_RETURN_VALUE</td>
- <td class="jd-descrcol" width="100%"></td>
- </tr>
-
-
-</table>
- </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-
-
-<!-- =========== FIELD SUMMARY =========== -->
-<table id="lfields" class="jd-sumtable"><tr><th colspan="12">Fields</th></tr>
-
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
- static
- final
- <a href="/reference/com/google/android/gms/auth/RecoveryDecisionCreator.html">RecoveryDecisionCreator</a></nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#CREATOR">CREATOR</a></td>
- <td class="jd-descrcol" width="100%"></td>
- </tr>
-
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- boolean</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#isRecoveryInfoNeeded">isRecoveryInfoNeeded</a></td>
- <td class="jd-descrcol" width="100%">Is <code>true</code> if either the account has no recovery information or it
- was updated long time back (controlled by server, default 1 year).</td>
- </tr>
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- boolean</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#isRecoveryInterstitialAllowed">isRecoveryInterstitialAllowed</a></td>
- <td class="jd-descrcol" width="100%">Is <code>true</code> iff the user has permission to update the account.</td>
- </tr>
-
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- PendingIntent</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#recoveryIntent">recoveryIntent</a></td>
- <td class="jd-descrcol" width="100%">A PendingIntent to an activity that gathers recovery information for the given account.</td>
- </tr>
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- PendingIntent</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#recoveryIntentWithoutIntro">recoveryIntentWithoutIntro</a></td>
- <td class="jd-descrcol" width="100%">A PendingIntent to an activity that gathers recovery information for the given account.</td>
- </tr>
-
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- boolean</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#showRecoveryInterstitial">showRecoveryInterstitial</a></td>
- <td class="jd-descrcol" width="100%">Represents the decision and should be obeyed by the client.</td>
- </tr>
-
-
-
-</table>
@@ -940,19 +813,19 @@
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#RecoveryDecision()">RecoveryDecision</a></span>()</nobr>
-
+ <span class="sympad"><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdRequest.Builder.html#PublisherAdRequest.Builder()">PublisherAdRequest.Builder</a></span>()</nobr>
+
</td></tr>
@@ -969,51 +842,187 @@
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
- int</nobr>
+
+
+
+
+
+ <a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdRequest.Builder.html">PublisherAdRequest.Builder</a></nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#describeContents()">describeContents</a></span>()</nobr>
-
+ <span class="sympad"><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdRequest.Builder.html#addKeyword(java.lang.String)">addKeyword</a></span>(String keyword)</nobr>
+
+ <div class="jd-descrdiv">Add a keyword for targeting purposes.</div>
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
- int</nobr>
+
+
+
+
+
+ <a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdRequest.Builder.html">PublisherAdRequest.Builder</a></nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#getVersionCode()">getVersionCode</a></span>()</nobr>
-
+ <span class="sympad"><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdRequest.Builder.html#addNetworkExtras(com.google.android.gms.ads.mediation.NetworkExtras)">addNetworkExtras</a></span>(<a href="/reference/com/google/android/gms/ads/mediation/NetworkExtras.html">NetworkExtras</a> networkExtras)</nobr>
+
+ <div class="jd-descrdiv">Add extra parameters to pass to a specific ad network adapter.</div>
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
- void</nobr>
+
+
+
+
+
+ <a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdRequest.Builder.html">PublisherAdRequest.Builder</a></nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#writeToParcel(android.os.Parcel, int)">writeToParcel</a></span>(Parcel out, int flags)</nobr>
-
+ <span class="sympad"><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdRequest.Builder.html#addTestDevice(java.lang.String)">addTestDevice</a></span>(String deviceId)</nobr>
+
+ <div class="jd-descrdiv">Causes a device to receive test ads.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ <a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdRequest.html">PublisherAdRequest</a></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdRequest.Builder.html#build()">build</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Constructs <code><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdRequest.html">PublisherAdRequest</a></code> with the specified attributes.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ <a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdRequest.Builder.html">PublisherAdRequest.Builder</a></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdRequest.Builder.html#setBirthday(java.util.Date)">setBirthday</a></span>(Date birthday)</nobr>
+
+ <div class="jd-descrdiv">Sets the user's birthday for targeting purposes.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ <a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdRequest.Builder.html">PublisherAdRequest.Builder</a></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdRequest.Builder.html#setGender(int)">setGender</a></span>(int gender)</nobr>
+
+ <div class="jd-descrdiv">Sets the user's gender for targeting purposes.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ <a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdRequest.Builder.html">PublisherAdRequest.Builder</a></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdRequest.Builder.html#setLocation(android.location.Location)">setLocation</a></span>(Location location)</nobr>
+
+ <div class="jd-descrdiv">Sets the user's location for targeting purposes.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ <a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdRequest.Builder.html">PublisherAdRequest.Builder</a></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdRequest.Builder.html#setManualImpressionsEnabled(boolean)">setManualImpressionsEnabled</a></span>(boolean manualImpressionsEnabled)</nobr>
+
+ <div class="jd-descrdiv">Enables manual impression reporting.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ <a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdRequest.Builder.html">PublisherAdRequest.Builder</a></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdRequest.Builder.html#setPublisherProvidedId(java.lang.String)">setPublisherProvidedId</a></span>(String publisherProvidedId)</nobr>
+
+ <div class="jd-descrdiv">Sets an identifier for use in frequency capping, audience segmentation and targeting,
+ sequential ad rotation, and other audience-based ad delivery controls across devices.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ <a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdRequest.Builder.html">PublisherAdRequest.Builder</a></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdRequest.Builder.html#tagForChildDirectedTreatment(boolean)">tagForChildDirectedTreatment</a></span>(boolean tagForChildDirectedTreatment)</nobr>
+
+ <div class="jd-descrdiv">This method allows you to specify whether you would like your app to be treated as
+ child-directed for purposes of the Children’s Online Privacy Protection Act (COPPA) -
+ <a href="http://business.ftc.gov/privacy-and-security/childrens-privacy">
+ http://business.ftc.gov/privacy-and-security/childrens-privacy</a>.</div>
+
</td></tr>
@@ -1048,240 +1057,182 @@
</div>
<div id="inherited-methods-java.lang.Object-summary" style="display: none;">
<table class="jd-sumtable-expando">
-
-
+
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
Object</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">clone</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
boolean</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">equals</span>(Object arg0)</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">finalize</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
Class<?></nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">getClass</span>()</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
int</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">hashCode</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">notify</span>()</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">notifyAll</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
String</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">toString</span>()</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">wait</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">wait</span>(long arg0)</nobr>
-
- </td></tr>
-
-</table>
- </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
- <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-android.os.Parcelable" class="jd-expando-trigger closed"
- ><img id="inherited-methods-android.os.Parcelable-trigger"
- src="/assets/images/triangle-closed.png"
- class="jd-expando-trigger-img" /></a>
-From interface
-
- android.os.Parcelable
-
-<div id="inherited-methods-android.os.Parcelable">
- <div id="inherited-methods-android.os.Parcelable-list"
- class="jd-inheritedlinks">
- </div>
- <div id="inherited-methods-android.os.Parcelable-summary" style="display: none;">
- <table class="jd-sumtable-expando">
-
-
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
- abstract
-
-
-
-
- int</nobr>
- </td>
- <td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad">describeContents</span>()</nobr>
-
- </td></tr>
-
-
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol"><nobr>
- abstract
-
-
-
-
- void</nobr>
- </td>
- <td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad">writeToParcel</span>(Parcel arg0, int arg1)</nobr>
-
</td></tr>
@@ -1317,197 +1268,6 @@
<!-- Fields -->
-<!-- ========= FIELD DETAIL ======== -->
-<h2>Fields</h2>
-
-
-
-
-<A NAME="CREATOR"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
- static
- final
- <a href="/reference/com/google/android/gms/auth/RecoveryDecisionCreator.html">RecoveryDecisionCreator</a>
- </span>
- CREATOR
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-
- </div>
-</div>
-
-
-
-<A NAME="isRecoveryInfoNeeded"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- boolean
- </span>
- isRecoveryInfoNeeded
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>Is <code>true</code> if either the account has no recovery information or it
- was updated long time back (controlled by server, default 1 year).
-</p></div>
-
-
- </div>
-</div>
-
-
-
-<A NAME="isRecoveryInterstitialAllowed"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- boolean
- </span>
- isRecoveryInterstitialAllowed
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>Is <code>true</code> iff the user has permission to update the account.
- Dasher accounts can have recovery information edit disabled by the administrator.
- Eg: @google.com
-</p></div>
-
-
- </div>
-</div>
-
-
-
-<A NAME="recoveryIntent"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- PendingIntent
- </span>
- recoveryIntent
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>A PendingIntent to an activity that gathers recovery information for the given account.
- This intent will be null iff isRecoveryInterstitialAllowed is <code>false</code>.
-</p></div>
-
-
- </div>
-</div>
-
-
-
-<A NAME="recoveryIntentWithoutIntro"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- PendingIntent
- </span>
- recoveryIntentWithoutIntro
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>A PendingIntent to an activity that gathers recovery information for the given account.
- This intent will be null iff isRecoveryInterstitialAllowed is <code>false</code>.
- This intent directly skips to the input activity without showing the intro message.
-</p></div>
-
-
- </div>
-</div>
-
-
-
-<A NAME="showRecoveryInterstitial"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- boolean
- </span>
- showRecoveryInterstitial
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>Represents the decision and should be obeyed by the client. The remaining
- two flags are provided as additional information for one off decisions. This value
- is <code>true</code> iff isRecoveryInfoNeeded is <code>true</code>, isRecoveryInterstitialAllowed is
- <code>true</code> and a specified period (controlled by server, default 2 months) has passed
- since the user was shown a prompt for recovery information on any google property
- (Android, Web, etc.)
-</p></div>
-
-
- </div>
-</div>
-
-
-
-
<!-- Public ctors -->
@@ -1516,29 +1276,29 @@
-<A NAME="RecoveryDecision()"></A>
+<A NAME="PublisherAdRequest.Builder()"></A>
-<div class="jd-details api apilevel-">
+<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
- public
-
-
-
-
-
+ public
+
+
+
+
+
</span>
- <span class="sympad">RecoveryDecision</span>
+ <span class="sympad">PublisherAdRequest.Builder</span>
<span class="normal">()</span>
</h4>
<div class="api-level">
<div></div>
-
-
+
+
</div>
<div class="jd-details-descr">
-
+
<div class="jd-tagdata jd-tagdescr"><p></p></div>
</div>
@@ -1560,88 +1320,340 @@
-<A NAME="describeContents()"></A>
+<A NAME="addKeyword(java.lang.String)"></A>
-<div class="jd-details api apilevel-">
+<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
- public
-
-
-
-
- int
+ public
+
+
+
+
+ <a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdRequest.Builder.html">PublisherAdRequest.Builder</a>
</span>
- <span class="sympad">describeContents</span>
- <span class="normal">()</span>
+ <span class="sympad">addKeyword</span>
+ <span class="normal">(String keyword)</span>
</h4>
<div class="api-level">
<div></div>
-
-
+
+
</div>
<div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+ <div class="jd-tagdata jd-tagdescr"><p>Add a keyword for targeting purposes.
+</p></div>
</div>
</div>
-<A NAME="getVersionCode()"></A>
+<A NAME="addNetworkExtras(com.google.android.gms.ads.mediation.NetworkExtras)"></A>
-<div class="jd-details api apilevel-">
+<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
- public
-
-
-
-
- int
+ public
+
+
+
+
+ <a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdRequest.Builder.html">PublisherAdRequest.Builder</a>
</span>
- <span class="sympad">getVersionCode</span>
- <span class="normal">()</span>
+ <span class="sympad">addNetworkExtras</span>
+ <span class="normal">(<a href="/reference/com/google/android/gms/ads/mediation/NetworkExtras.html">NetworkExtras</a> networkExtras)</span>
</h4>
<div class="api-level">
<div></div>
-
-
+
+
</div>
<div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+ <div class="jd-tagdata jd-tagdescr"><p>Add extra parameters to pass to a specific ad network adapter. <code>networkExtras</code>
+ should be an instance of <code>com.google.ads.mediation.NetworkExtras</code>, which is
+ provided by ad network adapters.
+</p></div>
</div>
</div>
-<A NAME="writeToParcel(android.os.Parcel, int)"></A>
+<A NAME="addTestDevice(java.lang.String)"></A>
-<div class="jd-details api apilevel-">
+<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
- public
-
-
-
-
- void
+ public
+
+
+
+
+ <a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdRequest.Builder.html">PublisherAdRequest.Builder</a>
</span>
- <span class="sympad">writeToParcel</span>
- <span class="normal">(Parcel out, int flags)</span>
+ <span class="sympad">addTestDevice</span>
+ <span class="normal">(String deviceId)</span>
</h4>
<div class="api-level">
<div></div>
-
-
+
+
</div>
<div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+ <div class="jd-tagdata jd-tagdescr"><p>Causes a device to receive test ads. The <code>deviceId</code> can be obtained by viewing the
+ logcat output after creating a new ad. For emulators, use
+ <code><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdRequest.html#DEVICE_ID_EMULATOR">DEVICE_ID_EMULATOR</a></code>.
+</p></div>
+
+ </div>
+</div>
+
+
+<A NAME="build()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ <a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdRequest.html">PublisherAdRequest</a>
+ </span>
+ <span class="sympad">build</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Constructs <code><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdRequest.html">PublisherAdRequest</a></code> with the specified attributes.
+</p></div>
+
+ </div>
+</div>
+
+
+<A NAME="setBirthday(java.util.Date)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ <a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdRequest.Builder.html">PublisherAdRequest.Builder</a>
+ </span>
+ <span class="sympad">setBirthday</span>
+ <span class="normal">(Date birthday)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Sets the user's birthday for targeting purposes.
+</p></div>
+
+ </div>
+</div>
+
+
+<A NAME="setGender(int)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ <a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdRequest.Builder.html">PublisherAdRequest.Builder</a>
+ </span>
+ <span class="sympad">setGender</span>
+ <span class="normal">(int gender)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Sets the user's gender for targeting purposes. This should be
+ <code><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdRequest.html#GENDER_MALE">GENDER_MALE</a></code>, <code><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdRequest.html#GENDER_FEMALE">GENDER_FEMALE</a></code>, or <code><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdRequest.html#GENDER_UNKNOWN">GENDER_UNKNOWN</a></code>.
+</p></div>
+
+ </div>
+</div>
+
+
+<A NAME="setLocation(android.location.Location)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ <a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdRequest.Builder.html">PublisherAdRequest.Builder</a>
+ </span>
+ <span class="sympad">setLocation</span>
+ <span class="normal">(Location location)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Sets the user's location for targeting purposes.
+</p></div>
+
+ </div>
+</div>
+
+
+<A NAME="setManualImpressionsEnabled(boolean)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ <a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdRequest.Builder.html">PublisherAdRequest.Builder</a>
+ </span>
+ <span class="sympad">setManualImpressionsEnabled</span>
+ <span class="normal">(boolean manualImpressionsEnabled)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Enables manual impression reporting.
+</p></div>
+
+ </div>
+</div>
+
+
+<A NAME="setPublisherProvidedId(java.lang.String)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ <a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdRequest.Builder.html">PublisherAdRequest.Builder</a>
+ </span>
+ <span class="sympad">setPublisherProvidedId</span>
+ <span class="normal">(String publisherProvidedId)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Sets an identifier for use in frequency capping, audience segmentation and targeting,
+ sequential ad rotation, and other audience-based ad delivery controls across devices.
+</p></div>
+
+ </div>
+</div>
+
+
+<A NAME="tagForChildDirectedTreatment(boolean)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ <a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdRequest.Builder.html">PublisherAdRequest.Builder</a>
+ </span>
+ <span class="sympad">tagForChildDirectedTreatment</span>
+ <span class="normal">(boolean tagForChildDirectedTreatment)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>This method allows you to specify whether you would like your app to be treated as
+ child-directed for purposes of the Children’s Online Privacy Protection Act (COPPA) -
+ <a href="http://business.ftc.gov/privacy-and-security/childrens-privacy">
+ http://business.ftc.gov/privacy-and-security/childrens-privacy</a>.
+ <p>
+ If you set this method to <code>true</code>, you will indicate that your app should be treated
+ as child-directed for purposes of the Children’s Online Privacy Protection Act (COPPA).
+ <p>
+ If you set this method to <code>false</code>, you will indicate that your app should not be
+ treated as child-directed for purposes of the Children’s Online Privacy Protection Act
+ (COPPA).
+ <p>
+ If you do not set this method, ad requests will include no indication of how you would
+ like your app treated with respect to COPPA.
+ <p>
+ By setting this method, you certify that this notification is accurate and you are
+ authorized to act on behalf of the owner of the app. You understand that abuse of this
+ setting may result in termination of your Google account.
+ <p>
+ Note: it may take some time for this designation to be fully implemented in applicable
+ Google services.
+ <p>
+ This designation will only apply to ad requests for which you have set this method.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>tagForChildDirectedTreatment</td>
+ <td>Set to <code>true</code> to indicate that your app should
+ be treated as child-directed. Set to <code>false</code> to indicate that your app
+ should not be treated as child-directed.
+</td>
+ </tr>
+ </table>
+ </div>
</div>
</div>
@@ -1658,17 +1670,17 @@
<A NAME="navbar_top"></A>
<div id="footer" class="wrap" >
-
+
<div id="copyright">
-
+
Except as noted, this content is licensed under <a
- href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.
+ href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.
For details and restrictions, see the <a href="/license.html">
Content License</a>.
</div>
<div id="build_info">
-
+
<script src="/timestamp.js" type="text/javascript"></script>
<script>document.write(BUILD_TIMESTAMP)</script>
@@ -1676,7 +1688,7 @@
<div id="footerlinks">
-
+
<p>
<a href="/about/index.html">About Android</a> |
<a href="/legal.html">Legal</a> |
@@ -1689,7 +1701,7 @@
</div><!-- end doc-content -->
-</div> <!-- end body-content -->
+</div> <!-- end body-content -->
diff --git a/docs/html/reference/com/google/android/gms/auth/RecoveryDecision.html b/docs/html/reference/com/google/android/gms/ads/doubleclick/PublisherAdRequest.html
similarity index 63%
copy from docs/html/reference/com/google/android/gms/auth/RecoveryDecision.html
copy to docs/html/reference/com/google/android/gms/ads/doubleclick/PublisherAdRequest.html
index 59a1346..e498e8e 100644
--- a/docs/html/reference/com/google/android/gms/auth/RecoveryDecision.html
+++ b/docs/html/reference/com/google/android/gms/ads/doubleclick/PublisherAdRequest.html
@@ -83,7 +83,7 @@
<meta name="viewport" content="width=device-width" />
<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
-<title>RecoveryDecision | Android Developers</title>
+<title>PublisherAdRequest | Android Developers</title>
<!-- STYLESHEETS -->
<link rel="stylesheet"
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -128,7 +129,7 @@
<img src="/assets/images/dac_logo.png" width="123" height="25" alt="Android Developers" />
</a>
<div class="btn-quicknav" id="btn-quicknav">
- <a href="#" class="arrow-inactive">Quicknav</a>
+ <a href="#" class="arrow-inactive">Quicknav</a>
<a href="#" class="arrow-active">Quicknav</a>
</div>
</div>
@@ -140,7 +141,7 @@
ru-lang="Проектирование"
ko-lang="디자인"
ja-lang="設計"
- es-lang="Diseñar"
+ es-lang="Diseñar"
>Design</a></li>
<li class="develop"><a href="/develop/index.html"
zh-tw-lang="開發"
@@ -148,7 +149,7 @@
ru-lang="Разработка"
ko-lang="개발"
ja-lang="開発"
- es-lang="Desarrollar"
+ es-lang="Desarrollar"
>Develop</a></li>
<li class="distribute last"><a href="/distribute/index.html"
zh-tw-lang="發佈"
@@ -156,10 +157,10 @@
ru-lang="Распространение"
ko-lang="배포"
ja-lang="配布"
- es-lang="Distribuir"
+ es-lang="Distribuir"
>Distribute</a></li>
</ul>
-
+
<!-- New Search -->
<div class="menu-container">
<div class="moremenu">
@@ -180,9 +181,9 @@
<li class="active"><a>Android Developers</a></li>
<li><a href="http://source.android.com">Android Open Source Project</a></li>
</ul>
-
-
-
+
+
+
<div class="header">Language</div>
<div id="language" class="locales">
<select name="language" onChange="changeLangPref(this.value, true)">
@@ -200,8 +201,8 @@
loadLangPref();
//-->
</script>
-
-
+
+
<br class="clearfix" />
@@ -215,7 +216,7 @@
<form onsubmit="return submit_search()">
<input id="search_autocomplete" type="text" value="" autocomplete="off" name="q"
onfocus="search_focus_changed(this, true)" onblur="search_focus_changed(this, false)"
-onkeydown="return search_changed(event, true, '/')"
+onkeydown="return search_changed(event, true, '/')"
onkeyup="return search_changed(event, false, '/')" />
</form>
<div class="right"></div>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -254,8 +257,8 @@
</div>
<!-- /New Search>
-
-
+
+
<!-- Expanded quicknav -->
<div id="quicknav" class="col-9">
<ul>
@@ -277,15 +280,15 @@
ru-lang="Курсы"
ko-lang="교육"
ja-lang="トレーニング"
- es-lang="Capacitación"
+ es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
ko-lang="API 가이드"
ja-lang="API ガイド"
- es-lang="Guías de la API"
+ es-lang="Guías de la API"
>API Guides</a></li>
<li><a href="/reference/packages.html"
zh-tw-lang="參考資源"
@@ -293,7 +296,7 @@
ru-lang="Справочник"
ko-lang="참조문서"
ja-lang="リファレンス"
- es-lang="Referencia"
+ es-lang="Referencia"
>Reference</a></li>
<li><a href="/tools/index.html"
zh-tw-lang="相關工具"
@@ -301,13 +304,16 @@
ru-lang="Инструменты"
ko-lang="도구"
ja-lang="ツール"
- es-lang="Herramientas"
+ es-lang="Herramientas"
>Tools</a>
<ul><li><a href="/sdk/index.html">Get the SDK</a></li></ul>
</li>
<li><a href="/google/index.html">Google Services</a>
</li>
-
+
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -326,15 +332,15 @@
</div>
</div>
<!-- /Header -->
-
-
+
+
<div id="searchResults" class="wrap" style="display:none;">
<h2 id="searchTitle">Results</h2>
<div id="leftSearchControl" class="search-control">Loading...</div>
</div>
-
-
-
+
+
+
<!-- Secondary x-nav -->
<div id="nav-x">
<div class="wrap">
@@ -345,15 +351,15 @@
ru-lang="Курсы"
ko-lang="교육"
ja-lang="トレーニング"
- es-lang="Capacitación"
+ es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
ko-lang="API 가이드"
ja-lang="API ガイド"
- es-lang="Guías de la API"
+ es-lang="Guías de la API"
>API Guides</a></li>
<li class="reference"><a href="/reference/packages.html"
zh-tw-lang="參考資源"
@@ -361,7 +367,7 @@
ru-lang="Справочник"
ko-lang="참조문서"
ja-lang="リファレンス"
- es-lang="Referencia"
+ es-lang="Referencia"
>Reference</a></li>
<li class="tools"><a href="/tools/index.html"
zh-tw-lang="相關工具"
@@ -374,21 +380,25 @@
<li class="google"><a href="/google/index.html"
>Google Services</a>
</li>
-
+
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
-
+
</div>
<!-- /Sendondary x-nav -->
-
-
-
+
+
+
<div class="wrap clearfix" id="body-content">
<div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
<div id="devdoc-nav" class="scroll-pane">
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
@@ -618,12 +631,12 @@
</script>
-
+
</div>
<script type="text/javascript">
showGoogleRefTree();
-
+
</script>
</div> <!-- end side-nav -->
<script>
@@ -633,7 +646,7 @@
</script>
-
+
@@ -643,48 +656,39 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
<div class="sum-details-links">
Summary:
+ <a href="#nestedclasses">Nested Classes</a>
- <a href="#inhconstants">Inherited Constants</a>
-
+
+ | <a href="#constants">Constants</a>
+
+
| <a href="#lfields">Fields</a>
-
- | <a href="#pubctors">Ctors</a>
-
| <a href="#pubmethods">Methods</a>
-
+
@@ -694,9 +698,9 @@
</div><!-- end sum-details-links -->
<div class="api-level">
-
-
-
+
+
+
</div>
</div><!-- end api-info-block -->
@@ -706,28 +710,23 @@
<div id="jd-header">
public
-
-
-
+
+ final
+
class
-<h1 itemprop="name">RecoveryDecision</h1>
+<h1 itemprop="name">PublisherAdRequest</h1>
-
+
extends Object<br/>
-
-
-
-
-
- implements
-
- Parcelable
-
-
-
+
+
+
+
+
+
</div><!-- end header -->
@@ -739,18 +738,18 @@
<tr>
-
+
<td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
</tr>
-
+
<tr>
-
+
<td class="jd-inheritance-space"> ↳</td>
-
- <td colspan="1" class="jd-inheritance-class-cell">com.google.android.gms.auth.RecoveryDecision</td>
+
+ <td colspan="1" class="jd-inheritance-class-cell">com.google.android.gms.ads.doubleclick.PublisherAdRequest</td>
</tr>
-
+
</table>
@@ -763,6 +762,11 @@
<div class="jd-descr">
+<h2>Class Overview</h2>
+<p itemprop="articleBody">A <code><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdRequest.html">PublisherAdRequest</a></code> contains targeting information used to fetch an ad from DoubleClick
+ for Publishers. Ad requests are created using <code><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdRequest.Builder.html">PublisherAdRequest.Builder</a></code>.
+</p>
+
@@ -791,6 +795,23 @@
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<table id="nestedclasses" class="jd-sumtable"><tr><th colspan="12">Nested Classes</th></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+ class</nobr></td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdRequest.Builder.html">PublisherAdRequest.Builder</a></td>
+ <td class="jd-descrcol" width="100%">Builds a <code><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdRequest.html">PublisherAdRequest</a></code>. </td>
+ </tr>
+
+
@@ -805,48 +826,59 @@
<!-- =========== ENUM CONSTANT SUMMARY =========== -->
-<table id="inhconstants" class="jd-sumtable"><tr><th>
- <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
- <div style="clear:left;">Inherited Constants</div></th></tr>
+<table id="constants" class="jd-sumtable"><tr><th colspan="12">Constants</th></tr>
-
-<tr class="api apilevel-" >
-<td colspan="12">
-
- <a href="#" onclick="return toggleInherited(this, null)" id="inherited-constants-android.os.Parcelable" class="jd-expando-trigger closed"
- ><img id="inherited-constants-android.os.Parcelable-trigger"
- src="/assets/images/triangle-closed.png"
- class="jd-expando-trigger-img" /></a>From interface
-android.os.Parcelable
-<div id="inherited-constants-android.os.Parcelable">
- <div id="inherited-constants-android.os.Parcelable-list"
- class="jd-inheritedlinks">
- </div>
- <div id="inherited-constants-android.os.Parcelable-summary" style="display: none;">
- <table class="jd-sumtable-expando">
-
-
-
<tr class="alt-color api apilevel-" >
<td class="jd-typecol">int</td>
- <td class="jd-linkcol">CONTENTS_FILE_DESCRIPTOR</td>
- <td class="jd-descrcol" width="100%"></td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdRequest.html#ERROR_CODE_INTERNAL_ERROR">ERROR_CODE_INTERNAL_ERROR</a></td>
+ <td class="jd-descrcol" width="100%">Something happened internally; for instance, an invalid response was received from the ad
+ server.</td>
</tr>
-
-
+
+
<tr class=" api apilevel-" >
<td class="jd-typecol">int</td>
- <td class="jd-linkcol">PARCELABLE_WRITE_RETURN_VALUE</td>
- <td class="jd-descrcol" width="100%"></td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdRequest.html#ERROR_CODE_INVALID_REQUEST">ERROR_CODE_INVALID_REQUEST</a></td>
+ <td class="jd-descrcol" width="100%">The ad request was invalid; for instance, the ad unit ID was incorrect.</td>
</tr>
-
-
-</table>
- </div>
-</div>
-</td></tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdRequest.html#ERROR_CODE_NETWORK_ERROR">ERROR_CODE_NETWORK_ERROR</a></td>
+ <td class="jd-descrcol" width="100%">The ad request was unsuccessful due to network connectivity.</td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdRequest.html#ERROR_CODE_NO_FILL">ERROR_CODE_NO_FILL</a></td>
+ <td class="jd-descrcol" width="100%">The ad request was successful, but no ad was returned due to lack of ad inventory.</td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdRequest.html#GENDER_FEMALE">GENDER_FEMALE</a></td>
+ <td class="jd-descrcol" width="100%">Female gender.</td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdRequest.html#GENDER_MALE">GENDER_MALE</a></td>
+ <td class="jd-descrcol" width="100%">Male gender.</td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdRequest.html#GENDER_UNKNOWN">GENDER_UNKNOWN</a></td>
+ <td class="jd-descrcol" width="100%">Unknown gender.</td>
+ </tr>
+
</table>
@@ -854,78 +886,26 @@
+
+
+
<!-- =========== FIELD SUMMARY =========== -->
<table id="lfields" class="jd-sumtable"><tr><th colspan="12">Fields</th></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
public
static
final
- <a href="/reference/com/google/android/gms/auth/RecoveryDecisionCreator.html">RecoveryDecisionCreator</a></nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#CREATOR">CREATOR</a></td>
- <td class="jd-descrcol" width="100%"></td>
+ String</nobr></td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdRequest.html#DEVICE_ID_EMULATOR">DEVICE_ID_EMULATOR</a></td>
+ <td class="jd-descrcol" width="100%">The <code>deviceId</code> for emulators to be used with
+ <code><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdRequest.Builder.html#addTestDevice(java.lang.String)">addTestDevice(String)</a></code>.</td>
</tr>
-
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- boolean</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#isRecoveryInfoNeeded">isRecoveryInfoNeeded</a></td>
- <td class="jd-descrcol" width="100%">Is <code>true</code> if either the account has no recovery information or it
- was updated long time back (controlled by server, default 1 year).</td>
- </tr>
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- boolean</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#isRecoveryInterstitialAllowed">isRecoveryInterstitialAllowed</a></td>
- <td class="jd-descrcol" width="100%">Is <code>true</code> iff the user has permission to update the account.</td>
- </tr>
-
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- PendingIntent</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#recoveryIntent">recoveryIntent</a></td>
- <td class="jd-descrcol" width="100%">A PendingIntent to an activity that gathers recovery information for the given account.</td>
- </tr>
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- PendingIntent</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#recoveryIntentWithoutIntro">recoveryIntentWithoutIntro</a></td>
- <td class="jd-descrcol" width="100%">A PendingIntent to an activity that gathers recovery information for the given account.</td>
- </tr>
-
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- boolean</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#showRecoveryInterstitial">showRecoveryInterstitial</a></td>
- <td class="jd-descrcol" width="100%">Represents the decision and should be obeyed by the client.</td>
- </tr>
-
-
+
+
</table>
@@ -935,31 +915,6 @@
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
-
-
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
-
-
-
-
-
- </nobr>
- </td>
- <td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#RecoveryDecision()">RecoveryDecision</a></span>()</nobr>
-
- </td></tr>
-
-
-
-</table>
-
-
@@ -969,51 +924,148 @@
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
- int</nobr>
+
+
+
+
+
+ Date</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#describeContents()">describeContents</a></span>()</nobr>
-
+ <span class="sympad"><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdRequest.html#getBirthday()">getBirthday</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Returns the user's birthday targeting information.</div>
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
int</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#getVersionCode()">getVersionCode</a></span>()</nobr>
-
+ <span class="sympad"><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdRequest.html#getGender()">getGender</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Returns the user's gender targeting information.</div>
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
- void</nobr>
+
+
+
+
+
+ Set<String></nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#writeToParcel(android.os.Parcel, int)">writeToParcel</a></span>(Parcel out, int flags)</nobr>
-
+ <span class="sympad"><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdRequest.html#getKeywords()">getKeywords</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Returns targeting information keywords.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ Location</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdRequest.html#getLocation()">getLocation</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Returns the user's location targeting information.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdRequest.html#getManualImpressionsEnabled()">getManualImpressionsEnabled</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Returns <code>true</code> if manual impression reporting is enabled.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+ <T extends <a href="/reference/com/google/android/gms/ads/mediation/NetworkExtras.html">NetworkExtras</a>>
+ T</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdRequest.html#getNetworkExtras(java.lang.Class<T>)">getNetworkExtras</a></span>(Class<T> networkExtrasClass)</nobr>
+
+ <div class="jd-descrdiv">Returns extra parameters to pass to a specific ad network adapter.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ String</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdRequest.html#getPublisherProvidedId()">getPublisherProvidedId</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Returns the identifier used for frequency capping, audience segmentation and targeting,
+ sequential ad rotation, and other audience-based ad delivery controls across devices.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdRequest.html#isTestDevice(android.content.Context)">isTestDevice</a></span>(Context context)</nobr>
+
+ <div class="jd-descrdiv">Returns <code>true</code> if this device will receive test ads.</div>
+
</td></tr>
@@ -1048,240 +1100,182 @@
</div>
<div id="inherited-methods-java.lang.Object-summary" style="display: none;">
<table class="jd-sumtable-expando">
-
-
+
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
Object</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">clone</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
boolean</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">equals</span>(Object arg0)</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">finalize</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
Class<?></nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">getClass</span>()</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
int</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">hashCode</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">notify</span>()</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">notifyAll</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
String</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">toString</span>()</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">wait</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">wait</span>(long arg0)</nobr>
-
- </td></tr>
-
-</table>
- </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
- <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-android.os.Parcelable" class="jd-expando-trigger closed"
- ><img id="inherited-methods-android.os.Parcelable-trigger"
- src="/assets/images/triangle-closed.png"
- class="jd-expando-trigger-img" /></a>
-From interface
-
- android.os.Parcelable
-
-<div id="inherited-methods-android.os.Parcelable">
- <div id="inherited-methods-android.os.Parcelable-list"
- class="jd-inheritedlinks">
- </div>
- <div id="inherited-methods-android.os.Parcelable-summary" style="display: none;">
- <table class="jd-sumtable-expando">
-
-
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
- abstract
-
-
-
-
- int</nobr>
- </td>
- <td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad">describeContents</span>()</nobr>
-
- </td></tr>
-
-
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol"><nobr>
- abstract
-
-
-
-
- void</nobr>
- </td>
- <td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad">writeToParcel</span>(Parcel arg0, int arg1)</nobr>
-
</td></tr>
@@ -1314,6 +1308,284 @@
<!-- Constants -->
+<!-- ========= ENUM CONSTANTS DETAIL ======== -->
+<h2>Constants</h2>
+
+
+
+
+<A NAME="ERROR_CODE_INTERNAL_ERROR"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+ static
+ final
+ int
+ </span>
+ ERROR_CODE_INTERNAL_ERROR
+ </h4>
+ <div class="api-level">
+
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Something happened internally; for instance, an invalid response was received from the ad
+ server.
+</p></div>
+
+
+ <div class="jd-tagdata">
+ <span class="jd-tagtitle">Constant Value: </span>
+ <span>
+
+ 0
+ (0x00000000)
+
+ </span>
+ </div>
+
+ </div>
+</div>
+
+
+
+<A NAME="ERROR_CODE_INVALID_REQUEST"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+ static
+ final
+ int
+ </span>
+ ERROR_CODE_INVALID_REQUEST
+ </h4>
+ <div class="api-level">
+
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>The ad request was invalid; for instance, the ad unit ID was incorrect.
+</p></div>
+
+
+ <div class="jd-tagdata">
+ <span class="jd-tagtitle">Constant Value: </span>
+ <span>
+
+ 1
+ (0x00000001)
+
+ </span>
+ </div>
+
+ </div>
+</div>
+
+
+
+<A NAME="ERROR_CODE_NETWORK_ERROR"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+ static
+ final
+ int
+ </span>
+ ERROR_CODE_NETWORK_ERROR
+ </h4>
+ <div class="api-level">
+
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>The ad request was unsuccessful due to network connectivity.
+</p></div>
+
+
+ <div class="jd-tagdata">
+ <span class="jd-tagtitle">Constant Value: </span>
+ <span>
+
+ 2
+ (0x00000002)
+
+ </span>
+ </div>
+
+ </div>
+</div>
+
+
+
+<A NAME="ERROR_CODE_NO_FILL"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+ static
+ final
+ int
+ </span>
+ ERROR_CODE_NO_FILL
+ </h4>
+ <div class="api-level">
+
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>The ad request was successful, but no ad was returned due to lack of ad inventory.
+</p></div>
+
+
+ <div class="jd-tagdata">
+ <span class="jd-tagtitle">Constant Value: </span>
+ <span>
+
+ 3
+ (0x00000003)
+
+ </span>
+ </div>
+
+ </div>
+</div>
+
+
+
+<A NAME="GENDER_FEMALE"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+ static
+ final
+ int
+ </span>
+ GENDER_FEMALE
+ </h4>
+ <div class="api-level">
+
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Female gender. </p></div>
+
+
+ <div class="jd-tagdata">
+ <span class="jd-tagtitle">Constant Value: </span>
+ <span>
+
+ 2
+ (0x00000002)
+
+ </span>
+ </div>
+
+ </div>
+</div>
+
+
+
+<A NAME="GENDER_MALE"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+ static
+ final
+ int
+ </span>
+ GENDER_MALE
+ </h4>
+ <div class="api-level">
+
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Male gender. </p></div>
+
+
+ <div class="jd-tagdata">
+ <span class="jd-tagtitle">Constant Value: </span>
+ <span>
+
+ 1
+ (0x00000001)
+
+ </span>
+ </div>
+
+ </div>
+</div>
+
+
+
+<A NAME="GENDER_UNKNOWN"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+ static
+ final
+ int
+ </span>
+ GENDER_UNKNOWN
+ </h4>
+ <div class="api-level">
+
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Unknown gender. </p></div>
+
+
+ <div class="jd-tagdata">
+ <span class="jd-tagtitle">Constant Value: </span>
+ <span>
+
+ 0
+ (0x00000000)
+
+ </span>
+ </div>
+
+ </div>
+</div>
+
+
+
+
<!-- Fields -->
@@ -1323,185 +1595,31 @@
-<A NAME="CREATOR"></A>
+<A NAME="DEVICE_ID_EMULATOR"></A>
-<div class="jd-details api apilevel-">
+<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
- public
- static
- final
- <a href="/reference/com/google/android/gms/auth/RecoveryDecisionCreator.html">RecoveryDecisionCreator</a>
+ public
+ static
+ final
+ String
</span>
- CREATOR
+ DEVICE_ID_EMULATOR
</h4>
<div class="api-level">
-
-
-
+
+
+
</div>
<div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
- </div>
-</div>
-
-
-
-<A NAME="isRecoveryInfoNeeded"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- boolean
- </span>
- isRecoveryInfoNeeded
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>Is <code>true</code> if either the account has no recovery information or it
- was updated long time back (controlled by server, default 1 year).
+ <div class="jd-tagdata jd-tagdescr"><p>The <code>deviceId</code> for emulators to be used with
+ <code><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdRequest.Builder.html#addTestDevice(java.lang.String)">addTestDevice(String)</a></code>.
</p></div>
-
- </div>
-</div>
-
-
-<A NAME="isRecoveryInterstitialAllowed"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- boolean
- </span>
- isRecoveryInterstitialAllowed
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>Is <code>true</code> iff the user has permission to update the account.
- Dasher accounts can have recovery information edit disabled by the administrator.
- Eg: @google.com
-</p></div>
-
-
- </div>
-</div>
-
-
-
-<A NAME="recoveryIntent"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- PendingIntent
- </span>
- recoveryIntent
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>A PendingIntent to an activity that gathers recovery information for the given account.
- This intent will be null iff isRecoveryInterstitialAllowed is <code>false</code>.
-</p></div>
-
-
- </div>
-</div>
-
-
-
-<A NAME="recoveryIntentWithoutIntro"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- PendingIntent
- </span>
- recoveryIntentWithoutIntro
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>A PendingIntent to an activity that gathers recovery information for the given account.
- This intent will be null iff isRecoveryInterstitialAllowed is <code>false</code>.
- This intent directly skips to the input activity without showing the intro message.
-</p></div>
-
-
- </div>
-</div>
-
-
-
-<A NAME="showRecoveryInterstitial"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- boolean
- </span>
- showRecoveryInterstitial
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>Represents the decision and should be obeyed by the client. The remaining
- two flags are provided as additional information for one off decisions. This value
- is <code>true</code> iff isRecoveryInfoNeeded is <code>true</code>, isRecoveryInterstitialAllowed is
- <code>true</code> and a specified period (controlled by server, default 2 months) has passed
- since the user was shown a prompt for recovery information on any google property
- (Android, Web, etc.)
-</p></div>
-
-
</div>
</div>
@@ -1511,42 +1629,6 @@
<!-- Public ctors -->
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<h2>Public Constructors</h2>
-
-
-
-<A NAME="RecoveryDecision()"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
-
-
-
- </span>
- <span class="sympad">RecoveryDecision</span>
- <span class="normal">()</span>
- </h4>
- <div class="api-level">
- <div></div>
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
- </div>
-</div>
-
-
-
-
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<!-- Protected ctors -->
@@ -1560,88 +1642,248 @@
-<A NAME="describeContents()"></A>
+<A NAME="getBirthday()"></A>
-<div class="jd-details api apilevel-">
+<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
- public
-
-
-
-
- int
+ public
+
+
+
+
+ Date
</span>
- <span class="sympad">describeContents</span>
+ <span class="sympad">getBirthday</span>
<span class="normal">()</span>
</h4>
<div class="api-level">
<div></div>
-
-
+
+
</div>
<div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+ <div class="jd-tagdata jd-tagdescr"><p>Returns the user's birthday targeting information. Returns <code>null</code> if the birthday was
+ not set.
+</p></div>
</div>
</div>
-<A NAME="getVersionCode()"></A>
+<A NAME="getGender()"></A>
-<div class="jd-details api apilevel-">
+<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
- public
-
-
-
-
+ public
+
+
+
+
int
</span>
- <span class="sympad">getVersionCode</span>
+ <span class="sympad">getGender</span>
<span class="normal">()</span>
</h4>
<div class="api-level">
<div></div>
-
-
+
+
</div>
<div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+ <div class="jd-tagdata jd-tagdescr"><p>Returns the user's gender targeting information. Returns <code>-1</code> if the gender was not
+ set.
+</p></div>
</div>
</div>
-<A NAME="writeToParcel(android.os.Parcel, int)"></A>
+<A NAME="getKeywords()"></A>
-<div class="jd-details api apilevel-">
+<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
- public
-
-
-
-
- void
+ public
+
+
+
+
+ Set<String>
</span>
- <span class="sympad">writeToParcel</span>
- <span class="normal">(Parcel out, int flags)</span>
+ <span class="sympad">getKeywords</span>
+ <span class="normal">()</span>
</h4>
<div class="api-level">
<div></div>
-
-
+
+
</div>
<div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+ <div class="jd-tagdata jd-tagdescr"><p>Returns targeting information keywords. Returns an empty <code><a href="/reference/java/util/Set.html">Set</a></code> if no
+ keywords were added.
+</p></div>
+
+ </div>
+</div>
+
+
+<A NAME="getLocation()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ Location
+ </span>
+ <span class="sympad">getLocation</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Returns the user's location targeting information. Returns <code>null</code> if the location was
+ not set.
+</p></div>
+
+ </div>
+</div>
+
+
+<A NAME="getManualImpressionsEnabled()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ boolean
+ </span>
+ <span class="sympad">getManualImpressionsEnabled</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Returns <code>true</code> if manual impression reporting is enabled.
+</p></div>
+
+ </div>
+</div>
+
+
+<A NAME="getNetworkExtras(java.lang.Class<T>)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ T
+ </span>
+ <span class="sympad">getNetworkExtras</span>
+ <span class="normal">(Class<T> networkExtrasClass)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Returns extra parameters to pass to a specific ad network adapter. Ad network adapters
+ provide a <code><a href="/reference/com/google/android/gms/ads/mediation/NetworkExtras.html">NetworkExtras</a></code> class. Returns <code>null</code> if no network extras of the
+ provided type were set.
+</p></div>
+
+ </div>
+</div>
+
+
+<A NAME="getPublisherProvidedId()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ String
+ </span>
+ <span class="sympad">getPublisherProvidedId</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Returns the identifier used for frequency capping, audience segmentation and targeting,
+ sequential ad rotation, and other audience-based ad delivery controls across devices.
+</p></div>
+
+ </div>
+</div>
+
+
+<A NAME="isTestDevice(android.content.Context)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ boolean
+ </span>
+ <span class="sympad">isTestDevice</span>
+ <span class="normal">(Context context)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Returns <code>true</code> if this device will receive test ads.
+</p></div>
</div>
</div>
@@ -1658,17 +1900,17 @@
<A NAME="navbar_top"></A>
<div id="footer" class="wrap" >
-
+
<div id="copyright">
-
+
Except as noted, this content is licensed under <a
- href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.
+ href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.
For details and restrictions, see the <a href="/license.html">
Content License</a>.
</div>
<div id="build_info">
-
+
<script src="/timestamp.js" type="text/javascript"></script>
<script>document.write(BUILD_TIMESTAMP)</script>
@@ -1676,7 +1918,7 @@
<div id="footerlinks">
-
+
<p>
<a href="/about/index.html">About Android</a> |
<a href="/legal.html">Legal</a> |
@@ -1689,7 +1931,7 @@
</div><!-- end doc-content -->
-</div> <!-- end body-content -->
+</div> <!-- end body-content -->
diff --git a/docs/html/reference/com/google/android/gms/ads/doubleclick/PublisherAdView.html b/docs/html/reference/com/google/android/gms/ads/doubleclick/PublisherAdView.html
new file mode 100644
index 0000000..a3195c9
--- /dev/null
+++ b/docs/html/reference/com/google/android/gms/ads/doubleclick/PublisherAdView.html
@@ -0,0 +1,13887 @@
+<!DOCTYPE html>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<html>
+<head>
+
+
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<meta name="viewport" content="width=device-width" />
+
+<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
+<title>PublisherAdView | Android Developers</title>
+
+<!-- STYLESHEETS -->
+<link rel="stylesheet"
+href="//fonts.googleapis.com/css?family=Roboto:regular,medium,thin,italic,mediumitalic,bold" title="roboto">
+<link href="/assets/css/default.css" rel="stylesheet" type="text/css">
+
+
+
+<!-- JAVASCRIPT -->
+<script src="//www.google.com/jsapi" type="text/javascript"></script>
+<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
+<script type="text/javascript">
+ var toRoot = "/";
+ var metaTags = [];
+ var devsite = false;
+</script>
+<script src="/assets/js/docs.js" type="text/javascript"></script>
+
+<script type="text/javascript">
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-5831155-1']);
+ _gaq.push(['_trackPageview']);
+
+ (function() {
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+ })();
+</script>
+</head>
+<body class="gc-documentation google
+ develop" itemscope itemtype="http://schema.org/Article">
+ <div id="doc-api-level" class="" style="display:none"></div>
+ <a name="top"></a>
+
+<a name="top"></a>
+
+ <!-- Header -->
+ <div id="header">
+ <div class="wrap" id="header-wrap">
+ <div class="col-3 logo">
+ <a href="/index.html">
+ <img src="/assets/images/dac_logo.png" width="123" height="25" alt="Android Developers" />
+ </a>
+ <div class="btn-quicknav" id="btn-quicknav">
+ <a href="#" class="arrow-inactive">Quicknav</a>
+ <a href="#" class="arrow-active">Quicknav</a>
+ </div>
+ </div>
+ <ul class="nav-x col-9">
+ <li class="design">
+ <a href="/design/index.html"
+ zh-tw-lang="設計"
+ zh-cn-lang="设计"
+ ru-lang="Проектирование"
+ ko-lang="디자인"
+ ja-lang="設計"
+ es-lang="Diseñar"
+ >Design</a></li>
+ <li class="develop"><a href="/develop/index.html"
+ zh-tw-lang="開發"
+ zh-cn-lang="开发"
+ ru-lang="Разработка"
+ ko-lang="개발"
+ ja-lang="開発"
+ es-lang="Desarrollar"
+ >Develop</a></li>
+ <li class="distribute last"><a href="/distribute/index.html"
+ zh-tw-lang="發佈"
+ zh-cn-lang="分发"
+ ru-lang="Распространение"
+ ko-lang="배포"
+ ja-lang="配布"
+ es-lang="Distribuir"
+ >Distribute</a></li>
+ </ul>
+
+ <!-- New Search -->
+ <div class="menu-container">
+ <div class="moremenu">
+ <div id="more-btn"></div>
+ </div>
+ <div class="morehover" id="moremenu">
+ <div class="top"></div>
+ <div class="mid">
+ <div class="header">Links</div>
+ <ul>
+ <li><a href="https://play.google.com/apps/publish/">Google Play Developer Console</a></li>
+ <li><a href="http://android-developers.blogspot.com/">Android Developers Blog</a></li>
+ <li><a href="/about/index.html">About Android</a></li>
+ </ul>
+ <div class="header">Android Sites</div>
+ <ul>
+ <li><a href="http://www.android.com">Android.com</a></li>
+ <li class="active"><a>Android Developers</a></li>
+ <li><a href="http://source.android.com">Android Open Source Project</a></li>
+ </ul>
+
+
+
+ <div class="header">Language</div>
+ <div id="language" class="locales">
+ <select name="language" onChange="changeLangPref(this.value, true)">
+ <option value="en">English</option>
+ <option value="es">Español</option>
+ <option value="ja">日本語</option>
+ <option value="ko">한국어</option>
+ <option value="ru">Русский</option>
+ <option value="zh-cn">中文 (中国)</option>
+ <option value="zh-tw">中文 (台灣)</option>
+ </select>
+ </div>
+ <script type="text/javascript">
+ <!--
+ loadLangPref();
+ //-->
+ </script>
+
+
+
+
+ <br class="clearfix" />
+ </div>
+ <div class="bottom"></div>
+ </div>
+ <div class="search" id="search-container">
+ <div class="search-inner">
+ <div id="search-btn"></div>
+ <div class="left"></div>
+ <form onsubmit="return submit_search()">
+ <input id="search_autocomplete" type="text" value="" autocomplete="off" name="q"
+onfocus="search_focus_changed(this, true)" onblur="search_focus_changed(this, false)"
+onkeydown="return search_changed(event, true, '/')"
+onkeyup="return search_changed(event, false, '/')" />
+ </form>
+ <div class="right"></div>
+ <a class="close hide">close</a>
+ <div class="left"></div>
+ <div class="right"></div>
+ </div>
+ </div>
+
+ <div class="search_filtered_wrapper reference">
+ <div class="suggest-card reference no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ </div>
+
+ <div class="search_filtered_wrapper docs">
+ <div class="suggest-card dummy no-display"> </div>
+ <div class="suggest-card develop no-display">
+ <ul class="search_filtered">
+ </ul>
+ <div class="child-card guides no-display">
+ </div>
+ <div class="child-card training no-display">
+ </div>
+ <div class="child-card samples no-display">
+ </div>
+ </div>
+ <div class="suggest-card design no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ <div class="suggest-card distribute no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ </div>
+
+ </div>
+ <!-- /New Search>
+
+
+ <!-- Expanded quicknav -->
+ <div id="quicknav" class="col-9">
+ <ul>
+ <li class="design">
+ <ul>
+ <li><a href="/design/index.html">Get Started</a></li>
+ <li><a href="/design/style/index.html">Style</a></li>
+ <li><a href="/design/patterns/index.html">Patterns</a></li>
+ <li><a href="/design/building-blocks/index.html">Building Blocks</a></li>
+ <li><a href="/design/downloads/index.html">Downloads</a></li>
+ <li><a href="/design/videos/index.html">Videos</a></li>
+ </ul>
+ </li>
+ <li class="develop">
+ <ul>
+ <li><a href="/training/index.html"
+ zh-tw-lang="訓練課程"
+ zh-cn-lang="培训"
+ ru-lang="Курсы"
+ ko-lang="교육"
+ ja-lang="トレーニング"
+ es-lang="Capacitación"
+ >Training</a></li>
+ <li><a href="/guide/index.html"
+ zh-tw-lang="API 指南"
+ zh-cn-lang="API 指南"
+ ru-lang="Руководства по API"
+ ko-lang="API 가이드"
+ ja-lang="API ガイド"
+ es-lang="Guías de la API"
+ >API Guides</a></li>
+ <li><a href="/reference/packages.html"
+ zh-tw-lang="參考資源"
+ zh-cn-lang="参考"
+ ru-lang="Справочник"
+ ko-lang="참조문서"
+ ja-lang="リファレンス"
+ es-lang="Referencia"
+ >Reference</a></li>
+ <li><a href="/tools/index.html"
+ zh-tw-lang="相關工具"
+ zh-cn-lang="工具"
+ ru-lang="Инструменты"
+ ko-lang="도구"
+ ja-lang="ツール"
+ es-lang="Herramientas"
+ >Tools</a>
+ <ul><li><a href="/sdk/index.html">Get the SDK</a></li></ul>
+ </li>
+ <li><a href="/google/index.html">Google Services</a>
+ </li>
+
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
+ </ul>
+ </li>
+ <li class="distribute last">
+ <ul>
+ <li><a href="/distribute/index.html">Google Play</a></li>
+ <li><a href="/distribute/googleplay/publish/index.html">Publishing</a></li>
+ <li><a href="/distribute/googleplay/promote/index.html">Promoting</a></li>
+ <li><a href="/distribute/googleplay/quality/index.html">App Quality</a></li>
+ <li><a href="/distribute/googleplay/spotlight/index.html">Spotlight</a></li>
+ <li><a href="/distribute/open.html">Open Distribution</a></li>
+ </ul>
+ </li>
+ </ul>
+ </div>
+ <!-- /Expanded quicknav -->
+ </div>
+ </div>
+ <!-- /Header -->
+
+
+ <div id="searchResults" class="wrap" style="display:none;">
+ <h2 id="searchTitle">Results</h2>
+ <div id="leftSearchControl" class="search-control">Loading...</div>
+ </div>
+
+
+
+ <!-- Secondary x-nav -->
+ <div id="nav-x">
+ <div class="wrap">
+ <ul class="nav-x col-9 develop" style="width:100%">
+ <li class="training"><a href="/training/index.html"
+ zh-tw-lang="訓練課程"
+ zh-cn-lang="培训"
+ ru-lang="Курсы"
+ ko-lang="교육"
+ ja-lang="トレーニング"
+ es-lang="Capacitación"
+ >Training</a></li>
+ <li class="guide"><a href="/guide/index.html"
+ zh-tw-lang="API 指南"
+ zh-cn-lang="API 指南"
+ ru-lang="Руководства по API"
+ ko-lang="API 가이드"
+ ja-lang="API ガイド"
+ es-lang="Guías de la API"
+ >API Guides</a></li>
+ <li class="reference"><a href="/reference/packages.html"
+ zh-tw-lang="參考資源"
+ zh-cn-lang="参考"
+ ru-lang="Справочник"
+ ko-lang="참조문서"
+ ja-lang="リファレンス"
+ es-lang="Referencia"
+ >Reference</a></li>
+ <li class="tools"><a href="/tools/index.html"
+ zh-tw-lang="相關工具"
+ zh-cn-lang="工具"
+ ru-lang="Инструменты"
+ ko-lang="도구"
+ ja-lang="ツール"
+ es-lang="Herramientas"
+ >Tools</a></li>
+ <li class="google"><a href="/google/index.html"
+ >Google Services</a>
+ </li>
+
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
+ </ul>
+ </div>
+
+ </div>
+ <!-- /Sendondary x-nav -->
+
+
+
+
+
+
+
+
+
+ <div class="wrap clearfix" id="body-content">
+ <div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
+ <div id="devdoc-nav" class="scroll-pane">
+<a class="totop" href="#top" data-g-event="left-nav-top">to top</a>
+
+
+
+<ul id="nav">
+
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/index.html">
+ <span class="en">Overview</span>
+ </a></div>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/games.html">
+ <span class="en">Games</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/location.html">
+ <span class="en">Location</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/plus.html">
+ <span class="en">Google+</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/maps.html">
+ <span class="en">Maps</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play-services/ads.html">
+ <span class="en">Ads</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play-services/id.html">
+ <span class="en">Advertising ID</span></a>
+ </li>
+ </ul>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/wallet.html">
+ <span class="en">Wallet</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/auth.html">
+ <span class="en">Authorization</span>
+ </a></div>
+ </li>
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play-services/index.html">
+ <span class="en">Google Play Services</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play-services/setup.html">
+ <span class="en">Setup</span></a>
+ </li>
+ <li id="gms-tree-list" class="nav-section">
+ <div class="nav-section-header">
+ <a href="/reference/gms-packages.html">
+ <span class="en">Reference</span>
+ </a>
+ <div>
+ </li>
+ </ul>
+ </li>
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/billing/index.html">
+ <span class="en">Google Play In-app Billing</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/billing/billing_overview.html">
+ <span class="en">Overview</span></a>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/api.html">
+ <span class="en">Version 3 API</span></a></div>
+ <ul>
+ <li><a href="/google/play/billing/billing_integrate.html">
+ <span class="en">Implementing the API</span></a></li>
+ <li><a href="/google/play/billing/billing_reference.html">
+ <span class="en">Reference</span></a></li>
+ </ul>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/v2/api.html">
+ <span class="en">Version 2 API</span></a></div>
+ <ul>
+ <li><a href="/google/play/billing/v2/billing_integrate.html">
+ <span class="en">Implementing the API</span></a></li>
+ <li><a href="/google/play/billing/v2/billing_subscriptions.html">
+ <span class="en">Subscriptions</span></a></li>
+ <li><a href="/google/play/billing/v2/billing_reference.html">
+ <span class="en">Reference</span></a></li>
+ </ul>
+ </li>
+ <li><a href="/google/play/billing/billing_subscriptions.html">
+ <span class="en">Subscriptions</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_best_practices.html">
+ <span class="en">Security and Design</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_testing.html">
+ <span class="en">Testing In-app Billing</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_admin.html">
+ <span class="en">Administering In-app Billing</span></a>
+ </li>
+ <li><a href="/google/play/billing/gp-purchase-status-api.html">
+ <span class="en">Purchase Status API</span></a>
+ </li>
+ <li><a href="/google/play/billing/versions.html">
+ <span class="en">Version Notes</span></a>
+ </li>
+ </ul>
+ </li>
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/gcm/index.html">
+ <span class="en">Google Cloud Messaging</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
+ <li><a href="/google/gcm/gs.html">
+ <span class="en">Getting Started</span></a>
+ </li>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
+ </li>
+ <li><a href="/google/gcm/notifications.html">
+ <span class="en">User Notifications</span></a>
+ </li>
+ <li><a href="/google/gcm/adv.html">
+ <span class="en">Advanced Topics</span></a>
+ </li>
+ <li><a href="/google/gcm/c2dm.html">
+ <span class="en">Migration</span></a>
+ </li>
+ <li id="gcm-tree-list" class="nav-section">
+ <div class="nav-section-header">
+ <a href="/reference/gcm-packages.html">
+ <span class="en">Reference</span>
+ </a>
+ <div>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/dist.html">
+ <span class="en">Google Play Distribution</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/filters.html">
+ <span class="en">Filters on Google Play</span></a>
+ </li>
+
+ <li><a href="/google/play/publishing/multiple-apks.html">
+ <span class="en">Multiple APK Support</span></a>
+ </li>
+ <li><a href="/google/play/expansion-files.html">
+ <span class="en">APK Expansion Files</span></a>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/licensing/index.html">
+ <span class="en">Application Licensing</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/licensing/overview.html">
+ <span class="en">Licensing Overview</span></a>
+ </li>
+ <li><a href="/google/play/licensing/setting-up.html">
+ <span class="en">Setting Up for Licensing</span></a>
+ </li>
+ <li><a href="/google/play/licensing/adding-licensing.html">
+ <span class="en">Adding Licensing to Your App</span></a>
+ </li>
+ <li><a href="/google/play/licensing/licensing-reference.html">
+ <span class="en">Licensing Reference</span></a>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/backup/index.html">
+ Android Backup Service</a>
+ </div>
+ <ul>
+ <li><a href="/google/backup/signup.html">
+ Register</a>
+ </li>
+ </ul>
+ </li>
+
+ </ul>
+
+</li>
+
+
+
+</ul>
+
+<script type="text/javascript">
+<!--
+ buildToggleLists();
+ changeNavLang(getLangPref());
+//-->
+</script>
+
+
+
+
+ </div>
+ <script type="text/javascript">
+ showGoogleRefTree();
+
+ </script>
+ </div> <!-- end side-nav -->
+ <script>
+ $(document).ready(function() {
+ scrollIntoView("devdoc-nav");
+ });
+ </script>
+
+
+
+
+
+
+<div class="col-12" id="doc-col">
+
+<div id="api-info-block">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<div class="sum-details-links">
+
+Summary:
+
+
+ <a href="#lattrs">XML Attrs</a>
+
+
+
+
+
+
+ | <a href="#inhconstants">Inherited Constants</a>
+
+
+
+
+ | <a href="#inhfields">Inherited Fields</a>
+
+
+
+ | <a href="#pubctors">Ctors</a>
+
+
+
+
+ | <a href="#pubmethods">Methods</a>
+
+
+
+ | <a href="#promethods">Protected Methods</a>
+
+
+
+ | <a href="#inhmethods">Inherited Methods</a>
+
+| <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
+
+</div><!-- end sum-details-links -->
+<div class="api-level">
+
+
+
+
+</div>
+</div><!-- end api-info-block -->
+
+
+<!-- ======== START OF CLASS DATA ======== -->
+
+<div id="jd-header">
+ public
+
+ final
+
+ class
+<h1 itemprop="name">PublisherAdView</h1>
+
+
+
+
+
+
+
+
+
+
+
+
+ extends ViewGroup<br/>
+
+
+
+
+
+
+
+
+
+</div><!-- end header -->
+
+<div id="naMessage"></div>
+
+<div id="jd-content" class="api apilevel-">
+<table class="jd-inheritance-table">
+
+
+ <tr>
+
+ <td colspan="4" class="jd-inheritance-class-cell">java.lang.Object</td>
+ </tr>
+
+
+ <tr>
+
+ <td class="jd-inheritance-space"> ↳</td>
+
+ <td colspan="3" class="jd-inheritance-class-cell">android.view.View</td>
+ </tr>
+
+
+ <tr>
+
+ <td class="jd-inheritance-space"> </td>
+
+ <td class="jd-inheritance-space"> ↳</td>
+
+ <td colspan="2" class="jd-inheritance-class-cell">android.view.ViewGroup</td>
+ </tr>
+
+
+ <tr>
+
+ <td class="jd-inheritance-space"> </td>
+
+ <td class="jd-inheritance-space"> </td>
+
+ <td class="jd-inheritance-space"> ↳</td>
+
+ <td colspan="1" class="jd-inheritance-class-cell">com.google.android.gms.ads.doubleclick.PublisherAdView</td>
+ </tr>
+
+
+</table>
+
+
+
+
+
+
+
+<div class="jd-descr">
+
+
+<h2>Class Overview</h2>
+<p itemprop="articleBody">The <code><a href="/reference/android/view/View.html">View</a></code> to display banner ads for use with DoubleClick for Publishers. The
+ ad size and ad unit ID must be set prior to calling <code><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdView.html#loadAd(com.google.android.gms.ads.doubleclick.PublisherAdRequest)">loadAd(PublisherAdRequest)</a></code>.
+ <p>
+ Sample code:
+ <pre>
+ public class MyActivity extends Activity {
+ private PublisherAdView mPublisherAdView;
+
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+
+ LinearLayout layout = new LinearLayout(this);
+ layout.setOrientation(LinearLayout.VERTICAL);
+
+ // Create a banner ad. The ad size and ad unit ID must be set before calling loadAd.
+ mPublisherAdView = new PublisherAdView(this);
+ mPublisherAdView.setAdSize(AdSize.SMART_BANNER);
+ mPublisherAdView.setAdUnitId("myAdUnitId");
+
+ // Create an ad request.
+ PublisherAdRequest.Builder publisherAdRequestBuilder = new PublisherAdRequest.Builder();
+
+ // Optionally populate the ad request builder.
+ publisherAdRequestBuilder.addTestDevice(PublisherAdRequest.DEVICE_ID_EMULATOR);
+
+ // Add the PublisherAdView to the view hierarchy.
+ layout.addView(mPublisherAdView);
+
+ // Start loading the ad.
+ mPublisherAdView.loadAd(PublisherAdRequestBuilder.build());
+
+ setContentView(layout);
+ }
+
+ @Override
+ public void onResume() {
+ super.onResume();
+
+ // Resume the PublisherAdView.
+ mPublisherAdView.resume();
+ }
+
+ @Override
+ public void onPause() {
+ // Pause the PublisherAdView.
+ mPublisherAdView.pause();
+
+ super.onPause();
+ }
+
+ @Override
+ public void onDestroy() {
+ // Destroy the PublisherAdView.
+ mPublisherAdView.destroy();
+
+ super.onDestroy();
+ }
+ }</pre></p>
+
+
+
+
+
+</div><!-- jd-descr -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<div class="jd-descr">
+
+
+<h2>Summary</h2>
+
+
+
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+<table id="lattrs" class="jd-sumtable"><tr><th colspan="12">XML Attributes</th></tr>
+
+
+ <tr>
+ <td><nobr><em>Attribute Name</em></nobr></td>
+ <td><nobr><em>Related Method</em></nobr></td>
+ <td><nobr><em>Description</em></nobr></td>
+ </tr>
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdView.html#attr_com.google.android.gms:adSizes">com.google.android.gms:adSizes</a></td>
+ <td class="jd-linkcol">
+ <a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdView.html#setAdSizes(com.google.android.gms.ads.AdSize...)">setAdSizes(AdSize)</a>
+
+ </td>
+ <td class="jd-descrcol" width="100%">A comma-separated list of the supported ad sizes. </td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdView.html#attr_com.google.android.gms:adUnitId">com.google.android.gms:adUnitId</a></td>
+ <td class="jd-linkcol">
+ <a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdView.html#setAdUnitId(java.lang.String)">setAdUnitId(String)</a>
+
+ </td>
+ <td class="jd-descrcol" width="100%">The ad unit ID. </td>
+ </tr>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<!-- =========== ENUM CONSTANT SUMMARY =========== -->
+<table id="inhconstants" class="jd-sumtable"><tr><th>
+ <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
+ <div style="clear:left;">Inherited Constants</div></th></tr>
+
+
+<tr class="api apilevel-" >
+<td colspan="12">
+
+ <a href="#" onclick="return toggleInherited(this, null)" id="inherited-constants-android.view.ViewGroup" class="jd-expando-trigger closed"
+ ><img id="inherited-constants-android.view.ViewGroup-trigger"
+ src="/assets/images/triangle-closed.png"
+ class="jd-expando-trigger-img" /></a>From class
+android.view.ViewGroup
+<div id="inherited-constants-android.view.ViewGroup">
+ <div id="inherited-constants-android.view.ViewGroup-list"
+ class="jd-inheritedlinks">
+ </div>
+ <div id="inherited-constants-android.view.ViewGroup-summary" style="display: none;">
+ <table class="jd-sumtable-expando">
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">CLIP_TO_PADDING_MASK</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">FOCUS_AFTER_DESCENDANTS</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">FOCUS_BEFORE_DESCENDANTS</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">FOCUS_BLOCK_DESCENDANTS</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">LAYOUT_MODE_CLIP_BOUNDS</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">LAYOUT_MODE_OPTICAL_BOUNDS</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">PERSISTENT_ALL_CACHES</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">PERSISTENT_ANIMATION_CACHE</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">PERSISTENT_NO_CACHE</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">PERSISTENT_SCROLLING_CACHE</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+</table>
+ </div>
+</div>
+</td></tr>
+
+
+
+<tr class="api apilevel-" >
+<td colspan="12">
+
+ <a href="#" onclick="return toggleInherited(this, null)" id="inherited-constants-android.view.View" class="jd-expando-trigger closed"
+ ><img id="inherited-constants-android.view.View-trigger"
+ src="/assets/images/triangle-closed.png"
+ class="jd-expando-trigger-img" /></a>From class
+android.view.View
+<div id="inherited-constants-android.view.View">
+ <div id="inherited-constants-android.view.View-list"
+ class="jd-inheritedlinks">
+ </div>
+ <div id="inherited-constants-android.view.View-summary" style="display: none;">
+ <table class="jd-sumtable-expando">
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">ACCESSIBILITY_LIVE_REGION_ASSERTIVE</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">ACCESSIBILITY_LIVE_REGION_NONE</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">ACCESSIBILITY_LIVE_REGION_POLITE</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">DRAWING_CACHE_QUALITY_AUTO</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">DRAWING_CACHE_QUALITY_HIGH</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">DRAWING_CACHE_QUALITY_LOW</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">FIND_VIEWS_WITH_CONTENT_DESCRIPTION</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">FIND_VIEWS_WITH_TEXT</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">FOCUSABLES_ALL</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">FOCUSABLES_TOUCH_MODE</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">FOCUS_BACKWARD</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">FOCUS_DOWN</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">FOCUS_FORWARD</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">FOCUS_LEFT</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">FOCUS_RIGHT</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">FOCUS_UP</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">GONE</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">HAPTIC_FEEDBACK_ENABLED</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">IMPORTANT_FOR_ACCESSIBILITY_AUTO</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">IMPORTANT_FOR_ACCESSIBILITY_NO</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">IMPORTANT_FOR_ACCESSIBILITY_NO_HIDE_DESCENDANTS</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">IMPORTANT_FOR_ACCESSIBILITY_YES</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">INVISIBLE</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">KEEP_SCREEN_ON</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">LAYER_TYPE_HARDWARE</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">LAYER_TYPE_NONE</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">LAYER_TYPE_SOFTWARE</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">LAYOUT_DIRECTION_INHERIT</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">LAYOUT_DIRECTION_LOCALE</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">LAYOUT_DIRECTION_LTR</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">LAYOUT_DIRECTION_RTL</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">MEASURED_HEIGHT_STATE_SHIFT</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">MEASURED_SIZE_MASK</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">MEASURED_STATE_MASK</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">MEASURED_STATE_TOO_SMALL</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">NO_ID</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">OVER_SCROLL_ALWAYS</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">OVER_SCROLL_IF_CONTENT_SCROLLS</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">OVER_SCROLL_NEVER</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">SCREEN_STATE_OFF</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">SCREEN_STATE_ON</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">SCROLLBARS_INSIDE_INSET</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">SCROLLBARS_INSIDE_OVERLAY</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">SCROLLBARS_OUTSIDE_INSET</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">SCROLLBARS_OUTSIDE_OVERLAY</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">SCROLLBAR_POSITION_DEFAULT</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">SCROLLBAR_POSITION_LEFT</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">SCROLLBAR_POSITION_RIGHT</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">SOUND_EFFECTS_ENABLED</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">STATUS_BAR_HIDDEN</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">STATUS_BAR_VISIBLE</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">SYSTEM_UI_FLAG_FULLSCREEN</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">SYSTEM_UI_FLAG_HIDE_NAVIGATION</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">SYSTEM_UI_FLAG_IMMERSIVE</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">SYSTEM_UI_FLAG_IMMERSIVE_STICKY</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">SYSTEM_UI_FLAG_LAYOUT_STABLE</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">SYSTEM_UI_FLAG_LOW_PROFILE</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">SYSTEM_UI_FLAG_VISIBLE</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">SYSTEM_UI_LAYOUT_FLAGS</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">TEXT_ALIGNMENT_CENTER</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">TEXT_ALIGNMENT_GRAVITY</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">TEXT_ALIGNMENT_INHERIT</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">TEXT_ALIGNMENT_TEXT_END</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">TEXT_ALIGNMENT_TEXT_START</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">TEXT_ALIGNMENT_VIEW_END</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">TEXT_ALIGNMENT_VIEW_START</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">TEXT_DIRECTION_ANY_RTL</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">TEXT_DIRECTION_FIRST_STRONG</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">TEXT_DIRECTION_INHERIT</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">TEXT_DIRECTION_LOCALE</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">TEXT_DIRECTION_LTR</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">TEXT_DIRECTION_RTL</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">String</td>
+ <td class="jd-linkcol">VIEW_LOG_TAG</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">VISIBLE</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+</table>
+ </div>
+</div>
+</td></tr>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</table>
+
+
+
+
+
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+<table id="inhfields" class="jd-sumtable"><tr><th>
+ <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
+ <div style="clear:left;">Inherited Fields</div></th></tr>
+
+
+
+
+<tr class="api apilevel-" >
+<td colspan="12">
+
+ <a href="#" onclick="return toggleInherited(this, null)" id="inherited-fields-android.view.View" class="jd-expando-trigger closed"
+ ><img id="inherited-fields-android.view.View-trigger"
+ src="/assets/images/triangle-closed.png"
+ class="jd-expando-trigger-img" /></a>From class
+android.view.View
+<div id="inherited-fields-android.view.View">
+ <div id="inherited-fields-android.view.View-list"
+ class="jd-inheritedlinks">
+ </div>
+ <div id="inherited-fields-android.view.View-summary" style="display: none;">
+ <table class="jd-sumtable-expando">
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ public
+ static
+ final
+ Property<View, Float></nobr></td>
+ <td class="jd-linkcol">ALPHA</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ protected
+ static
+ final
+ int[]</nobr></td>
+ <td class="jd-linkcol">EMPTY_STATE_SET</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ protected
+ static
+ final
+ int[]</nobr></td>
+ <td class="jd-linkcol">ENABLED_FOCUSED_SELECTED_STATE_SET</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ protected
+ static
+ final
+ int[]</nobr></td>
+ <td class="jd-linkcol">ENABLED_FOCUSED_SELECTED_WINDOW_FOCUSED_STATE_SET</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ protected
+ static
+ final
+ int[]</nobr></td>
+ <td class="jd-linkcol">ENABLED_FOCUSED_STATE_SET</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ protected
+ static
+ final
+ int[]</nobr></td>
+ <td class="jd-linkcol">ENABLED_FOCUSED_WINDOW_FOCUSED_STATE_SET</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ protected
+ static
+ final
+ int[]</nobr></td>
+ <td class="jd-linkcol">ENABLED_SELECTED_STATE_SET</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ protected
+ static
+ final
+ int[]</nobr></td>
+ <td class="jd-linkcol">ENABLED_SELECTED_WINDOW_FOCUSED_STATE_SET</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ protected
+ static
+ final
+ int[]</nobr></td>
+ <td class="jd-linkcol">ENABLED_STATE_SET</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ protected
+ static
+ final
+ int[]</nobr></td>
+ <td class="jd-linkcol">ENABLED_WINDOW_FOCUSED_STATE_SET</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ protected
+ static
+ final
+ int[]</nobr></td>
+ <td class="jd-linkcol">FOCUSED_SELECTED_STATE_SET</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ protected
+ static
+ final
+ int[]</nobr></td>
+ <td class="jd-linkcol">FOCUSED_SELECTED_WINDOW_FOCUSED_STATE_SET</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ protected
+ static
+ final
+ int[]</nobr></td>
+ <td class="jd-linkcol">FOCUSED_STATE_SET</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ protected
+ static
+ final
+ int[]</nobr></td>
+ <td class="jd-linkcol">FOCUSED_WINDOW_FOCUSED_STATE_SET</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ protected
+ static
+ final
+ int[]</nobr></td>
+ <td class="jd-linkcol">PRESSED_ENABLED_FOCUSED_SELECTED_STATE_SET</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ protected
+ static
+ final
+ int[]</nobr></td>
+ <td class="jd-linkcol">PRESSED_ENABLED_FOCUSED_SELECTED_WINDOW_FOCUSED_STATE_SET</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ protected
+ static
+ final
+ int[]</nobr></td>
+ <td class="jd-linkcol">PRESSED_ENABLED_FOCUSED_STATE_SET</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ protected
+ static
+ final
+ int[]</nobr></td>
+ <td class="jd-linkcol">PRESSED_ENABLED_FOCUSED_WINDOW_FOCUSED_STATE_SET</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ protected
+ static
+ final
+ int[]</nobr></td>
+ <td class="jd-linkcol">PRESSED_ENABLED_SELECTED_STATE_SET</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ protected
+ static
+ final
+ int[]</nobr></td>
+ <td class="jd-linkcol">PRESSED_ENABLED_SELECTED_WINDOW_FOCUSED_STATE_SET</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ protected
+ static
+ final
+ int[]</nobr></td>
+ <td class="jd-linkcol">PRESSED_ENABLED_STATE_SET</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ protected
+ static
+ final
+ int[]</nobr></td>
+ <td class="jd-linkcol">PRESSED_ENABLED_WINDOW_FOCUSED_STATE_SET</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ protected
+ static
+ final
+ int[]</nobr></td>
+ <td class="jd-linkcol">PRESSED_FOCUSED_SELECTED_STATE_SET</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ protected
+ static
+ final
+ int[]</nobr></td>
+ <td class="jd-linkcol">PRESSED_FOCUSED_SELECTED_WINDOW_FOCUSED_STATE_SET</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ protected
+ static
+ final
+ int[]</nobr></td>
+ <td class="jd-linkcol">PRESSED_FOCUSED_STATE_SET</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ protected
+ static
+ final
+ int[]</nobr></td>
+ <td class="jd-linkcol">PRESSED_FOCUSED_WINDOW_FOCUSED_STATE_SET</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ protected
+ static
+ final
+ int[]</nobr></td>
+ <td class="jd-linkcol">PRESSED_SELECTED_STATE_SET</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ protected
+ static
+ final
+ int[]</nobr></td>
+ <td class="jd-linkcol">PRESSED_SELECTED_WINDOW_FOCUSED_STATE_SET</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ protected
+ static
+ final
+ int[]</nobr></td>
+ <td class="jd-linkcol">PRESSED_STATE_SET</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ protected
+ static
+ final
+ int[]</nobr></td>
+ <td class="jd-linkcol">PRESSED_WINDOW_FOCUSED_STATE_SET</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ public
+ static
+ final
+ Property<View, Float></nobr></td>
+ <td class="jd-linkcol">ROTATION</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ public
+ static
+ final
+ Property<View, Float></nobr></td>
+ <td class="jd-linkcol">ROTATION_X</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ public
+ static
+ final
+ Property<View, Float></nobr></td>
+ <td class="jd-linkcol">ROTATION_Y</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ public
+ static
+ final
+ Property<View, Float></nobr></td>
+ <td class="jd-linkcol">SCALE_X</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ public
+ static
+ final
+ Property<View, Float></nobr></td>
+ <td class="jd-linkcol">SCALE_Y</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ protected
+ static
+ final
+ int[]</nobr></td>
+ <td class="jd-linkcol">SELECTED_STATE_SET</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ protected
+ static
+ final
+ int[]</nobr></td>
+ <td class="jd-linkcol">SELECTED_WINDOW_FOCUSED_STATE_SET</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ public
+ static
+ final
+ Property<View, Float></nobr></td>
+ <td class="jd-linkcol">TRANSLATION_X</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ public
+ static
+ final
+ Property<View, Float></nobr></td>
+ <td class="jd-linkcol">TRANSLATION_Y</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ protected
+ static
+ final
+ int[]</nobr></td>
+ <td class="jd-linkcol">WINDOW_FOCUSED_STATE_SET</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ public
+ static
+ final
+ Property<View, Float></nobr></td>
+ <td class="jd-linkcol">X</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ public
+ static
+ final
+ Property<View, Float></nobr></td>
+ <td class="jd-linkcol">Y</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+</table>
+ </div>
+</div>
+</td></tr>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</table>
+
+
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
+
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ </nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdView.html#PublisherAdView(android.content.Context)">PublisherAdView</a></span>(Context context)</nobr>
+
+ <div class="jd-descrdiv">Construct an <code><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdView.html">PublisherAdView</a></code> from code.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ </nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdView.html#PublisherAdView(android.content.Context, android.util.AttributeSet)">PublisherAdView</a></span>(Context context, AttributeSet attrs)</nobr>
+
+ <div class="jd-descrdiv">Construct a <code><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdView.html">PublisherAdView</a></code> from an XML layout.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ </nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdView.html#PublisherAdView(android.content.Context, android.util.AttributeSet, int)">PublisherAdView</a></span>(Context context, AttributeSet attrs, int defStyle)</nobr>
+
+ <div class="jd-descrdiv">Construct an <code><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdView.html">PublisherAdView</a></code> from an XML layout.</div>
+
+ </td></tr>
+
+
+
+</table>
+
+
+
+
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
+
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdView.html#destroy()">destroy</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Destroy the <code><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdView.html">PublisherAdView</a></code>.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ <a href="/reference/com/google/android/gms/ads/AdListener.html">AdListener</a></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdView.html#getAdListener()">getAdListener</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Returns the <code><a href="/reference/com/google/android/gms/ads/AdListener.html">AdListener</a></code> for this <code><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdView.html">PublisherAdView</a></code>.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ <a href="/reference/com/google/android/gms/ads/AdSize.html">AdSize</a></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdView.html#getAdSize()">getAdSize</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Returns the size of the currently displayed banner ad.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ <a href="/reference/com/google/android/gms/ads/AdSize.html">AdSize[]</a></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdView.html#getAdSizes()">getAdSizes</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Returns the ad sizes supported by this <code><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdView.html">PublisherAdView</a></code>.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ String</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdView.html#getAdUnitId()">getAdUnitId</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Returns the ad unit ID.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ <a href="/reference/com/google/android/gms/ads/doubleclick/AppEventListener.html">AppEventListener</a></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdView.html#getAppEventListener()">getAppEventListener</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Returns the <code><a href="/reference/com/google/android/gms/ads/doubleclick/AppEventListener.html">AppEventListener</a></code> for this <code><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdView.html">PublisherAdView</a></code>.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdView.html#loadAd(com.google.android.gms.ads.doubleclick.PublisherAdRequest)">loadAd</a></span>(<a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdRequest.html">PublisherAdRequest</a> publisherAdRequest)</nobr>
+
+ <div class="jd-descrdiv">Start loading the ad on a background thread.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdView.html#pause()">pause</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Pause any extra processing associated with this <code><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdView.html">PublisherAdView</a></code>.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdView.html#recordManualImpression()">recordManualImpression</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Record a manual impression.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdView.html#resume()">resume</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Resume a <code><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdView.html">PublisherAdView</a></code> after a previous call to <code><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdView.html#pause()">pause()</a></code>.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdView.html#setAdListener(com.google.android.gms.ads.AdListener)">setAdListener</a></span>(<a href="/reference/com/google/android/gms/ads/AdListener.html">AdListener</a> adListener)</nobr>
+
+ <div class="jd-descrdiv">Sets an <code><a href="/reference/com/google/android/gms/ads/AdListener.html">AdListener</a></code> for this <code><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdView.html">PublisherAdView</a></code>.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdView.html#setAdSizes(com.google.android.gms.ads.AdSize...)">setAdSizes</a></span>(<a href="/reference/com/google/android/gms/ads/AdSize.html">AdSize...</a> adSizes)</nobr>
+
+ <div class="jd-descrdiv">Sets the supported sizes of the banner ad.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdView.html#setAdUnitId(java.lang.String)">setAdUnitId</a></span>(String adUnitId)</nobr>
+
+ <div class="jd-descrdiv">Sets the ad unit ID.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdView.html#setAppEventListener(com.google.android.gms.ads.doubleclick.AppEventListener)">setAppEventListener</a></span>(<a href="/reference/com/google/android/gms/ads/doubleclick/AppEventListener.html">AppEventListener</a> appEventListener)</nobr>
+
+ <div class="jd-descrdiv">Sets an <code><a href="/reference/com/google/android/gms/ads/doubleclick/AppEventListener.html">AppEventListener</a></code> for this <code><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdView.html">PublisherAdView</a></code>.</div>
+
+ </td></tr>
+
+
+
+</table>
+
+
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+<table id="promethods" class="jd-sumtable"><tr><th colspan="12">Protected Methods</th></tr>
+
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdView.html#onLayout(boolean, int, int, int, int)">onLayout</a></span>(boolean changed, int left, int top, int right, int bottom)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdView.html#onMeasure(int, int)">onMeasure</a></span>(int widthMeasureSpec, int heightMeasureSpec)</nobr>
+
+ </td></tr>
+
+
+
+</table>
+
+
+
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+<table id="inhmethods" class="jd-sumtable"><tr><th>
+ <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
+ <div style="clear:left;">Inherited Methods</div></th></tr>
+
+
+<tr class="api apilevel-" >
+<td colspan="12">
+ <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-android.view.ViewGroup" class="jd-expando-trigger closed"
+ ><img id="inherited-methods-android.view.ViewGroup-trigger"
+ src="/assets/images/triangle-closed.png"
+ class="jd-expando-trigger-img" /></a>
+From class
+
+ android.view.ViewGroup
+
+<div id="inherited-methods-android.view.ViewGroup">
+ <div id="inherited-methods-android.view.ViewGroup-list"
+ class="jd-inheritedlinks">
+ </div>
+ <div id="inherited-methods-android.view.ViewGroup-summary" style="display: none;">
+ <table class="jd-sumtable-expando">
+
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">addChildrenForAccessibility</span>(ArrayList<View> arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">addFocusables</span>(ArrayList<View> arg0, int arg1, int arg2)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">addStatesFromChildren</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">addTouchables</span>(ArrayList<View> arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">addView</span>(View arg0, int arg1, ViewGroup.LayoutParams arg2)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">addView</span>(View arg0, ViewGroup.LayoutParams arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">addView</span>(View arg0, int arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">addView</span>(View arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">addView</span>(View arg0, int arg1, int arg2)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">addViewInLayout</span>(View arg0, int arg1, ViewGroup.LayoutParams arg2, boolean arg3)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">addViewInLayout</span>(View arg0, int arg1, ViewGroup.LayoutParams arg2)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">attachLayoutAnimationParameters</span>(View arg0, ViewGroup.LayoutParams arg1, int arg2, int arg3)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">attachViewToParent</span>(View arg0, int arg1, ViewGroup.LayoutParams arg2)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">bringChildToFront</span>(View arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">canAnimate</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">checkLayoutParams</span>(ViewGroup.LayoutParams arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">childDrawableStateChanged</span>(View arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">childHasTransientStateChanged</span>(View arg0, boolean arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">cleanupLayoutState</span>(View arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">clearChildFocus</span>(View arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">clearDisappearingChildren</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">clearFocus</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">debug</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">detachAllViewsFromParent</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">detachViewFromParent</span>(View arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">detachViewFromParent</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">detachViewsFromParent</span>(int arg0, int arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">dispatchConfigurationChanged</span>(Configuration arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">dispatchDisplayHint</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">dispatchDragEvent</span>(DragEvent arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">dispatchDraw</span>(Canvas arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">dispatchFreezeSelfOnly</span>(SparseArray<Parcelable> arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">dispatchGenericFocusedEvent</span>(MotionEvent arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">dispatchGenericPointerEvent</span>(MotionEvent arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">dispatchHoverEvent</span>(MotionEvent arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">dispatchKeyEvent</span>(KeyEvent arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">dispatchKeyEventPreIme</span>(KeyEvent arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">dispatchKeyShortcutEvent</span>(KeyEvent arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">dispatchRestoreInstanceState</span>(SparseArray<Parcelable> arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">dispatchSaveInstanceState</span>(SparseArray<Parcelable> arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">dispatchSetActivated</span>(boolean arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">dispatchSetPressed</span>(boolean arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">dispatchSetSelected</span>(boolean arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">dispatchSystemUiVisibilityChanged</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">dispatchThawSelfOnly</span>(SparseArray<Parcelable> arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">dispatchTouchEvent</span>(MotionEvent arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">dispatchTrackballEvent</span>(MotionEvent arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">dispatchUnhandledMove</span>(View arg0, int arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">dispatchVisibilityChanged</span>(View arg0, int arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">dispatchWindowFocusChanged</span>(boolean arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">dispatchWindowSystemUiVisiblityChanged</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">dispatchWindowVisibilityChanged</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">drawChild</span>(Canvas arg0, View arg1, long arg2)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">drawableStateChanged</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">endViewTransition</span>(View arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ View</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">findFocus</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">findViewsWithText</span>(ArrayList<View> arg0, CharSequence arg1, int arg2)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">fitSystemWindows</span>(Rect arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ View</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">focusSearch</span>(View arg0, int arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">focusableViewAvailable</span>(View arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">gatherTransparentRegion</span>(Region arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ ViewGroup.LayoutParams</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">generateDefaultLayoutParams</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ ViewGroup.LayoutParams</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">generateLayoutParams</span>(AttributeSet arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ ViewGroup.LayoutParams</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">generateLayoutParams</span>(ViewGroup.LayoutParams arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ View</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getChildAt</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getChildCount</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getChildDrawingOrder</span>(int arg0, int arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+ static
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getChildMeasureSpec</span>(int arg0, int arg1, int arg2)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getChildStaticTransformation</span>(View arg0, Transformation arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getChildVisibleRect</span>(View arg0, Rect arg1, Point arg2)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getClipChildren</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getDescendantFocusability</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ View</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getFocusedChild</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ LayoutAnimationController</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getLayoutAnimation</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ Animation.AnimationListener</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getLayoutAnimationListener</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getLayoutMode</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ LayoutTransition</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getLayoutTransition</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ ViewOverlay</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getOverlay</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getPersistentDrawingCache</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">hasFocus</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">hasFocusable</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">hasTransientState</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">indexOfChild</span>(View arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">invalidateChild</span>(View arg0, Rect arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ ViewParent</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">invalidateChildInParent</span>(int[] arg0, Rect arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">isAlwaysDrawnWithCacheEnabled</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">isAnimationCacheEnabled</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">isChildrenDrawingOrderEnabled</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">isChildrenDrawnWithCacheEnabled</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">isMotionEventSplittingEnabled</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">jumpDrawablesToCurrentState</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">layout</span>(int arg0, int arg1, int arg2, int arg3)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">measureChild</span>(View arg0, int arg1, int arg2)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">measureChildWithMargins</span>(View arg0, int arg1, int arg2, int arg3, int arg4)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">measureChildren</span>(int arg0, int arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">notifySubtreeAccessibilityStateChanged</span>(View arg0, View arg1, int arg2)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">offsetDescendantRectToMyCoords</span>(View arg0, Rect arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">offsetRectIntoDescendantCoords</span>(View arg0, Rect arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">onAnimationEnd</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">onAnimationStart</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">onAttachedToWindow</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int[]</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">onCreateDrawableState</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">onDetachedFromWindow</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">onInterceptHoverEvent</span>(MotionEvent arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">onInterceptTouchEvent</span>(MotionEvent arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">onLayout</span>(boolean arg0, int arg1, int arg2, int arg3, int arg4)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">onRequestFocusInDescendants</span>(int arg0, Rect arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">onRequestSendAccessibilityEvent</span>(View arg0, AccessibilityEvent arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">recomputeViewAttributes</span>(View arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">removeAllViews</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">removeAllViewsInLayout</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">removeDetachedView</span>(View arg0, boolean arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">removeView</span>(View arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">removeViewAt</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">removeViewInLayout</span>(View arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">removeViews</span>(int arg0, int arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">removeViewsInLayout</span>(int arg0, int arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">requestChildFocus</span>(View arg0, View arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">requestChildRectangleOnScreen</span>(View arg0, Rect arg1, boolean arg2)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">requestDisallowInterceptTouchEvent</span>(boolean arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">requestFocus</span>(int arg0, Rect arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">requestSendAccessibilityEvent</span>(View arg0, AccessibilityEvent arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">requestTransparentRegion</span>(View arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">scheduleLayoutAnimation</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setAddStatesFromChildren</span>(boolean arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setAlwaysDrawnWithCacheEnabled</span>(boolean arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setAnimationCacheEnabled</span>(boolean arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setChildrenDrawingCacheEnabled</span>(boolean arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setChildrenDrawingOrderEnabled</span>(boolean arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setChildrenDrawnWithCacheEnabled</span>(boolean arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setClipChildren</span>(boolean arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setClipToPadding</span>(boolean arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setDescendantFocusability</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setLayoutAnimation</span>(LayoutAnimationController arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setLayoutAnimationListener</span>(Animation.AnimationListener arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setLayoutMode</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setLayoutTransition</span>(LayoutTransition arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setMotionEventSplittingEnabled</span>(boolean arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setOnHierarchyChangeListener</span>(ViewGroup.OnHierarchyChangeListener arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setPersistentDrawingCache</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setStaticTransformationsEnabled</span>(boolean arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">shouldDelayChildPressedState</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">showContextMenuForChild</span>(View arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ ActionMode</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">startActionModeForChild</span>(View arg0, ActionMode.Callback arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">startLayoutAnimation</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">startViewTransition</span>(View arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">updateViewLayout</span>(View arg0, ViewGroup.LayoutParams arg1)</nobr>
+
+ </td></tr>
+
+
+</table>
+ </div>
+</div>
+</td></tr>
+
+
+
+<tr class="api apilevel-" >
+<td colspan="12">
+ <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-android.view.View" class="jd-expando-trigger closed"
+ ><img id="inherited-methods-android.view.View-trigger"
+ src="/assets/images/triangle-closed.png"
+ class="jd-expando-trigger-img" /></a>
+From class
+
+ android.view.View
+
+<div id="inherited-methods-android.view.View">
+ <div id="inherited-methods-android.view.View-list"
+ class="jd-inheritedlinks">
+ </div>
+ <div id="inherited-methods-android.view.View-summary" style="display: none;">
+ <table class="jd-sumtable-expando">
+
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">addChildrenForAccessibility</span>(ArrayList<View> arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">addFocusables</span>(ArrayList<View> arg0, int arg1, int arg2)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">addFocusables</span>(ArrayList<View> arg0, int arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">addOnAttachStateChangeListener</span>(View.OnAttachStateChangeListener arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">addOnLayoutChangeListener</span>(View.OnLayoutChangeListener arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">addTouchables</span>(ArrayList<View> arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ ViewPropertyAnimator</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">animate</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">announceForAccessibility</span>(CharSequence arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">awakenScrollBars</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">awakenScrollBars</span>(int arg0, boolean arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">awakenScrollBars</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">bringToFront</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">buildDrawingCache</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">buildDrawingCache</span>(boolean arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">buildLayer</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">callOnClick</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">canResolveLayoutDirection</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">canResolveTextAlignment</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">canResolveTextDirection</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">canScrollHorizontally</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">canScrollVertically</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">cancelLongPress</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">cancelPendingInputEvents</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">checkInputConnectionProxy</span>(View arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">clearAnimation</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">clearFocus</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+ static
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">combineMeasuredStates</span>(int arg0, int arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">computeHorizontalScrollExtent</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">computeHorizontalScrollOffset</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">computeHorizontalScrollRange</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">computeScroll</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">computeVerticalScrollExtent</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">computeVerticalScrollOffset</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">computeVerticalScrollRange</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ AccessibilityNodeInfo</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">createAccessibilityNodeInfo</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">createContextMenu</span>(ContextMenu arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">destroyDrawingCache</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">dispatchConfigurationChanged</span>(Configuration arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">dispatchDisplayHint</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">dispatchDragEvent</span>(DragEvent arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">dispatchDraw</span>(Canvas arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">dispatchGenericFocusedEvent</span>(MotionEvent arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">dispatchGenericMotionEvent</span>(MotionEvent arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">dispatchGenericPointerEvent</span>(MotionEvent arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">dispatchHoverEvent</span>(MotionEvent arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">dispatchKeyEvent</span>(KeyEvent arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">dispatchKeyEventPreIme</span>(KeyEvent arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">dispatchKeyShortcutEvent</span>(KeyEvent arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">dispatchPopulateAccessibilityEvent</span>(AccessibilityEvent arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">dispatchRestoreInstanceState</span>(SparseArray<Parcelable> arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">dispatchSaveInstanceState</span>(SparseArray<Parcelable> arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">dispatchSetActivated</span>(boolean arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">dispatchSetPressed</span>(boolean arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">dispatchSetSelected</span>(boolean arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">dispatchSystemUiVisibilityChanged</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">dispatchTouchEvent</span>(MotionEvent arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">dispatchTrackballEvent</span>(MotionEvent arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">dispatchUnhandledMove</span>(View arg0, int arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">dispatchVisibilityChanged</span>(View arg0, int arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">dispatchWindowFocusChanged</span>(boolean arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">dispatchWindowSystemUiVisiblityChanged</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">dispatchWindowVisibilityChanged</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">draw</span>(Canvas arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">drawableStateChanged</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ View</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">findFocus</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ View</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">findViewById</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ View</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">findViewWithTag</span>(Object arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">findViewsWithText</span>(ArrayList<View> arg0, CharSequence arg1, int arg2)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">fitSystemWindows</span>(Rect arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ View</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">focusSearch</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">forceLayout</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+ static
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">generateViewId</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getAccessibilityLiveRegion</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ AccessibilityNodeProvider</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getAccessibilityNodeProvider</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ float</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getAlpha</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ Animation</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getAnimation</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ IBinder</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getApplicationWindowToken</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ Drawable</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getBackground</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getBaseline</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getBottom</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ float</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getBottomFadingEdgeStrength</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getBottomPaddingOffset</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ float</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getCameraDistance</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ Rect</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getClipBounds</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ CharSequence</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getContentDescription</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ Context</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getContext</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ ContextMenu.ContextMenuInfo</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getContextMenuInfo</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+ static
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getDefaultSize</span>(int arg0, int arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ Display</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getDisplay</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ int[]</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getDrawableState</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ Bitmap</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getDrawingCache</span>(boolean arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ Bitmap</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getDrawingCache</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getDrawingCacheBackgroundColor</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getDrawingCacheQuality</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getDrawingRect</span>(Rect arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ long</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getDrawingTime</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getFilterTouchesWhenObscured</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getFitsSystemWindows</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ ArrayList<View></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getFocusables</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getFocusedRect</span>(Rect arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getGlobalVisibleRect</span>(Rect arg0, Point arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getGlobalVisibleRect</span>(Rect arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ Handler</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getHandler</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getHeight</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getHitRect</span>(Rect arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getHorizontalFadingEdgeLength</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getHorizontalScrollbarHeight</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getId</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getImportantForAccessibility</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getKeepScreenOn</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ KeyEvent.DispatcherState</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getKeyDispatcherState</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getLabelFor</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getLayerType</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getLayoutDirection</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ ViewGroup.LayoutParams</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getLayoutParams</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getLeft</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ float</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getLeftFadingEdgeStrength</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getLeftPaddingOffset</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getLocalVisibleRect</span>(Rect arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getLocationInWindow</span>(int[] arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getLocationOnScreen</span>(int[] arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ Matrix</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getMatrix</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getMeasuredHeight</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getMeasuredHeightAndState</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getMeasuredState</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getMeasuredWidth</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getMeasuredWidthAndState</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getMinimumHeight</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getMinimumWidth</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getNextFocusDownId</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getNextFocusForwardId</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getNextFocusLeftId</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getNextFocusRightId</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getNextFocusUpId</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ View.OnFocusChangeListener</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getOnFocusChangeListener</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getOverScrollMode</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ ViewOverlay</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getOverlay</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getPaddingBottom</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getPaddingEnd</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getPaddingLeft</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getPaddingRight</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getPaddingStart</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getPaddingTop</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ ViewParent</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getParent</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ ViewParent</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getParentForAccessibility</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ float</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getPivotX</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ float</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getPivotY</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ Resources</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getResources</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getRight</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ float</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getRightFadingEdgeStrength</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getRightPaddingOffset</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ View</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getRootView</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ float</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getRotation</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ float</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getRotationX</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ float</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getRotationY</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ float</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getScaleX</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ float</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getScaleY</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getScrollBarDefaultDelayBeforeFade</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getScrollBarFadeDuration</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getScrollBarSize</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getScrollBarStyle</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getScrollX</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getScrollY</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getSolidColor</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getSuggestedMinimumHeight</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getSuggestedMinimumWidth</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getSystemUiVisibility</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ Object</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getTag</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ Object</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getTag</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getTextAlignment</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getTextDirection</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getTop</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ float</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getTopFadingEdgeStrength</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getTopPaddingOffset</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ TouchDelegate</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getTouchDelegate</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ ArrayList<View></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getTouchables</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ float</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getTranslationX</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ float</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getTranslationY</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getVerticalFadingEdgeLength</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getVerticalScrollbarPosition</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getVerticalScrollbarWidth</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ ViewTreeObserver</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getViewTreeObserver</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getVisibility</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getWidth</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getWindowAttachCount</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ WindowId</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getWindowId</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getWindowSystemUiVisibility</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ IBinder</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getWindowToken</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getWindowVisibility</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getWindowVisibleDisplayFrame</span>(Rect arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ float</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getX</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ float</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getY</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">hasFocus</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">hasFocusable</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">hasOnClickListeners</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">hasOverlappingRendering</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">hasTransientState</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">hasWindowFocus</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+ static
+
+ View</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">inflate</span>(Context arg0, int arg1, ViewGroup arg2)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">initializeFadingEdge</span>(TypedArray arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">initializeScrollbars</span>(TypedArray arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">invalidate</span>(Rect arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">invalidate</span>(int arg0, int arg1, int arg2, int arg3)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">invalidate</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">invalidateDrawable</span>(Drawable arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">isActivated</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">isAttachedToWindow</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">isClickable</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">isDirty</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">isDrawingCacheEnabled</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">isDuplicateParentStateEnabled</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">isEnabled</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">isFocusable</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">isFocusableInTouchMode</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">isFocused</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">isHapticFeedbackEnabled</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">isHardwareAccelerated</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">isHorizontalFadingEdgeEnabled</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">isHorizontalScrollBarEnabled</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">isHovered</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">isInEditMode</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">isInLayout</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">isInTouchMode</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">isLaidOut</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">isLayoutDirectionResolved</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">isLayoutRequested</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">isLongClickable</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">isOpaque</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">isPaddingOffsetRequired</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">isPaddingRelative</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">isPressed</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">isSaveEnabled</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">isSaveFromParentEnabled</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">isScrollContainer</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">isScrollbarFadingEnabled</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">isSelected</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">isShown</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">isSoundEffectsEnabled</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">isTextAlignmentResolved</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">isTextDirectionResolved</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">isVerticalFadingEdgeEnabled</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">isVerticalScrollBarEnabled</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">jumpDrawablesToCurrentState</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">layout</span>(int arg0, int arg1, int arg2, int arg3)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">measure</span>(int arg0, int arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+ static
+
+ int[]</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">mergeDrawableStates</span>(int[] arg0, int[] arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">offsetLeftAndRight</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">offsetTopAndBottom</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">onAnimationEnd</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">onAnimationStart</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">onAttachedToWindow</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">onCancelPendingInputEvents</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">onCheckIsTextEditor</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">onConfigurationChanged</span>(Configuration arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">onCreateContextMenu</span>(ContextMenu arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int[]</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">onCreateDrawableState</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ InputConnection</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">onCreateInputConnection</span>(EditorInfo arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">onDetachedFromWindow</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">onDisplayHint</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">onDragEvent</span>(DragEvent arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">onDraw</span>(Canvas arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">onDrawScrollBars</span>(Canvas arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">onFilterTouchEventForSecurity</span>(MotionEvent arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">onFinishInflate</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">onFinishTemporaryDetach</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">onFocusChanged</span>(boolean arg0, int arg1, Rect arg2)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">onGenericMotionEvent</span>(MotionEvent arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">onHoverChanged</span>(boolean arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">onHoverEvent</span>(MotionEvent arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">onInitializeAccessibilityEvent</span>(AccessibilityEvent arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">onInitializeAccessibilityNodeInfo</span>(AccessibilityNodeInfo arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">onKeyDown</span>(int arg0, KeyEvent arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">onKeyLongPress</span>(int arg0, KeyEvent arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">onKeyMultiple</span>(int arg0, int arg1, KeyEvent arg2)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">onKeyPreIme</span>(int arg0, KeyEvent arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">onKeyShortcut</span>(int arg0, KeyEvent arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">onKeyUp</span>(int arg0, KeyEvent arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">onLayout</span>(boolean arg0, int arg1, int arg2, int arg3, int arg4)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">onMeasure</span>(int arg0, int arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">onOverScrolled</span>(int arg0, int arg1, boolean arg2, boolean arg3)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">onPopulateAccessibilityEvent</span>(AccessibilityEvent arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">onRestoreInstanceState</span>(Parcelable arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">onRtlPropertiesChanged</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ Parcelable</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">onSaveInstanceState</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">onScreenStateChanged</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">onScrollChanged</span>(int arg0, int arg1, int arg2, int arg3)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">onSetAlpha</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">onSizeChanged</span>(int arg0, int arg1, int arg2, int arg3)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">onStartTemporaryDetach</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">onTouchEvent</span>(MotionEvent arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">onTrackballEvent</span>(MotionEvent arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">onVisibilityChanged</span>(View arg0, int arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">onWindowFocusChanged</span>(boolean arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">onWindowSystemUiVisibilityChanged</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">onWindowVisibilityChanged</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">overScrollBy</span>(int arg0, int arg1, int arg2, int arg3, int arg4, int arg5, int arg6, int arg7, boolean arg8)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">performAccessibilityAction</span>(int arg0, Bundle arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">performClick</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">performHapticFeedback</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">performHapticFeedback</span>(int arg0, int arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">performLongClick</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">playSoundEffect</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">post</span>(Runnable arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">postDelayed</span>(Runnable arg0, long arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">postInvalidate</span>(int arg0, int arg1, int arg2, int arg3)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">postInvalidate</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">postInvalidateDelayed</span>(long arg0, int arg1, int arg2, int arg3, int arg4)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">postInvalidateDelayed</span>(long arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">postInvalidateOnAnimation</span>(int arg0, int arg1, int arg2, int arg3)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">postInvalidateOnAnimation</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">postOnAnimation</span>(Runnable arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">postOnAnimationDelayed</span>(Runnable arg0, long arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">refreshDrawableState</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">removeCallbacks</span>(Runnable arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">removeOnAttachStateChangeListener</span>(View.OnAttachStateChangeListener arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">removeOnLayoutChangeListener</span>(View.OnLayoutChangeListener arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">requestFitSystemWindows</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">requestFocus</span>(int arg0, Rect arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">requestFocus</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">requestFocus</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">requestFocusFromTouch</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">requestLayout</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">requestRectangleOnScreen</span>(Rect arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">requestRectangleOnScreen</span>(Rect arg0, boolean arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+ static
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">resolveSize</span>(int arg0, int arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+ static
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">resolveSizeAndState</span>(int arg0, int arg1, int arg2)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">restoreHierarchyState</span>(SparseArray<Parcelable> arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">saveHierarchyState</span>(SparseArray<Parcelable> arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">scheduleDrawable</span>(Drawable arg0, Runnable arg1, long arg2)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">scrollBy</span>(int arg0, int arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">scrollTo</span>(int arg0, int arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">sendAccessibilityEvent</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">sendAccessibilityEventUnchecked</span>(AccessibilityEvent arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setAccessibilityDelegate</span>(View.AccessibilityDelegate arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setAccessibilityLiveRegion</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setActivated</span>(boolean arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setAlpha</span>(float arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setAnimation</span>(Animation arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setBackground</span>(Drawable arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setBackgroundColor</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setBackgroundDrawable</span>(Drawable arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setBackgroundResource</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setBottom</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setCameraDistance</span>(float arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setClickable</span>(boolean arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setClipBounds</span>(Rect arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setContentDescription</span>(CharSequence arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setDrawingCacheBackgroundColor</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setDrawingCacheEnabled</span>(boolean arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setDrawingCacheQuality</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setDuplicateParentStateEnabled</span>(boolean arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setEnabled</span>(boolean arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setFadingEdgeLength</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setFilterTouchesWhenObscured</span>(boolean arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setFitsSystemWindows</span>(boolean arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setFocusable</span>(boolean arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setFocusableInTouchMode</span>(boolean arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setHapticFeedbackEnabled</span>(boolean arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setHasTransientState</span>(boolean arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setHorizontalFadingEdgeEnabled</span>(boolean arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setHorizontalScrollBarEnabled</span>(boolean arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setHovered</span>(boolean arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setId</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setImportantForAccessibility</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setKeepScreenOn</span>(boolean arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setLabelFor</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setLayerPaint</span>(Paint arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setLayerType</span>(int arg0, Paint arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setLayoutDirection</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setLayoutParams</span>(ViewGroup.LayoutParams arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setLeft</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setLongClickable</span>(boolean arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setMeasuredDimension</span>(int arg0, int arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setMinimumHeight</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setMinimumWidth</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setNextFocusDownId</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setNextFocusForwardId</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setNextFocusLeftId</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setNextFocusRightId</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setNextFocusUpId</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setOnClickListener</span>(View.OnClickListener arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setOnCreateContextMenuListener</span>(View.OnCreateContextMenuListener arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setOnDragListener</span>(View.OnDragListener arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setOnFocusChangeListener</span>(View.OnFocusChangeListener arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setOnGenericMotionListener</span>(View.OnGenericMotionListener arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setOnHoverListener</span>(View.OnHoverListener arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setOnKeyListener</span>(View.OnKeyListener arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setOnLongClickListener</span>(View.OnLongClickListener arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setOnSystemUiVisibilityChangeListener</span>(View.OnSystemUiVisibilityChangeListener arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setOnTouchListener</span>(View.OnTouchListener arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setOverScrollMode</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setPadding</span>(int arg0, int arg1, int arg2, int arg3)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setPaddingRelative</span>(int arg0, int arg1, int arg2, int arg3)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setPivotX</span>(float arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setPivotY</span>(float arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setPressed</span>(boolean arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setRight</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setRotation</span>(float arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setRotationX</span>(float arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setRotationY</span>(float arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setSaveEnabled</span>(boolean arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setSaveFromParentEnabled</span>(boolean arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setScaleX</span>(float arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setScaleY</span>(float arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setScrollBarDefaultDelayBeforeFade</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setScrollBarFadeDuration</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setScrollBarSize</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setScrollBarStyle</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setScrollContainer</span>(boolean arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setScrollX</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setScrollY</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setScrollbarFadingEnabled</span>(boolean arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setSelected</span>(boolean arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setSoundEffectsEnabled</span>(boolean arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setSystemUiVisibility</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setTag</span>(int arg0, Object arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setTag</span>(Object arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setTextAlignment</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setTextDirection</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setTop</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setTouchDelegate</span>(TouchDelegate arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setTranslationX</span>(float arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setTranslationY</span>(float arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setVerticalFadingEdgeEnabled</span>(boolean arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setVerticalScrollBarEnabled</span>(boolean arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setVerticalScrollbarPosition</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setVisibility</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setWillNotCacheDrawing</span>(boolean arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setWillNotDraw</span>(boolean arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setX</span>(float arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setY</span>(float arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">showContextMenu</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ ActionMode</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">startActionMode</span>(ActionMode.Callback arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">startAnimation</span>(Animation arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">startDrag</span>(ClipData arg0, View.DragShadowBuilder arg1, Object arg2, int arg3)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ String</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">toString</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">unscheduleDrawable</span>(Drawable arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">unscheduleDrawable</span>(Drawable arg0, Runnable arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">verifyDrawable</span>(Drawable arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">willNotCacheDrawing</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">willNotDraw</span>()</nobr>
+
+ </td></tr>
+
+
+</table>
+ </div>
+</div>
+</td></tr>
+
+
+
+<tr class="api apilevel-" >
+<td colspan="12">
+ <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
+ ><img id="inherited-methods-java.lang.Object-trigger"
+ src="/assets/images/triangle-closed.png"
+ class="jd-expando-trigger-img" /></a>
+From class
+
+ java.lang.Object
+
+<div id="inherited-methods-java.lang.Object">
+ <div id="inherited-methods-java.lang.Object-list"
+ class="jd-inheritedlinks">
+ </div>
+ <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
+ <table class="jd-sumtable-expando">
+
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ Object</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">clone</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">equals</span>(Object arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">finalize</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ Class<?></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getClass</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">hashCode</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">notify</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">notifyAll</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ String</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">toString</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">wait</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">wait</span>(long arg0)</nobr>
+
+ </td></tr>
+
+
+</table>
+ </div>
+</div>
+</td></tr>
+
+
+
+<tr class="api apilevel-" >
+<td colspan="12">
+ <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-android.graphics.drawable.Drawable.Callback" class="jd-expando-trigger closed"
+ ><img id="inherited-methods-android.graphics.drawable.Drawable.Callback-trigger"
+ src="/assets/images/triangle-closed.png"
+ class="jd-expando-trigger-img" /></a>
+From interface
+
+ android.graphics.drawable.Drawable.Callback
+
+<div id="inherited-methods-android.graphics.drawable.Drawable.Callback">
+ <div id="inherited-methods-android.graphics.drawable.Drawable.Callback-list"
+ class="jd-inheritedlinks">
+ </div>
+ <div id="inherited-methods-android.graphics.drawable.Drawable.Callback-summary" style="display: none;">
+ <table class="jd-sumtable-expando">
+
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">invalidateDrawable</span>(Drawable arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">scheduleDrawable</span>(Drawable arg0, Runnable arg1, long arg2)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">unscheduleDrawable</span>(Drawable arg0, Runnable arg1)</nobr>
+
+ </td></tr>
+
+
+</table>
+ </div>
+</div>
+</td></tr>
+
+
+
+<tr class="api apilevel-" >
+<td colspan="12">
+ <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-android.view.KeyEvent.Callback" class="jd-expando-trigger closed"
+ ><img id="inherited-methods-android.view.KeyEvent.Callback-trigger"
+ src="/assets/images/triangle-closed.png"
+ class="jd-expando-trigger-img" /></a>
+From interface
+
+ android.view.KeyEvent.Callback
+
+<div id="inherited-methods-android.view.KeyEvent.Callback">
+ <div id="inherited-methods-android.view.KeyEvent.Callback-list"
+ class="jd-inheritedlinks">
+ </div>
+ <div id="inherited-methods-android.view.KeyEvent.Callback-summary" style="display: none;">
+ <table class="jd-sumtable-expando">
+
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">onKeyDown</span>(int arg0, KeyEvent arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">onKeyLongPress</span>(int arg0, KeyEvent arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">onKeyMultiple</span>(int arg0, int arg1, KeyEvent arg2)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">onKeyUp</span>(int arg0, KeyEvent arg1)</nobr>
+
+ </td></tr>
+
+
+</table>
+ </div>
+</div>
+</td></tr>
+
+
+
+<tr class="api apilevel-" >
+<td colspan="12">
+ <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-android.view.ViewManager" class="jd-expando-trigger closed"
+ ><img id="inherited-methods-android.view.ViewManager-trigger"
+ src="/assets/images/triangle-closed.png"
+ class="jd-expando-trigger-img" /></a>
+From interface
+
+ android.view.ViewManager
+
+<div id="inherited-methods-android.view.ViewManager">
+ <div id="inherited-methods-android.view.ViewManager-list"
+ class="jd-inheritedlinks">
+ </div>
+ <div id="inherited-methods-android.view.ViewManager-summary" style="display: none;">
+ <table class="jd-sumtable-expando">
+
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">addView</span>(View arg0, ViewGroup.LayoutParams arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">removeView</span>(View arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">updateViewLayout</span>(View arg0, ViewGroup.LayoutParams arg1)</nobr>
+
+ </td></tr>
+
+
+</table>
+ </div>
+</div>
+</td></tr>
+
+
+
+<tr class="api apilevel-" >
+<td colspan="12">
+ <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-android.view.ViewParent" class="jd-expando-trigger closed"
+ ><img id="inherited-methods-android.view.ViewParent-trigger"
+ src="/assets/images/triangle-closed.png"
+ class="jd-expando-trigger-img" /></a>
+From interface
+
+ android.view.ViewParent
+
+<div id="inherited-methods-android.view.ViewParent">
+ <div id="inherited-methods-android.view.ViewParent-list"
+ class="jd-inheritedlinks">
+ </div>
+ <div id="inherited-methods-android.view.ViewParent-summary" style="display: none;">
+ <table class="jd-sumtable-expando">
+
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">bringChildToFront</span>(View arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">canResolveLayoutDirection</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">canResolveTextAlignment</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">canResolveTextDirection</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">childDrawableStateChanged</span>(View arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">childHasTransientStateChanged</span>(View arg0, boolean arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">clearChildFocus</span>(View arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">createContextMenu</span>(ContextMenu arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ View</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">focusSearch</span>(View arg0, int arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">focusableViewAvailable</span>(View arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getChildVisibleRect</span>(View arg0, Rect arg1, Point arg2)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getLayoutDirection</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ ViewParent</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getParent</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ ViewParent</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getParentForAccessibility</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getTextAlignment</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getTextDirection</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">invalidateChild</span>(View arg0, Rect arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ ViewParent</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">invalidateChildInParent</span>(int[] arg0, Rect arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">isLayoutDirectionResolved</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">isLayoutRequested</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">isTextAlignmentResolved</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">isTextDirectionResolved</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">notifySubtreeAccessibilityStateChanged</span>(View arg0, View arg1, int arg2)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">recomputeViewAttributes</span>(View arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">requestChildFocus</span>(View arg0, View arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">requestChildRectangleOnScreen</span>(View arg0, Rect arg1, boolean arg2)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">requestDisallowInterceptTouchEvent</span>(boolean arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">requestFitSystemWindows</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">requestLayout</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">requestSendAccessibilityEvent</span>(View arg0, AccessibilityEvent arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">requestTransparentRegion</span>(View arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">showContextMenuForChild</span>(View arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ ActionMode</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">startActionModeForChild</span>(View arg0, ActionMode.Callback arg1)</nobr>
+
+ </td></tr>
+
+
+</table>
+ </div>
+</div>
+</td></tr>
+
+
+
+<tr class="api apilevel-" >
+<td colspan="12">
+ <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-android.view.accessibility.AccessibilityEventSource" class="jd-expando-trigger closed"
+ ><img id="inherited-methods-android.view.accessibility.AccessibilityEventSource-trigger"
+ src="/assets/images/triangle-closed.png"
+ class="jd-expando-trigger-img" /></a>
+From interface
+
+ android.view.accessibility.AccessibilityEventSource
+
+<div id="inherited-methods-android.view.accessibility.AccessibilityEventSource">
+ <div id="inherited-methods-android.view.accessibility.AccessibilityEventSource-list"
+ class="jd-inheritedlinks">
+ </div>
+ <div id="inherited-methods-android.view.accessibility.AccessibilityEventSource-summary" style="display: none;">
+ <table class="jd-sumtable-expando">
+
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">sendAccessibilityEvent</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">sendAccessibilityEventUnchecked</span>(AccessibilityEvent arg0)</nobr>
+
+ </td></tr>
+
+
+</table>
+ </div>
+</div>
+</td></tr>
+
+
+</table>
+
+
+</div><!-- jd-descr (summary) -->
+
+<!-- Details -->
+
+
+
+
+
+
+
+
+<!-- XML Attributes -->
+
+
+<!-- ========= FIELD DETAIL ======== -->
+<h2>XML Attributes</h2>
+
+
+
+<A NAME="attr_com.google.android.gms:adSizes"></A>
+<div class="jd-details">
+ <h4 class="jd-details-title">com.google.android.gms:adSizes
+ </h4>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>A comma-separated list of the supported ad sizes. The sizes must be one of
+ BANNER, FULL_BANNER, LEADERBOARD, MEDIUM_RECTANGLE, SMART_BANNER,
+ WIDE_SKYSCRAPER, or <width>x<height>.
+
+
+
+ <p>Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character.
+<p>This may also be a reference to a resource (in the form
+"<code>@[<i>package</i>:]<i>type</i>:<i>name</i></code>") or
+theme attribute (in the form
+"<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>")
+containing a value of this type.
+ <p>This is a private symbol.</p></div>
+
+
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Related Methods</h5>
+ <ul class="nolist">
+
+ <li><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdView.html#setAdSizes(com.google.android.gms.ads.AdSize...)">setAdSizes(AdSize)</a></li>
+
+ </ul>
+ </div>
+ </div>
+</div>
+
+
+<A NAME="attr_com.google.android.gms:adUnitId"></A>
+<div class="jd-details">
+ <h4 class="jd-details-title">com.google.android.gms:adUnitId
+ </h4>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>The ad unit ID.
+
+
+ <p>Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character.
+<p>This may also be a reference to a resource (in the form
+"<code>@[<i>package</i>:]<i>type</i>:<i>name</i></code>") or
+theme attribute (in the form
+"<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>")
+containing a value of this type.
+ <p>This is a private symbol.</p></div>
+
+
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Related Methods</h5>
+ <ul class="nolist">
+
+ <li><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdView.html#setAdUnitId(java.lang.String)">setAdUnitId(String)</a></li>
+
+ </ul>
+ </div>
+ </div>
+</div>
+
+
+
+
+<!-- Enum Values -->
+
+
+<!-- Constants -->
+
+
+<!-- Fields -->
+
+
+<!-- Public ctors -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<h2>Public Constructors</h2>
+
+
+
+<A NAME="PublisherAdView(android.content.Context)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+
+ </span>
+ <span class="sympad">PublisherAdView</span>
+ <span class="normal">(Context context)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Construct an <code><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdView.html">PublisherAdView</a></code> from code.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>context</td>
+ <td>The <code><a href="/reference/android/content/Context.html">Context</a></code> the <code><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdView.html">PublisherAdView</a></code> is running in.
+</td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="PublisherAdView(android.content.Context, android.util.AttributeSet)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+
+ </span>
+ <span class="sympad">PublisherAdView</span>
+ <span class="normal">(Context context, AttributeSet attrs)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Construct a <code><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdView.html">PublisherAdView</a></code> from an XML layout.
+</p></div>
+
+ </div>
+</div>
+
+
+<A NAME="PublisherAdView(android.content.Context, android.util.AttributeSet, int)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+
+ </span>
+ <span class="sympad">PublisherAdView</span>
+ <span class="normal">(Context context, AttributeSet attrs, int defStyle)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Construct an <code><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdView.html">PublisherAdView</a></code> from an XML layout.
+</p></div>
+
+ </div>
+</div>
+
+
+
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<!-- Protected ctors -->
+
+
+
+<!-- ========= METHOD DETAIL ======== -->
+<!-- Public methdos -->
+
+<h2>Public Methods</h2>
+
+
+
+<A NAME="destroy()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ void
+ </span>
+ <span class="sympad">destroy</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Destroy the <code><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdView.html">PublisherAdView</a></code>. This method should be called in the parent Activity's
+ <code><a href="/reference/android/app/Activity.html#onDestroy()">onDestroy()</a></code> method. No other methods should be called on the
+ <code><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdView.html">PublisherAdView</a></code> after <code><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdView.html#destroy()">destroy()</a></code> is called.
+</p></div>
+
+ </div>
+</div>
+
+
+<A NAME="getAdListener()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ <a href="/reference/com/google/android/gms/ads/AdListener.html">AdListener</a>
+ </span>
+ <span class="sympad">getAdListener</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Returns the <code><a href="/reference/com/google/android/gms/ads/AdListener.html">AdListener</a></code> for this <code><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdView.html">PublisherAdView</a></code>.
+</p></div>
+
+ </div>
+</div>
+
+
+<A NAME="getAdSize()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ <a href="/reference/com/google/android/gms/ads/AdSize.html">AdSize</a>
+ </span>
+ <span class="sympad">getAdSize</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Returns the size of the currently displayed banner ad. Returns <code>null</code> if
+ <code><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdView.html#setAdSizes(com.google.android.gms.ads.AdSize...)">setAdSizes(AdSize...)</a></code> hasn't been called yet. See <code><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdView.html#getAdSizes()">getAdSizes()</a></code> for the ad sizes
+ supported by this <code><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdView.html">PublisherAdView</a></code>.
+</p></div>
+
+ </div>
+</div>
+
+
+<A NAME="getAdSizes()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ <a href="/reference/com/google/android/gms/ads/AdSize.html">AdSize[]</a>
+ </span>
+ <span class="sympad">getAdSizes</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Returns the ad sizes supported by this <code><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdView.html">PublisherAdView</a></code>. See <code><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdView.html#getAdSize()">getAdSize()</a></code> for
+ the size of the currently displayed banner ad.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Related XML Attributes</h5>
+ <ul class="nolist">
+ <li><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdView.html#attr_com.google.android.gms:adSizes">com.google.android.gms:adSizes</a></li>
+ </ul>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="getAdUnitId()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ String
+ </span>
+ <span class="sympad">getAdUnitId</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Returns the ad unit ID.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Related XML Attributes</h5>
+ <ul class="nolist">
+ <li><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdView.html#attr_com.google.android.gms:adUnitId">com.google.android.gms:adUnitId</a></li>
+ </ul>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="getAppEventListener()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ <a href="/reference/com/google/android/gms/ads/doubleclick/AppEventListener.html">AppEventListener</a>
+ </span>
+ <span class="sympad">getAppEventListener</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Returns the <code><a href="/reference/com/google/android/gms/ads/doubleclick/AppEventListener.html">AppEventListener</a></code> for this <code><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdView.html">PublisherAdView</a></code>.
+</p></div>
+
+ </div>
+</div>
+
+
+<A NAME="loadAd(com.google.android.gms.ads.doubleclick.PublisherAdRequest)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ void
+ </span>
+ <span class="sympad">loadAd</span>
+ <span class="normal">(<a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdRequest.html">PublisherAdRequest</a> publisherAdRequest)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Start loading the ad on a background thread.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Throws</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>IllegalStateException</td>
+ <td>If the size of the banner ad or the ad unit ID have not been
+ set.
+</td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="pause()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ void
+ </span>
+ <span class="sympad">pause</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Pause any extra processing associated with this <code><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdView.html">PublisherAdView</a></code>. This method should
+ be called in the parent Activity's <code><a href="/reference/android/app/Activity.html#onPause()">onPause()</a></code> method.
+</p></div>
+
+ </div>
+</div>
+
+
+<A NAME="recordManualImpression()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ void
+ </span>
+ <span class="sympad">recordManualImpression</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Record a manual impression. <code><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdRequest.Builder.html#setManualImpressionsEnabled(boolean)">setManualImpressionsEnabled(boolean)</a></code>
+ must be enabled for this method to have any effect.
+</p></div>
+
+ </div>
+</div>
+
+
+<A NAME="resume()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ void
+ </span>
+ <span class="sympad">resume</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Resume a <code><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdView.html">PublisherAdView</a></code> after a previous call to <code><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdView.html#pause()">pause()</a></code>. This method should
+ be called in the parent Activity's <code><a href="/reference/android/app/Activity.html#onResume()">onResume()</a></code> method.
+</p></div>
+
+ </div>
+</div>
+
+
+<A NAME="setAdListener(com.google.android.gms.ads.AdListener)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ void
+ </span>
+ <span class="sympad">setAdListener</span>
+ <span class="normal">(<a href="/reference/com/google/android/gms/ads/AdListener.html">AdListener</a> adListener)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Sets an <code><a href="/reference/com/google/android/gms/ads/AdListener.html">AdListener</a></code> for this <code><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdView.html">PublisherAdView</a></code>.
+</p></div>
+
+ </div>
+</div>
+
+
+<A NAME="setAdSizes(com.google.android.gms.ads.AdSize...)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ void
+ </span>
+ <span class="sympad">setAdSizes</span>
+ <span class="normal">(<a href="/reference/com/google/android/gms/ads/AdSize.html">AdSize...</a> adSizes)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Sets the supported sizes of the banner ad. In most cases, only one ad size will be specified.
+ <p>
+ Multiple ad sizes can be specified if your application can appropriately handle multiple
+ ad sizes. For example, your application might call <code><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdView.html#getAdSize()">getAdSize()</a></code> during the
+ <code><a href="/reference/com/google/android/gms/ads/AdListener.html#onAdLoaded()">onAdLoaded()</a></code> callback and change the layout according to the size of the ad
+ that was loaded. If multiple ad sizes are specified, the <code><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdView.html">PublisherAdView</a></code> will
+ assume the size of the first ad size until an ad is loaded.
+ <p>
+ This method also immediately resizes the currently displayed ad, so calling this method after an
+ ad has been loaded is not recommended unless you know for certain that the content of the
+ ad will render correctly in the new ad size. This can be used if an ad needs to be resized
+ after it has been loaded. If more than one ad size is specified, the currently displayed ad
+ will be resized to the first ad size.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Related XML Attributes</h5>
+ <ul class="nolist">
+ <li><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdView.html#attr_com.google.android.gms:adSizes">com.google.android.gms:adSizes</a></li>
+ </ul>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Throws</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>IllegalArgumentException</td>
+ <td>If <code>adSizes</code> is <code>null</code> or empty.
+</td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="setAdUnitId(java.lang.String)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ void
+ </span>
+ <span class="sympad">setAdUnitId</span>
+ <span class="normal">(String adUnitId)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Sets the ad unit ID.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Related XML Attributes</h5>
+ <ul class="nolist">
+ <li><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdView.html#attr_com.google.android.gms:adUnitId">com.google.android.gms:adUnitId</a></li>
+ </ul>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Throws</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>IllegalStateException</td>
+ <td>If the ad unit ID was already set.
+</td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="setAppEventListener(com.google.android.gms.ads.doubleclick.AppEventListener)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ void
+ </span>
+ <span class="sympad">setAppEventListener</span>
+ <span class="normal">(<a href="/reference/com/google/android/gms/ads/doubleclick/AppEventListener.html">AppEventListener</a> appEventListener)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Sets an <code><a href="/reference/com/google/android/gms/ads/doubleclick/AppEventListener.html">AppEventListener</a></code> for this <code><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdView.html">PublisherAdView</a></code>.
+</p></div>
+
+ </div>
+</div>
+
+
+
+
+
+<!-- ========= METHOD DETAIL ======== -->
+
+<h2>Protected Methods</h2>
+
+
+
+<A NAME="onLayout(boolean, int, int, int, int)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ protected
+
+
+
+
+ void
+ </span>
+ <span class="sympad">onLayout</span>
+ <span class="normal">(boolean changed, int left, int top, int right, int bottom)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+ </div>
+</div>
+
+
+<A NAME="onMeasure(int, int)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ protected
+
+
+
+
+ void
+ </span>
+ <span class="sympad">onMeasure</span>
+ <span class="normal">(int widthMeasureSpec, int heightMeasureSpec)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+ </div>
+</div>
+
+
+
+
+
+<!-- ========= END OF CLASS DATA ========= -->
+<A NAME="navbar_top"></A>
+
+<div id="footer" class="wrap" >
+
+
+ <div id="copyright">
+
+ Except as noted, this content is licensed under <a
+ href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.
+ For details and restrictions, see the <a href="/license.html">
+ Content License</a>.
+ </div>
+ <div id="build_info">
+
+<script src="/timestamp.js" type="text/javascript"></script>
+<script>document.write(BUILD_TIMESTAMP)</script>
+
+ </div>
+
+
+ <div id="footerlinks">
+
+ <p>
+ <a href="/about/index.html">About Android</a> |
+ <a href="/legal.html">Legal</a> |
+ <a href="/support.html">Support</a>
+ </p>
+ </div>
+
+</div> <!-- end footer -->
+</div> <!-- jd-content -->
+
+</div><!-- end doc-content -->
+
+</div> <!-- end body-content -->
+
+
+
+
+
+
+</body>
+</html>
diff --git a/docs/html/reference/com/google/android/gms/auth/RecoveryDecision.html b/docs/html/reference/com/google/android/gms/ads/doubleclick/PublisherInterstitialAd.html
similarity index 64%
copy from docs/html/reference/com/google/android/gms/auth/RecoveryDecision.html
copy to docs/html/reference/com/google/android/gms/ads/doubleclick/PublisherInterstitialAd.html
index 59a1346..cdbaaeb 100644
--- a/docs/html/reference/com/google/android/gms/auth/RecoveryDecision.html
+++ b/docs/html/reference/com/google/android/gms/ads/doubleclick/PublisherInterstitialAd.html
@@ -83,7 +83,7 @@
<meta name="viewport" content="width=device-width" />
<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
-<title>RecoveryDecision | Android Developers</title>
+<title>PublisherInterstitialAd | Android Developers</title>
<!-- STYLESHEETS -->
<link rel="stylesheet"
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -128,7 +129,7 @@
<img src="/assets/images/dac_logo.png" width="123" height="25" alt="Android Developers" />
</a>
<div class="btn-quicknav" id="btn-quicknav">
- <a href="#" class="arrow-inactive">Quicknav</a>
+ <a href="#" class="arrow-inactive">Quicknav</a>
<a href="#" class="arrow-active">Quicknav</a>
</div>
</div>
@@ -140,7 +141,7 @@
ru-lang="Проектирование"
ko-lang="디자인"
ja-lang="設計"
- es-lang="Diseñar"
+ es-lang="Diseñar"
>Design</a></li>
<li class="develop"><a href="/develop/index.html"
zh-tw-lang="開發"
@@ -148,7 +149,7 @@
ru-lang="Разработка"
ko-lang="개발"
ja-lang="開発"
- es-lang="Desarrollar"
+ es-lang="Desarrollar"
>Develop</a></li>
<li class="distribute last"><a href="/distribute/index.html"
zh-tw-lang="發佈"
@@ -156,10 +157,10 @@
ru-lang="Распространение"
ko-lang="배포"
ja-lang="配布"
- es-lang="Distribuir"
+ es-lang="Distribuir"
>Distribute</a></li>
</ul>
-
+
<!-- New Search -->
<div class="menu-container">
<div class="moremenu">
@@ -180,9 +181,9 @@
<li class="active"><a>Android Developers</a></li>
<li><a href="http://source.android.com">Android Open Source Project</a></li>
</ul>
-
-
-
+
+
+
<div class="header">Language</div>
<div id="language" class="locales">
<select name="language" onChange="changeLangPref(this.value, true)">
@@ -200,8 +201,8 @@
loadLangPref();
//-->
</script>
-
-
+
+
<br class="clearfix" />
@@ -215,7 +216,7 @@
<form onsubmit="return submit_search()">
<input id="search_autocomplete" type="text" value="" autocomplete="off" name="q"
onfocus="search_focus_changed(this, true)" onblur="search_focus_changed(this, false)"
-onkeydown="return search_changed(event, true, '/')"
+onkeydown="return search_changed(event, true, '/')"
onkeyup="return search_changed(event, false, '/')" />
</form>
<div class="right"></div>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -254,8 +257,8 @@
</div>
<!-- /New Search>
-
-
+
+
<!-- Expanded quicknav -->
<div id="quicknav" class="col-9">
<ul>
@@ -277,15 +280,15 @@
ru-lang="Курсы"
ko-lang="교육"
ja-lang="トレーニング"
- es-lang="Capacitación"
+ es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
ko-lang="API 가이드"
ja-lang="API ガイド"
- es-lang="Guías de la API"
+ es-lang="Guías de la API"
>API Guides</a></li>
<li><a href="/reference/packages.html"
zh-tw-lang="參考資源"
@@ -293,7 +296,7 @@
ru-lang="Справочник"
ko-lang="참조문서"
ja-lang="リファレンス"
- es-lang="Referencia"
+ es-lang="Referencia"
>Reference</a></li>
<li><a href="/tools/index.html"
zh-tw-lang="相關工具"
@@ -301,13 +304,16 @@
ru-lang="Инструменты"
ko-lang="도구"
ja-lang="ツール"
- es-lang="Herramientas"
+ es-lang="Herramientas"
>Tools</a>
<ul><li><a href="/sdk/index.html">Get the SDK</a></li></ul>
</li>
<li><a href="/google/index.html">Google Services</a>
</li>
-
+
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -326,15 +332,15 @@
</div>
</div>
<!-- /Header -->
-
-
+
+
<div id="searchResults" class="wrap" style="display:none;">
<h2 id="searchTitle">Results</h2>
<div id="leftSearchControl" class="search-control">Loading...</div>
</div>
-
-
-
+
+
+
<!-- Secondary x-nav -->
<div id="nav-x">
<div class="wrap">
@@ -345,15 +351,15 @@
ru-lang="Курсы"
ko-lang="교육"
ja-lang="トレーニング"
- es-lang="Capacitación"
+ es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
ko-lang="API 가이드"
ja-lang="API ガイド"
- es-lang="Guías de la API"
+ es-lang="Guías de la API"
>API Guides</a></li>
<li class="reference"><a href="/reference/packages.html"
zh-tw-lang="參考資源"
@@ -361,7 +367,7 @@
ru-lang="Справочник"
ko-lang="참조문서"
ja-lang="リファレンス"
- es-lang="Referencia"
+ es-lang="Referencia"
>Reference</a></li>
<li class="tools"><a href="/tools/index.html"
zh-tw-lang="相關工具"
@@ -374,21 +380,25 @@
<li class="google"><a href="/google/index.html"
>Google Services</a>
</li>
-
+
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
-
+
</div>
<!-- /Sendondary x-nav -->
-
-
-
+
+
+
<div class="wrap clearfix" id="body-content">
<div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
<div id="devdoc-nav" class="scroll-pane">
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
@@ -618,12 +631,12 @@
</script>
-
+
</div>
<script type="text/javascript">
showGoogleRefTree();
-
+
</script>
</div> <!-- end side-nav -->
<script>
@@ -633,7 +646,7 @@
</script>
-
+
@@ -643,21 +656,12 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
<div class="sum-details-links">
@@ -669,22 +673,16 @@
- <a href="#inhconstants">Inherited Constants</a>
-
-
-
- | <a href="#lfields">Fields</a>
-
- | <a href="#pubctors">Ctors</a>
-
+ <a href="#pubctors">Ctors</a>
+
| <a href="#pubmethods">Methods</a>
-
+
@@ -694,9 +692,9 @@
</div><!-- end sum-details-links -->
<div class="api-level">
-
-
-
+
+
+
</div>
</div><!-- end api-info-block -->
@@ -706,28 +704,23 @@
<div id="jd-header">
public
-
-
-
+
+ final
+
class
-<h1 itemprop="name">RecoveryDecision</h1>
+<h1 itemprop="name">PublisherInterstitialAd</h1>
-
+
extends Object<br/>
-
-
-
-
-
- implements
-
- Parcelable
-
-
-
+
+
+
+
+
+
</div><!-- end header -->
@@ -739,18 +732,18 @@
<tr>
-
+
<td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
</tr>
-
+
<tr>
-
+
<td class="jd-inheritance-space"> ↳</td>
-
- <td colspan="1" class="jd-inheritance-class-cell">com.google.android.gms.auth.RecoveryDecision</td>
+
+ <td colspan="1" class="jd-inheritance-class-cell">com.google.android.gms.ads.doubleclick.PublisherInterstitialAd</td>
</tr>
-
+
</table>
@@ -763,6 +756,96 @@
<div class="jd-descr">
+<h2>Class Overview</h2>
+<p itemprop="articleBody">Full-screen interstitial ads for use with DoubleClick for Publishers. The ad unit ID must be set
+ prior to calling <code><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherInterstitialAd.html#loadAd(com.google.android.gms.ads.doubleclick.PublisherAdRequest)">loadAd(PublisherAdRequest)</a></code>.
+ <p>
+ Sample code:
+ <pre>
+ public class MyActivity extends Activity {
+ private PublisherInterstitialAd mPublisherInterstitialAd;
+ private Button mNextLevelButton;
+ private TextView mTextView;
+
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+
+ // Create an interstitial ad. When a natural transition in the app occurs (such as a
+ // level ending in a game), show the interstitial. In this simple example, the press of a
+ // button is used instead.
+ //
+ // If the button is clicked before the interstitial is loaded, the user should proceed to
+ // the next part of the app (in this case, the next level).
+ //
+ // If the interstitial is finished loading, the user will view the interstitial before
+ // proceeding.
+ mPublisherInterstitialAd = new PublisherInterstitialAd(this);
+ mPublisherInterstitialAd.setAdUnitId("myAdUnitId");
+
+ // Create an ad request.
+ PublisherAdRequest.Builder publisherAdRequestBuilder = new PublisherAdRequest.Builder();
+
+ // Optionally populate the ad request builder.
+ publisherAdRequestBuilder.addTestDevice(PublisherAdRequest.DEVICE_ID_EMULATOR);
+
+ // Set an AdListener.
+ mPublisherInterstitialAd.setAdListener(new AdListener() {
+ @Override
+ public void onAdLoaded() {
+ Toast.makeText(MyActivity.this,
+ "The interstitial is loaded", Toast.LENGTH_SHORT).show();
+ }
+
+ @Override
+ public void onAdClosed() {
+ // Proceed to the next level.
+ goToNextLevel();
+ }
+ });
+
+ // Start loading the ad now so that it is ready by the time the user is ready to go to
+ // the next level.
+ mPublisherInterstitialAd.loadAd(publisherAdRequestBuilder.build());
+
+ // Create the button to go to the next level.
+ mNextLevelButton = new Button(this);
+ mNextLevelButton.setText("Next Level");
+ mNextLevelButton.setOnClickListener(new View.OnClickListener() {
+ @Override
+ public void onClick(View view) {
+ // Show the interstitial if it is ready. Otherwise, proceed to the next level
+ // without ever showing it.
+ if (mPublisherInterstitialAd.isLoaded()) {
+ mPublisherInterstitialAd.show();
+ } else {
+ // Proceed to the next level.
+ goToNextLevel();
+ }
+ }
+ });
+
+ // Add the next level button to the layout.
+ LinearLayout layout = new LinearLayout(this);
+ layout.setOrientation(LinearLayout.VERTICAL);
+ layout.addView(mNextLevelButton);
+
+ // Create a TextView to display the current level.
+ mTextView = new TextView(this);
+ mTextView.setText("Level 1");
+ layout.addView(mTextView);
+
+ setContentView(layout);
+ }
+
+ public void goToNextLevel() {
+ // Show the next level (and disable the next level button since there are no more levels.
+ mNextLevelButton.setEnabled(false);
+ mTextView.setText("Level 2");
+ }
+ }</pre>
+</p>
+
@@ -804,130 +887,6 @@
-<!-- =========== ENUM CONSTANT SUMMARY =========== -->
-<table id="inhconstants" class="jd-sumtable"><tr><th>
- <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
- <div style="clear:left;">Inherited Constants</div></th></tr>
-
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-
- <a href="#" onclick="return toggleInherited(this, null)" id="inherited-constants-android.os.Parcelable" class="jd-expando-trigger closed"
- ><img id="inherited-constants-android.os.Parcelable-trigger"
- src="/assets/images/triangle-closed.png"
- class="jd-expando-trigger-img" /></a>From interface
-android.os.Parcelable
-<div id="inherited-constants-android.os.Parcelable">
- <div id="inherited-constants-android.os.Parcelable-list"
- class="jd-inheritedlinks">
- </div>
- <div id="inherited-constants-android.os.Parcelable-summary" style="display: none;">
- <table class="jd-sumtable-expando">
-
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol">int</td>
- <td class="jd-linkcol">CONTENTS_FILE_DESCRIPTOR</td>
- <td class="jd-descrcol" width="100%"></td>
- </tr>
-
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol">int</td>
- <td class="jd-linkcol">PARCELABLE_WRITE_RETURN_VALUE</td>
- <td class="jd-descrcol" width="100%"></td>
- </tr>
-
-
-</table>
- </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-
-
-<!-- =========== FIELD SUMMARY =========== -->
-<table id="lfields" class="jd-sumtable"><tr><th colspan="12">Fields</th></tr>
-
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
- static
- final
- <a href="/reference/com/google/android/gms/auth/RecoveryDecisionCreator.html">RecoveryDecisionCreator</a></nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#CREATOR">CREATOR</a></td>
- <td class="jd-descrcol" width="100%"></td>
- </tr>
-
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- boolean</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#isRecoveryInfoNeeded">isRecoveryInfoNeeded</a></td>
- <td class="jd-descrcol" width="100%">Is <code>true</code> if either the account has no recovery information or it
- was updated long time back (controlled by server, default 1 year).</td>
- </tr>
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- boolean</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#isRecoveryInterstitialAllowed">isRecoveryInterstitialAllowed</a></td>
- <td class="jd-descrcol" width="100%">Is <code>true</code> iff the user has permission to update the account.</td>
- </tr>
-
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- PendingIntent</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#recoveryIntent">recoveryIntent</a></td>
- <td class="jd-descrcol" width="100%">A PendingIntent to an activity that gathers recovery information for the given account.</td>
- </tr>
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- PendingIntent</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#recoveryIntentWithoutIntro">recoveryIntentWithoutIntro</a></td>
- <td class="jd-descrcol" width="100%">A PendingIntent to an activity that gathers recovery information for the given account.</td>
- </tr>
-
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- boolean</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#showRecoveryInterstitial">showRecoveryInterstitial</a></td>
- <td class="jd-descrcol" width="100%">Represents the decision and should be obeyed by the client.</td>
- </tr>
-
-
-
-</table>
@@ -940,19 +899,21 @@
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#RecoveryDecision()">RecoveryDecision</a></span>()</nobr>
-
+ <span class="sympad"><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherInterstitialAd.html#PublisherInterstitialAd(android.content.Context)">PublisherInterstitialAd</a></span>(Context context)</nobr>
+
+ <div class="jd-descrdiv">Construct an <code><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherInterstitialAd.html">PublisherInterstitialAd</a></code>.</div>
+
</td></tr>
@@ -969,51 +930,165 @@
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
- int</nobr>
+
+
+
+
+
+ <a href="/reference/com/google/android/gms/ads/AdListener.html">AdListener</a></nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#describeContents()">describeContents</a></span>()</nobr>
-
+ <span class="sympad"><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherInterstitialAd.html#getAdListener()">getAdListener</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Returns the <code><a href="/reference/com/google/android/gms/ads/AdListener.html">AdListener</a></code> for this <code><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherInterstitialAd.html">PublisherInterstitialAd</a></code>.</div>
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
- int</nobr>
+
+
+
+
+
+ String</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#getVersionCode()">getVersionCode</a></span>()</nobr>
-
+ <span class="sympad"><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherInterstitialAd.html#getAdUnitId()">getAdUnitId</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Returns the ad unit ID.</div>
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
+ <a href="/reference/com/google/android/gms/ads/doubleclick/AppEventListener.html">AppEventListener</a></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherInterstitialAd.html#getAppEventListener()">getAppEventListener</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Returns the <code><a href="/reference/com/google/android/gms/ads/doubleclick/AppEventListener.html">AppEventListener</a></code> for this <code><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherInterstitialAd.html">PublisherInterstitialAd</a></code>.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherInterstitialAd.html#isLoaded()">isLoaded</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Returns <code>true</code> if the ad was successfully loaded and is ready to be shown.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#writeToParcel(android.os.Parcel, int)">writeToParcel</a></span>(Parcel out, int flags)</nobr>
-
+ <span class="sympad"><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherInterstitialAd.html#loadAd(com.google.android.gms.ads.doubleclick.PublisherAdRequest)">loadAd</a></span>(<a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdRequest.html">PublisherAdRequest</a> publisherAdRequest)</nobr>
+
+ <div class="jd-descrdiv">Start loading the ad on a background thread.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherInterstitialAd.html#setAdListener(com.google.android.gms.ads.AdListener)">setAdListener</a></span>(<a href="/reference/com/google/android/gms/ads/AdListener.html">AdListener</a> adListener)</nobr>
+
+ <div class="jd-descrdiv">Sets an <code><a href="/reference/com/google/android/gms/ads/AdListener.html">AdListener</a></code> for this <code><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherInterstitialAd.html">PublisherInterstitialAd</a></code>.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherInterstitialAd.html#setAdUnitId(java.lang.String)">setAdUnitId</a></span>(String adUnitId)</nobr>
+
+ <div class="jd-descrdiv">Sets the ad unit ID.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherInterstitialAd.html#setAppEventListener(com.google.android.gms.ads.doubleclick.AppEventListener)">setAppEventListener</a></span>(<a href="/reference/com/google/android/gms/ads/doubleclick/AppEventListener.html">AppEventListener</a> appEventListener)</nobr>
+
+ <div class="jd-descrdiv">Sets an <code><a href="/reference/com/google/android/gms/ads/doubleclick/AppEventListener.html">AppEventListener</a></code> for this <code><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherInterstitialAd.html">PublisherInterstitialAd</a></code>.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherInterstitialAd.html#show()">show</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Show the interstitial ad.</div>
+
</td></tr>
@@ -1048,240 +1123,182 @@
</div>
<div id="inherited-methods-java.lang.Object-summary" style="display: none;">
<table class="jd-sumtable-expando">
-
-
+
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
Object</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">clone</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
boolean</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">equals</span>(Object arg0)</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">finalize</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
Class<?></nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">getClass</span>()</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
int</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">hashCode</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">notify</span>()</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">notifyAll</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
String</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">toString</span>()</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">wait</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">wait</span>(long arg0)</nobr>
-
- </td></tr>
-
-</table>
- </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
- <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-android.os.Parcelable" class="jd-expando-trigger closed"
- ><img id="inherited-methods-android.os.Parcelable-trigger"
- src="/assets/images/triangle-closed.png"
- class="jd-expando-trigger-img" /></a>
-From interface
-
- android.os.Parcelable
-
-<div id="inherited-methods-android.os.Parcelable">
- <div id="inherited-methods-android.os.Parcelable-list"
- class="jd-inheritedlinks">
- </div>
- <div id="inherited-methods-android.os.Parcelable-summary" style="display: none;">
- <table class="jd-sumtable-expando">
-
-
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
- abstract
-
-
-
-
- int</nobr>
- </td>
- <td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad">describeContents</span>()</nobr>
-
- </td></tr>
-
-
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol"><nobr>
- abstract
-
-
-
-
- void</nobr>
- </td>
- <td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad">writeToParcel</span>(Parcel arg0, int arg1)</nobr>
-
</td></tr>
@@ -1317,197 +1334,6 @@
<!-- Fields -->
-<!-- ========= FIELD DETAIL ======== -->
-<h2>Fields</h2>
-
-
-
-
-<A NAME="CREATOR"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
- static
- final
- <a href="/reference/com/google/android/gms/auth/RecoveryDecisionCreator.html">RecoveryDecisionCreator</a>
- </span>
- CREATOR
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-
- </div>
-</div>
-
-
-
-<A NAME="isRecoveryInfoNeeded"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- boolean
- </span>
- isRecoveryInfoNeeded
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>Is <code>true</code> if either the account has no recovery information or it
- was updated long time back (controlled by server, default 1 year).
-</p></div>
-
-
- </div>
-</div>
-
-
-
-<A NAME="isRecoveryInterstitialAllowed"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- boolean
- </span>
- isRecoveryInterstitialAllowed
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>Is <code>true</code> iff the user has permission to update the account.
- Dasher accounts can have recovery information edit disabled by the administrator.
- Eg: @google.com
-</p></div>
-
-
- </div>
-</div>
-
-
-
-<A NAME="recoveryIntent"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- PendingIntent
- </span>
- recoveryIntent
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>A PendingIntent to an activity that gathers recovery information for the given account.
- This intent will be null iff isRecoveryInterstitialAllowed is <code>false</code>.
-</p></div>
-
-
- </div>
-</div>
-
-
-
-<A NAME="recoveryIntentWithoutIntro"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- PendingIntent
- </span>
- recoveryIntentWithoutIntro
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>A PendingIntent to an activity that gathers recovery information for the given account.
- This intent will be null iff isRecoveryInterstitialAllowed is <code>false</code>.
- This intent directly skips to the input activity without showing the intro message.
-</p></div>
-
-
- </div>
-</div>
-
-
-
-<A NAME="showRecoveryInterstitial"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- boolean
- </span>
- showRecoveryInterstitial
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>Represents the decision and should be obeyed by the client. The remaining
- two flags are provided as additional information for one off decisions. This value
- is <code>true</code> iff isRecoveryInfoNeeded is <code>true</code>, isRecoveryInterstitialAllowed is
- <code>true</code> and a specified period (controlled by server, default 2 months) has passed
- since the user was shown a prompt for recovery information on any google property
- (Android, Web, etc.)
-</p></div>
-
-
- </div>
-</div>
-
-
-
-
<!-- Public ctors -->
@@ -1516,30 +1342,31 @@
-<A NAME="RecoveryDecision()"></A>
+<A NAME="PublisherInterstitialAd(android.content.Context)"></A>
-<div class="jd-details api apilevel-">
+<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
- public
-
-
-
-
-
+ public
+
+
+
+
+
</span>
- <span class="sympad">RecoveryDecision</span>
- <span class="normal">()</span>
+ <span class="sympad">PublisherInterstitialAd</span>
+ <span class="normal">(Context context)</span>
</h4>
<div class="api-level">
<div></div>
-
-
+
+
</div>
<div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+ <div class="jd-tagdata jd-tagdescr"><p>Construct an <code><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherInterstitialAd.html">PublisherInterstitialAd</a></code>.
+</p></div>
</div>
</div>
@@ -1560,88 +1387,289 @@
-<A NAME="describeContents()"></A>
+<A NAME="getAdListener()"></A>
-<div class="jd-details api apilevel-">
+<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
- public
-
-
-
-
- int
+ public
+
+
+
+
+ <a href="/reference/com/google/android/gms/ads/AdListener.html">AdListener</a>
</span>
- <span class="sympad">describeContents</span>
+ <span class="sympad">getAdListener</span>
<span class="normal">()</span>
</h4>
<div class="api-level">
<div></div>
-
-
+
+
</div>
<div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+ <div class="jd-tagdata jd-tagdescr"><p>Returns the <code><a href="/reference/com/google/android/gms/ads/AdListener.html">AdListener</a></code> for this <code><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherInterstitialAd.html">PublisherInterstitialAd</a></code>.
+</p></div>
</div>
</div>
-<A NAME="getVersionCode()"></A>
+<A NAME="getAdUnitId()"></A>
-<div class="jd-details api apilevel-">
+<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
- public
-
-
-
-
- int
+ public
+
+
+
+
+ String
</span>
- <span class="sympad">getVersionCode</span>
+ <span class="sympad">getAdUnitId</span>
<span class="normal">()</span>
</h4>
<div class="api-level">
<div></div>
-
-
+
+
</div>
<div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+ <div class="jd-tagdata jd-tagdescr"><p>Returns the ad unit ID.
+</p></div>
</div>
</div>
-<A NAME="writeToParcel(android.os.Parcel, int)"></A>
+<A NAME="getAppEventListener()"></A>
-<div class="jd-details api apilevel-">
+<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
- public
-
-
-
-
+ public
+
+
+
+
+ <a href="/reference/com/google/android/gms/ads/doubleclick/AppEventListener.html">AppEventListener</a>
+ </span>
+ <span class="sympad">getAppEventListener</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Returns the <code><a href="/reference/com/google/android/gms/ads/doubleclick/AppEventListener.html">AppEventListener</a></code> for this <code><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherInterstitialAd.html">PublisherInterstitialAd</a></code>.
+</p></div>
+
+ </div>
+</div>
+
+
+<A NAME="isLoaded()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ boolean
+ </span>
+ <span class="sympad">isLoaded</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Returns <code>true</code> if the ad was successfully loaded and is ready to be shown.
+</p></div>
+
+ </div>
+</div>
+
+
+<A NAME="loadAd(com.google.android.gms.ads.doubleclick.PublisherAdRequest)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
void
</span>
- <span class="sympad">writeToParcel</span>
- <span class="normal">(Parcel out, int flags)</span>
+ <span class="sympad">loadAd</span>
+ <span class="normal">(<a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdRequest.html">PublisherAdRequest</a> publisherAdRequest)</span>
</h4>
<div class="api-level">
<div></div>
-
-
+
+
</div>
<div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+ <div class="jd-tagdata jd-tagdescr"><p>Start loading the ad on a background thread.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Throws</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>IllegalStateException</td>
+ <td>If the the ad unit ID has not been set.
+</td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="setAdListener(com.google.android.gms.ads.AdListener)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ void
+ </span>
+ <span class="sympad">setAdListener</span>
+ <span class="normal">(<a href="/reference/com/google/android/gms/ads/AdListener.html">AdListener</a> adListener)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Sets an <code><a href="/reference/com/google/android/gms/ads/AdListener.html">AdListener</a></code> for this <code><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherInterstitialAd.html">PublisherInterstitialAd</a></code>.
+</p></div>
+
+ </div>
+</div>
+
+
+<A NAME="setAdUnitId(java.lang.String)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ void
+ </span>
+ <span class="sympad">setAdUnitId</span>
+ <span class="normal">(String adUnitId)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Sets the ad unit ID.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Throws</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>IllegalStateException</td>
+ <td>If the ad unit ID was already set.
+</td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="setAppEventListener(com.google.android.gms.ads.doubleclick.AppEventListener)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ void
+ </span>
+ <span class="sympad">setAppEventListener</span>
+ <span class="normal">(<a href="/reference/com/google/android/gms/ads/doubleclick/AppEventListener.html">AppEventListener</a> appEventListener)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Sets an <code><a href="/reference/com/google/android/gms/ads/doubleclick/AppEventListener.html">AppEventListener</a></code> for this <code><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherInterstitialAd.html">PublisherInterstitialAd</a></code>.
+</p></div>
+
+ </div>
+</div>
+
+
+<A NAME="show()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ void
+ </span>
+ <span class="sympad">show</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Show the interstitial ad.
+</p></div>
</div>
</div>
@@ -1658,17 +1686,17 @@
<A NAME="navbar_top"></A>
<div id="footer" class="wrap" >
-
+
<div id="copyright">
-
+
Except as noted, this content is licensed under <a
- href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.
+ href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.
For details and restrictions, see the <a href="/license.html">
Content License</a>.
</div>
<div id="build_info">
-
+
<script src="/timestamp.js" type="text/javascript"></script>
<script>document.write(BUILD_TIMESTAMP)</script>
@@ -1676,7 +1704,7 @@
<div id="footerlinks">
-
+
<p>
<a href="/about/index.html">About Android</a> |
<a href="/legal.html">Legal</a> |
@@ -1689,7 +1717,7 @@
</div><!-- end doc-content -->
-</div> <!-- end body-content -->
+</div> <!-- end body-content -->
diff --git a/docs/html/reference/com/google/android/gms/ads/doubleclick/package-summary.html b/docs/html/reference/com/google/android/gms/ads/doubleclick/package-summary.html
new file mode 100644
index 0000000..6e021f7
--- /dev/null
+++ b/docs/html/reference/com/google/android/gms/ads/doubleclick/package-summary.html
@@ -0,0 +1,773 @@
+<!DOCTYPE html>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<html>
+<head>
+
+
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<meta name="viewport" content="width=device-width" />
+
+<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
+<title>com.google.android.gms.ads.doubleclick | Android Developers</title>
+
+<!-- STYLESHEETS -->
+<link rel="stylesheet"
+href="//fonts.googleapis.com/css?family=Roboto:regular,medium,thin,italic,mediumitalic,bold" title="roboto">
+<link href="/assets/css/default.css" rel="stylesheet" type="text/css">
+
+
+
+<!-- JAVASCRIPT -->
+<script src="//www.google.com/jsapi" type="text/javascript"></script>
+<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
+<script type="text/javascript">
+ var toRoot = "/";
+ var metaTags = [];
+ var devsite = false;
+</script>
+<script src="/assets/js/docs.js" type="text/javascript"></script>
+
+<script type="text/javascript">
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-5831155-1']);
+ _gaq.push(['_trackPageview']);
+
+ (function() {
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+ })();
+</script>
+</head>
+
+<body class="gc-documentation google
+ develop">
+ <div id="doc-api-level" class="" style="display:none"></div>
+ <a name="top"></a>
+
+<a name="top"></a>
+
+ <!-- Header -->
+ <div id="header">
+ <div class="wrap" id="header-wrap">
+ <div class="col-3 logo">
+ <a href="/index.html">
+ <img src="/assets/images/dac_logo.png" width="123" height="25" alt="Android Developers" />
+ </a>
+ <div class="btn-quicknav" id="btn-quicknav">
+ <a href="#" class="arrow-inactive">Quicknav</a>
+ <a href="#" class="arrow-active">Quicknav</a>
+ </div>
+ </div>
+ <ul class="nav-x col-9">
+ <li class="design">
+ <a href="/design/index.html"
+ zh-tw-lang="設計"
+ zh-cn-lang="设计"
+ ru-lang="Проектирование"
+ ko-lang="디자인"
+ ja-lang="設計"
+ es-lang="Diseñar"
+ >Design</a></li>
+ <li class="develop"><a href="/develop/index.html"
+ zh-tw-lang="開發"
+ zh-cn-lang="开发"
+ ru-lang="Разработка"
+ ko-lang="개발"
+ ja-lang="開発"
+ es-lang="Desarrollar"
+ >Develop</a></li>
+ <li class="distribute last"><a href="/distribute/index.html"
+ zh-tw-lang="發佈"
+ zh-cn-lang="分发"
+ ru-lang="Распространение"
+ ko-lang="배포"
+ ja-lang="配布"
+ es-lang="Distribuir"
+ >Distribute</a></li>
+ </ul>
+
+ <!-- New Search -->
+ <div class="menu-container">
+ <div class="moremenu">
+ <div id="more-btn"></div>
+ </div>
+ <div class="morehover" id="moremenu">
+ <div class="top"></div>
+ <div class="mid">
+ <div class="header">Links</div>
+ <ul>
+ <li><a href="https://play.google.com/apps/publish/">Google Play Developer Console</a></li>
+ <li><a href="http://android-developers.blogspot.com/">Android Developers Blog</a></li>
+ <li><a href="/about/index.html">About Android</a></li>
+ </ul>
+ <div class="header">Android Sites</div>
+ <ul>
+ <li><a href="http://www.android.com">Android.com</a></li>
+ <li class="active"><a>Android Developers</a></li>
+ <li><a href="http://source.android.com">Android Open Source Project</a></li>
+ </ul>
+
+
+
+ <div class="header">Language</div>
+ <div id="language" class="locales">
+ <select name="language" onChange="changeLangPref(this.value, true)">
+ <option value="en">English</option>
+ <option value="es">Español</option>
+ <option value="ja">日本語</option>
+ <option value="ko">한국어</option>
+ <option value="ru">Русский</option>
+ <option value="zh-cn">中文 (中国)</option>
+ <option value="zh-tw">中文 (台灣)</option>
+ </select>
+ </div>
+ <script type="text/javascript">
+ <!--
+ loadLangPref();
+ //-->
+ </script>
+
+
+
+
+ <br class="clearfix" />
+ </div>
+ <div class="bottom"></div>
+ </div>
+ <div class="search" id="search-container">
+ <div class="search-inner">
+ <div id="search-btn"></div>
+ <div class="left"></div>
+ <form onsubmit="return submit_search()">
+ <input id="search_autocomplete" type="text" value="" autocomplete="off" name="q"
+onfocus="search_focus_changed(this, true)" onblur="search_focus_changed(this, false)"
+onkeydown="return search_changed(event, true, '/')"
+onkeyup="return search_changed(event, false, '/')" />
+ </form>
+ <div class="right"></div>
+ <a class="close hide">close</a>
+ <div class="left"></div>
+ <div class="right"></div>
+ </div>
+ </div>
+
+ <div class="search_filtered_wrapper reference">
+ <div class="suggest-card reference no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ </div>
+
+ <div class="search_filtered_wrapper docs">
+ <div class="suggest-card dummy no-display"> </div>
+ <div class="suggest-card develop no-display">
+ <ul class="search_filtered">
+ </ul>
+ <div class="child-card guides no-display">
+ </div>
+ <div class="child-card training no-display">
+ </div>
+ <div class="child-card samples no-display">
+ </div>
+ </div>
+ <div class="suggest-card design no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ <div class="suggest-card distribute no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ </div>
+
+ </div>
+ <!-- /New Search>
+
+
+ <!-- Expanded quicknav -->
+ <div id="quicknav" class="col-9">
+ <ul>
+ <li class="design">
+ <ul>
+ <li><a href="/design/index.html">Get Started</a></li>
+ <li><a href="/design/style/index.html">Style</a></li>
+ <li><a href="/design/patterns/index.html">Patterns</a></li>
+ <li><a href="/design/building-blocks/index.html">Building Blocks</a></li>
+ <li><a href="/design/downloads/index.html">Downloads</a></li>
+ <li><a href="/design/videos/index.html">Videos</a></li>
+ </ul>
+ </li>
+ <li class="develop">
+ <ul>
+ <li><a href="/training/index.html"
+ zh-tw-lang="訓練課程"
+ zh-cn-lang="培训"
+ ru-lang="Курсы"
+ ko-lang="교육"
+ ja-lang="トレーニング"
+ es-lang="Capacitación"
+ >Training</a></li>
+ <li><a href="/guide/index.html"
+ zh-tw-lang="API 指南"
+ zh-cn-lang="API 指南"
+ ru-lang="Руководства по API"
+ ko-lang="API 가이드"
+ ja-lang="API ガイド"
+ es-lang="Guías de la API"
+ >API Guides</a></li>
+ <li><a href="/reference/packages.html"
+ zh-tw-lang="參考資源"
+ zh-cn-lang="参考"
+ ru-lang="Справочник"
+ ko-lang="참조문서"
+ ja-lang="リファレンス"
+ es-lang="Referencia"
+ >Reference</a></li>
+ <li><a href="/tools/index.html"
+ zh-tw-lang="相關工具"
+ zh-cn-lang="工具"
+ ru-lang="Инструменты"
+ ko-lang="도구"
+ ja-lang="ツール"
+ es-lang="Herramientas"
+ >Tools</a>
+ <ul><li><a href="/sdk/index.html">Get the SDK</a></li></ul>
+ </li>
+ <li><a href="/google/index.html">Google Services</a>
+ </li>
+
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
+ </ul>
+ </li>
+ <li class="distribute last">
+ <ul>
+ <li><a href="/distribute/index.html">Google Play</a></li>
+ <li><a href="/distribute/googleplay/publish/index.html">Publishing</a></li>
+ <li><a href="/distribute/googleplay/promote/index.html">Promoting</a></li>
+ <li><a href="/distribute/googleplay/quality/index.html">App Quality</a></li>
+ <li><a href="/distribute/googleplay/spotlight/index.html">Spotlight</a></li>
+ <li><a href="/distribute/open.html">Open Distribution</a></li>
+ </ul>
+ </li>
+ </ul>
+ </div>
+ <!-- /Expanded quicknav -->
+ </div>
+ </div>
+ <!-- /Header -->
+
+
+ <div id="searchResults" class="wrap" style="display:none;">
+ <h2 id="searchTitle">Results</h2>
+ <div id="leftSearchControl" class="search-control">Loading...</div>
+ </div>
+
+
+
+ <!-- Secondary x-nav -->
+ <div id="nav-x">
+ <div class="wrap">
+ <ul class="nav-x col-9 develop" style="width:100%">
+ <li class="training"><a href="/training/index.html"
+ zh-tw-lang="訓練課程"
+ zh-cn-lang="培训"
+ ru-lang="Курсы"
+ ko-lang="교육"
+ ja-lang="トレーニング"
+ es-lang="Capacitación"
+ >Training</a></li>
+ <li class="guide"><a href="/guide/index.html"
+ zh-tw-lang="API 指南"
+ zh-cn-lang="API 指南"
+ ru-lang="Руководства по API"
+ ko-lang="API 가이드"
+ ja-lang="API ガイド"
+ es-lang="Guías de la API"
+ >API Guides</a></li>
+ <li class="reference"><a href="/reference/packages.html"
+ zh-tw-lang="參考資源"
+ zh-cn-lang="参考"
+ ru-lang="Справочник"
+ ko-lang="참조문서"
+ ja-lang="リファレンス"
+ es-lang="Referencia"
+ >Reference</a></li>
+ <li class="tools"><a href="/tools/index.html"
+ zh-tw-lang="相關工具"
+ zh-cn-lang="工具"
+ ru-lang="Инструменты"
+ ko-lang="도구"
+ ja-lang="ツール"
+ es-lang="Herramientas"
+ >Tools</a></li>
+ <li class="google"><a href="/google/index.html"
+ >Google Services</a>
+ </li>
+
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
+ </ul>
+ </div>
+
+ </div>
+ <!-- /Sendondary x-nav -->
+
+
+
+
+
+
+
+
+
+ <div class="wrap clearfix" id="body-content">
+ <div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
+ <div id="devdoc-nav" class="scroll-pane">
+<a class="totop" href="#top" data-g-event="left-nav-top">to top</a>
+
+
+
+<ul id="nav">
+
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/index.html">
+ <span class="en">Overview</span>
+ </a></div>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/games.html">
+ <span class="en">Games</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/location.html">
+ <span class="en">Location</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/plus.html">
+ <span class="en">Google+</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/maps.html">
+ <span class="en">Maps</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play-services/ads.html">
+ <span class="en">Ads</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play-services/id.html">
+ <span class="en">Advertising ID</span></a>
+ </li>
+ </ul>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/wallet.html">
+ <span class="en">Wallet</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/auth.html">
+ <span class="en">Authorization</span>
+ </a></div>
+ </li>
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play-services/index.html">
+ <span class="en">Google Play Services</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play-services/setup.html">
+ <span class="en">Setup</span></a>
+ </li>
+ <li id="gms-tree-list" class="nav-section">
+ <div class="nav-section-header">
+ <a href="/reference/gms-packages.html">
+ <span class="en">Reference</span>
+ </a>
+ <div>
+ </li>
+ </ul>
+ </li>
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/billing/index.html">
+ <span class="en">Google Play In-app Billing</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/billing/billing_overview.html">
+ <span class="en">Overview</span></a>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/api.html">
+ <span class="en">Version 3 API</span></a></div>
+ <ul>
+ <li><a href="/google/play/billing/billing_integrate.html">
+ <span class="en">Implementing the API</span></a></li>
+ <li><a href="/google/play/billing/billing_reference.html">
+ <span class="en">Reference</span></a></li>
+ </ul>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/v2/api.html">
+ <span class="en">Version 2 API</span></a></div>
+ <ul>
+ <li><a href="/google/play/billing/v2/billing_integrate.html">
+ <span class="en">Implementing the API</span></a></li>
+ <li><a href="/google/play/billing/v2/billing_subscriptions.html">
+ <span class="en">Subscriptions</span></a></li>
+ <li><a href="/google/play/billing/v2/billing_reference.html">
+ <span class="en">Reference</span></a></li>
+ </ul>
+ </li>
+ <li><a href="/google/play/billing/billing_subscriptions.html">
+ <span class="en">Subscriptions</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_best_practices.html">
+ <span class="en">Security and Design</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_testing.html">
+ <span class="en">Testing In-app Billing</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_admin.html">
+ <span class="en">Administering In-app Billing</span></a>
+ </li>
+ <li><a href="/google/play/billing/gp-purchase-status-api.html">
+ <span class="en">Purchase Status API</span></a>
+ </li>
+ <li><a href="/google/play/billing/versions.html">
+ <span class="en">Version Notes</span></a>
+ </li>
+ </ul>
+ </li>
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/gcm/index.html">
+ <span class="en">Google Cloud Messaging</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
+ <li><a href="/google/gcm/gs.html">
+ <span class="en">Getting Started</span></a>
+ </li>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
+ </li>
+ <li><a href="/google/gcm/notifications.html">
+ <span class="en">User Notifications</span></a>
+ </li>
+ <li><a href="/google/gcm/adv.html">
+ <span class="en">Advanced Topics</span></a>
+ </li>
+ <li><a href="/google/gcm/c2dm.html">
+ <span class="en">Migration</span></a>
+ </li>
+ <li id="gcm-tree-list" class="nav-section">
+ <div class="nav-section-header">
+ <a href="/reference/gcm-packages.html">
+ <span class="en">Reference</span>
+ </a>
+ <div>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/dist.html">
+ <span class="en">Google Play Distribution</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/filters.html">
+ <span class="en">Filters on Google Play</span></a>
+ </li>
+
+ <li><a href="/google/play/publishing/multiple-apks.html">
+ <span class="en">Multiple APK Support</span></a>
+ </li>
+ <li><a href="/google/play/expansion-files.html">
+ <span class="en">APK Expansion Files</span></a>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/licensing/index.html">
+ <span class="en">Application Licensing</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/licensing/overview.html">
+ <span class="en">Licensing Overview</span></a>
+ </li>
+ <li><a href="/google/play/licensing/setting-up.html">
+ <span class="en">Setting Up for Licensing</span></a>
+ </li>
+ <li><a href="/google/play/licensing/adding-licensing.html">
+ <span class="en">Adding Licensing to Your App</span></a>
+ </li>
+ <li><a href="/google/play/licensing/licensing-reference.html">
+ <span class="en">Licensing Reference</span></a>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/backup/index.html">
+ Android Backup Service</a>
+ </div>
+ <ul>
+ <li><a href="/google/backup/signup.html">
+ Register</a>
+ </li>
+ </ul>
+ </li>
+
+ </ul>
+
+</li>
+
+
+
+</ul>
+
+<script type="text/javascript">
+<!--
+ buildToggleLists();
+ changeNavLang(getLangPref());
+//-->
+</script>
+
+
+
+
+ </div>
+ <script type="text/javascript">
+ showGoogleRefTree();
+
+ </script>
+ </div> <!-- end side-nav -->
+ <script>
+ $(document).ready(function() {
+ scrollIntoView("devdoc-nav");
+ });
+ </script>
+
+
+
+
+
+
+<div class="col-12" id="doc-col">
+
+<div id="api-info-block">
+<div class="api-level">
+
+
+
+
+</div>
+</div>
+
+<div id="jd-header">
+ package
+ <h1>com.google.android.gms.ads.doubleclick</h1>
+</div><!-- end header -->
+
+<div id="naMessage"></div>
+
+<div id="jd-content" class="api apilevel-">
+
+
+ <div class="jd-descr">
+ Contains classes for DoubleClick for Publishers.
+
+ </div>
+
+
+
+
+
+
+ <h2>Interfaces</h2>
+ <div class="jd-sumtable">
+
+ <table class="jd-sumtable-expando">
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/ads/doubleclick/AppEventListener.html">AppEventListener</a></td>
+ <td class="jd-descrcol" width="100%">A listener interface for app events triggered by ads. </td>
+ </tr>
+ </table>
+ </div>
+
+
+
+
+ <h2>Classes</h2>
+ <div class="jd-sumtable">
+
+ <table class="jd-sumtable-expando">
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdRequest.html">PublisherAdRequest</a></td>
+ <td class="jd-descrcol" width="100%">A <code><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdRequest.html">PublisherAdRequest</a></code> contains targeting information used to fetch an ad from DoubleClick
+ for Publishers. </td>
+ </tr>
+ <tr class=" api apilevel-" >
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdRequest.Builder.html">PublisherAdRequest.Builder</a></td>
+ <td class="jd-descrcol" width="100%">Builds a <code><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdRequest.html">PublisherAdRequest</a></code>. </td>
+ </tr>
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherAdView.html">PublisherAdView</a></td>
+ <td class="jd-descrcol" width="100%">The <code><a href="/reference/android/view/View.html">View</a></code> to display banner ads for use with DoubleClick for Publishers. </td>
+ </tr>
+ <tr class=" api apilevel-" >
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/ads/doubleclick/PublisherInterstitialAd.html">PublisherInterstitialAd</a></td>
+ <td class="jd-descrcol" width="100%">Full-screen interstitial ads for use with DoubleClick for Publishers. </td>
+ </tr>
+ </table>
+ </div>
+
+
+
+
+
+
+
+
+
+
+
+
+<div id="footer" class="wrap" >
+
+
+ <div id="copyright">
+
+ Except as noted, this content is licensed under <a
+ href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.
+ For details and restrictions, see the <a href="/license.html">
+ Content License</a>.
+ </div>
+ <div id="build_info">
+
+<script src="/timestamp.js" type="text/javascript"></script>
+<script>document.write(BUILD_TIMESTAMP)</script>
+
+ </div>
+
+
+ <div id="footerlinks">
+
+ <p>
+ <a href="/about/index.html">About Android</a> |
+ <a href="/legal.html">Legal</a> |
+ <a href="/support.html">Support</a>
+ </p>
+ </div>
+
+</div> <!-- end footer -->
+</div><!-- end jd-content -->
+</div><!-- doc-content -->
+
+</div> <!-- end body-content -->
+
+
+
+
+
+
+</body>
+</html>
diff --git a/docs/html/reference/com/google/android/gms/ads/identifier/AdvertisingIdClient.Info.html b/docs/html/reference/com/google/android/gms/ads/identifier/AdvertisingIdClient.Info.html
index e8d832d..415e2ff 100644
--- a/docs/html/reference/com/google/android/gms/ads/identifier/AdvertisingIdClient.Info.html
+++ b/docs/html/reference/com/google/android/gms/ads/identifier/AdvertisingIdClient.Info.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/ads/identifier/AdvertisingIdClient.html b/docs/html/reference/com/google/android/gms/ads/identifier/AdvertisingIdClient.html
index b1d6731..c702b99 100644
--- a/docs/html/reference/com/google/android/gms/ads/identifier/AdvertisingIdClient.html
+++ b/docs/html/reference/com/google/android/gms/ads/identifier/AdvertisingIdClient.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/ads/identifier/package-summary.html b/docs/html/reference/com/google/android/gms/ads/identifier/package-summary.html
index 59f719a..81b1fd8 100644
--- a/docs/html/reference/com/google/android/gms/ads/identifier/package-summary.html
+++ b/docs/html/reference/com/google/android/gms/ads/identifier/package-summary.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -242,6 +243,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -280,7 +283,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -309,6 +312,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -348,7 +354,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -376,6 +382,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -518,29 +528,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/ads/mediation/NetworkExtras.html b/docs/html/reference/com/google/android/gms/ads/mediation/NetworkExtras.html
index c82c4f6..cd85174 100644
--- a/docs/html/reference/com/google/android/gms/ads/mediation/NetworkExtras.html
+++ b/docs/html/reference/com/google/android/gms/ads/mediation/NetworkExtras.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
@@ -752,8 +765,8 @@
<h2>Class Overview</h2>
-<p itemprop="articleBody">An empty interface for use by Google Ads mediation adapters. There are intentionally no methods
- to implement.
+<p itemprop="articleBody">An empty interface for use by Google Mobile Ads mediation adapters. There are intentionally no
+ methods to implement.
</p>
diff --git a/docs/html/reference/com/google/android/gms/ads/mediation/admob/AdMobExtras.html b/docs/html/reference/com/google/android/gms/ads/mediation/admob/AdMobExtras.html
index 6d1aa4a..2655218 100644
--- a/docs/html/reference/com/google/android/gms/ads/mediation/admob/AdMobExtras.html
+++ b/docs/html/reference/com/google/android/gms/ads/mediation/admob/AdMobExtras.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/ads/mediation/admob/package-summary.html b/docs/html/reference/com/google/android/gms/ads/mediation/admob/package-summary.html
index 7117324..77033dc 100644
--- a/docs/html/reference/com/google/android/gms/ads/mediation/admob/package-summary.html
+++ b/docs/html/reference/com/google/android/gms/ads/mediation/admob/package-summary.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -242,6 +243,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -280,7 +283,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -309,6 +312,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -348,7 +354,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -376,6 +382,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -518,29 +528,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/ads/mediation/customevent/CustomEventExtras.html b/docs/html/reference/com/google/android/gms/ads/mediation/customevent/CustomEventExtras.html
index 3d4c0f3..5abc196 100644
--- a/docs/html/reference/com/google/android/gms/ads/mediation/customevent/CustomEventExtras.html
+++ b/docs/html/reference/com/google/android/gms/ads/mediation/customevent/CustomEventExtras.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/ads/mediation/customevent/package-summary.html b/docs/html/reference/com/google/android/gms/ads/mediation/customevent/package-summary.html
index b2e831e..59f90d0 100644
--- a/docs/html/reference/com/google/android/gms/ads/mediation/customevent/package-summary.html
+++ b/docs/html/reference/com/google/android/gms/ads/mediation/customevent/package-summary.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -242,6 +243,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -280,7 +283,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -309,6 +312,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -348,7 +354,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -376,6 +382,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -518,29 +528,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
@@ -660,7 +673,7 @@
<div class="jd-descr">
- Contains classes for Google Ads mediation custom events.
+ Contains classes for Google Mobile Ads mediation custom events.
</div>
diff --git a/docs/html/reference/com/google/android/gms/ads/mediation/package-summary.html b/docs/html/reference/com/google/android/gms/ads/mediation/package-summary.html
index c6ca1d6..e569386 100644
--- a/docs/html/reference/com/google/android/gms/ads/mediation/package-summary.html
+++ b/docs/html/reference/com/google/android/gms/ads/mediation/package-summary.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -242,6 +243,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -280,7 +283,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -309,6 +312,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -348,7 +354,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -376,6 +382,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -518,29 +528,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
@@ -660,7 +673,7 @@
<div class="jd-descr">
- Contains classes for Google Ads mediation adapters.
+ Contains classes for Google Mobile Ads mediation adapters.
</div>
@@ -675,7 +688,7 @@
<table class="jd-sumtable-expando">
<tr class="alt-color api apilevel-" >
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/ads/mediation/NetworkExtras.html">NetworkExtras</a></td>
- <td class="jd-descrcol" width="100%">An empty interface for use by Google Ads mediation adapters. </td>
+ <td class="jd-descrcol" width="100%">An empty interface for use by Google Mobile Ads mediation adapters. </td>
</tr>
</table>
</div>
diff --git a/docs/html/reference/com/google/android/gms/ads/package-summary.html b/docs/html/reference/com/google/android/gms/ads/package-summary.html
index 8c96a79..94e05de 100644
--- a/docs/html/reference/com/google/android/gms/ads/package-summary.html
+++ b/docs/html/reference/com/google/android/gms/ads/package-summary.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -242,6 +243,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -280,7 +283,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -309,6 +312,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -348,7 +354,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -376,6 +382,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -518,29 +528,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
@@ -660,7 +673,7 @@
<div class="jd-descr">
- Contains classes for Google Ads.
+ Contains classes for Google Mobile Ads.
</div>
@@ -678,7 +691,7 @@
<table class="jd-sumtable-expando">
<tr class="alt-color api apilevel-" >
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/ads/AdListener.html">AdListener</a></td>
- <td class="jd-descrcol" width="100%">An interface for receiving notifications during the lifecycle of an ad. </td>
+ <td class="jd-descrcol" width="100%">A listener for receiving notifications during the lifecycle of an ad. </td>
</tr>
<tr class=" api apilevel-" >
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/ads/AdRequest.html">AdRequest</a></td>
diff --git a/docs/html/reference/com/google/android/gms/ads/search/SearchAdRequest.Builder.html b/docs/html/reference/com/google/android/gms/ads/search/SearchAdRequest.Builder.html
new file mode 100644
index 0000000..d1ddcd1
--- /dev/null
+++ b/docs/html/reference/com/google/android/gms/ads/search/SearchAdRequest.Builder.html
@@ -0,0 +1,2134 @@
+<!DOCTYPE html>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<html>
+<head>
+
+
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<meta name="viewport" content="width=device-width" />
+
+<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
+<title>SearchAdRequest.Builder | Android Developers</title>
+
+<!-- STYLESHEETS -->
+<link rel="stylesheet"
+href="//fonts.googleapis.com/css?family=Roboto:regular,medium,thin,italic,mediumitalic,bold" title="roboto">
+<link href="/assets/css/default.css" rel="stylesheet" type="text/css">
+
+
+
+<!-- JAVASCRIPT -->
+<script src="//www.google.com/jsapi" type="text/javascript"></script>
+<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
+<script type="text/javascript">
+ var toRoot = "/";
+ var metaTags = [];
+ var devsite = false;
+</script>
+<script src="/assets/js/docs.js" type="text/javascript"></script>
+
+<script type="text/javascript">
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-5831155-1']);
+ _gaq.push(['_trackPageview']);
+
+ (function() {
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+ })();
+</script>
+</head>
+<body class="gc-documentation google
+ develop" itemscope itemtype="http://schema.org/Article">
+ <div id="doc-api-level" class="" style="display:none"></div>
+ <a name="top"></a>
+
+<a name="top"></a>
+
+ <!-- Header -->
+ <div id="header">
+ <div class="wrap" id="header-wrap">
+ <div class="col-3 logo">
+ <a href="/index.html">
+ <img src="/assets/images/dac_logo.png" width="123" height="25" alt="Android Developers" />
+ </a>
+ <div class="btn-quicknav" id="btn-quicknav">
+ <a href="#" class="arrow-inactive">Quicknav</a>
+ <a href="#" class="arrow-active">Quicknav</a>
+ </div>
+ </div>
+ <ul class="nav-x col-9">
+ <li class="design">
+ <a href="/design/index.html"
+ zh-tw-lang="設計"
+ zh-cn-lang="设计"
+ ru-lang="Проектирование"
+ ko-lang="디자인"
+ ja-lang="設計"
+ es-lang="Diseñar"
+ >Design</a></li>
+ <li class="develop"><a href="/develop/index.html"
+ zh-tw-lang="開發"
+ zh-cn-lang="开发"
+ ru-lang="Разработка"
+ ko-lang="개발"
+ ja-lang="開発"
+ es-lang="Desarrollar"
+ >Develop</a></li>
+ <li class="distribute last"><a href="/distribute/index.html"
+ zh-tw-lang="發佈"
+ zh-cn-lang="分发"
+ ru-lang="Распространение"
+ ko-lang="배포"
+ ja-lang="配布"
+ es-lang="Distribuir"
+ >Distribute</a></li>
+ </ul>
+
+ <!-- New Search -->
+ <div class="menu-container">
+ <div class="moremenu">
+ <div id="more-btn"></div>
+ </div>
+ <div class="morehover" id="moremenu">
+ <div class="top"></div>
+ <div class="mid">
+ <div class="header">Links</div>
+ <ul>
+ <li><a href="https://play.google.com/apps/publish/">Google Play Developer Console</a></li>
+ <li><a href="http://android-developers.blogspot.com/">Android Developers Blog</a></li>
+ <li><a href="/about/index.html">About Android</a></li>
+ </ul>
+ <div class="header">Android Sites</div>
+ <ul>
+ <li><a href="http://www.android.com">Android.com</a></li>
+ <li class="active"><a>Android Developers</a></li>
+ <li><a href="http://source.android.com">Android Open Source Project</a></li>
+ </ul>
+
+
+
+ <div class="header">Language</div>
+ <div id="language" class="locales">
+ <select name="language" onChange="changeLangPref(this.value, true)">
+ <option value="en">English</option>
+ <option value="es">Español</option>
+ <option value="ja">日本語</option>
+ <option value="ko">한국어</option>
+ <option value="ru">Русский</option>
+ <option value="zh-cn">中文 (中国)</option>
+ <option value="zh-tw">中文 (台灣)</option>
+ </select>
+ </div>
+ <script type="text/javascript">
+ <!--
+ loadLangPref();
+ //-->
+ </script>
+
+
+
+
+ <br class="clearfix" />
+ </div>
+ <div class="bottom"></div>
+ </div>
+ <div class="search" id="search-container">
+ <div class="search-inner">
+ <div id="search-btn"></div>
+ <div class="left"></div>
+ <form onsubmit="return submit_search()">
+ <input id="search_autocomplete" type="text" value="" autocomplete="off" name="q"
+onfocus="search_focus_changed(this, true)" onblur="search_focus_changed(this, false)"
+onkeydown="return search_changed(event, true, '/')"
+onkeyup="return search_changed(event, false, '/')" />
+ </form>
+ <div class="right"></div>
+ <a class="close hide">close</a>
+ <div class="left"></div>
+ <div class="right"></div>
+ </div>
+ </div>
+
+ <div class="search_filtered_wrapper reference">
+ <div class="suggest-card reference no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ </div>
+
+ <div class="search_filtered_wrapper docs">
+ <div class="suggest-card dummy no-display"> </div>
+ <div class="suggest-card develop no-display">
+ <ul class="search_filtered">
+ </ul>
+ <div class="child-card guides no-display">
+ </div>
+ <div class="child-card training no-display">
+ </div>
+ <div class="child-card samples no-display">
+ </div>
+ </div>
+ <div class="suggest-card design no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ <div class="suggest-card distribute no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ </div>
+
+ </div>
+ <!-- /New Search>
+
+
+ <!-- Expanded quicknav -->
+ <div id="quicknav" class="col-9">
+ <ul>
+ <li class="design">
+ <ul>
+ <li><a href="/design/index.html">Get Started</a></li>
+ <li><a href="/design/style/index.html">Style</a></li>
+ <li><a href="/design/patterns/index.html">Patterns</a></li>
+ <li><a href="/design/building-blocks/index.html">Building Blocks</a></li>
+ <li><a href="/design/downloads/index.html">Downloads</a></li>
+ <li><a href="/design/videos/index.html">Videos</a></li>
+ </ul>
+ </li>
+ <li class="develop">
+ <ul>
+ <li><a href="/training/index.html"
+ zh-tw-lang="訓練課程"
+ zh-cn-lang="培训"
+ ru-lang="Курсы"
+ ko-lang="교육"
+ ja-lang="トレーニング"
+ es-lang="Capacitación"
+ >Training</a></li>
+ <li><a href="/guide/index.html"
+ zh-tw-lang="API 指南"
+ zh-cn-lang="API 指南"
+ ru-lang="Руководства по API"
+ ko-lang="API 가이드"
+ ja-lang="API ガイド"
+ es-lang="Guías de la API"
+ >API Guides</a></li>
+ <li><a href="/reference/packages.html"
+ zh-tw-lang="參考資源"
+ zh-cn-lang="参考"
+ ru-lang="Справочник"
+ ko-lang="참조문서"
+ ja-lang="リファレンス"
+ es-lang="Referencia"
+ >Reference</a></li>
+ <li><a href="/tools/index.html"
+ zh-tw-lang="相關工具"
+ zh-cn-lang="工具"
+ ru-lang="Инструменты"
+ ko-lang="도구"
+ ja-lang="ツール"
+ es-lang="Herramientas"
+ >Tools</a>
+ <ul><li><a href="/sdk/index.html">Get the SDK</a></li></ul>
+ </li>
+ <li><a href="/google/index.html">Google Services</a>
+ </li>
+
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
+ </ul>
+ </li>
+ <li class="distribute last">
+ <ul>
+ <li><a href="/distribute/index.html">Google Play</a></li>
+ <li><a href="/distribute/googleplay/publish/index.html">Publishing</a></li>
+ <li><a href="/distribute/googleplay/promote/index.html">Promoting</a></li>
+ <li><a href="/distribute/googleplay/quality/index.html">App Quality</a></li>
+ <li><a href="/distribute/googleplay/spotlight/index.html">Spotlight</a></li>
+ <li><a href="/distribute/open.html">Open Distribution</a></li>
+ </ul>
+ </li>
+ </ul>
+ </div>
+ <!-- /Expanded quicknav -->
+ </div>
+ </div>
+ <!-- /Header -->
+
+
+ <div id="searchResults" class="wrap" style="display:none;">
+ <h2 id="searchTitle">Results</h2>
+ <div id="leftSearchControl" class="search-control">Loading...</div>
+ </div>
+
+
+
+ <!-- Secondary x-nav -->
+ <div id="nav-x">
+ <div class="wrap">
+ <ul class="nav-x col-9 develop" style="width:100%">
+ <li class="training"><a href="/training/index.html"
+ zh-tw-lang="訓練課程"
+ zh-cn-lang="培训"
+ ru-lang="Курсы"
+ ko-lang="교육"
+ ja-lang="トレーニング"
+ es-lang="Capacitación"
+ >Training</a></li>
+ <li class="guide"><a href="/guide/index.html"
+ zh-tw-lang="API 指南"
+ zh-cn-lang="API 指南"
+ ru-lang="Руководства по API"
+ ko-lang="API 가이드"
+ ja-lang="API ガイド"
+ es-lang="Guías de la API"
+ >API Guides</a></li>
+ <li class="reference"><a href="/reference/packages.html"
+ zh-tw-lang="參考資源"
+ zh-cn-lang="参考"
+ ru-lang="Справочник"
+ ko-lang="참조문서"
+ ja-lang="リファレンス"
+ es-lang="Referencia"
+ >Reference</a></li>
+ <li class="tools"><a href="/tools/index.html"
+ zh-tw-lang="相關工具"
+ zh-cn-lang="工具"
+ ru-lang="Инструменты"
+ ko-lang="도구"
+ ja-lang="ツール"
+ es-lang="Herramientas"
+ >Tools</a></li>
+ <li class="google"><a href="/google/index.html"
+ >Google Services</a>
+ </li>
+
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
+ </ul>
+ </div>
+
+ </div>
+ <!-- /Sendondary x-nav -->
+
+
+
+
+
+
+
+
+
+ <div class="wrap clearfix" id="body-content">
+ <div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
+ <div id="devdoc-nav" class="scroll-pane">
+<a class="totop" href="#top" data-g-event="left-nav-top">to top</a>
+
+
+
+<ul id="nav">
+
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/index.html">
+ <span class="en">Overview</span>
+ </a></div>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/games.html">
+ <span class="en">Games</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/location.html">
+ <span class="en">Location</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/plus.html">
+ <span class="en">Google+</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/maps.html">
+ <span class="en">Maps</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play-services/ads.html">
+ <span class="en">Ads</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play-services/id.html">
+ <span class="en">Advertising ID</span></a>
+ </li>
+ </ul>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/wallet.html">
+ <span class="en">Wallet</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/auth.html">
+ <span class="en">Authorization</span>
+ </a></div>
+ </li>
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play-services/index.html">
+ <span class="en">Google Play Services</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play-services/setup.html">
+ <span class="en">Setup</span></a>
+ </li>
+ <li id="gms-tree-list" class="nav-section">
+ <div class="nav-section-header">
+ <a href="/reference/gms-packages.html">
+ <span class="en">Reference</span>
+ </a>
+ <div>
+ </li>
+ </ul>
+ </li>
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/billing/index.html">
+ <span class="en">Google Play In-app Billing</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/billing/billing_overview.html">
+ <span class="en">Overview</span></a>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/api.html">
+ <span class="en">Version 3 API</span></a></div>
+ <ul>
+ <li><a href="/google/play/billing/billing_integrate.html">
+ <span class="en">Implementing the API</span></a></li>
+ <li><a href="/google/play/billing/billing_reference.html">
+ <span class="en">Reference</span></a></li>
+ </ul>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/v2/api.html">
+ <span class="en">Version 2 API</span></a></div>
+ <ul>
+ <li><a href="/google/play/billing/v2/billing_integrate.html">
+ <span class="en">Implementing the API</span></a></li>
+ <li><a href="/google/play/billing/v2/billing_subscriptions.html">
+ <span class="en">Subscriptions</span></a></li>
+ <li><a href="/google/play/billing/v2/billing_reference.html">
+ <span class="en">Reference</span></a></li>
+ </ul>
+ </li>
+ <li><a href="/google/play/billing/billing_subscriptions.html">
+ <span class="en">Subscriptions</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_best_practices.html">
+ <span class="en">Security and Design</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_testing.html">
+ <span class="en">Testing In-app Billing</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_admin.html">
+ <span class="en">Administering In-app Billing</span></a>
+ </li>
+ <li><a href="/google/play/billing/gp-purchase-status-api.html">
+ <span class="en">Purchase Status API</span></a>
+ </li>
+ <li><a href="/google/play/billing/versions.html">
+ <span class="en">Version Notes</span></a>
+ </li>
+ </ul>
+ </li>
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/gcm/index.html">
+ <span class="en">Google Cloud Messaging</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
+ <li><a href="/google/gcm/gs.html">
+ <span class="en">Getting Started</span></a>
+ </li>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
+ </li>
+ <li><a href="/google/gcm/notifications.html">
+ <span class="en">User Notifications</span></a>
+ </li>
+ <li><a href="/google/gcm/adv.html">
+ <span class="en">Advanced Topics</span></a>
+ </li>
+ <li><a href="/google/gcm/c2dm.html">
+ <span class="en">Migration</span></a>
+ </li>
+ <li id="gcm-tree-list" class="nav-section">
+ <div class="nav-section-header">
+ <a href="/reference/gcm-packages.html">
+ <span class="en">Reference</span>
+ </a>
+ <div>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/dist.html">
+ <span class="en">Google Play Distribution</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/filters.html">
+ <span class="en">Filters on Google Play</span></a>
+ </li>
+
+ <li><a href="/google/play/publishing/multiple-apks.html">
+ <span class="en">Multiple APK Support</span></a>
+ </li>
+ <li><a href="/google/play/expansion-files.html">
+ <span class="en">APK Expansion Files</span></a>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/licensing/index.html">
+ <span class="en">Application Licensing</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/licensing/overview.html">
+ <span class="en">Licensing Overview</span></a>
+ </li>
+ <li><a href="/google/play/licensing/setting-up.html">
+ <span class="en">Setting Up for Licensing</span></a>
+ </li>
+ <li><a href="/google/play/licensing/adding-licensing.html">
+ <span class="en">Adding Licensing to Your App</span></a>
+ </li>
+ <li><a href="/google/play/licensing/licensing-reference.html">
+ <span class="en">Licensing Reference</span></a>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/backup/index.html">
+ Android Backup Service</a>
+ </div>
+ <ul>
+ <li><a href="/google/backup/signup.html">
+ Register</a>
+ </li>
+ </ul>
+ </li>
+
+ </ul>
+
+</li>
+
+
+
+</ul>
+
+<script type="text/javascript">
+<!--
+ buildToggleLists();
+ changeNavLang(getLangPref());
+//-->
+</script>
+
+
+
+
+ </div>
+ <script type="text/javascript">
+ showGoogleRefTree();
+
+ </script>
+ </div> <!-- end side-nav -->
+ <script>
+ $(document).ready(function() {
+ scrollIntoView("devdoc-nav");
+ });
+ </script>
+
+
+
+
+
+
+<div class="col-12" id="doc-col">
+
+<div id="api-info-block">
+
+
+
+
+
+
+
+
+
+
+
+<div class="sum-details-links">
+
+Summary:
+
+
+
+
+
+
+
+
+
+ <a href="#pubctors">Ctors</a>
+
+
+
+
+ | <a href="#pubmethods">Methods</a>
+
+
+
+
+ | <a href="#inhmethods">Inherited Methods</a>
+
+| <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
+
+</div><!-- end sum-details-links -->
+<div class="api-level">
+
+
+
+
+</div>
+</div><!-- end api-info-block -->
+
+
+<!-- ======== START OF CLASS DATA ======== -->
+
+<div id="jd-header">
+ public
+ static
+ final
+
+ class
+<h1 itemprop="name">SearchAdRequest.Builder</h1>
+
+
+
+
+ extends Object<br/>
+
+
+
+
+
+
+
+
+
+</div><!-- end header -->
+
+<div id="naMessage"></div>
+
+<div id="jd-content" class="api apilevel-">
+<table class="jd-inheritance-table">
+
+
+ <tr>
+
+ <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
+ </tr>
+
+
+ <tr>
+
+ <td class="jd-inheritance-space"> ↳</td>
+
+ <td colspan="1" class="jd-inheritance-class-cell">com.google.android.gms.ads.search.SearchAdRequest.Builder</td>
+ </tr>
+
+
+</table>
+
+
+
+
+
+
+
+<div class="jd-descr">
+
+
+<h2>Class Overview</h2>
+<p itemprop="articleBody">Builds a <code><a href="/reference/com/google/android/gms/ads/search/SearchAdRequest.html">SearchAdRequest</a></code>.
+</p>
+
+
+
+
+
+</div><!-- jd-descr -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<div class="jd-descr">
+
+
+<h2>Summary</h2>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
+
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ </nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/ads/search/SearchAdRequest.Builder.html#SearchAdRequest.Builder()">SearchAdRequest.Builder</a></span>()</nobr>
+
+ </td></tr>
+
+
+
+</table>
+
+
+
+
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
+
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ <a href="/reference/com/google/android/gms/ads/search/SearchAdRequest.Builder.html">SearchAdRequest.Builder</a></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/ads/search/SearchAdRequest.Builder.html#addNetworkExtras(com.google.android.gms.ads.mediation.NetworkExtras)">addNetworkExtras</a></span>(<a href="/reference/com/google/android/gms/ads/mediation/NetworkExtras.html">NetworkExtras</a> networkExtras)</nobr>
+
+ <div class="jd-descrdiv">Add extra parameters to pass to a specific ad network adapter.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ <a href="/reference/com/google/android/gms/ads/search/SearchAdRequest.Builder.html">SearchAdRequest.Builder</a></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/ads/search/SearchAdRequest.Builder.html#addTestDevice(java.lang.String)">addTestDevice</a></span>(String deviceId)</nobr>
+
+ <div class="jd-descrdiv">Causes a device to receive test ads.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ <a href="/reference/com/google/android/gms/ads/search/SearchAdRequest.html">SearchAdRequest</a></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/ads/search/SearchAdRequest.Builder.html#build()">build</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Constructs a <code><a href="/reference/com/google/android/gms/ads/search/SearchAdRequest.html">SearchAdRequest</a></code> with the specified attributes.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ <a href="/reference/com/google/android/gms/ads/search/SearchAdRequest.Builder.html">SearchAdRequest.Builder</a></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/ads/search/SearchAdRequest.Builder.html#setAnchorTextColor(int)">setAnchorTextColor</a></span>(int anchorTextColor)</nobr>
+
+ <div class="jd-descrdiv">Sets the color of the ad URL.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ <a href="/reference/com/google/android/gms/ads/search/SearchAdRequest.Builder.html">SearchAdRequest.Builder</a></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/ads/search/SearchAdRequest.Builder.html#setBackgroundColor(int)">setBackgroundColor</a></span>(int backgroundColor)</nobr>
+
+ <div class="jd-descrdiv">Sets the background color of the ad.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ <a href="/reference/com/google/android/gms/ads/search/SearchAdRequest.Builder.html">SearchAdRequest.Builder</a></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/ads/search/SearchAdRequest.Builder.html#setBackgroundGradient(int, int)">setBackgroundGradient</a></span>(int top, int bottom)</nobr>
+
+ <div class="jd-descrdiv">Sets a gradient for the ad background.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ <a href="/reference/com/google/android/gms/ads/search/SearchAdRequest.Builder.html">SearchAdRequest.Builder</a></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/ads/search/SearchAdRequest.Builder.html#setBorderColor(int)">setBorderColor</a></span>(int borderColor)</nobr>
+
+ <div class="jd-descrdiv">Sets the border color of the ad container.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ <a href="/reference/com/google/android/gms/ads/search/SearchAdRequest.Builder.html">SearchAdRequest.Builder</a></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/ads/search/SearchAdRequest.Builder.html#setBorderThickness(int)">setBorderThickness</a></span>(int borderThickness)</nobr>
+
+ <div class="jd-descrdiv">Sets the thickness of the border in pixels around the ad container.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ <a href="/reference/com/google/android/gms/ads/search/SearchAdRequest.Builder.html">SearchAdRequest.Builder</a></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/ads/search/SearchAdRequest.Builder.html#setBorderType(int)">setBorderType</a></span>(int borderType)</nobr>
+
+ <div class="jd-descrdiv">Sets the type of border around the ad container.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ <a href="/reference/com/google/android/gms/ads/search/SearchAdRequest.Builder.html">SearchAdRequest.Builder</a></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/ads/search/SearchAdRequest.Builder.html#setCallButtonColor(int)">setCallButtonColor</a></span>(int callButtonColor)</nobr>
+
+ <div class="jd-descrdiv">Sets the color of the call button when a call extension is shown.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ <a href="/reference/com/google/android/gms/ads/search/SearchAdRequest.Builder.html">SearchAdRequest.Builder</a></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/ads/search/SearchAdRequest.Builder.html#setCustomChannels(java.lang.String)">setCustomChannels</a></span>(String channelIds)</nobr>
+
+ <div class="jd-descrdiv">Sets custom channels for the ad request.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ <a href="/reference/com/google/android/gms/ads/search/SearchAdRequest.Builder.html">SearchAdRequest.Builder</a></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/ads/search/SearchAdRequest.Builder.html#setDescriptionTextColor(int)">setDescriptionTextColor</a></span>(int descriptionTextColor)</nobr>
+
+ <div class="jd-descrdiv">Sets the color of the ad description.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ <a href="/reference/com/google/android/gms/ads/search/SearchAdRequest.Builder.html">SearchAdRequest.Builder</a></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/ads/search/SearchAdRequest.Builder.html#setFontFace(java.lang.String)">setFontFace</a></span>(String fontFace)</nobr>
+
+ <div class="jd-descrdiv">Sets the font used to render the ad.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ <a href="/reference/com/google/android/gms/ads/search/SearchAdRequest.Builder.html">SearchAdRequest.Builder</a></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/ads/search/SearchAdRequest.Builder.html#setHeaderTextColor(int)">setHeaderTextColor</a></span>(int headerTextColor)</nobr>
+
+ <div class="jd-descrdiv">Sets the text color of the ad header.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ <a href="/reference/com/google/android/gms/ads/search/SearchAdRequest.Builder.html">SearchAdRequest.Builder</a></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/ads/search/SearchAdRequest.Builder.html#setHeaderTextSize(int)">setHeaderTextSize</a></span>(int headerTextSize)</nobr>
+
+ <div class="jd-descrdiv">Sets the font size of the header text in pixels.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ <a href="/reference/com/google/android/gms/ads/search/SearchAdRequest.Builder.html">SearchAdRequest.Builder</a></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/ads/search/SearchAdRequest.Builder.html#setLocation(android.location.Location)">setLocation</a></span>(Location location)</nobr>
+
+ <div class="jd-descrdiv">Sets the user's location for targeting purposes.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ <a href="/reference/com/google/android/gms/ads/search/SearchAdRequest.Builder.html">SearchAdRequest.Builder</a></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/ads/search/SearchAdRequest.Builder.html#setQuery(java.lang.String)">setQuery</a></span>(String query)</nobr>
+
+ <div class="jd-descrdiv">Sets the query for requesting a search ad.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ <a href="/reference/com/google/android/gms/ads/search/SearchAdRequest.Builder.html">SearchAdRequest.Builder</a></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/ads/search/SearchAdRequest.Builder.html#tagForChildDirectedTreatment(boolean)">tagForChildDirectedTreatment</a></span>(boolean tagForChildDirectedTreatment)</nobr>
+
+ <div class="jd-descrdiv">This method allows you to specify whether you would like your app to be treated as
+ child-directed for purposes of the Children’s Online Privacy Protection Act (COPPA) -
+ <a href="http://business.ftc.gov/privacy-and-security/childrens-privacy">
+ http://business.ftc.gov/privacy-and-security/childrens-privacy</a>.</div>
+
+ </td></tr>
+
+
+
+</table>
+
+
+
+
+
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+<table id="inhmethods" class="jd-sumtable"><tr><th>
+ <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
+ <div style="clear:left;">Inherited Methods</div></th></tr>
+
+
+<tr class="api apilevel-" >
+<td colspan="12">
+ <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
+ ><img id="inherited-methods-java.lang.Object-trigger"
+ src="/assets/images/triangle-closed.png"
+ class="jd-expando-trigger-img" /></a>
+From class
+
+ java.lang.Object
+
+<div id="inherited-methods-java.lang.Object">
+ <div id="inherited-methods-java.lang.Object-list"
+ class="jd-inheritedlinks">
+ </div>
+ <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
+ <table class="jd-sumtable-expando">
+
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ Object</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">clone</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">equals</span>(Object arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">finalize</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ Class<?></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getClass</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">hashCode</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">notify</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">notifyAll</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ String</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">toString</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">wait</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">wait</span>(long arg0)</nobr>
+
+ </td></tr>
+
+
+</table>
+ </div>
+</div>
+</td></tr>
+
+
+</table>
+
+
+</div><!-- jd-descr (summary) -->
+
+<!-- Details -->
+
+
+
+
+
+
+
+
+<!-- XML Attributes -->
+
+
+<!-- Enum Values -->
+
+
+<!-- Constants -->
+
+
+<!-- Fields -->
+
+
+<!-- Public ctors -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<h2>Public Constructors</h2>
+
+
+
+<A NAME="SearchAdRequest.Builder()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+
+ </span>
+ <span class="sympad">SearchAdRequest.Builder</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+ </div>
+</div>
+
+
+
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<!-- Protected ctors -->
+
+
+
+<!-- ========= METHOD DETAIL ======== -->
+<!-- Public methdos -->
+
+<h2>Public Methods</h2>
+
+
+
+<A NAME="addNetworkExtras(com.google.android.gms.ads.mediation.NetworkExtras)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ <a href="/reference/com/google/android/gms/ads/search/SearchAdRequest.Builder.html">SearchAdRequest.Builder</a>
+ </span>
+ <span class="sympad">addNetworkExtras</span>
+ <span class="normal">(<a href="/reference/com/google/android/gms/ads/mediation/NetworkExtras.html">NetworkExtras</a> networkExtras)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Add extra parameters to pass to a specific ad network adapter. <code>networkExtras</code>
+ should be an instance of <code>com.google.ads.mediation.NetworkExtras</code>, which is
+ provided by ad network adapters.
+</p></div>
+
+ </div>
+</div>
+
+
+<A NAME="addTestDevice(java.lang.String)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ <a href="/reference/com/google/android/gms/ads/search/SearchAdRequest.Builder.html">SearchAdRequest.Builder</a>
+ </span>
+ <span class="sympad">addTestDevice</span>
+ <span class="normal">(String deviceId)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Causes a device to receive test ads. The <code>deviceId</code> can be obtained by viewing the
+ logcat output after creating a new ad. For emulators, use
+ <code><a href="/reference/com/google/android/gms/ads/search/SearchAdRequest.html#DEVICE_ID_EMULATOR">DEVICE_ID_EMULATOR</a></code>.
+</p></div>
+
+ </div>
+</div>
+
+
+<A NAME="build()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ <a href="/reference/com/google/android/gms/ads/search/SearchAdRequest.html">SearchAdRequest</a>
+ </span>
+ <span class="sympad">build</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Constructs a <code><a href="/reference/com/google/android/gms/ads/search/SearchAdRequest.html">SearchAdRequest</a></code> with the specified attributes.
+</p></div>
+
+ </div>
+</div>
+
+
+<A NAME="setAnchorTextColor(int)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ <a href="/reference/com/google/android/gms/ads/search/SearchAdRequest.Builder.html">SearchAdRequest.Builder</a>
+ </span>
+ <span class="sympad">setAnchorTextColor</span>
+ <span class="normal">(int anchorTextColor)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Sets the color of the ad URL. Transparency is not supported. <code><a href="/reference/android/graphics/Color.html#rgb(int, int, int)">rgb(int, int, int)</a></code> can be
+ used to specify this color.
+</p></div>
+
+ </div>
+</div>
+
+
+<A NAME="setBackgroundColor(int)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ <a href="/reference/com/google/android/gms/ads/search/SearchAdRequest.Builder.html">SearchAdRequest.Builder</a>
+ </span>
+ <span class="sympad">setBackgroundColor</span>
+ <span class="normal">(int backgroundColor)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Sets the background color of the ad. Calling this method will override any previous calls
+ to <code><a href="/reference/com/google/android/gms/ads/search/SearchAdRequest.Builder.html#setBackgroundColor(int)">setBackgroundColor(int)</a></code> or <code><a href="/reference/com/google/android/gms/ads/search/SearchAdRequest.Builder.html#setBackgroundGradient(int, int)">setBackgroundGradient(int, int)</a></code>. Transparency is not
+ supported. <code><a href="/reference/android/graphics/Color.html#rgb(int, int, int)">rgb(int, int, int)</a></code> can be used to specify this color.
+</p></div>
+
+ </div>
+</div>
+
+
+<A NAME="setBackgroundGradient(int, int)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ <a href="/reference/com/google/android/gms/ads/search/SearchAdRequest.Builder.html">SearchAdRequest.Builder</a>
+ </span>
+ <span class="sympad">setBackgroundGradient</span>
+ <span class="normal">(int top, int bottom)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Sets a gradient for the ad background. Calling this method will override any previous
+ calls to <code><a href="/reference/com/google/android/gms/ads/search/SearchAdRequest.Builder.html#setBackgroundColor(int)">setBackgroundColor(int)</a></code> or <code><a href="/reference/com/google/android/gms/ads/search/SearchAdRequest.Builder.html#setBackgroundGradient(int, int)">setBackgroundGradient(int, int)</a></code>. Transparency is
+ not supported. <code><a href="/reference/android/graphics/Color.html#rgb(int, int, int)">rgb(int, int, int)</a></code> can be used to specify these colors.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>top</td>
+ <td>The color of the gradient at the top of the ad.</td>
+ </tr>
+ <tr>
+ <th>bottom</td>
+ <td>The color of the gradient at the bottom of the ad.
+</td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="setBorderColor(int)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ <a href="/reference/com/google/android/gms/ads/search/SearchAdRequest.Builder.html">SearchAdRequest.Builder</a>
+ </span>
+ <span class="sympad">setBorderColor</span>
+ <span class="normal">(int borderColor)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Sets the border color of the ad container. Transparency is not supported.
+ <code><a href="/reference/android/graphics/Color.html#rgb(int, int, int)">rgb(int, int, int)</a></code> can be used to specify this color. This setting is ignored if
+ <code><a href="/reference/com/google/android/gms/ads/search/SearchAdRequest.Builder.html#setBorderType(int)">setBorderType(int)</a></code> is set to <code><a href="/reference/com/google/android/gms/ads/search/SearchAdRequest.html#BORDER_TYPE_NONE">BORDER_TYPE_NONE</a></code>.
+</p></div>
+
+ </div>
+</div>
+
+
+<A NAME="setBorderThickness(int)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ <a href="/reference/com/google/android/gms/ads/search/SearchAdRequest.Builder.html">SearchAdRequest.Builder</a>
+ </span>
+ <span class="sympad">setBorderThickness</span>
+ <span class="normal">(int borderThickness)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Sets the thickness of the border in pixels around the ad container. This setting is
+ ignored if <code><a href="/reference/com/google/android/gms/ads/search/SearchAdRequest.Builder.html#setBorderType(int)">setBorderType(int)</a></code> is set to <code><a href="/reference/com/google/android/gms/ads/search/SearchAdRequest.html#BORDER_TYPE_NONE">BORDER_TYPE_NONE</a></code>.
+</p></div>
+
+ </div>
+</div>
+
+
+<A NAME="setBorderType(int)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ <a href="/reference/com/google/android/gms/ads/search/SearchAdRequest.Builder.html">SearchAdRequest.Builder</a>
+ </span>
+ <span class="sympad">setBorderType</span>
+ <span class="normal">(int borderType)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Sets the type of border around the ad container. This value must be one of
+ <code><a href="/reference/com/google/android/gms/ads/search/SearchAdRequest.html#BORDER_TYPE_NONE">BORDER_TYPE_NONE</a></code>, <code><a href="/reference/com/google/android/gms/ads/search/SearchAdRequest.html#BORDER_TYPE_DASHED">BORDER_TYPE_DASHED</a></code>, <code><a href="/reference/com/google/android/gms/ads/search/SearchAdRequest.html#BORDER_TYPE_DOTTED">BORDER_TYPE_DOTTED</a></code>,
+ <code><a href="/reference/com/google/android/gms/ads/search/SearchAdRequest.html#BORDER_TYPE_SOLID">BORDER_TYPE_SOLID</a></code>.
+</p></div>
+
+ </div>
+</div>
+
+
+<A NAME="setCallButtonColor(int)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ <a href="/reference/com/google/android/gms/ads/search/SearchAdRequest.Builder.html">SearchAdRequest.Builder</a>
+ </span>
+ <span class="sympad">setCallButtonColor</span>
+ <span class="normal">(int callButtonColor)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Sets the color of the call button when a call extension is shown. This value must be one
+ of <code><a href="/reference/com/google/android/gms/ads/search/SearchAdRequest.html#CALL_BUTTON_COLOR_DARK">CALL_BUTTON_COLOR_DARK</a></code>, <code><a href="/reference/com/google/android/gms/ads/search/SearchAdRequest.html#CALL_BUTTON_COLOR_LIGHT">CALL_BUTTON_COLOR_LIGHT</a></code>,
+ <code><a href="/reference/com/google/android/gms/ads/search/SearchAdRequest.html#CALL_BUTTON_COLOR_MEDIUM">CALL_BUTTON_COLOR_MEDIUM</a></code>.
+</p></div>
+
+ </div>
+</div>
+
+
+<A NAME="setCustomChannels(java.lang.String)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ <a href="/reference/com/google/android/gms/ads/search/SearchAdRequest.Builder.html">SearchAdRequest.Builder</a>
+ </span>
+ <span class="sympad">setCustomChannels</span>
+ <span class="normal">(String channelIds)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Sets custom channels for the ad request. Custom channels allow publishers to track the
+ performance of specific groups of ads. These custom channels need to created on the
+ AdSense website. Reports can then be created based on the channels.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>channelIds</td>
+ <td>A list of channel IDs separated by '+'.
+</td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="setDescriptionTextColor(int)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ <a href="/reference/com/google/android/gms/ads/search/SearchAdRequest.Builder.html">SearchAdRequest.Builder</a>
+ </span>
+ <span class="sympad">setDescriptionTextColor</span>
+ <span class="normal">(int descriptionTextColor)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Sets the color of the ad description. Transparency is not supported. <code><a href="/reference/android/graphics/Color.html#rgb(int, int, int)">rgb(int, int, int)</a></code>
+ can be used to specify this color.
+</p></div>
+
+ </div>
+</div>
+
+
+<A NAME="setFontFace(java.lang.String)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ <a href="/reference/com/google/android/gms/ads/search/SearchAdRequest.Builder.html">SearchAdRequest.Builder</a>
+ </span>
+ <span class="sympad">setFontFace</span>
+ <span class="normal">(String fontFace)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Sets the font used to render the ad. The same font is used in the header, the description
+ and the anchor. Fonts are specified using the same value that would be used in CSS (e.g.,
+ <code>"arial"</code>).
+</p></div>
+
+ </div>
+</div>
+
+
+<A NAME="setHeaderTextColor(int)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ <a href="/reference/com/google/android/gms/ads/search/SearchAdRequest.Builder.html">SearchAdRequest.Builder</a>
+ </span>
+ <span class="sympad">setHeaderTextColor</span>
+ <span class="normal">(int headerTextColor)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Sets the text color of the ad header. Transparency is not supported. <code><a href="/reference/android/graphics/Color.html#rgb(int, int, int)">rgb(int, int, int)</a></code>
+ can be used to specify this color.
+</p></div>
+
+ </div>
+</div>
+
+
+<A NAME="setHeaderTextSize(int)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ <a href="/reference/com/google/android/gms/ads/search/SearchAdRequest.Builder.html">SearchAdRequest.Builder</a>
+ </span>
+ <span class="sympad">setHeaderTextSize</span>
+ <span class="normal">(int headerTextSize)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Sets the font size of the header text in pixels. The font sizes for the description and
+ the anchor are determined from the header size.
+</p></div>
+
+ </div>
+</div>
+
+
+<A NAME="setLocation(android.location.Location)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ <a href="/reference/com/google/android/gms/ads/search/SearchAdRequest.Builder.html">SearchAdRequest.Builder</a>
+ </span>
+ <span class="sympad">setLocation</span>
+ <span class="normal">(Location location)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Sets the user's location for targeting purposes.
+</p></div>
+
+ </div>
+</div>
+
+
+<A NAME="setQuery(java.lang.String)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ <a href="/reference/com/google/android/gms/ads/search/SearchAdRequest.Builder.html">SearchAdRequest.Builder</a>
+ </span>
+ <span class="sympad">setQuery</span>
+ <span class="normal">(String query)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Sets the query for requesting a search ad. The query must be set to receive an ad.
+</p></div>
+
+ </div>
+</div>
+
+
+<A NAME="tagForChildDirectedTreatment(boolean)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ <a href="/reference/com/google/android/gms/ads/search/SearchAdRequest.Builder.html">SearchAdRequest.Builder</a>
+ </span>
+ <span class="sympad">tagForChildDirectedTreatment</span>
+ <span class="normal">(boolean tagForChildDirectedTreatment)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>This method allows you to specify whether you would like your app to be treated as
+ child-directed for purposes of the Children’s Online Privacy Protection Act (COPPA) -
+ <a href="http://business.ftc.gov/privacy-and-security/childrens-privacy">
+ http://business.ftc.gov/privacy-and-security/childrens-privacy</a>.
+ <p>
+ If you set this method to <code>true</code>, you will indicate that your app should be treated
+ as child-directed for purposes of the Children’s Online Privacy Protection Act (COPPA).
+ <p>
+ If you set this method to <code>false</code>, you will indicate that your app should not be
+ treated as child-directed for purposes of the Children’s Online Privacy Protection Act
+ (COPPA).
+ <p>
+ If you do not set this method, ad requests will include no indication of how you would
+ like your app treated with respect to COPPA.
+ <p>
+ By setting this method, you certify that this notification is accurate and you are
+ authorized to act on behalf of the owner of the app. You understand that abuse of this
+ setting may result in termination of your Google account.
+ <p>
+ Note: it may take some time for this designation to be fully implemented in applicable
+ Google services.
+ <p>
+ This designation will only apply to ad requests for which you have set this method.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>tagForChildDirectedTreatment</td>
+ <td>Set to <code>true</code> to indicate that your app should
+ be treated as child-directed. Set to <code>false</code> to indicate that your app
+ should not be treated as child-directed.
+</td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
+
+
+
+<!-- ========= METHOD DETAIL ======== -->
+
+
+
+<!-- ========= END OF CLASS DATA ========= -->
+<A NAME="navbar_top"></A>
+
+<div id="footer" class="wrap" >
+
+
+ <div id="copyright">
+
+ Except as noted, this content is licensed under <a
+ href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.
+ For details and restrictions, see the <a href="/license.html">
+ Content License</a>.
+ </div>
+ <div id="build_info">
+
+<script src="/timestamp.js" type="text/javascript"></script>
+<script>document.write(BUILD_TIMESTAMP)</script>
+
+ </div>
+
+
+ <div id="footerlinks">
+
+ <p>
+ <a href="/about/index.html">About Android</a> |
+ <a href="/legal.html">Legal</a> |
+ <a href="/support.html">Support</a>
+ </p>
+ </div>
+
+</div> <!-- end footer -->
+</div> <!-- jd-content -->
+
+</div><!-- end doc-content -->
+
+</div> <!-- end body-content -->
+
+
+
+
+
+
+</body>
+</html>
diff --git a/docs/html/reference/com/google/android/gms/ads/search/SearchAdRequest.html b/docs/html/reference/com/google/android/gms/ads/search/SearchAdRequest.html
new file mode 100644
index 0000000..7ecb526
--- /dev/null
+++ b/docs/html/reference/com/google/android/gms/ads/search/SearchAdRequest.html
@@ -0,0 +1,2553 @@
+<!DOCTYPE html>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<html>
+<head>
+
+
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<meta name="viewport" content="width=device-width" />
+
+<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
+<title>SearchAdRequest | Android Developers</title>
+
+<!-- STYLESHEETS -->
+<link rel="stylesheet"
+href="//fonts.googleapis.com/css?family=Roboto:regular,medium,thin,italic,mediumitalic,bold" title="roboto">
+<link href="/assets/css/default.css" rel="stylesheet" type="text/css">
+
+
+
+<!-- JAVASCRIPT -->
+<script src="//www.google.com/jsapi" type="text/javascript"></script>
+<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
+<script type="text/javascript">
+ var toRoot = "/";
+ var metaTags = [];
+ var devsite = false;
+</script>
+<script src="/assets/js/docs.js" type="text/javascript"></script>
+
+<script type="text/javascript">
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-5831155-1']);
+ _gaq.push(['_trackPageview']);
+
+ (function() {
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+ })();
+</script>
+</head>
+<body class="gc-documentation google
+ develop" itemscope itemtype="http://schema.org/Article">
+ <div id="doc-api-level" class="" style="display:none"></div>
+ <a name="top"></a>
+
+<a name="top"></a>
+
+ <!-- Header -->
+ <div id="header">
+ <div class="wrap" id="header-wrap">
+ <div class="col-3 logo">
+ <a href="/index.html">
+ <img src="/assets/images/dac_logo.png" width="123" height="25" alt="Android Developers" />
+ </a>
+ <div class="btn-quicknav" id="btn-quicknav">
+ <a href="#" class="arrow-inactive">Quicknav</a>
+ <a href="#" class="arrow-active">Quicknav</a>
+ </div>
+ </div>
+ <ul class="nav-x col-9">
+ <li class="design">
+ <a href="/design/index.html"
+ zh-tw-lang="設計"
+ zh-cn-lang="设计"
+ ru-lang="Проектирование"
+ ko-lang="디자인"
+ ja-lang="設計"
+ es-lang="Diseñar"
+ >Design</a></li>
+ <li class="develop"><a href="/develop/index.html"
+ zh-tw-lang="開發"
+ zh-cn-lang="开发"
+ ru-lang="Разработка"
+ ko-lang="개발"
+ ja-lang="開発"
+ es-lang="Desarrollar"
+ >Develop</a></li>
+ <li class="distribute last"><a href="/distribute/index.html"
+ zh-tw-lang="發佈"
+ zh-cn-lang="分发"
+ ru-lang="Распространение"
+ ko-lang="배포"
+ ja-lang="配布"
+ es-lang="Distribuir"
+ >Distribute</a></li>
+ </ul>
+
+ <!-- New Search -->
+ <div class="menu-container">
+ <div class="moremenu">
+ <div id="more-btn"></div>
+ </div>
+ <div class="morehover" id="moremenu">
+ <div class="top"></div>
+ <div class="mid">
+ <div class="header">Links</div>
+ <ul>
+ <li><a href="https://play.google.com/apps/publish/">Google Play Developer Console</a></li>
+ <li><a href="http://android-developers.blogspot.com/">Android Developers Blog</a></li>
+ <li><a href="/about/index.html">About Android</a></li>
+ </ul>
+ <div class="header">Android Sites</div>
+ <ul>
+ <li><a href="http://www.android.com">Android.com</a></li>
+ <li class="active"><a>Android Developers</a></li>
+ <li><a href="http://source.android.com">Android Open Source Project</a></li>
+ </ul>
+
+
+
+ <div class="header">Language</div>
+ <div id="language" class="locales">
+ <select name="language" onChange="changeLangPref(this.value, true)">
+ <option value="en">English</option>
+ <option value="es">Español</option>
+ <option value="ja">日本語</option>
+ <option value="ko">한국어</option>
+ <option value="ru">Русский</option>
+ <option value="zh-cn">中文 (中国)</option>
+ <option value="zh-tw">中文 (台灣)</option>
+ </select>
+ </div>
+ <script type="text/javascript">
+ <!--
+ loadLangPref();
+ //-->
+ </script>
+
+
+
+
+ <br class="clearfix" />
+ </div>
+ <div class="bottom"></div>
+ </div>
+ <div class="search" id="search-container">
+ <div class="search-inner">
+ <div id="search-btn"></div>
+ <div class="left"></div>
+ <form onsubmit="return submit_search()">
+ <input id="search_autocomplete" type="text" value="" autocomplete="off" name="q"
+onfocus="search_focus_changed(this, true)" onblur="search_focus_changed(this, false)"
+onkeydown="return search_changed(event, true, '/')"
+onkeyup="return search_changed(event, false, '/')" />
+ </form>
+ <div class="right"></div>
+ <a class="close hide">close</a>
+ <div class="left"></div>
+ <div class="right"></div>
+ </div>
+ </div>
+
+ <div class="search_filtered_wrapper reference">
+ <div class="suggest-card reference no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ </div>
+
+ <div class="search_filtered_wrapper docs">
+ <div class="suggest-card dummy no-display"> </div>
+ <div class="suggest-card develop no-display">
+ <ul class="search_filtered">
+ </ul>
+ <div class="child-card guides no-display">
+ </div>
+ <div class="child-card training no-display">
+ </div>
+ <div class="child-card samples no-display">
+ </div>
+ </div>
+ <div class="suggest-card design no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ <div class="suggest-card distribute no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ </div>
+
+ </div>
+ <!-- /New Search>
+
+
+ <!-- Expanded quicknav -->
+ <div id="quicknav" class="col-9">
+ <ul>
+ <li class="design">
+ <ul>
+ <li><a href="/design/index.html">Get Started</a></li>
+ <li><a href="/design/style/index.html">Style</a></li>
+ <li><a href="/design/patterns/index.html">Patterns</a></li>
+ <li><a href="/design/building-blocks/index.html">Building Blocks</a></li>
+ <li><a href="/design/downloads/index.html">Downloads</a></li>
+ <li><a href="/design/videos/index.html">Videos</a></li>
+ </ul>
+ </li>
+ <li class="develop">
+ <ul>
+ <li><a href="/training/index.html"
+ zh-tw-lang="訓練課程"
+ zh-cn-lang="培训"
+ ru-lang="Курсы"
+ ko-lang="교육"
+ ja-lang="トレーニング"
+ es-lang="Capacitación"
+ >Training</a></li>
+ <li><a href="/guide/index.html"
+ zh-tw-lang="API 指南"
+ zh-cn-lang="API 指南"
+ ru-lang="Руководства по API"
+ ko-lang="API 가이드"
+ ja-lang="API ガイド"
+ es-lang="Guías de la API"
+ >API Guides</a></li>
+ <li><a href="/reference/packages.html"
+ zh-tw-lang="參考資源"
+ zh-cn-lang="参考"
+ ru-lang="Справочник"
+ ko-lang="참조문서"
+ ja-lang="リファレンス"
+ es-lang="Referencia"
+ >Reference</a></li>
+ <li><a href="/tools/index.html"
+ zh-tw-lang="相關工具"
+ zh-cn-lang="工具"
+ ru-lang="Инструменты"
+ ko-lang="도구"
+ ja-lang="ツール"
+ es-lang="Herramientas"
+ >Tools</a>
+ <ul><li><a href="/sdk/index.html">Get the SDK</a></li></ul>
+ </li>
+ <li><a href="/google/index.html">Google Services</a>
+ </li>
+
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
+ </ul>
+ </li>
+ <li class="distribute last">
+ <ul>
+ <li><a href="/distribute/index.html">Google Play</a></li>
+ <li><a href="/distribute/googleplay/publish/index.html">Publishing</a></li>
+ <li><a href="/distribute/googleplay/promote/index.html">Promoting</a></li>
+ <li><a href="/distribute/googleplay/quality/index.html">App Quality</a></li>
+ <li><a href="/distribute/googleplay/spotlight/index.html">Spotlight</a></li>
+ <li><a href="/distribute/open.html">Open Distribution</a></li>
+ </ul>
+ </li>
+ </ul>
+ </div>
+ <!-- /Expanded quicknav -->
+ </div>
+ </div>
+ <!-- /Header -->
+
+
+ <div id="searchResults" class="wrap" style="display:none;">
+ <h2 id="searchTitle">Results</h2>
+ <div id="leftSearchControl" class="search-control">Loading...</div>
+ </div>
+
+
+
+ <!-- Secondary x-nav -->
+ <div id="nav-x">
+ <div class="wrap">
+ <ul class="nav-x col-9 develop" style="width:100%">
+ <li class="training"><a href="/training/index.html"
+ zh-tw-lang="訓練課程"
+ zh-cn-lang="培训"
+ ru-lang="Курсы"
+ ko-lang="교육"
+ ja-lang="トレーニング"
+ es-lang="Capacitación"
+ >Training</a></li>
+ <li class="guide"><a href="/guide/index.html"
+ zh-tw-lang="API 指南"
+ zh-cn-lang="API 指南"
+ ru-lang="Руководства по API"
+ ko-lang="API 가이드"
+ ja-lang="API ガイド"
+ es-lang="Guías de la API"
+ >API Guides</a></li>
+ <li class="reference"><a href="/reference/packages.html"
+ zh-tw-lang="參考資源"
+ zh-cn-lang="参考"
+ ru-lang="Справочник"
+ ko-lang="참조문서"
+ ja-lang="リファレンス"
+ es-lang="Referencia"
+ >Reference</a></li>
+ <li class="tools"><a href="/tools/index.html"
+ zh-tw-lang="相關工具"
+ zh-cn-lang="工具"
+ ru-lang="Инструменты"
+ ko-lang="도구"
+ ja-lang="ツール"
+ es-lang="Herramientas"
+ >Tools</a></li>
+ <li class="google"><a href="/google/index.html"
+ >Google Services</a>
+ </li>
+
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
+ </ul>
+ </div>
+
+ </div>
+ <!-- /Sendondary x-nav -->
+
+
+
+
+
+
+
+
+
+ <div class="wrap clearfix" id="body-content">
+ <div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
+ <div id="devdoc-nav" class="scroll-pane">
+<a class="totop" href="#top" data-g-event="left-nav-top">to top</a>
+
+
+
+<ul id="nav">
+
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/index.html">
+ <span class="en">Overview</span>
+ </a></div>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/games.html">
+ <span class="en">Games</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/location.html">
+ <span class="en">Location</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/plus.html">
+ <span class="en">Google+</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/maps.html">
+ <span class="en">Maps</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play-services/ads.html">
+ <span class="en">Ads</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play-services/id.html">
+ <span class="en">Advertising ID</span></a>
+ </li>
+ </ul>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/wallet.html">
+ <span class="en">Wallet</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/auth.html">
+ <span class="en">Authorization</span>
+ </a></div>
+ </li>
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play-services/index.html">
+ <span class="en">Google Play Services</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play-services/setup.html">
+ <span class="en">Setup</span></a>
+ </li>
+ <li id="gms-tree-list" class="nav-section">
+ <div class="nav-section-header">
+ <a href="/reference/gms-packages.html">
+ <span class="en">Reference</span>
+ </a>
+ <div>
+ </li>
+ </ul>
+ </li>
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/billing/index.html">
+ <span class="en">Google Play In-app Billing</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/billing/billing_overview.html">
+ <span class="en">Overview</span></a>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/api.html">
+ <span class="en">Version 3 API</span></a></div>
+ <ul>
+ <li><a href="/google/play/billing/billing_integrate.html">
+ <span class="en">Implementing the API</span></a></li>
+ <li><a href="/google/play/billing/billing_reference.html">
+ <span class="en">Reference</span></a></li>
+ </ul>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/v2/api.html">
+ <span class="en">Version 2 API</span></a></div>
+ <ul>
+ <li><a href="/google/play/billing/v2/billing_integrate.html">
+ <span class="en">Implementing the API</span></a></li>
+ <li><a href="/google/play/billing/v2/billing_subscriptions.html">
+ <span class="en">Subscriptions</span></a></li>
+ <li><a href="/google/play/billing/v2/billing_reference.html">
+ <span class="en">Reference</span></a></li>
+ </ul>
+ </li>
+ <li><a href="/google/play/billing/billing_subscriptions.html">
+ <span class="en">Subscriptions</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_best_practices.html">
+ <span class="en">Security and Design</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_testing.html">
+ <span class="en">Testing In-app Billing</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_admin.html">
+ <span class="en">Administering In-app Billing</span></a>
+ </li>
+ <li><a href="/google/play/billing/gp-purchase-status-api.html">
+ <span class="en">Purchase Status API</span></a>
+ </li>
+ <li><a href="/google/play/billing/versions.html">
+ <span class="en">Version Notes</span></a>
+ </li>
+ </ul>
+ </li>
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/gcm/index.html">
+ <span class="en">Google Cloud Messaging</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
+ <li><a href="/google/gcm/gs.html">
+ <span class="en">Getting Started</span></a>
+ </li>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
+ </li>
+ <li><a href="/google/gcm/notifications.html">
+ <span class="en">User Notifications</span></a>
+ </li>
+ <li><a href="/google/gcm/adv.html">
+ <span class="en">Advanced Topics</span></a>
+ </li>
+ <li><a href="/google/gcm/c2dm.html">
+ <span class="en">Migration</span></a>
+ </li>
+ <li id="gcm-tree-list" class="nav-section">
+ <div class="nav-section-header">
+ <a href="/reference/gcm-packages.html">
+ <span class="en">Reference</span>
+ </a>
+ <div>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/dist.html">
+ <span class="en">Google Play Distribution</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/filters.html">
+ <span class="en">Filters on Google Play</span></a>
+ </li>
+
+ <li><a href="/google/play/publishing/multiple-apks.html">
+ <span class="en">Multiple APK Support</span></a>
+ </li>
+ <li><a href="/google/play/expansion-files.html">
+ <span class="en">APK Expansion Files</span></a>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/licensing/index.html">
+ <span class="en">Application Licensing</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/licensing/overview.html">
+ <span class="en">Licensing Overview</span></a>
+ </li>
+ <li><a href="/google/play/licensing/setting-up.html">
+ <span class="en">Setting Up for Licensing</span></a>
+ </li>
+ <li><a href="/google/play/licensing/adding-licensing.html">
+ <span class="en">Adding Licensing to Your App</span></a>
+ </li>
+ <li><a href="/google/play/licensing/licensing-reference.html">
+ <span class="en">Licensing Reference</span></a>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/backup/index.html">
+ Android Backup Service</a>
+ </div>
+ <ul>
+ <li><a href="/google/backup/signup.html">
+ Register</a>
+ </li>
+ </ul>
+ </li>
+
+ </ul>
+
+</li>
+
+
+
+</ul>
+
+<script type="text/javascript">
+<!--
+ buildToggleLists();
+ changeNavLang(getLangPref());
+//-->
+</script>
+
+
+
+
+ </div>
+ <script type="text/javascript">
+ showGoogleRefTree();
+
+ </script>
+ </div> <!-- end side-nav -->
+ <script>
+ $(document).ready(function() {
+ scrollIntoView("devdoc-nav");
+ });
+ </script>
+
+
+
+
+
+
+<div class="col-12" id="doc-col">
+
+<div id="api-info-block">
+
+
+
+
+
+
+
+
+
+
+
+<div class="sum-details-links">
+
+Summary:
+
+ <a href="#nestedclasses">Nested Classes</a>
+
+
+
+
+
+
+ | <a href="#constants">Constants</a>
+
+
+
+
+ | <a href="#lfields">Fields</a>
+
+
+
+
+
+
+ | <a href="#pubmethods">Methods</a>
+
+
+
+
+ | <a href="#inhmethods">Inherited Methods</a>
+
+| <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
+
+</div><!-- end sum-details-links -->
+<div class="api-level">
+
+
+
+
+</div>
+</div><!-- end api-info-block -->
+
+
+<!-- ======== START OF CLASS DATA ======== -->
+
+<div id="jd-header">
+ public
+
+ final
+
+ class
+<h1 itemprop="name">SearchAdRequest</h1>
+
+
+
+
+ extends Object<br/>
+
+
+
+
+
+
+
+
+
+</div><!-- end header -->
+
+<div id="naMessage"></div>
+
+<div id="jd-content" class="api apilevel-">
+<table class="jd-inheritance-table">
+
+
+ <tr>
+
+ <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
+ </tr>
+
+
+ <tr>
+
+ <td class="jd-inheritance-space"> ↳</td>
+
+ <td colspan="1" class="jd-inheritance-class-cell">com.google.android.gms.ads.search.SearchAdRequest</td>
+ </tr>
+
+
+</table>
+
+
+
+
+
+
+
+<div class="jd-descr">
+
+
+<h2>Class Overview</h2>
+<p itemprop="articleBody">A <code><a href="/reference/com/google/android/gms/ads/search/SearchAdRequest.html">SearchAdRequest</a></code> contains targeting information used to fetch an ad from Search Ads for
+ Apps. Ad requests are created using <code><a href="/reference/com/google/android/gms/ads/search/SearchAdRequest.Builder.html">SearchAdRequest.Builder</a></code>.
+</p>
+
+
+
+
+
+</div><!-- jd-descr -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<div class="jd-descr">
+
+
+<h2>Summary</h2>
+
+
+
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<table id="nestedclasses" class="jd-sumtable"><tr><th colspan="12">Nested Classes</th></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+ class</nobr></td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/ads/search/SearchAdRequest.Builder.html">SearchAdRequest.Builder</a></td>
+ <td class="jd-descrcol" width="100%">Builds a <code><a href="/reference/com/google/android/gms/ads/search/SearchAdRequest.html">SearchAdRequest</a></code>. </td>
+ </tr>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<!-- =========== ENUM CONSTANT SUMMARY =========== -->
+<table id="constants" class="jd-sumtable"><tr><th colspan="12">Constants</th></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/ads/search/SearchAdRequest.html#BORDER_TYPE_DASHED">BORDER_TYPE_DASHED</a></td>
+ <td class="jd-descrcol" width="100%">Dashed border.</td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/ads/search/SearchAdRequest.html#BORDER_TYPE_DOTTED">BORDER_TYPE_DOTTED</a></td>
+ <td class="jd-descrcol" width="100%">Dotted border.</td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/ads/search/SearchAdRequest.html#BORDER_TYPE_NONE">BORDER_TYPE_NONE</a></td>
+ <td class="jd-descrcol" width="100%">No border.</td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/ads/search/SearchAdRequest.html#BORDER_TYPE_SOLID">BORDER_TYPE_SOLID</a></td>
+ <td class="jd-descrcol" width="100%">Solid border.</td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/ads/search/SearchAdRequest.html#CALL_BUTTON_COLOR_DARK">CALL_BUTTON_COLOR_DARK</a></td>
+ <td class="jd-descrcol" width="100%">Dark-colored call button.</td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/ads/search/SearchAdRequest.html#CALL_BUTTON_COLOR_LIGHT">CALL_BUTTON_COLOR_LIGHT</a></td>
+ <td class="jd-descrcol" width="100%">Light-colored call button.</td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/ads/search/SearchAdRequest.html#CALL_BUTTON_COLOR_MEDIUM">CALL_BUTTON_COLOR_MEDIUM</a></td>
+ <td class="jd-descrcol" width="100%">Medium-colored call button.</td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/ads/search/SearchAdRequest.html#ERROR_CODE_INTERNAL_ERROR">ERROR_CODE_INTERNAL_ERROR</a></td>
+ <td class="jd-descrcol" width="100%">Something happened internally; for instance, an invalid response was received from the ad
+ server.</td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/ads/search/SearchAdRequest.html#ERROR_CODE_INVALID_REQUEST">ERROR_CODE_INVALID_REQUEST</a></td>
+ <td class="jd-descrcol" width="100%">The ad request was invalid; for instance, the ad unit ID was incorrect.</td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/ads/search/SearchAdRequest.html#ERROR_CODE_NETWORK_ERROR">ERROR_CODE_NETWORK_ERROR</a></td>
+ <td class="jd-descrcol" width="100%">The ad request was unsuccessful due to network connectivity.</td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/ads/search/SearchAdRequest.html#ERROR_CODE_NO_FILL">ERROR_CODE_NO_FILL</a></td>
+ <td class="jd-descrcol" width="100%">The ad request was successful, but no ad was returned due to lack of ad inventory.</td>
+ </tr>
+
+
+
+</table>
+
+
+
+
+
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+<table id="lfields" class="jd-sumtable"><tr><th colspan="12">Fields</th></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ public
+ static
+ final
+ String</nobr></td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/ads/search/SearchAdRequest.html#DEVICE_ID_EMULATOR">DEVICE_ID_EMULATOR</a></td>
+ <td class="jd-descrcol" width="100%">The <code>deviceId</code> for emulators to be used with
+ <code><a href="/reference/com/google/android/gms/ads/search/SearchAdRequest.Builder.html#addTestDevice(java.lang.String)">addTestDevice(String)</a></code>.</td>
+ </tr>
+
+
+
+</table>
+
+
+
+
+
+
+
+
+
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
+
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/ads/search/SearchAdRequest.html#getAnchorTextColor()">getAnchorTextColor</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Returns the color of the ad URL.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/ads/search/SearchAdRequest.html#getBackgroundColor()">getBackgroundColor</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Returns the background color of the ad.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/ads/search/SearchAdRequest.html#getBackgroundGradientBottom()">getBackgroundGradientBottom</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Returns the color of the background gradient at the bottom of the ad.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/ads/search/SearchAdRequest.html#getBackgroundGradientTop()">getBackgroundGradientTop</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Returns the color of the background gradient at the top of the ad.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/ads/search/SearchAdRequest.html#getBorderColor()">getBorderColor</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Returns the border color of the ad container.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/ads/search/SearchAdRequest.html#getBorderThickness()">getBorderThickness</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Returns the thickness of the border in pixels around the ad container.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/ads/search/SearchAdRequest.html#getBorderType()">getBorderType</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Returns the type of border around the ad container.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/ads/search/SearchAdRequest.html#getCallButtonColor()">getCallButtonColor</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Returns the color of the call button when a call extension is shown.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ String</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/ads/search/SearchAdRequest.html#getCustomChannels()">getCustomChannels</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Returns the custom channels for the ad request.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/ads/search/SearchAdRequest.html#getDescriptionTextColor()">getDescriptionTextColor</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Returns the color of the ad description.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ String</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/ads/search/SearchAdRequest.html#getFontFace()">getFontFace</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Returns the font used to render the ad.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/ads/search/SearchAdRequest.html#getHeaderTextColor()">getHeaderTextColor</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Returns the font size of the header text in pixels.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/ads/search/SearchAdRequest.html#getHeaderTextSize()">getHeaderTextSize</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Returns the font size of the header text in pixels.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ Location</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/ads/search/SearchAdRequest.html#getLocation()">getLocation</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Returns the user's location targeting information.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+ <T extends <a href="/reference/com/google/android/gms/ads/mediation/NetworkExtras.html">NetworkExtras</a>>
+ T</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/ads/search/SearchAdRequest.html#getNetworkExtras(java.lang.Class<T>)">getNetworkExtras</a></span>(Class<T> networkExtrasClass)</nobr>
+
+ <div class="jd-descrdiv">Returns extra parameters to pass to a specific ad network adapter.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ String</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/ads/search/SearchAdRequest.html#getQuery()">getQuery</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Returns the query of the search ad request.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/ads/search/SearchAdRequest.html#isTestDevice(android.content.Context)">isTestDevice</a></span>(Context context)</nobr>
+
+ <div class="jd-descrdiv">Returns <code>true</code> if this device will receive test ads.</div>
+
+ </td></tr>
+
+
+
+</table>
+
+
+
+
+
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+<table id="inhmethods" class="jd-sumtable"><tr><th>
+ <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
+ <div style="clear:left;">Inherited Methods</div></th></tr>
+
+
+<tr class="api apilevel-" >
+<td colspan="12">
+ <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
+ ><img id="inherited-methods-java.lang.Object-trigger"
+ src="/assets/images/triangle-closed.png"
+ class="jd-expando-trigger-img" /></a>
+From class
+
+ java.lang.Object
+
+<div id="inherited-methods-java.lang.Object">
+ <div id="inherited-methods-java.lang.Object-list"
+ class="jd-inheritedlinks">
+ </div>
+ <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
+ <table class="jd-sumtable-expando">
+
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ Object</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">clone</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">equals</span>(Object arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">finalize</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ Class<?></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getClass</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">hashCode</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">notify</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">notifyAll</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ String</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">toString</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">wait</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">wait</span>(long arg0)</nobr>
+
+ </td></tr>
+
+
+</table>
+ </div>
+</div>
+</td></tr>
+
+
+</table>
+
+
+</div><!-- jd-descr (summary) -->
+
+<!-- Details -->
+
+
+
+
+
+
+
+
+<!-- XML Attributes -->
+
+
+<!-- Enum Values -->
+
+
+<!-- Constants -->
+
+
+<!-- ========= ENUM CONSTANTS DETAIL ======== -->
+<h2>Constants</h2>
+
+
+
+
+<A NAME="BORDER_TYPE_DASHED"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+ static
+ final
+ int
+ </span>
+ BORDER_TYPE_DASHED
+ </h4>
+ <div class="api-level">
+
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Dashed border. </p></div>
+
+
+ <div class="jd-tagdata">
+ <span class="jd-tagtitle">Constant Value: </span>
+ <span>
+
+ 1
+ (0x00000001)
+
+ </span>
+ </div>
+
+ </div>
+</div>
+
+
+
+<A NAME="BORDER_TYPE_DOTTED"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+ static
+ final
+ int
+ </span>
+ BORDER_TYPE_DOTTED
+ </h4>
+ <div class="api-level">
+
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Dotted border. </p></div>
+
+
+ <div class="jd-tagdata">
+ <span class="jd-tagtitle">Constant Value: </span>
+ <span>
+
+ 2
+ (0x00000002)
+
+ </span>
+ </div>
+
+ </div>
+</div>
+
+
+
+<A NAME="BORDER_TYPE_NONE"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+ static
+ final
+ int
+ </span>
+ BORDER_TYPE_NONE
+ </h4>
+ <div class="api-level">
+
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>No border. </p></div>
+
+
+ <div class="jd-tagdata">
+ <span class="jd-tagtitle">Constant Value: </span>
+ <span>
+
+ 0
+ (0x00000000)
+
+ </span>
+ </div>
+
+ </div>
+</div>
+
+
+
+<A NAME="BORDER_TYPE_SOLID"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+ static
+ final
+ int
+ </span>
+ BORDER_TYPE_SOLID
+ </h4>
+ <div class="api-level">
+
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Solid border. </p></div>
+
+
+ <div class="jd-tagdata">
+ <span class="jd-tagtitle">Constant Value: </span>
+ <span>
+
+ 3
+ (0x00000003)
+
+ </span>
+ </div>
+
+ </div>
+</div>
+
+
+
+<A NAME="CALL_BUTTON_COLOR_DARK"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+ static
+ final
+ int
+ </span>
+ CALL_BUTTON_COLOR_DARK
+ </h4>
+ <div class="api-level">
+
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Dark-colored call button. </p></div>
+
+
+ <div class="jd-tagdata">
+ <span class="jd-tagtitle">Constant Value: </span>
+ <span>
+
+ 2
+ (0x00000002)
+
+ </span>
+ </div>
+
+ </div>
+</div>
+
+
+
+<A NAME="CALL_BUTTON_COLOR_LIGHT"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+ static
+ final
+ int
+ </span>
+ CALL_BUTTON_COLOR_LIGHT
+ </h4>
+ <div class="api-level">
+
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Light-colored call button. </p></div>
+
+
+ <div class="jd-tagdata">
+ <span class="jd-tagtitle">Constant Value: </span>
+ <span>
+
+ 0
+ (0x00000000)
+
+ </span>
+ </div>
+
+ </div>
+</div>
+
+
+
+<A NAME="CALL_BUTTON_COLOR_MEDIUM"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+ static
+ final
+ int
+ </span>
+ CALL_BUTTON_COLOR_MEDIUM
+ </h4>
+ <div class="api-level">
+
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Medium-colored call button. </p></div>
+
+
+ <div class="jd-tagdata">
+ <span class="jd-tagtitle">Constant Value: </span>
+ <span>
+
+ 1
+ (0x00000001)
+
+ </span>
+ </div>
+
+ </div>
+</div>
+
+
+
+<A NAME="ERROR_CODE_INTERNAL_ERROR"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+ static
+ final
+ int
+ </span>
+ ERROR_CODE_INTERNAL_ERROR
+ </h4>
+ <div class="api-level">
+
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Something happened internally; for instance, an invalid response was received from the ad
+ server.
+</p></div>
+
+
+ <div class="jd-tagdata">
+ <span class="jd-tagtitle">Constant Value: </span>
+ <span>
+
+ 0
+ (0x00000000)
+
+ </span>
+ </div>
+
+ </div>
+</div>
+
+
+
+<A NAME="ERROR_CODE_INVALID_REQUEST"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+ static
+ final
+ int
+ </span>
+ ERROR_CODE_INVALID_REQUEST
+ </h4>
+ <div class="api-level">
+
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>The ad request was invalid; for instance, the ad unit ID was incorrect.
+</p></div>
+
+
+ <div class="jd-tagdata">
+ <span class="jd-tagtitle">Constant Value: </span>
+ <span>
+
+ 1
+ (0x00000001)
+
+ </span>
+ </div>
+
+ </div>
+</div>
+
+
+
+<A NAME="ERROR_CODE_NETWORK_ERROR"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+ static
+ final
+ int
+ </span>
+ ERROR_CODE_NETWORK_ERROR
+ </h4>
+ <div class="api-level">
+
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>The ad request was unsuccessful due to network connectivity.
+</p></div>
+
+
+ <div class="jd-tagdata">
+ <span class="jd-tagtitle">Constant Value: </span>
+ <span>
+
+ 2
+ (0x00000002)
+
+ </span>
+ </div>
+
+ </div>
+</div>
+
+
+
+<A NAME="ERROR_CODE_NO_FILL"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+ static
+ final
+ int
+ </span>
+ ERROR_CODE_NO_FILL
+ </h4>
+ <div class="api-level">
+
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>The ad request was successful, but no ad was returned due to lack of ad inventory.
+</p></div>
+
+
+ <div class="jd-tagdata">
+ <span class="jd-tagtitle">Constant Value: </span>
+ <span>
+
+ 3
+ (0x00000003)
+
+ </span>
+ </div>
+
+ </div>
+</div>
+
+
+
+
+<!-- Fields -->
+
+
+<!-- ========= FIELD DETAIL ======== -->
+<h2>Fields</h2>
+
+
+
+
+<A NAME="DEVICE_ID_EMULATOR"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+ static
+ final
+ String
+ </span>
+ DEVICE_ID_EMULATOR
+ </h4>
+ <div class="api-level">
+
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>The <code>deviceId</code> for emulators to be used with
+ <code><a href="/reference/com/google/android/gms/ads/search/SearchAdRequest.Builder.html#addTestDevice(java.lang.String)">addTestDevice(String)</a></code>.
+</p></div>
+
+
+ </div>
+</div>
+
+
+
+
+<!-- Public ctors -->
+
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<!-- Protected ctors -->
+
+
+
+<!-- ========= METHOD DETAIL ======== -->
+<!-- Public methdos -->
+
+<h2>Public Methods</h2>
+
+
+
+<A NAME="getAnchorTextColor()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ int
+ </span>
+ <span class="sympad">getAnchorTextColor</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Returns the color of the ad URL.
+</p></div>
+
+ </div>
+</div>
+
+
+<A NAME="getBackgroundColor()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ int
+ </span>
+ <span class="sympad">getBackgroundColor</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Returns the background color of the ad.
+</p></div>
+
+ </div>
+</div>
+
+
+<A NAME="getBackgroundGradientBottom()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ int
+ </span>
+ <span class="sympad">getBackgroundGradientBottom</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Returns the color of the background gradient at the bottom of the ad.
+</p></div>
+
+ </div>
+</div>
+
+
+<A NAME="getBackgroundGradientTop()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ int
+ </span>
+ <span class="sympad">getBackgroundGradientTop</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Returns the color of the background gradient at the top of the ad.
+</p></div>
+
+ </div>
+</div>
+
+
+<A NAME="getBorderColor()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ int
+ </span>
+ <span class="sympad">getBorderColor</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Returns the border color of the ad container.
+</p></div>
+
+ </div>
+</div>
+
+
+<A NAME="getBorderThickness()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ int
+ </span>
+ <span class="sympad">getBorderThickness</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Returns the thickness of the border in pixels around the ad container.
+</p></div>
+
+ </div>
+</div>
+
+
+<A NAME="getBorderType()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ int
+ </span>
+ <span class="sympad">getBorderType</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Returns the type of border around the ad container.
+</p></div>
+
+ </div>
+</div>
+
+
+<A NAME="getCallButtonColor()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ int
+ </span>
+ <span class="sympad">getCallButtonColor</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Returns the color of the call button when a call extension is shown.
+</p></div>
+
+ </div>
+</div>
+
+
+<A NAME="getCustomChannels()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ String
+ </span>
+ <span class="sympad">getCustomChannels</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Returns the custom channels for the ad request. Custom channels allow publishers to track the
+ performance of specific groups of ads. These custom channels need to created on the AdSense
+ website. Reports can then be created based on the channels.
+</p></div>
+
+ </div>
+</div>
+
+
+<A NAME="getDescriptionTextColor()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ int
+ </span>
+ <span class="sympad">getDescriptionTextColor</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Returns the color of the ad description.
+</p></div>
+
+ </div>
+</div>
+
+
+<A NAME="getFontFace()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ String
+ </span>
+ <span class="sympad">getFontFace</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Returns the font used to render the ad. The same font is used in the header, the description
+ and the anchor.
+</p></div>
+
+ </div>
+</div>
+
+
+<A NAME="getHeaderTextColor()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ int
+ </span>
+ <span class="sympad">getHeaderTextColor</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Returns the font size of the header text in pixels.
+</p></div>
+
+ </div>
+</div>
+
+
+<A NAME="getHeaderTextSize()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ int
+ </span>
+ <span class="sympad">getHeaderTextSize</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Returns the font size of the header text in pixels. The font sizes for the description and
+ the anchor are determined from the header size.
+</p></div>
+
+ </div>
+</div>
+
+
+<A NAME="getLocation()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ Location
+ </span>
+ <span class="sympad">getLocation</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Returns the user's location targeting information. Returns <code>null</code> if the location was
+ not set.
+</p></div>
+
+ </div>
+</div>
+
+
+<A NAME="getNetworkExtras(java.lang.Class<T>)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ T
+ </span>
+ <span class="sympad">getNetworkExtras</span>
+ <span class="normal">(Class<T> networkExtrasClass)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Returns extra parameters to pass to a specific ad network adapter. Ad network adapters
+ provide a <code><a href="/reference/com/google/android/gms/ads/mediation/NetworkExtras.html">NetworkExtras</a></code> class. Returns <code>null</code> if no network extras of the
+ provided type were set.
+</p></div>
+
+ </div>
+</div>
+
+
+<A NAME="getQuery()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ String
+ </span>
+ <span class="sympad">getQuery</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Returns the query of the search ad request.
+</p></div>
+
+ </div>
+</div>
+
+
+<A NAME="isTestDevice(android.content.Context)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ boolean
+ </span>
+ <span class="sympad">isTestDevice</span>
+ <span class="normal">(Context context)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Returns <code>true</code> if this device will receive test ads.
+</p></div>
+
+ </div>
+</div>
+
+
+
+
+
+<!-- ========= METHOD DETAIL ======== -->
+
+
+
+<!-- ========= END OF CLASS DATA ========= -->
+<A NAME="navbar_top"></A>
+
+<div id="footer" class="wrap" >
+
+
+ <div id="copyright">
+
+ Except as noted, this content is licensed under <a
+ href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.
+ For details and restrictions, see the <a href="/license.html">
+ Content License</a>.
+ </div>
+ <div id="build_info">
+
+<script src="/timestamp.js" type="text/javascript"></script>
+<script>document.write(BUILD_TIMESTAMP)</script>
+
+ </div>
+
+
+ <div id="footerlinks">
+
+ <p>
+ <a href="/about/index.html">About Android</a> |
+ <a href="/legal.html">Legal</a> |
+ <a href="/support.html">Support</a>
+ </p>
+ </div>
+
+</div> <!-- end footer -->
+</div> <!-- jd-content -->
+
+</div><!-- end doc-content -->
+
+</div> <!-- end body-content -->
+
+
+
+
+
+
+</body>
+</html>
diff --git a/docs/html/reference/com/google/android/gms/ads/search/SearchAdView.html b/docs/html/reference/com/google/android/gms/ads/search/SearchAdView.html
new file mode 100644
index 0000000..6912386
--- /dev/null
+++ b/docs/html/reference/com/google/android/gms/ads/search/SearchAdView.html
@@ -0,0 +1,13680 @@
+<!DOCTYPE html>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<html>
+<head>
+
+
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<meta name="viewport" content="width=device-width" />
+
+<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
+<title>SearchAdView | Android Developers</title>
+
+<!-- STYLESHEETS -->
+<link rel="stylesheet"
+href="//fonts.googleapis.com/css?family=Roboto:regular,medium,thin,italic,mediumitalic,bold" title="roboto">
+<link href="/assets/css/default.css" rel="stylesheet" type="text/css">
+
+
+
+<!-- JAVASCRIPT -->
+<script src="//www.google.com/jsapi" type="text/javascript"></script>
+<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
+<script type="text/javascript">
+ var toRoot = "/";
+ var metaTags = [];
+ var devsite = false;
+</script>
+<script src="/assets/js/docs.js" type="text/javascript"></script>
+
+<script type="text/javascript">
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-5831155-1']);
+ _gaq.push(['_trackPageview']);
+
+ (function() {
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+ })();
+</script>
+</head>
+<body class="gc-documentation google
+ develop" itemscope itemtype="http://schema.org/Article">
+ <div id="doc-api-level" class="" style="display:none"></div>
+ <a name="top"></a>
+
+<a name="top"></a>
+
+ <!-- Header -->
+ <div id="header">
+ <div class="wrap" id="header-wrap">
+ <div class="col-3 logo">
+ <a href="/index.html">
+ <img src="/assets/images/dac_logo.png" width="123" height="25" alt="Android Developers" />
+ </a>
+ <div class="btn-quicknav" id="btn-quicknav">
+ <a href="#" class="arrow-inactive">Quicknav</a>
+ <a href="#" class="arrow-active">Quicknav</a>
+ </div>
+ </div>
+ <ul class="nav-x col-9">
+ <li class="design">
+ <a href="/design/index.html"
+ zh-tw-lang="設計"
+ zh-cn-lang="设计"
+ ru-lang="Проектирование"
+ ko-lang="디자인"
+ ja-lang="設計"
+ es-lang="Diseñar"
+ >Design</a></li>
+ <li class="develop"><a href="/develop/index.html"
+ zh-tw-lang="開發"
+ zh-cn-lang="开发"
+ ru-lang="Разработка"
+ ko-lang="개발"
+ ja-lang="開発"
+ es-lang="Desarrollar"
+ >Develop</a></li>
+ <li class="distribute last"><a href="/distribute/index.html"
+ zh-tw-lang="發佈"
+ zh-cn-lang="分发"
+ ru-lang="Распространение"
+ ko-lang="배포"
+ ja-lang="配布"
+ es-lang="Distribuir"
+ >Distribute</a></li>
+ </ul>
+
+ <!-- New Search -->
+ <div class="menu-container">
+ <div class="moremenu">
+ <div id="more-btn"></div>
+ </div>
+ <div class="morehover" id="moremenu">
+ <div class="top"></div>
+ <div class="mid">
+ <div class="header">Links</div>
+ <ul>
+ <li><a href="https://play.google.com/apps/publish/">Google Play Developer Console</a></li>
+ <li><a href="http://android-developers.blogspot.com/">Android Developers Blog</a></li>
+ <li><a href="/about/index.html">About Android</a></li>
+ </ul>
+ <div class="header">Android Sites</div>
+ <ul>
+ <li><a href="http://www.android.com">Android.com</a></li>
+ <li class="active"><a>Android Developers</a></li>
+ <li><a href="http://source.android.com">Android Open Source Project</a></li>
+ </ul>
+
+
+
+ <div class="header">Language</div>
+ <div id="language" class="locales">
+ <select name="language" onChange="changeLangPref(this.value, true)">
+ <option value="en">English</option>
+ <option value="es">Español</option>
+ <option value="ja">日本語</option>
+ <option value="ko">한국어</option>
+ <option value="ru">Русский</option>
+ <option value="zh-cn">中文 (中国)</option>
+ <option value="zh-tw">中文 (台灣)</option>
+ </select>
+ </div>
+ <script type="text/javascript">
+ <!--
+ loadLangPref();
+ //-->
+ </script>
+
+
+
+
+ <br class="clearfix" />
+ </div>
+ <div class="bottom"></div>
+ </div>
+ <div class="search" id="search-container">
+ <div class="search-inner">
+ <div id="search-btn"></div>
+ <div class="left"></div>
+ <form onsubmit="return submit_search()">
+ <input id="search_autocomplete" type="text" value="" autocomplete="off" name="q"
+onfocus="search_focus_changed(this, true)" onblur="search_focus_changed(this, false)"
+onkeydown="return search_changed(event, true, '/')"
+onkeyup="return search_changed(event, false, '/')" />
+ </form>
+ <div class="right"></div>
+ <a class="close hide">close</a>
+ <div class="left"></div>
+ <div class="right"></div>
+ </div>
+ </div>
+
+ <div class="search_filtered_wrapper reference">
+ <div class="suggest-card reference no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ </div>
+
+ <div class="search_filtered_wrapper docs">
+ <div class="suggest-card dummy no-display"> </div>
+ <div class="suggest-card develop no-display">
+ <ul class="search_filtered">
+ </ul>
+ <div class="child-card guides no-display">
+ </div>
+ <div class="child-card training no-display">
+ </div>
+ <div class="child-card samples no-display">
+ </div>
+ </div>
+ <div class="suggest-card design no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ <div class="suggest-card distribute no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ </div>
+
+ </div>
+ <!-- /New Search>
+
+
+ <!-- Expanded quicknav -->
+ <div id="quicknav" class="col-9">
+ <ul>
+ <li class="design">
+ <ul>
+ <li><a href="/design/index.html">Get Started</a></li>
+ <li><a href="/design/style/index.html">Style</a></li>
+ <li><a href="/design/patterns/index.html">Patterns</a></li>
+ <li><a href="/design/building-blocks/index.html">Building Blocks</a></li>
+ <li><a href="/design/downloads/index.html">Downloads</a></li>
+ <li><a href="/design/videos/index.html">Videos</a></li>
+ </ul>
+ </li>
+ <li class="develop">
+ <ul>
+ <li><a href="/training/index.html"
+ zh-tw-lang="訓練課程"
+ zh-cn-lang="培训"
+ ru-lang="Курсы"
+ ko-lang="교육"
+ ja-lang="トレーニング"
+ es-lang="Capacitación"
+ >Training</a></li>
+ <li><a href="/guide/index.html"
+ zh-tw-lang="API 指南"
+ zh-cn-lang="API 指南"
+ ru-lang="Руководства по API"
+ ko-lang="API 가이드"
+ ja-lang="API ガイド"
+ es-lang="Guías de la API"
+ >API Guides</a></li>
+ <li><a href="/reference/packages.html"
+ zh-tw-lang="參考資源"
+ zh-cn-lang="参考"
+ ru-lang="Справочник"
+ ko-lang="참조문서"
+ ja-lang="リファレンス"
+ es-lang="Referencia"
+ >Reference</a></li>
+ <li><a href="/tools/index.html"
+ zh-tw-lang="相關工具"
+ zh-cn-lang="工具"
+ ru-lang="Инструменты"
+ ko-lang="도구"
+ ja-lang="ツール"
+ es-lang="Herramientas"
+ >Tools</a>
+ <ul><li><a href="/sdk/index.html">Get the SDK</a></li></ul>
+ </li>
+ <li><a href="/google/index.html">Google Services</a>
+ </li>
+
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
+ </ul>
+ </li>
+ <li class="distribute last">
+ <ul>
+ <li><a href="/distribute/index.html">Google Play</a></li>
+ <li><a href="/distribute/googleplay/publish/index.html">Publishing</a></li>
+ <li><a href="/distribute/googleplay/promote/index.html">Promoting</a></li>
+ <li><a href="/distribute/googleplay/quality/index.html">App Quality</a></li>
+ <li><a href="/distribute/googleplay/spotlight/index.html">Spotlight</a></li>
+ <li><a href="/distribute/open.html">Open Distribution</a></li>
+ </ul>
+ </li>
+ </ul>
+ </div>
+ <!-- /Expanded quicknav -->
+ </div>
+ </div>
+ <!-- /Header -->
+
+
+ <div id="searchResults" class="wrap" style="display:none;">
+ <h2 id="searchTitle">Results</h2>
+ <div id="leftSearchControl" class="search-control">Loading...</div>
+ </div>
+
+
+
+ <!-- Secondary x-nav -->
+ <div id="nav-x">
+ <div class="wrap">
+ <ul class="nav-x col-9 develop" style="width:100%">
+ <li class="training"><a href="/training/index.html"
+ zh-tw-lang="訓練課程"
+ zh-cn-lang="培训"
+ ru-lang="Курсы"
+ ko-lang="교육"
+ ja-lang="トレーニング"
+ es-lang="Capacitación"
+ >Training</a></li>
+ <li class="guide"><a href="/guide/index.html"
+ zh-tw-lang="API 指南"
+ zh-cn-lang="API 指南"
+ ru-lang="Руководства по API"
+ ko-lang="API 가이드"
+ ja-lang="API ガイド"
+ es-lang="Guías de la API"
+ >API Guides</a></li>
+ <li class="reference"><a href="/reference/packages.html"
+ zh-tw-lang="參考資源"
+ zh-cn-lang="参考"
+ ru-lang="Справочник"
+ ko-lang="참조문서"
+ ja-lang="リファレンス"
+ es-lang="Referencia"
+ >Reference</a></li>
+ <li class="tools"><a href="/tools/index.html"
+ zh-tw-lang="相關工具"
+ zh-cn-lang="工具"
+ ru-lang="Инструменты"
+ ko-lang="도구"
+ ja-lang="ツール"
+ es-lang="Herramientas"
+ >Tools</a></li>
+ <li class="google"><a href="/google/index.html"
+ >Google Services</a>
+ </li>
+
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
+ </ul>
+ </div>
+
+ </div>
+ <!-- /Sendondary x-nav -->
+
+
+
+
+
+
+
+
+
+ <div class="wrap clearfix" id="body-content">
+ <div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
+ <div id="devdoc-nav" class="scroll-pane">
+<a class="totop" href="#top" data-g-event="left-nav-top">to top</a>
+
+
+
+<ul id="nav">
+
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/index.html">
+ <span class="en">Overview</span>
+ </a></div>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/games.html">
+ <span class="en">Games</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/location.html">
+ <span class="en">Location</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/plus.html">
+ <span class="en">Google+</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/maps.html">
+ <span class="en">Maps</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play-services/ads.html">
+ <span class="en">Ads</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play-services/id.html">
+ <span class="en">Advertising ID</span></a>
+ </li>
+ </ul>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/wallet.html">
+ <span class="en">Wallet</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/auth.html">
+ <span class="en">Authorization</span>
+ </a></div>
+ </li>
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play-services/index.html">
+ <span class="en">Google Play Services</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play-services/setup.html">
+ <span class="en">Setup</span></a>
+ </li>
+ <li id="gms-tree-list" class="nav-section">
+ <div class="nav-section-header">
+ <a href="/reference/gms-packages.html">
+ <span class="en">Reference</span>
+ </a>
+ <div>
+ </li>
+ </ul>
+ </li>
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/billing/index.html">
+ <span class="en">Google Play In-app Billing</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/billing/billing_overview.html">
+ <span class="en">Overview</span></a>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/api.html">
+ <span class="en">Version 3 API</span></a></div>
+ <ul>
+ <li><a href="/google/play/billing/billing_integrate.html">
+ <span class="en">Implementing the API</span></a></li>
+ <li><a href="/google/play/billing/billing_reference.html">
+ <span class="en">Reference</span></a></li>
+ </ul>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/v2/api.html">
+ <span class="en">Version 2 API</span></a></div>
+ <ul>
+ <li><a href="/google/play/billing/v2/billing_integrate.html">
+ <span class="en">Implementing the API</span></a></li>
+ <li><a href="/google/play/billing/v2/billing_subscriptions.html">
+ <span class="en">Subscriptions</span></a></li>
+ <li><a href="/google/play/billing/v2/billing_reference.html">
+ <span class="en">Reference</span></a></li>
+ </ul>
+ </li>
+ <li><a href="/google/play/billing/billing_subscriptions.html">
+ <span class="en">Subscriptions</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_best_practices.html">
+ <span class="en">Security and Design</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_testing.html">
+ <span class="en">Testing In-app Billing</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_admin.html">
+ <span class="en">Administering In-app Billing</span></a>
+ </li>
+ <li><a href="/google/play/billing/gp-purchase-status-api.html">
+ <span class="en">Purchase Status API</span></a>
+ </li>
+ <li><a href="/google/play/billing/versions.html">
+ <span class="en">Version Notes</span></a>
+ </li>
+ </ul>
+ </li>
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/gcm/index.html">
+ <span class="en">Google Cloud Messaging</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
+ <li><a href="/google/gcm/gs.html">
+ <span class="en">Getting Started</span></a>
+ </li>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
+ </li>
+ <li><a href="/google/gcm/notifications.html">
+ <span class="en">User Notifications</span></a>
+ </li>
+ <li><a href="/google/gcm/adv.html">
+ <span class="en">Advanced Topics</span></a>
+ </li>
+ <li><a href="/google/gcm/c2dm.html">
+ <span class="en">Migration</span></a>
+ </li>
+ <li id="gcm-tree-list" class="nav-section">
+ <div class="nav-section-header">
+ <a href="/reference/gcm-packages.html">
+ <span class="en">Reference</span>
+ </a>
+ <div>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/dist.html">
+ <span class="en">Google Play Distribution</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/filters.html">
+ <span class="en">Filters on Google Play</span></a>
+ </li>
+
+ <li><a href="/google/play/publishing/multiple-apks.html">
+ <span class="en">Multiple APK Support</span></a>
+ </li>
+ <li><a href="/google/play/expansion-files.html">
+ <span class="en">APK Expansion Files</span></a>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/licensing/index.html">
+ <span class="en">Application Licensing</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/licensing/overview.html">
+ <span class="en">Licensing Overview</span></a>
+ </li>
+ <li><a href="/google/play/licensing/setting-up.html">
+ <span class="en">Setting Up for Licensing</span></a>
+ </li>
+ <li><a href="/google/play/licensing/adding-licensing.html">
+ <span class="en">Adding Licensing to Your App</span></a>
+ </li>
+ <li><a href="/google/play/licensing/licensing-reference.html">
+ <span class="en">Licensing Reference</span></a>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/backup/index.html">
+ Android Backup Service</a>
+ </div>
+ <ul>
+ <li><a href="/google/backup/signup.html">
+ Register</a>
+ </li>
+ </ul>
+ </li>
+
+ </ul>
+
+</li>
+
+
+
+</ul>
+
+<script type="text/javascript">
+<!--
+ buildToggleLists();
+ changeNavLang(getLangPref());
+//-->
+</script>
+
+
+
+
+ </div>
+ <script type="text/javascript">
+ showGoogleRefTree();
+
+ </script>
+ </div> <!-- end side-nav -->
+ <script>
+ $(document).ready(function() {
+ scrollIntoView("devdoc-nav");
+ });
+ </script>
+
+
+
+
+
+
+<div class="col-12" id="doc-col">
+
+<div id="api-info-block">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<div class="sum-details-links">
+
+Summary:
+
+
+ <a href="#lattrs">XML Attrs</a>
+
+
+
+
+
+
+ | <a href="#inhconstants">Inherited Constants</a>
+
+
+
+
+ | <a href="#inhfields">Inherited Fields</a>
+
+
+
+ | <a href="#pubctors">Ctors</a>
+
+
+
+
+ | <a href="#pubmethods">Methods</a>
+
+
+
+ | <a href="#promethods">Protected Methods</a>
+
+
+
+ | <a href="#inhmethods">Inherited Methods</a>
+
+| <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
+
+</div><!-- end sum-details-links -->
+<div class="api-level">
+
+
+
+
+</div>
+</div><!-- end api-info-block -->
+
+
+<!-- ======== START OF CLASS DATA ======== -->
+
+<div id="jd-header">
+ public
+
+ final
+
+ class
+<h1 itemprop="name">SearchAdView</h1>
+
+
+
+
+
+
+
+
+
+
+
+
+ extends ViewGroup<br/>
+
+
+
+
+
+
+
+
+
+</div><!-- end header -->
+
+<div id="naMessage"></div>
+
+<div id="jd-content" class="api apilevel-">
+<table class="jd-inheritance-table">
+
+
+ <tr>
+
+ <td colspan="4" class="jd-inheritance-class-cell">java.lang.Object</td>
+ </tr>
+
+
+ <tr>
+
+ <td class="jd-inheritance-space"> ↳</td>
+
+ <td colspan="3" class="jd-inheritance-class-cell">android.view.View</td>
+ </tr>
+
+
+ <tr>
+
+ <td class="jd-inheritance-space"> </td>
+
+ <td class="jd-inheritance-space"> ↳</td>
+
+ <td colspan="2" class="jd-inheritance-class-cell">android.view.ViewGroup</td>
+ </tr>
+
+
+ <tr>
+
+ <td class="jd-inheritance-space"> </td>
+
+ <td class="jd-inheritance-space"> </td>
+
+ <td class="jd-inheritance-space"> ↳</td>
+
+ <td colspan="1" class="jd-inheritance-class-cell">com.google.android.gms.ads.search.SearchAdView</td>
+ </tr>
+
+
+</table>
+
+
+
+
+
+
+
+<div class="jd-descr">
+
+
+<h2>Class Overview</h2>
+<p itemprop="articleBody">The <code><a href="/reference/android/view/View.html">View</a></code> to display search banner ads for use with Search Ads for Apps. The
+ ad size and ad unit ID must be set prior to calling <code><a href="/reference/com/google/android/gms/ads/search/SearchAdView.html#loadAd(com.google.android.gms.ads.search.SearchAdRequest)">loadAd(SearchAdRequest)</a></code>.
+ <p>
+ Sample code:
+ <pre>
+ public class MyActivity extends Activity {
+ private SearchAdView mSearchAdView;
+
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+
+ LinearLayout layout = new LinearLayout(this);
+ layout.setOrientation(LinearLayout.VERTICAL);
+
+ // Create a banner ad. The ad size and ad unit ID must be set before calling loadAd.
+ mSearchAdView = new SearchAdView(this);
+ mSearchAdView.setAdSize(AdSize.SMART_BANNER);
+ mSearchAdView.setAdUnitId("myAdUnitId");
+
+ // Create an ad request.
+ SearchAdRequest.Builder searchAdRequestBuilder = new SearchAdRequest.Builder();
+
+ // Optionally populate the ad request builder.
+ searchAdRequestBuilder.addTestDevice(AdRequest.DEVICE_ID_EMULATOR);
+
+ // Add the SearchAdView to the view hierarchy.
+ layout.addView(mSearchAdView);
+
+ // Start loading the ad.
+ mSearchAdView.loadAd(searchAdRequestBuilder.build());
+
+ setContentView(layout);
+ }
+
+ @Override
+ public void onResume() {
+ super.onResume();
+
+ // Resume the SearchAdView.
+ mSearchAdView.resume();
+ }
+
+ @Override
+ public void onPause() {
+ // Pause the SearchAdView.
+ mSearchAdView.pause();
+
+ super.onPause();
+ }
+
+ @Override
+ public void onDestroy() {
+ // Destroy the SearchAdView.
+ mSearchAdView.destroy();
+
+ super.onDestroy();
+ }
+ }</pre></p>
+
+
+
+
+
+</div><!-- jd-descr -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<div class="jd-descr">
+
+
+<h2>Summary</h2>
+
+
+
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+<table id="lattrs" class="jd-sumtable"><tr><th colspan="12">XML Attributes</th></tr>
+
+
+ <tr>
+ <td><nobr><em>Attribute Name</em></nobr></td>
+ <td><nobr><em>Related Method</em></nobr></td>
+ <td><nobr><em>Description</em></nobr></td>
+ </tr>
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/ads/search/SearchAdView.html#attr_com.google.android.gms:adSize">com.google.android.gms:adSize</a></td>
+ <td class="jd-linkcol">
+ <a href="/reference/com/google/android/gms/ads/search/SearchAdView.html#setAdSize(com.google.android.gms.ads.AdSize)">setAdSize(AdSize)</a>
+
+ </td>
+ <td class="jd-descrcol" width="100%">The size of the ad. </td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/ads/search/SearchAdView.html#attr_com.google.android.gms:adUnitId">com.google.android.gms:adUnitId</a></td>
+ <td class="jd-linkcol">
+ <a href="/reference/com/google/android/gms/ads/search/SearchAdView.html#setAdUnitId(java.lang.String)">setAdUnitId(String)</a>
+
+ </td>
+ <td class="jd-descrcol" width="100%">The ad unit ID. </td>
+ </tr>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<!-- =========== ENUM CONSTANT SUMMARY =========== -->
+<table id="inhconstants" class="jd-sumtable"><tr><th>
+ <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
+ <div style="clear:left;">Inherited Constants</div></th></tr>
+
+
+<tr class="api apilevel-" >
+<td colspan="12">
+
+ <a href="#" onclick="return toggleInherited(this, null)" id="inherited-constants-android.view.ViewGroup" class="jd-expando-trigger closed"
+ ><img id="inherited-constants-android.view.ViewGroup-trigger"
+ src="/assets/images/triangle-closed.png"
+ class="jd-expando-trigger-img" /></a>From class
+android.view.ViewGroup
+<div id="inherited-constants-android.view.ViewGroup">
+ <div id="inherited-constants-android.view.ViewGroup-list"
+ class="jd-inheritedlinks">
+ </div>
+ <div id="inherited-constants-android.view.ViewGroup-summary" style="display: none;">
+ <table class="jd-sumtable-expando">
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">CLIP_TO_PADDING_MASK</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">FOCUS_AFTER_DESCENDANTS</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">FOCUS_BEFORE_DESCENDANTS</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">FOCUS_BLOCK_DESCENDANTS</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">LAYOUT_MODE_CLIP_BOUNDS</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">LAYOUT_MODE_OPTICAL_BOUNDS</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">PERSISTENT_ALL_CACHES</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">PERSISTENT_ANIMATION_CACHE</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">PERSISTENT_NO_CACHE</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">PERSISTENT_SCROLLING_CACHE</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+</table>
+ </div>
+</div>
+</td></tr>
+
+
+
+<tr class="api apilevel-" >
+<td colspan="12">
+
+ <a href="#" onclick="return toggleInherited(this, null)" id="inherited-constants-android.view.View" class="jd-expando-trigger closed"
+ ><img id="inherited-constants-android.view.View-trigger"
+ src="/assets/images/triangle-closed.png"
+ class="jd-expando-trigger-img" /></a>From class
+android.view.View
+<div id="inherited-constants-android.view.View">
+ <div id="inherited-constants-android.view.View-list"
+ class="jd-inheritedlinks">
+ </div>
+ <div id="inherited-constants-android.view.View-summary" style="display: none;">
+ <table class="jd-sumtable-expando">
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">ACCESSIBILITY_LIVE_REGION_ASSERTIVE</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">ACCESSIBILITY_LIVE_REGION_NONE</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">ACCESSIBILITY_LIVE_REGION_POLITE</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">DRAWING_CACHE_QUALITY_AUTO</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">DRAWING_CACHE_QUALITY_HIGH</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">DRAWING_CACHE_QUALITY_LOW</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">FIND_VIEWS_WITH_CONTENT_DESCRIPTION</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">FIND_VIEWS_WITH_TEXT</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">FOCUSABLES_ALL</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">FOCUSABLES_TOUCH_MODE</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">FOCUS_BACKWARD</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">FOCUS_DOWN</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">FOCUS_FORWARD</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">FOCUS_LEFT</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">FOCUS_RIGHT</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">FOCUS_UP</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">GONE</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">HAPTIC_FEEDBACK_ENABLED</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">IMPORTANT_FOR_ACCESSIBILITY_AUTO</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">IMPORTANT_FOR_ACCESSIBILITY_NO</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">IMPORTANT_FOR_ACCESSIBILITY_NO_HIDE_DESCENDANTS</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">IMPORTANT_FOR_ACCESSIBILITY_YES</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">INVISIBLE</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">KEEP_SCREEN_ON</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">LAYER_TYPE_HARDWARE</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">LAYER_TYPE_NONE</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">LAYER_TYPE_SOFTWARE</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">LAYOUT_DIRECTION_INHERIT</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">LAYOUT_DIRECTION_LOCALE</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">LAYOUT_DIRECTION_LTR</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">LAYOUT_DIRECTION_RTL</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">MEASURED_HEIGHT_STATE_SHIFT</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">MEASURED_SIZE_MASK</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">MEASURED_STATE_MASK</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">MEASURED_STATE_TOO_SMALL</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">NO_ID</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">OVER_SCROLL_ALWAYS</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">OVER_SCROLL_IF_CONTENT_SCROLLS</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">OVER_SCROLL_NEVER</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">SCREEN_STATE_OFF</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">SCREEN_STATE_ON</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">SCROLLBARS_INSIDE_INSET</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">SCROLLBARS_INSIDE_OVERLAY</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">SCROLLBARS_OUTSIDE_INSET</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">SCROLLBARS_OUTSIDE_OVERLAY</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">SCROLLBAR_POSITION_DEFAULT</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">SCROLLBAR_POSITION_LEFT</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">SCROLLBAR_POSITION_RIGHT</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">SOUND_EFFECTS_ENABLED</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">STATUS_BAR_HIDDEN</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">STATUS_BAR_VISIBLE</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">SYSTEM_UI_FLAG_FULLSCREEN</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">SYSTEM_UI_FLAG_HIDE_NAVIGATION</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">SYSTEM_UI_FLAG_IMMERSIVE</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">SYSTEM_UI_FLAG_IMMERSIVE_STICKY</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">SYSTEM_UI_FLAG_LAYOUT_STABLE</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">SYSTEM_UI_FLAG_LOW_PROFILE</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">SYSTEM_UI_FLAG_VISIBLE</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">SYSTEM_UI_LAYOUT_FLAGS</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">TEXT_ALIGNMENT_CENTER</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">TEXT_ALIGNMENT_GRAVITY</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">TEXT_ALIGNMENT_INHERIT</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">TEXT_ALIGNMENT_TEXT_END</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">TEXT_ALIGNMENT_TEXT_START</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">TEXT_ALIGNMENT_VIEW_END</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">TEXT_ALIGNMENT_VIEW_START</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">TEXT_DIRECTION_ANY_RTL</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">TEXT_DIRECTION_FIRST_STRONG</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">TEXT_DIRECTION_INHERIT</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">TEXT_DIRECTION_LOCALE</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">TEXT_DIRECTION_LTR</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">TEXT_DIRECTION_RTL</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">String</td>
+ <td class="jd-linkcol">VIEW_LOG_TAG</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">VISIBLE</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+</table>
+ </div>
+</div>
+</td></tr>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</table>
+
+
+
+
+
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+<table id="inhfields" class="jd-sumtable"><tr><th>
+ <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
+ <div style="clear:left;">Inherited Fields</div></th></tr>
+
+
+
+
+<tr class="api apilevel-" >
+<td colspan="12">
+
+ <a href="#" onclick="return toggleInherited(this, null)" id="inherited-fields-android.view.View" class="jd-expando-trigger closed"
+ ><img id="inherited-fields-android.view.View-trigger"
+ src="/assets/images/triangle-closed.png"
+ class="jd-expando-trigger-img" /></a>From class
+android.view.View
+<div id="inherited-fields-android.view.View">
+ <div id="inherited-fields-android.view.View-list"
+ class="jd-inheritedlinks">
+ </div>
+ <div id="inherited-fields-android.view.View-summary" style="display: none;">
+ <table class="jd-sumtable-expando">
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ public
+ static
+ final
+ Property<View, Float></nobr></td>
+ <td class="jd-linkcol">ALPHA</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ protected
+ static
+ final
+ int[]</nobr></td>
+ <td class="jd-linkcol">EMPTY_STATE_SET</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ protected
+ static
+ final
+ int[]</nobr></td>
+ <td class="jd-linkcol">ENABLED_FOCUSED_SELECTED_STATE_SET</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ protected
+ static
+ final
+ int[]</nobr></td>
+ <td class="jd-linkcol">ENABLED_FOCUSED_SELECTED_WINDOW_FOCUSED_STATE_SET</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ protected
+ static
+ final
+ int[]</nobr></td>
+ <td class="jd-linkcol">ENABLED_FOCUSED_STATE_SET</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ protected
+ static
+ final
+ int[]</nobr></td>
+ <td class="jd-linkcol">ENABLED_FOCUSED_WINDOW_FOCUSED_STATE_SET</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ protected
+ static
+ final
+ int[]</nobr></td>
+ <td class="jd-linkcol">ENABLED_SELECTED_STATE_SET</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ protected
+ static
+ final
+ int[]</nobr></td>
+ <td class="jd-linkcol">ENABLED_SELECTED_WINDOW_FOCUSED_STATE_SET</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ protected
+ static
+ final
+ int[]</nobr></td>
+ <td class="jd-linkcol">ENABLED_STATE_SET</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ protected
+ static
+ final
+ int[]</nobr></td>
+ <td class="jd-linkcol">ENABLED_WINDOW_FOCUSED_STATE_SET</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ protected
+ static
+ final
+ int[]</nobr></td>
+ <td class="jd-linkcol">FOCUSED_SELECTED_STATE_SET</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ protected
+ static
+ final
+ int[]</nobr></td>
+ <td class="jd-linkcol">FOCUSED_SELECTED_WINDOW_FOCUSED_STATE_SET</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ protected
+ static
+ final
+ int[]</nobr></td>
+ <td class="jd-linkcol">FOCUSED_STATE_SET</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ protected
+ static
+ final
+ int[]</nobr></td>
+ <td class="jd-linkcol">FOCUSED_WINDOW_FOCUSED_STATE_SET</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ protected
+ static
+ final
+ int[]</nobr></td>
+ <td class="jd-linkcol">PRESSED_ENABLED_FOCUSED_SELECTED_STATE_SET</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ protected
+ static
+ final
+ int[]</nobr></td>
+ <td class="jd-linkcol">PRESSED_ENABLED_FOCUSED_SELECTED_WINDOW_FOCUSED_STATE_SET</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ protected
+ static
+ final
+ int[]</nobr></td>
+ <td class="jd-linkcol">PRESSED_ENABLED_FOCUSED_STATE_SET</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ protected
+ static
+ final
+ int[]</nobr></td>
+ <td class="jd-linkcol">PRESSED_ENABLED_FOCUSED_WINDOW_FOCUSED_STATE_SET</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ protected
+ static
+ final
+ int[]</nobr></td>
+ <td class="jd-linkcol">PRESSED_ENABLED_SELECTED_STATE_SET</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ protected
+ static
+ final
+ int[]</nobr></td>
+ <td class="jd-linkcol">PRESSED_ENABLED_SELECTED_WINDOW_FOCUSED_STATE_SET</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ protected
+ static
+ final
+ int[]</nobr></td>
+ <td class="jd-linkcol">PRESSED_ENABLED_STATE_SET</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ protected
+ static
+ final
+ int[]</nobr></td>
+ <td class="jd-linkcol">PRESSED_ENABLED_WINDOW_FOCUSED_STATE_SET</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ protected
+ static
+ final
+ int[]</nobr></td>
+ <td class="jd-linkcol">PRESSED_FOCUSED_SELECTED_STATE_SET</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ protected
+ static
+ final
+ int[]</nobr></td>
+ <td class="jd-linkcol">PRESSED_FOCUSED_SELECTED_WINDOW_FOCUSED_STATE_SET</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ protected
+ static
+ final
+ int[]</nobr></td>
+ <td class="jd-linkcol">PRESSED_FOCUSED_STATE_SET</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ protected
+ static
+ final
+ int[]</nobr></td>
+ <td class="jd-linkcol">PRESSED_FOCUSED_WINDOW_FOCUSED_STATE_SET</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ protected
+ static
+ final
+ int[]</nobr></td>
+ <td class="jd-linkcol">PRESSED_SELECTED_STATE_SET</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ protected
+ static
+ final
+ int[]</nobr></td>
+ <td class="jd-linkcol">PRESSED_SELECTED_WINDOW_FOCUSED_STATE_SET</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ protected
+ static
+ final
+ int[]</nobr></td>
+ <td class="jd-linkcol">PRESSED_STATE_SET</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ protected
+ static
+ final
+ int[]</nobr></td>
+ <td class="jd-linkcol">PRESSED_WINDOW_FOCUSED_STATE_SET</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ public
+ static
+ final
+ Property<View, Float></nobr></td>
+ <td class="jd-linkcol">ROTATION</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ public
+ static
+ final
+ Property<View, Float></nobr></td>
+ <td class="jd-linkcol">ROTATION_X</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ public
+ static
+ final
+ Property<View, Float></nobr></td>
+ <td class="jd-linkcol">ROTATION_Y</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ public
+ static
+ final
+ Property<View, Float></nobr></td>
+ <td class="jd-linkcol">SCALE_X</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ public
+ static
+ final
+ Property<View, Float></nobr></td>
+ <td class="jd-linkcol">SCALE_Y</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ protected
+ static
+ final
+ int[]</nobr></td>
+ <td class="jd-linkcol">SELECTED_STATE_SET</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ protected
+ static
+ final
+ int[]</nobr></td>
+ <td class="jd-linkcol">SELECTED_WINDOW_FOCUSED_STATE_SET</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ public
+ static
+ final
+ Property<View, Float></nobr></td>
+ <td class="jd-linkcol">TRANSLATION_X</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ public
+ static
+ final
+ Property<View, Float></nobr></td>
+ <td class="jd-linkcol">TRANSLATION_Y</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ protected
+ static
+ final
+ int[]</nobr></td>
+ <td class="jd-linkcol">WINDOW_FOCUSED_STATE_SET</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ public
+ static
+ final
+ Property<View, Float></nobr></td>
+ <td class="jd-linkcol">X</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ public
+ static
+ final
+ Property<View, Float></nobr></td>
+ <td class="jd-linkcol">Y</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+</table>
+ </div>
+</div>
+</td></tr>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+</table>
+
+
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
+
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ </nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/ads/search/SearchAdView.html#SearchAdView(android.content.Context)">SearchAdView</a></span>(Context context)</nobr>
+
+ <div class="jd-descrdiv">Construct a <code><a href="/reference/com/google/android/gms/ads/search/SearchAdView.html">SearchAdView</a></code> from code.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ </nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/ads/search/SearchAdView.html#SearchAdView(android.content.Context, android.util.AttributeSet)">SearchAdView</a></span>(Context context, AttributeSet attrs)</nobr>
+
+ <div class="jd-descrdiv">Construct a <code><a href="/reference/com/google/android/gms/ads/search/SearchAdView.html">SearchAdView</a></code> from an XML layout.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ </nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/ads/search/SearchAdView.html#SearchAdView(android.content.Context, android.util.AttributeSet, int)">SearchAdView</a></span>(Context context, AttributeSet attrs, int defStyle)</nobr>
+
+ <div class="jd-descrdiv">Construct a <code><a href="/reference/com/google/android/gms/ads/search/SearchAdView.html">SearchAdView</a></code> from an XML layout.</div>
+
+ </td></tr>
+
+
+
+</table>
+
+
+
+
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
+
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/ads/search/SearchAdView.html#destroy()">destroy</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Destroy the <code><a href="/reference/com/google/android/gms/ads/search/SearchAdView.html">SearchAdView</a></code>.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ <a href="/reference/com/google/android/gms/ads/AdListener.html">AdListener</a></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/ads/search/SearchAdView.html#getAdListener()">getAdListener</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Returns the <code><a href="/reference/com/google/android/gms/ads/AdListener.html">AdListener</a></code> for this <code><a href="/reference/com/google/android/gms/ads/search/SearchAdView.html">SearchAdView</a></code>.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ <a href="/reference/com/google/android/gms/ads/AdSize.html">AdSize</a></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/ads/search/SearchAdView.html#getAdSize()">getAdSize</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Returns the size of the banner ad.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ String</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/ads/search/SearchAdView.html#getAdUnitId()">getAdUnitId</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Returns the ad unit ID.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/ads/search/SearchAdView.html#loadAd(com.google.android.gms.ads.search.SearchAdRequest)">loadAd</a></span>(<a href="/reference/com/google/android/gms/ads/search/SearchAdRequest.html">SearchAdRequest</a> searchAdRequest)</nobr>
+
+ <div class="jd-descrdiv">Start loading the ad on a background thread.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/ads/search/SearchAdView.html#pause()">pause</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Pause any extra processing associated with this <code><a href="/reference/com/google/android/gms/ads/search/SearchAdView.html">SearchAdView</a></code>.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/ads/search/SearchAdView.html#resume()">resume</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Resume an <code><a href="/reference/com/google/android/gms/ads/search/SearchAdView.html">SearchAdView</a></code> after a previous call to <code><a href="/reference/com/google/android/gms/ads/search/SearchAdView.html#pause()">pause()</a></code>.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/ads/search/SearchAdView.html#setAdListener(com.google.android.gms.ads.AdListener)">setAdListener</a></span>(<a href="/reference/com/google/android/gms/ads/AdListener.html">AdListener</a> adListener)</nobr>
+
+ <div class="jd-descrdiv">Sets an <code><a href="/reference/com/google/android/gms/ads/AdListener.html">AdListener</a></code> for this <code><a href="/reference/com/google/android/gms/ads/search/SearchAdView.html">SearchAdView</a></code>.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/ads/search/SearchAdView.html#setAdSize(com.google.android.gms.ads.AdSize)">setAdSize</a></span>(<a href="/reference/com/google/android/gms/ads/AdSize.html">AdSize</a> adSize)</nobr>
+
+ <div class="jd-descrdiv">Sets the size of the banner ad.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/ads/search/SearchAdView.html#setAdUnitId(java.lang.String)">setAdUnitId</a></span>(String adUnitId)</nobr>
+
+ <div class="jd-descrdiv">Sets the ad unit ID.</div>
+
+ </td></tr>
+
+
+
+</table>
+
+
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+<table id="promethods" class="jd-sumtable"><tr><th colspan="12">Protected Methods</th></tr>
+
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/ads/search/SearchAdView.html#onLayout(boolean, int, int, int, int)">onLayout</a></span>(boolean changed, int left, int top, int right, int bottom)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/ads/search/SearchAdView.html#onMeasure(int, int)">onMeasure</a></span>(int widthMeasureSpec, int heightMeasureSpec)</nobr>
+
+ </td></tr>
+
+
+
+</table>
+
+
+
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+<table id="inhmethods" class="jd-sumtable"><tr><th>
+ <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
+ <div style="clear:left;">Inherited Methods</div></th></tr>
+
+
+<tr class="api apilevel-" >
+<td colspan="12">
+ <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-android.view.ViewGroup" class="jd-expando-trigger closed"
+ ><img id="inherited-methods-android.view.ViewGroup-trigger"
+ src="/assets/images/triangle-closed.png"
+ class="jd-expando-trigger-img" /></a>
+From class
+
+ android.view.ViewGroup
+
+<div id="inherited-methods-android.view.ViewGroup">
+ <div id="inherited-methods-android.view.ViewGroup-list"
+ class="jd-inheritedlinks">
+ </div>
+ <div id="inherited-methods-android.view.ViewGroup-summary" style="display: none;">
+ <table class="jd-sumtable-expando">
+
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">addChildrenForAccessibility</span>(ArrayList<View> arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">addFocusables</span>(ArrayList<View> arg0, int arg1, int arg2)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">addStatesFromChildren</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">addTouchables</span>(ArrayList<View> arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">addView</span>(View arg0, int arg1, ViewGroup.LayoutParams arg2)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">addView</span>(View arg0, ViewGroup.LayoutParams arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">addView</span>(View arg0, int arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">addView</span>(View arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">addView</span>(View arg0, int arg1, int arg2)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">addViewInLayout</span>(View arg0, int arg1, ViewGroup.LayoutParams arg2, boolean arg3)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">addViewInLayout</span>(View arg0, int arg1, ViewGroup.LayoutParams arg2)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">attachLayoutAnimationParameters</span>(View arg0, ViewGroup.LayoutParams arg1, int arg2, int arg3)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">attachViewToParent</span>(View arg0, int arg1, ViewGroup.LayoutParams arg2)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">bringChildToFront</span>(View arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">canAnimate</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">checkLayoutParams</span>(ViewGroup.LayoutParams arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">childDrawableStateChanged</span>(View arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">childHasTransientStateChanged</span>(View arg0, boolean arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">cleanupLayoutState</span>(View arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">clearChildFocus</span>(View arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">clearDisappearingChildren</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">clearFocus</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">debug</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">detachAllViewsFromParent</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">detachViewFromParent</span>(View arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">detachViewFromParent</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">detachViewsFromParent</span>(int arg0, int arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">dispatchConfigurationChanged</span>(Configuration arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">dispatchDisplayHint</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">dispatchDragEvent</span>(DragEvent arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">dispatchDraw</span>(Canvas arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">dispatchFreezeSelfOnly</span>(SparseArray<Parcelable> arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">dispatchGenericFocusedEvent</span>(MotionEvent arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">dispatchGenericPointerEvent</span>(MotionEvent arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">dispatchHoverEvent</span>(MotionEvent arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">dispatchKeyEvent</span>(KeyEvent arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">dispatchKeyEventPreIme</span>(KeyEvent arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">dispatchKeyShortcutEvent</span>(KeyEvent arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">dispatchRestoreInstanceState</span>(SparseArray<Parcelable> arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">dispatchSaveInstanceState</span>(SparseArray<Parcelable> arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">dispatchSetActivated</span>(boolean arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">dispatchSetPressed</span>(boolean arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">dispatchSetSelected</span>(boolean arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">dispatchSystemUiVisibilityChanged</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">dispatchThawSelfOnly</span>(SparseArray<Parcelable> arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">dispatchTouchEvent</span>(MotionEvent arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">dispatchTrackballEvent</span>(MotionEvent arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">dispatchUnhandledMove</span>(View arg0, int arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">dispatchVisibilityChanged</span>(View arg0, int arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">dispatchWindowFocusChanged</span>(boolean arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">dispatchWindowSystemUiVisiblityChanged</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">dispatchWindowVisibilityChanged</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">drawChild</span>(Canvas arg0, View arg1, long arg2)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">drawableStateChanged</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">endViewTransition</span>(View arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ View</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">findFocus</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">findViewsWithText</span>(ArrayList<View> arg0, CharSequence arg1, int arg2)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">fitSystemWindows</span>(Rect arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ View</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">focusSearch</span>(View arg0, int arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">focusableViewAvailable</span>(View arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">gatherTransparentRegion</span>(Region arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ ViewGroup.LayoutParams</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">generateDefaultLayoutParams</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ ViewGroup.LayoutParams</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">generateLayoutParams</span>(AttributeSet arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ ViewGroup.LayoutParams</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">generateLayoutParams</span>(ViewGroup.LayoutParams arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ View</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getChildAt</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getChildCount</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getChildDrawingOrder</span>(int arg0, int arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+ static
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getChildMeasureSpec</span>(int arg0, int arg1, int arg2)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getChildStaticTransformation</span>(View arg0, Transformation arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getChildVisibleRect</span>(View arg0, Rect arg1, Point arg2)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getClipChildren</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getDescendantFocusability</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ View</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getFocusedChild</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ LayoutAnimationController</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getLayoutAnimation</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ Animation.AnimationListener</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getLayoutAnimationListener</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getLayoutMode</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ LayoutTransition</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getLayoutTransition</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ ViewOverlay</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getOverlay</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getPersistentDrawingCache</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">hasFocus</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">hasFocusable</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">hasTransientState</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">indexOfChild</span>(View arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">invalidateChild</span>(View arg0, Rect arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ ViewParent</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">invalidateChildInParent</span>(int[] arg0, Rect arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">isAlwaysDrawnWithCacheEnabled</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">isAnimationCacheEnabled</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">isChildrenDrawingOrderEnabled</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">isChildrenDrawnWithCacheEnabled</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">isMotionEventSplittingEnabled</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">jumpDrawablesToCurrentState</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">layout</span>(int arg0, int arg1, int arg2, int arg3)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">measureChild</span>(View arg0, int arg1, int arg2)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">measureChildWithMargins</span>(View arg0, int arg1, int arg2, int arg3, int arg4)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">measureChildren</span>(int arg0, int arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">notifySubtreeAccessibilityStateChanged</span>(View arg0, View arg1, int arg2)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">offsetDescendantRectToMyCoords</span>(View arg0, Rect arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">offsetRectIntoDescendantCoords</span>(View arg0, Rect arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">onAnimationEnd</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">onAnimationStart</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">onAttachedToWindow</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int[]</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">onCreateDrawableState</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">onDetachedFromWindow</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">onInterceptHoverEvent</span>(MotionEvent arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">onInterceptTouchEvent</span>(MotionEvent arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">onLayout</span>(boolean arg0, int arg1, int arg2, int arg3, int arg4)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">onRequestFocusInDescendants</span>(int arg0, Rect arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">onRequestSendAccessibilityEvent</span>(View arg0, AccessibilityEvent arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">recomputeViewAttributes</span>(View arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">removeAllViews</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">removeAllViewsInLayout</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">removeDetachedView</span>(View arg0, boolean arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">removeView</span>(View arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">removeViewAt</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">removeViewInLayout</span>(View arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">removeViews</span>(int arg0, int arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">removeViewsInLayout</span>(int arg0, int arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">requestChildFocus</span>(View arg0, View arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">requestChildRectangleOnScreen</span>(View arg0, Rect arg1, boolean arg2)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">requestDisallowInterceptTouchEvent</span>(boolean arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">requestFocus</span>(int arg0, Rect arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">requestSendAccessibilityEvent</span>(View arg0, AccessibilityEvent arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">requestTransparentRegion</span>(View arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">scheduleLayoutAnimation</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setAddStatesFromChildren</span>(boolean arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setAlwaysDrawnWithCacheEnabled</span>(boolean arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setAnimationCacheEnabled</span>(boolean arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setChildrenDrawingCacheEnabled</span>(boolean arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setChildrenDrawingOrderEnabled</span>(boolean arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setChildrenDrawnWithCacheEnabled</span>(boolean arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setClipChildren</span>(boolean arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setClipToPadding</span>(boolean arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setDescendantFocusability</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setLayoutAnimation</span>(LayoutAnimationController arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setLayoutAnimationListener</span>(Animation.AnimationListener arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setLayoutMode</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setLayoutTransition</span>(LayoutTransition arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setMotionEventSplittingEnabled</span>(boolean arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setOnHierarchyChangeListener</span>(ViewGroup.OnHierarchyChangeListener arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setPersistentDrawingCache</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setStaticTransformationsEnabled</span>(boolean arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">shouldDelayChildPressedState</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">showContextMenuForChild</span>(View arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ ActionMode</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">startActionModeForChild</span>(View arg0, ActionMode.Callback arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">startLayoutAnimation</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">startViewTransition</span>(View arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">updateViewLayout</span>(View arg0, ViewGroup.LayoutParams arg1)</nobr>
+
+ </td></tr>
+
+
+</table>
+ </div>
+</div>
+</td></tr>
+
+
+
+<tr class="api apilevel-" >
+<td colspan="12">
+ <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-android.view.View" class="jd-expando-trigger closed"
+ ><img id="inherited-methods-android.view.View-trigger"
+ src="/assets/images/triangle-closed.png"
+ class="jd-expando-trigger-img" /></a>
+From class
+
+ android.view.View
+
+<div id="inherited-methods-android.view.View">
+ <div id="inherited-methods-android.view.View-list"
+ class="jd-inheritedlinks">
+ </div>
+ <div id="inherited-methods-android.view.View-summary" style="display: none;">
+ <table class="jd-sumtable-expando">
+
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">addChildrenForAccessibility</span>(ArrayList<View> arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">addFocusables</span>(ArrayList<View> arg0, int arg1, int arg2)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">addFocusables</span>(ArrayList<View> arg0, int arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">addOnAttachStateChangeListener</span>(View.OnAttachStateChangeListener arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">addOnLayoutChangeListener</span>(View.OnLayoutChangeListener arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">addTouchables</span>(ArrayList<View> arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ ViewPropertyAnimator</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">animate</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">announceForAccessibility</span>(CharSequence arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">awakenScrollBars</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">awakenScrollBars</span>(int arg0, boolean arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">awakenScrollBars</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">bringToFront</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">buildDrawingCache</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">buildDrawingCache</span>(boolean arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">buildLayer</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">callOnClick</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">canResolveLayoutDirection</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">canResolveTextAlignment</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">canResolveTextDirection</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">canScrollHorizontally</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">canScrollVertically</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">cancelLongPress</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">cancelPendingInputEvents</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">checkInputConnectionProxy</span>(View arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">clearAnimation</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">clearFocus</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+ static
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">combineMeasuredStates</span>(int arg0, int arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">computeHorizontalScrollExtent</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">computeHorizontalScrollOffset</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">computeHorizontalScrollRange</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">computeScroll</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">computeVerticalScrollExtent</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">computeVerticalScrollOffset</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">computeVerticalScrollRange</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ AccessibilityNodeInfo</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">createAccessibilityNodeInfo</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">createContextMenu</span>(ContextMenu arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">destroyDrawingCache</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">dispatchConfigurationChanged</span>(Configuration arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">dispatchDisplayHint</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">dispatchDragEvent</span>(DragEvent arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">dispatchDraw</span>(Canvas arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">dispatchGenericFocusedEvent</span>(MotionEvent arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">dispatchGenericMotionEvent</span>(MotionEvent arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">dispatchGenericPointerEvent</span>(MotionEvent arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">dispatchHoverEvent</span>(MotionEvent arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">dispatchKeyEvent</span>(KeyEvent arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">dispatchKeyEventPreIme</span>(KeyEvent arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">dispatchKeyShortcutEvent</span>(KeyEvent arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">dispatchPopulateAccessibilityEvent</span>(AccessibilityEvent arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">dispatchRestoreInstanceState</span>(SparseArray<Parcelable> arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">dispatchSaveInstanceState</span>(SparseArray<Parcelable> arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">dispatchSetActivated</span>(boolean arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">dispatchSetPressed</span>(boolean arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">dispatchSetSelected</span>(boolean arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">dispatchSystemUiVisibilityChanged</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">dispatchTouchEvent</span>(MotionEvent arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">dispatchTrackballEvent</span>(MotionEvent arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">dispatchUnhandledMove</span>(View arg0, int arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">dispatchVisibilityChanged</span>(View arg0, int arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">dispatchWindowFocusChanged</span>(boolean arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">dispatchWindowSystemUiVisiblityChanged</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">dispatchWindowVisibilityChanged</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">draw</span>(Canvas arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">drawableStateChanged</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ View</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">findFocus</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ View</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">findViewById</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ View</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">findViewWithTag</span>(Object arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">findViewsWithText</span>(ArrayList<View> arg0, CharSequence arg1, int arg2)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">fitSystemWindows</span>(Rect arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ View</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">focusSearch</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">forceLayout</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+ static
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">generateViewId</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getAccessibilityLiveRegion</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ AccessibilityNodeProvider</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getAccessibilityNodeProvider</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ float</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getAlpha</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ Animation</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getAnimation</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ IBinder</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getApplicationWindowToken</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ Drawable</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getBackground</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getBaseline</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getBottom</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ float</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getBottomFadingEdgeStrength</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getBottomPaddingOffset</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ float</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getCameraDistance</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ Rect</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getClipBounds</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ CharSequence</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getContentDescription</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ Context</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getContext</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ ContextMenu.ContextMenuInfo</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getContextMenuInfo</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+ static
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getDefaultSize</span>(int arg0, int arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ Display</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getDisplay</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ int[]</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getDrawableState</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ Bitmap</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getDrawingCache</span>(boolean arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ Bitmap</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getDrawingCache</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getDrawingCacheBackgroundColor</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getDrawingCacheQuality</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getDrawingRect</span>(Rect arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ long</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getDrawingTime</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getFilterTouchesWhenObscured</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getFitsSystemWindows</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ ArrayList<View></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getFocusables</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getFocusedRect</span>(Rect arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getGlobalVisibleRect</span>(Rect arg0, Point arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getGlobalVisibleRect</span>(Rect arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ Handler</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getHandler</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getHeight</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getHitRect</span>(Rect arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getHorizontalFadingEdgeLength</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getHorizontalScrollbarHeight</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getId</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getImportantForAccessibility</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getKeepScreenOn</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ KeyEvent.DispatcherState</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getKeyDispatcherState</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getLabelFor</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getLayerType</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getLayoutDirection</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ ViewGroup.LayoutParams</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getLayoutParams</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getLeft</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ float</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getLeftFadingEdgeStrength</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getLeftPaddingOffset</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getLocalVisibleRect</span>(Rect arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getLocationInWindow</span>(int[] arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getLocationOnScreen</span>(int[] arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ Matrix</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getMatrix</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getMeasuredHeight</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getMeasuredHeightAndState</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getMeasuredState</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getMeasuredWidth</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getMeasuredWidthAndState</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getMinimumHeight</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getMinimumWidth</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getNextFocusDownId</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getNextFocusForwardId</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getNextFocusLeftId</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getNextFocusRightId</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getNextFocusUpId</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ View.OnFocusChangeListener</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getOnFocusChangeListener</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getOverScrollMode</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ ViewOverlay</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getOverlay</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getPaddingBottom</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getPaddingEnd</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getPaddingLeft</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getPaddingRight</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getPaddingStart</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getPaddingTop</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ ViewParent</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getParent</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ ViewParent</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getParentForAccessibility</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ float</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getPivotX</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ float</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getPivotY</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ Resources</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getResources</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getRight</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ float</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getRightFadingEdgeStrength</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getRightPaddingOffset</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ View</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getRootView</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ float</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getRotation</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ float</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getRotationX</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ float</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getRotationY</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ float</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getScaleX</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ float</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getScaleY</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getScrollBarDefaultDelayBeforeFade</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getScrollBarFadeDuration</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getScrollBarSize</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getScrollBarStyle</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getScrollX</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getScrollY</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getSolidColor</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getSuggestedMinimumHeight</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getSuggestedMinimumWidth</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getSystemUiVisibility</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ Object</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getTag</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ Object</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getTag</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getTextAlignment</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getTextDirection</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getTop</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ float</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getTopFadingEdgeStrength</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getTopPaddingOffset</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ TouchDelegate</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getTouchDelegate</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ ArrayList<View></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getTouchables</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ float</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getTranslationX</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ float</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getTranslationY</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getVerticalFadingEdgeLength</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getVerticalScrollbarPosition</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getVerticalScrollbarWidth</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ ViewTreeObserver</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getViewTreeObserver</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getVisibility</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getWidth</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getWindowAttachCount</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ WindowId</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getWindowId</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getWindowSystemUiVisibility</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ IBinder</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getWindowToken</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getWindowVisibility</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getWindowVisibleDisplayFrame</span>(Rect arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ float</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getX</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ float</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getY</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">hasFocus</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">hasFocusable</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">hasOnClickListeners</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">hasOverlappingRendering</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">hasTransientState</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">hasWindowFocus</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+ static
+
+ View</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">inflate</span>(Context arg0, int arg1, ViewGroup arg2)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">initializeFadingEdge</span>(TypedArray arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">initializeScrollbars</span>(TypedArray arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">invalidate</span>(Rect arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">invalidate</span>(int arg0, int arg1, int arg2, int arg3)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">invalidate</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">invalidateDrawable</span>(Drawable arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">isActivated</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">isAttachedToWindow</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">isClickable</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">isDirty</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">isDrawingCacheEnabled</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">isDuplicateParentStateEnabled</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">isEnabled</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">isFocusable</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">isFocusableInTouchMode</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">isFocused</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">isHapticFeedbackEnabled</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">isHardwareAccelerated</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">isHorizontalFadingEdgeEnabled</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">isHorizontalScrollBarEnabled</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">isHovered</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">isInEditMode</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">isInLayout</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">isInTouchMode</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">isLaidOut</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">isLayoutDirectionResolved</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">isLayoutRequested</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">isLongClickable</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">isOpaque</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">isPaddingOffsetRequired</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">isPaddingRelative</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">isPressed</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">isSaveEnabled</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">isSaveFromParentEnabled</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">isScrollContainer</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">isScrollbarFadingEnabled</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">isSelected</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">isShown</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">isSoundEffectsEnabled</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">isTextAlignmentResolved</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">isTextDirectionResolved</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">isVerticalFadingEdgeEnabled</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">isVerticalScrollBarEnabled</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">jumpDrawablesToCurrentState</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">layout</span>(int arg0, int arg1, int arg2, int arg3)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">measure</span>(int arg0, int arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+ static
+
+ int[]</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">mergeDrawableStates</span>(int[] arg0, int[] arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">offsetLeftAndRight</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">offsetTopAndBottom</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">onAnimationEnd</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">onAnimationStart</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">onAttachedToWindow</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">onCancelPendingInputEvents</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">onCheckIsTextEditor</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">onConfigurationChanged</span>(Configuration arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">onCreateContextMenu</span>(ContextMenu arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int[]</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">onCreateDrawableState</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ InputConnection</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">onCreateInputConnection</span>(EditorInfo arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">onDetachedFromWindow</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">onDisplayHint</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">onDragEvent</span>(DragEvent arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">onDraw</span>(Canvas arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">onDrawScrollBars</span>(Canvas arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">onFilterTouchEventForSecurity</span>(MotionEvent arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">onFinishInflate</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">onFinishTemporaryDetach</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">onFocusChanged</span>(boolean arg0, int arg1, Rect arg2)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">onGenericMotionEvent</span>(MotionEvent arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">onHoverChanged</span>(boolean arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">onHoverEvent</span>(MotionEvent arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">onInitializeAccessibilityEvent</span>(AccessibilityEvent arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">onInitializeAccessibilityNodeInfo</span>(AccessibilityNodeInfo arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">onKeyDown</span>(int arg0, KeyEvent arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">onKeyLongPress</span>(int arg0, KeyEvent arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">onKeyMultiple</span>(int arg0, int arg1, KeyEvent arg2)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">onKeyPreIme</span>(int arg0, KeyEvent arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">onKeyShortcut</span>(int arg0, KeyEvent arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">onKeyUp</span>(int arg0, KeyEvent arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">onLayout</span>(boolean arg0, int arg1, int arg2, int arg3, int arg4)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">onMeasure</span>(int arg0, int arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">onOverScrolled</span>(int arg0, int arg1, boolean arg2, boolean arg3)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">onPopulateAccessibilityEvent</span>(AccessibilityEvent arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">onRestoreInstanceState</span>(Parcelable arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">onRtlPropertiesChanged</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ Parcelable</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">onSaveInstanceState</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">onScreenStateChanged</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">onScrollChanged</span>(int arg0, int arg1, int arg2, int arg3)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">onSetAlpha</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">onSizeChanged</span>(int arg0, int arg1, int arg2, int arg3)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">onStartTemporaryDetach</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">onTouchEvent</span>(MotionEvent arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">onTrackballEvent</span>(MotionEvent arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">onVisibilityChanged</span>(View arg0, int arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">onWindowFocusChanged</span>(boolean arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">onWindowSystemUiVisibilityChanged</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">onWindowVisibilityChanged</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">overScrollBy</span>(int arg0, int arg1, int arg2, int arg3, int arg4, int arg5, int arg6, int arg7, boolean arg8)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">performAccessibilityAction</span>(int arg0, Bundle arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">performClick</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">performHapticFeedback</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">performHapticFeedback</span>(int arg0, int arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">performLongClick</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">playSoundEffect</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">post</span>(Runnable arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">postDelayed</span>(Runnable arg0, long arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">postInvalidate</span>(int arg0, int arg1, int arg2, int arg3)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">postInvalidate</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">postInvalidateDelayed</span>(long arg0, int arg1, int arg2, int arg3, int arg4)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">postInvalidateDelayed</span>(long arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">postInvalidateOnAnimation</span>(int arg0, int arg1, int arg2, int arg3)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">postInvalidateOnAnimation</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">postOnAnimation</span>(Runnable arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">postOnAnimationDelayed</span>(Runnable arg0, long arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">refreshDrawableState</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">removeCallbacks</span>(Runnable arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">removeOnAttachStateChangeListener</span>(View.OnAttachStateChangeListener arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">removeOnLayoutChangeListener</span>(View.OnLayoutChangeListener arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">requestFitSystemWindows</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">requestFocus</span>(int arg0, Rect arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">requestFocus</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">requestFocus</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">requestFocusFromTouch</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">requestLayout</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">requestRectangleOnScreen</span>(Rect arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">requestRectangleOnScreen</span>(Rect arg0, boolean arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+ static
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">resolveSize</span>(int arg0, int arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+ static
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">resolveSizeAndState</span>(int arg0, int arg1, int arg2)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">restoreHierarchyState</span>(SparseArray<Parcelable> arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">saveHierarchyState</span>(SparseArray<Parcelable> arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">scheduleDrawable</span>(Drawable arg0, Runnable arg1, long arg2)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">scrollBy</span>(int arg0, int arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">scrollTo</span>(int arg0, int arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">sendAccessibilityEvent</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">sendAccessibilityEventUnchecked</span>(AccessibilityEvent arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setAccessibilityDelegate</span>(View.AccessibilityDelegate arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setAccessibilityLiveRegion</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setActivated</span>(boolean arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setAlpha</span>(float arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setAnimation</span>(Animation arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setBackground</span>(Drawable arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setBackgroundColor</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setBackgroundDrawable</span>(Drawable arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setBackgroundResource</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setBottom</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setCameraDistance</span>(float arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setClickable</span>(boolean arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setClipBounds</span>(Rect arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setContentDescription</span>(CharSequence arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setDrawingCacheBackgroundColor</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setDrawingCacheEnabled</span>(boolean arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setDrawingCacheQuality</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setDuplicateParentStateEnabled</span>(boolean arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setEnabled</span>(boolean arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setFadingEdgeLength</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setFilterTouchesWhenObscured</span>(boolean arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setFitsSystemWindows</span>(boolean arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setFocusable</span>(boolean arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setFocusableInTouchMode</span>(boolean arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setHapticFeedbackEnabled</span>(boolean arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setHasTransientState</span>(boolean arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setHorizontalFadingEdgeEnabled</span>(boolean arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setHorizontalScrollBarEnabled</span>(boolean arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setHovered</span>(boolean arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setId</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setImportantForAccessibility</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setKeepScreenOn</span>(boolean arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setLabelFor</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setLayerPaint</span>(Paint arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setLayerType</span>(int arg0, Paint arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setLayoutDirection</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setLayoutParams</span>(ViewGroup.LayoutParams arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setLeft</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setLongClickable</span>(boolean arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setMeasuredDimension</span>(int arg0, int arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setMinimumHeight</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setMinimumWidth</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setNextFocusDownId</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setNextFocusForwardId</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setNextFocusLeftId</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setNextFocusRightId</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setNextFocusUpId</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setOnClickListener</span>(View.OnClickListener arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setOnCreateContextMenuListener</span>(View.OnCreateContextMenuListener arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setOnDragListener</span>(View.OnDragListener arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setOnFocusChangeListener</span>(View.OnFocusChangeListener arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setOnGenericMotionListener</span>(View.OnGenericMotionListener arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setOnHoverListener</span>(View.OnHoverListener arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setOnKeyListener</span>(View.OnKeyListener arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setOnLongClickListener</span>(View.OnLongClickListener arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setOnSystemUiVisibilityChangeListener</span>(View.OnSystemUiVisibilityChangeListener arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setOnTouchListener</span>(View.OnTouchListener arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setOverScrollMode</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setPadding</span>(int arg0, int arg1, int arg2, int arg3)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setPaddingRelative</span>(int arg0, int arg1, int arg2, int arg3)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setPivotX</span>(float arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setPivotY</span>(float arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setPressed</span>(boolean arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setRight</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setRotation</span>(float arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setRotationX</span>(float arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setRotationY</span>(float arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setSaveEnabled</span>(boolean arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setSaveFromParentEnabled</span>(boolean arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setScaleX</span>(float arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setScaleY</span>(float arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setScrollBarDefaultDelayBeforeFade</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setScrollBarFadeDuration</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setScrollBarSize</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setScrollBarStyle</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setScrollContainer</span>(boolean arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setScrollX</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setScrollY</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setScrollbarFadingEnabled</span>(boolean arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setSelected</span>(boolean arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setSoundEffectsEnabled</span>(boolean arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setSystemUiVisibility</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setTag</span>(int arg0, Object arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setTag</span>(Object arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setTextAlignment</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setTextDirection</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setTop</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setTouchDelegate</span>(TouchDelegate arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setTranslationX</span>(float arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setTranslationY</span>(float arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setVerticalFadingEdgeEnabled</span>(boolean arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setVerticalScrollBarEnabled</span>(boolean arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setVerticalScrollbarPosition</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setVisibility</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setWillNotCacheDrawing</span>(boolean arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setWillNotDraw</span>(boolean arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setX</span>(float arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">setY</span>(float arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">showContextMenu</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ ActionMode</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">startActionMode</span>(ActionMode.Callback arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">startAnimation</span>(Animation arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">startDrag</span>(ClipData arg0, View.DragShadowBuilder arg1, Object arg2, int arg3)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ String</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">toString</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">unscheduleDrawable</span>(Drawable arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">unscheduleDrawable</span>(Drawable arg0, Runnable arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">verifyDrawable</span>(Drawable arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">willNotCacheDrawing</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">willNotDraw</span>()</nobr>
+
+ </td></tr>
+
+
+</table>
+ </div>
+</div>
+</td></tr>
+
+
+
+<tr class="api apilevel-" >
+<td colspan="12">
+ <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
+ ><img id="inherited-methods-java.lang.Object-trigger"
+ src="/assets/images/triangle-closed.png"
+ class="jd-expando-trigger-img" /></a>
+From class
+
+ java.lang.Object
+
+<div id="inherited-methods-java.lang.Object">
+ <div id="inherited-methods-java.lang.Object-list"
+ class="jd-inheritedlinks">
+ </div>
+ <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
+ <table class="jd-sumtable-expando">
+
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ Object</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">clone</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">equals</span>(Object arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">finalize</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ Class<?></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getClass</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">hashCode</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">notify</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">notifyAll</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ String</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">toString</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">wait</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">wait</span>(long arg0)</nobr>
+
+ </td></tr>
+
+
+</table>
+ </div>
+</div>
+</td></tr>
+
+
+
+<tr class="api apilevel-" >
+<td colspan="12">
+ <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-android.graphics.drawable.Drawable.Callback" class="jd-expando-trigger closed"
+ ><img id="inherited-methods-android.graphics.drawable.Drawable.Callback-trigger"
+ src="/assets/images/triangle-closed.png"
+ class="jd-expando-trigger-img" /></a>
+From interface
+
+ android.graphics.drawable.Drawable.Callback
+
+<div id="inherited-methods-android.graphics.drawable.Drawable.Callback">
+ <div id="inherited-methods-android.graphics.drawable.Drawable.Callback-list"
+ class="jd-inheritedlinks">
+ </div>
+ <div id="inherited-methods-android.graphics.drawable.Drawable.Callback-summary" style="display: none;">
+ <table class="jd-sumtable-expando">
+
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">invalidateDrawable</span>(Drawable arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">scheduleDrawable</span>(Drawable arg0, Runnable arg1, long arg2)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">unscheduleDrawable</span>(Drawable arg0, Runnable arg1)</nobr>
+
+ </td></tr>
+
+
+</table>
+ </div>
+</div>
+</td></tr>
+
+
+
+<tr class="api apilevel-" >
+<td colspan="12">
+ <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-android.view.KeyEvent.Callback" class="jd-expando-trigger closed"
+ ><img id="inherited-methods-android.view.KeyEvent.Callback-trigger"
+ src="/assets/images/triangle-closed.png"
+ class="jd-expando-trigger-img" /></a>
+From interface
+
+ android.view.KeyEvent.Callback
+
+<div id="inherited-methods-android.view.KeyEvent.Callback">
+ <div id="inherited-methods-android.view.KeyEvent.Callback-list"
+ class="jd-inheritedlinks">
+ </div>
+ <div id="inherited-methods-android.view.KeyEvent.Callback-summary" style="display: none;">
+ <table class="jd-sumtable-expando">
+
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">onKeyDown</span>(int arg0, KeyEvent arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">onKeyLongPress</span>(int arg0, KeyEvent arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">onKeyMultiple</span>(int arg0, int arg1, KeyEvent arg2)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">onKeyUp</span>(int arg0, KeyEvent arg1)</nobr>
+
+ </td></tr>
+
+
+</table>
+ </div>
+</div>
+</td></tr>
+
+
+
+<tr class="api apilevel-" >
+<td colspan="12">
+ <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-android.view.ViewManager" class="jd-expando-trigger closed"
+ ><img id="inherited-methods-android.view.ViewManager-trigger"
+ src="/assets/images/triangle-closed.png"
+ class="jd-expando-trigger-img" /></a>
+From interface
+
+ android.view.ViewManager
+
+<div id="inherited-methods-android.view.ViewManager">
+ <div id="inherited-methods-android.view.ViewManager-list"
+ class="jd-inheritedlinks">
+ </div>
+ <div id="inherited-methods-android.view.ViewManager-summary" style="display: none;">
+ <table class="jd-sumtable-expando">
+
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">addView</span>(View arg0, ViewGroup.LayoutParams arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">removeView</span>(View arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">updateViewLayout</span>(View arg0, ViewGroup.LayoutParams arg1)</nobr>
+
+ </td></tr>
+
+
+</table>
+ </div>
+</div>
+</td></tr>
+
+
+
+<tr class="api apilevel-" >
+<td colspan="12">
+ <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-android.view.ViewParent" class="jd-expando-trigger closed"
+ ><img id="inherited-methods-android.view.ViewParent-trigger"
+ src="/assets/images/triangle-closed.png"
+ class="jd-expando-trigger-img" /></a>
+From interface
+
+ android.view.ViewParent
+
+<div id="inherited-methods-android.view.ViewParent">
+ <div id="inherited-methods-android.view.ViewParent-list"
+ class="jd-inheritedlinks">
+ </div>
+ <div id="inherited-methods-android.view.ViewParent-summary" style="display: none;">
+ <table class="jd-sumtable-expando">
+
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">bringChildToFront</span>(View arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">canResolveLayoutDirection</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">canResolveTextAlignment</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">canResolveTextDirection</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">childDrawableStateChanged</span>(View arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">childHasTransientStateChanged</span>(View arg0, boolean arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">clearChildFocus</span>(View arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">createContextMenu</span>(ContextMenu arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ View</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">focusSearch</span>(View arg0, int arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">focusableViewAvailable</span>(View arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getChildVisibleRect</span>(View arg0, Rect arg1, Point arg2)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getLayoutDirection</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ ViewParent</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getParent</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ ViewParent</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getParentForAccessibility</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getTextAlignment</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getTextDirection</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">invalidateChild</span>(View arg0, Rect arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ ViewParent</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">invalidateChildInParent</span>(int[] arg0, Rect arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">isLayoutDirectionResolved</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">isLayoutRequested</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">isTextAlignmentResolved</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">isTextDirectionResolved</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">notifySubtreeAccessibilityStateChanged</span>(View arg0, View arg1, int arg2)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">recomputeViewAttributes</span>(View arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">requestChildFocus</span>(View arg0, View arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">requestChildRectangleOnScreen</span>(View arg0, Rect arg1, boolean arg2)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">requestDisallowInterceptTouchEvent</span>(boolean arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">requestFitSystemWindows</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">requestLayout</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">requestSendAccessibilityEvent</span>(View arg0, AccessibilityEvent arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">requestTransparentRegion</span>(View arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">showContextMenuForChild</span>(View arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ ActionMode</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">startActionModeForChild</span>(View arg0, ActionMode.Callback arg1)</nobr>
+
+ </td></tr>
+
+
+</table>
+ </div>
+</div>
+</td></tr>
+
+
+
+<tr class="api apilevel-" >
+<td colspan="12">
+ <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-android.view.accessibility.AccessibilityEventSource" class="jd-expando-trigger closed"
+ ><img id="inherited-methods-android.view.accessibility.AccessibilityEventSource-trigger"
+ src="/assets/images/triangle-closed.png"
+ class="jd-expando-trigger-img" /></a>
+From interface
+
+ android.view.accessibility.AccessibilityEventSource
+
+<div id="inherited-methods-android.view.accessibility.AccessibilityEventSource">
+ <div id="inherited-methods-android.view.accessibility.AccessibilityEventSource-list"
+ class="jd-inheritedlinks">
+ </div>
+ <div id="inherited-methods-android.view.accessibility.AccessibilityEventSource-summary" style="display: none;">
+ <table class="jd-sumtable-expando">
+
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">sendAccessibilityEvent</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">sendAccessibilityEventUnchecked</span>(AccessibilityEvent arg0)</nobr>
+
+ </td></tr>
+
+
+</table>
+ </div>
+</div>
+</td></tr>
+
+
+</table>
+
+
+</div><!-- jd-descr (summary) -->
+
+<!-- Details -->
+
+
+
+
+
+
+
+
+<!-- XML Attributes -->
+
+
+<!-- ========= FIELD DETAIL ======== -->
+<h2>XML Attributes</h2>
+
+
+
+<A NAME="attr_com.google.android.gms:adSize"></A>
+<div class="jd-details">
+ <h4 class="jd-details-title">com.google.android.gms:adSize
+ </h4>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>The size of the ad. It must be one of BANNER, FULL_BANNER, LEADERBOARD,
+ MEDIUM_RECTANGLE, SMART_BANNER, WIDE_SKYSCRAPER, or
+ <width>x<height>.
+
+
+
+ <p>Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character.
+<p>This may also be a reference to a resource (in the form
+"<code>@[<i>package</i>:]<i>type</i>:<i>name</i></code>") or
+theme attribute (in the form
+"<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>")
+containing a value of this type.
+ <p>This is a private symbol.</p></div>
+
+
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Related Methods</h5>
+ <ul class="nolist">
+
+ <li><a href="/reference/com/google/android/gms/ads/search/SearchAdView.html#setAdSize(com.google.android.gms.ads.AdSize)">setAdSize(AdSize)</a></li>
+
+ </ul>
+ </div>
+ </div>
+</div>
+
+
+<A NAME="attr_com.google.android.gms:adUnitId"></A>
+<div class="jd-details">
+ <h4 class="jd-details-title">com.google.android.gms:adUnitId
+ </h4>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>The ad unit ID.
+
+
+ <p>Must be a string value, using '\\;' to escape characters such as '\\n' or '\\uxxxx' for a unicode character.
+<p>This may also be a reference to a resource (in the form
+"<code>@[<i>package</i>:]<i>type</i>:<i>name</i></code>") or
+theme attribute (in the form
+"<code>?[<i>package</i>:][<i>type</i>:]<i>name</i></code>")
+containing a value of this type.
+ <p>This is a private symbol.</p></div>
+
+
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Related Methods</h5>
+ <ul class="nolist">
+
+ <li><a href="/reference/com/google/android/gms/ads/search/SearchAdView.html#setAdUnitId(java.lang.String)">setAdUnitId(String)</a></li>
+
+ </ul>
+ </div>
+ </div>
+</div>
+
+
+
+
+<!-- Enum Values -->
+
+
+<!-- Constants -->
+
+
+<!-- Fields -->
+
+
+<!-- Public ctors -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<h2>Public Constructors</h2>
+
+
+
+<A NAME="SearchAdView(android.content.Context)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+
+ </span>
+ <span class="sympad">SearchAdView</span>
+ <span class="normal">(Context context)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Construct a <code><a href="/reference/com/google/android/gms/ads/search/SearchAdView.html">SearchAdView</a></code> from code.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>context</td>
+ <td>The <code><a href="/reference/android/content/Context.html">Context</a></code> the <code><a href="/reference/com/google/android/gms/ads/search/SearchAdView.html">SearchAdView</a></code> is running in.
+</td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="SearchAdView(android.content.Context, android.util.AttributeSet)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+
+ </span>
+ <span class="sympad">SearchAdView</span>
+ <span class="normal">(Context context, AttributeSet attrs)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Construct a <code><a href="/reference/com/google/android/gms/ads/search/SearchAdView.html">SearchAdView</a></code> from an XML layout.
+</p></div>
+
+ </div>
+</div>
+
+
+<A NAME="SearchAdView(android.content.Context, android.util.AttributeSet, int)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+
+ </span>
+ <span class="sympad">SearchAdView</span>
+ <span class="normal">(Context context, AttributeSet attrs, int defStyle)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Construct a <code><a href="/reference/com/google/android/gms/ads/search/SearchAdView.html">SearchAdView</a></code> from an XML layout.
+</p></div>
+
+ </div>
+</div>
+
+
+
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<!-- Protected ctors -->
+
+
+
+<!-- ========= METHOD DETAIL ======== -->
+<!-- Public methdos -->
+
+<h2>Public Methods</h2>
+
+
+
+<A NAME="destroy()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ void
+ </span>
+ <span class="sympad">destroy</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Destroy the <code><a href="/reference/com/google/android/gms/ads/search/SearchAdView.html">SearchAdView</a></code>. This method should be called in the parent Activity's
+ <code><a href="/reference/android/app/Activity.html#onDestroy()">onDestroy()</a></code> method. No other methods should be called on the
+ <code><a href="/reference/com/google/android/gms/ads/search/SearchAdView.html">SearchAdView</a></code> after <code><a href="/reference/com/google/android/gms/ads/search/SearchAdView.html#destroy()">destroy()</a></code> is called.
+</p></div>
+
+ </div>
+</div>
+
+
+<A NAME="getAdListener()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ <a href="/reference/com/google/android/gms/ads/AdListener.html">AdListener</a>
+ </span>
+ <span class="sympad">getAdListener</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Returns the <code><a href="/reference/com/google/android/gms/ads/AdListener.html">AdListener</a></code> for this <code><a href="/reference/com/google/android/gms/ads/search/SearchAdView.html">SearchAdView</a></code>.
+</p></div>
+
+ </div>
+</div>
+
+
+<A NAME="getAdSize()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ <a href="/reference/com/google/android/gms/ads/AdSize.html">AdSize</a>
+ </span>
+ <span class="sympad">getAdSize</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Returns the size of the banner ad. Returns <code>null</code> if <code><a href="/reference/com/google/android/gms/ads/search/SearchAdView.html#setAdSize(com.google.android.gms.ads.AdSize)">setAdSize(AdSize)</a></code> hasn't been
+ called yet.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Related XML Attributes</h5>
+ <ul class="nolist">
+ <li><a href="/reference/com/google/android/gms/ads/search/SearchAdView.html#attr_com.google.android.gms:adSize">com.google.android.gms:adSize</a></li>
+ </ul>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="getAdUnitId()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ String
+ </span>
+ <span class="sympad">getAdUnitId</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Returns the ad unit ID.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Related XML Attributes</h5>
+ <ul class="nolist">
+ <li><a href="/reference/com/google/android/gms/ads/search/SearchAdView.html#attr_com.google.android.gms:adUnitId">com.google.android.gms:adUnitId</a></li>
+ </ul>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="loadAd(com.google.android.gms.ads.search.SearchAdRequest)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ void
+ </span>
+ <span class="sympad">loadAd</span>
+ <span class="normal">(<a href="/reference/com/google/android/gms/ads/search/SearchAdRequest.html">SearchAdRequest</a> searchAdRequest)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Start loading the ad on a background thread.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Throws</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>IllegalStateException</td>
+ <td>If the size of the banner ad or the ad unit ID have not been
+ set.
+</td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="pause()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ void
+ </span>
+ <span class="sympad">pause</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Pause any extra processing associated with this <code><a href="/reference/com/google/android/gms/ads/search/SearchAdView.html">SearchAdView</a></code>. This method should be
+ called in the parent Activity's <code><a href="/reference/android/app/Activity.html#onPause()">onPause()</a></code> method.
+</p></div>
+
+ </div>
+</div>
+
+
+<A NAME="resume()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ void
+ </span>
+ <span class="sympad">resume</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Resume an <code><a href="/reference/com/google/android/gms/ads/search/SearchAdView.html">SearchAdView</a></code> after a previous call to <code><a href="/reference/com/google/android/gms/ads/search/SearchAdView.html#pause()">pause()</a></code>. This method should
+ be called in the parent Activity's <code><a href="/reference/android/app/Activity.html#onResume()">onResume()</a></code> method.
+</p></div>
+
+ </div>
+</div>
+
+
+<A NAME="setAdListener(com.google.android.gms.ads.AdListener)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ void
+ </span>
+ <span class="sympad">setAdListener</span>
+ <span class="normal">(<a href="/reference/com/google/android/gms/ads/AdListener.html">AdListener</a> adListener)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Sets an <code><a href="/reference/com/google/android/gms/ads/AdListener.html">AdListener</a></code> for this <code><a href="/reference/com/google/android/gms/ads/search/SearchAdView.html">SearchAdView</a></code>.
+</p></div>
+
+ </div>
+</div>
+
+
+<A NAME="setAdSize(com.google.android.gms.ads.AdSize)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ void
+ </span>
+ <span class="sympad">setAdSize</span>
+ <span class="normal">(<a href="/reference/com/google/android/gms/ads/AdSize.html">AdSize</a> adSize)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Sets the size of the banner ad.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Related XML Attributes</h5>
+ <ul class="nolist">
+ <li><a href="/reference/com/google/android/gms/ads/search/SearchAdView.html#attr_com.google.android.gms:adSize">com.google.android.gms:adSize</a></li>
+ </ul>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Throws</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>IllegalStateException</td>
+ <td>If the size of the banner ad was already set.
+</td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="setAdUnitId(java.lang.String)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ void
+ </span>
+ <span class="sympad">setAdUnitId</span>
+ <span class="normal">(String adUnitId)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Sets the ad unit ID.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Related XML Attributes</h5>
+ <ul class="nolist">
+ <li><a href="/reference/com/google/android/gms/ads/search/SearchAdView.html#attr_com.google.android.gms:adUnitId">com.google.android.gms:adUnitId</a></li>
+ </ul>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Throws</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>IllegalStateException</td>
+ <td>If the ad unit ID was already set.
+</td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
+
+
+
+<!-- ========= METHOD DETAIL ======== -->
+
+<h2>Protected Methods</h2>
+
+
+
+<A NAME="onLayout(boolean, int, int, int, int)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ protected
+
+
+
+
+ void
+ </span>
+ <span class="sympad">onLayout</span>
+ <span class="normal">(boolean changed, int left, int top, int right, int bottom)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+ </div>
+</div>
+
+
+<A NAME="onMeasure(int, int)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ protected
+
+
+
+
+ void
+ </span>
+ <span class="sympad">onMeasure</span>
+ <span class="normal">(int widthMeasureSpec, int heightMeasureSpec)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+ </div>
+</div>
+
+
+
+
+
+<!-- ========= END OF CLASS DATA ========= -->
+<A NAME="navbar_top"></A>
+
+<div id="footer" class="wrap" >
+
+
+ <div id="copyright">
+
+ Except as noted, this content is licensed under <a
+ href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.
+ For details and restrictions, see the <a href="/license.html">
+ Content License</a>.
+ </div>
+ <div id="build_info">
+
+<script src="/timestamp.js" type="text/javascript"></script>
+<script>document.write(BUILD_TIMESTAMP)</script>
+
+ </div>
+
+
+ <div id="footerlinks">
+
+ <p>
+ <a href="/about/index.html">About Android</a> |
+ <a href="/legal.html">Legal</a> |
+ <a href="/support.html">Support</a>
+ </p>
+ </div>
+
+</div> <!-- end footer -->
+</div> <!-- jd-content -->
+
+</div><!-- end doc-content -->
+
+</div> <!-- end body-content -->
+
+
+
+
+
+
+</body>
+</html>
diff --git a/docs/html/reference/com/google/android/gms/ads/search/package-summary.html b/docs/html/reference/com/google/android/gms/ads/search/package-summary.html
new file mode 100644
index 0000000..717f695
--- /dev/null
+++ b/docs/html/reference/com/google/android/gms/ads/search/package-summary.html
@@ -0,0 +1,758 @@
+<!DOCTYPE html>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<html>
+<head>
+
+
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<meta name="viewport" content="width=device-width" />
+
+<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
+<title>com.google.android.gms.ads.search | Android Developers</title>
+
+<!-- STYLESHEETS -->
+<link rel="stylesheet"
+href="//fonts.googleapis.com/css?family=Roboto:regular,medium,thin,italic,mediumitalic,bold" title="roboto">
+<link href="/assets/css/default.css" rel="stylesheet" type="text/css">
+
+
+
+<!-- JAVASCRIPT -->
+<script src="//www.google.com/jsapi" type="text/javascript"></script>
+<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
+<script type="text/javascript">
+ var toRoot = "/";
+ var metaTags = [];
+ var devsite = false;
+</script>
+<script src="/assets/js/docs.js" type="text/javascript"></script>
+
+<script type="text/javascript">
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-5831155-1']);
+ _gaq.push(['_trackPageview']);
+
+ (function() {
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+ })();
+</script>
+</head>
+
+<body class="gc-documentation google
+ develop">
+ <div id="doc-api-level" class="" style="display:none"></div>
+ <a name="top"></a>
+
+<a name="top"></a>
+
+ <!-- Header -->
+ <div id="header">
+ <div class="wrap" id="header-wrap">
+ <div class="col-3 logo">
+ <a href="/index.html">
+ <img src="/assets/images/dac_logo.png" width="123" height="25" alt="Android Developers" />
+ </a>
+ <div class="btn-quicknav" id="btn-quicknav">
+ <a href="#" class="arrow-inactive">Quicknav</a>
+ <a href="#" class="arrow-active">Quicknav</a>
+ </div>
+ </div>
+ <ul class="nav-x col-9">
+ <li class="design">
+ <a href="/design/index.html"
+ zh-tw-lang="設計"
+ zh-cn-lang="设计"
+ ru-lang="Проектирование"
+ ko-lang="디자인"
+ ja-lang="設計"
+ es-lang="Diseñar"
+ >Design</a></li>
+ <li class="develop"><a href="/develop/index.html"
+ zh-tw-lang="開發"
+ zh-cn-lang="开发"
+ ru-lang="Разработка"
+ ko-lang="개발"
+ ja-lang="開発"
+ es-lang="Desarrollar"
+ >Develop</a></li>
+ <li class="distribute last"><a href="/distribute/index.html"
+ zh-tw-lang="發佈"
+ zh-cn-lang="分发"
+ ru-lang="Распространение"
+ ko-lang="배포"
+ ja-lang="配布"
+ es-lang="Distribuir"
+ >Distribute</a></li>
+ </ul>
+
+ <!-- New Search -->
+ <div class="menu-container">
+ <div class="moremenu">
+ <div id="more-btn"></div>
+ </div>
+ <div class="morehover" id="moremenu">
+ <div class="top"></div>
+ <div class="mid">
+ <div class="header">Links</div>
+ <ul>
+ <li><a href="https://play.google.com/apps/publish/">Google Play Developer Console</a></li>
+ <li><a href="http://android-developers.blogspot.com/">Android Developers Blog</a></li>
+ <li><a href="/about/index.html">About Android</a></li>
+ </ul>
+ <div class="header">Android Sites</div>
+ <ul>
+ <li><a href="http://www.android.com">Android.com</a></li>
+ <li class="active"><a>Android Developers</a></li>
+ <li><a href="http://source.android.com">Android Open Source Project</a></li>
+ </ul>
+
+
+
+ <div class="header">Language</div>
+ <div id="language" class="locales">
+ <select name="language" onChange="changeLangPref(this.value, true)">
+ <option value="en">English</option>
+ <option value="es">Español</option>
+ <option value="ja">日本語</option>
+ <option value="ko">한국어</option>
+ <option value="ru">Русский</option>
+ <option value="zh-cn">中文 (中国)</option>
+ <option value="zh-tw">中文 (台灣)</option>
+ </select>
+ </div>
+ <script type="text/javascript">
+ <!--
+ loadLangPref();
+ //-->
+ </script>
+
+
+
+
+ <br class="clearfix" />
+ </div>
+ <div class="bottom"></div>
+ </div>
+ <div class="search" id="search-container">
+ <div class="search-inner">
+ <div id="search-btn"></div>
+ <div class="left"></div>
+ <form onsubmit="return submit_search()">
+ <input id="search_autocomplete" type="text" value="" autocomplete="off" name="q"
+onfocus="search_focus_changed(this, true)" onblur="search_focus_changed(this, false)"
+onkeydown="return search_changed(event, true, '/')"
+onkeyup="return search_changed(event, false, '/')" />
+ </form>
+ <div class="right"></div>
+ <a class="close hide">close</a>
+ <div class="left"></div>
+ <div class="right"></div>
+ </div>
+ </div>
+
+ <div class="search_filtered_wrapper reference">
+ <div class="suggest-card reference no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ </div>
+
+ <div class="search_filtered_wrapper docs">
+ <div class="suggest-card dummy no-display"> </div>
+ <div class="suggest-card develop no-display">
+ <ul class="search_filtered">
+ </ul>
+ <div class="child-card guides no-display">
+ </div>
+ <div class="child-card training no-display">
+ </div>
+ <div class="child-card samples no-display">
+ </div>
+ </div>
+ <div class="suggest-card design no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ <div class="suggest-card distribute no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ </div>
+
+ </div>
+ <!-- /New Search>
+
+
+ <!-- Expanded quicknav -->
+ <div id="quicknav" class="col-9">
+ <ul>
+ <li class="design">
+ <ul>
+ <li><a href="/design/index.html">Get Started</a></li>
+ <li><a href="/design/style/index.html">Style</a></li>
+ <li><a href="/design/patterns/index.html">Patterns</a></li>
+ <li><a href="/design/building-blocks/index.html">Building Blocks</a></li>
+ <li><a href="/design/downloads/index.html">Downloads</a></li>
+ <li><a href="/design/videos/index.html">Videos</a></li>
+ </ul>
+ </li>
+ <li class="develop">
+ <ul>
+ <li><a href="/training/index.html"
+ zh-tw-lang="訓練課程"
+ zh-cn-lang="培训"
+ ru-lang="Курсы"
+ ko-lang="교육"
+ ja-lang="トレーニング"
+ es-lang="Capacitación"
+ >Training</a></li>
+ <li><a href="/guide/index.html"
+ zh-tw-lang="API 指南"
+ zh-cn-lang="API 指南"
+ ru-lang="Руководства по API"
+ ko-lang="API 가이드"
+ ja-lang="API ガイド"
+ es-lang="Guías de la API"
+ >API Guides</a></li>
+ <li><a href="/reference/packages.html"
+ zh-tw-lang="參考資源"
+ zh-cn-lang="参考"
+ ru-lang="Справочник"
+ ko-lang="참조문서"
+ ja-lang="リファレンス"
+ es-lang="Referencia"
+ >Reference</a></li>
+ <li><a href="/tools/index.html"
+ zh-tw-lang="相關工具"
+ zh-cn-lang="工具"
+ ru-lang="Инструменты"
+ ko-lang="도구"
+ ja-lang="ツール"
+ es-lang="Herramientas"
+ >Tools</a>
+ <ul><li><a href="/sdk/index.html">Get the SDK</a></li></ul>
+ </li>
+ <li><a href="/google/index.html">Google Services</a>
+ </li>
+
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
+ </ul>
+ </li>
+ <li class="distribute last">
+ <ul>
+ <li><a href="/distribute/index.html">Google Play</a></li>
+ <li><a href="/distribute/googleplay/publish/index.html">Publishing</a></li>
+ <li><a href="/distribute/googleplay/promote/index.html">Promoting</a></li>
+ <li><a href="/distribute/googleplay/quality/index.html">App Quality</a></li>
+ <li><a href="/distribute/googleplay/spotlight/index.html">Spotlight</a></li>
+ <li><a href="/distribute/open.html">Open Distribution</a></li>
+ </ul>
+ </li>
+ </ul>
+ </div>
+ <!-- /Expanded quicknav -->
+ </div>
+ </div>
+ <!-- /Header -->
+
+
+ <div id="searchResults" class="wrap" style="display:none;">
+ <h2 id="searchTitle">Results</h2>
+ <div id="leftSearchControl" class="search-control">Loading...</div>
+ </div>
+
+
+
+ <!-- Secondary x-nav -->
+ <div id="nav-x">
+ <div class="wrap">
+ <ul class="nav-x col-9 develop" style="width:100%">
+ <li class="training"><a href="/training/index.html"
+ zh-tw-lang="訓練課程"
+ zh-cn-lang="培训"
+ ru-lang="Курсы"
+ ko-lang="교육"
+ ja-lang="トレーニング"
+ es-lang="Capacitación"
+ >Training</a></li>
+ <li class="guide"><a href="/guide/index.html"
+ zh-tw-lang="API 指南"
+ zh-cn-lang="API 指南"
+ ru-lang="Руководства по API"
+ ko-lang="API 가이드"
+ ja-lang="API ガイド"
+ es-lang="Guías de la API"
+ >API Guides</a></li>
+ <li class="reference"><a href="/reference/packages.html"
+ zh-tw-lang="參考資源"
+ zh-cn-lang="参考"
+ ru-lang="Справочник"
+ ko-lang="참조문서"
+ ja-lang="リファレンス"
+ es-lang="Referencia"
+ >Reference</a></li>
+ <li class="tools"><a href="/tools/index.html"
+ zh-tw-lang="相關工具"
+ zh-cn-lang="工具"
+ ru-lang="Инструменты"
+ ko-lang="도구"
+ ja-lang="ツール"
+ es-lang="Herramientas"
+ >Tools</a></li>
+ <li class="google"><a href="/google/index.html"
+ >Google Services</a>
+ </li>
+
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
+ </ul>
+ </div>
+
+ </div>
+ <!-- /Sendondary x-nav -->
+
+
+
+
+
+
+
+
+
+ <div class="wrap clearfix" id="body-content">
+ <div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
+ <div id="devdoc-nav" class="scroll-pane">
+<a class="totop" href="#top" data-g-event="left-nav-top">to top</a>
+
+
+
+<ul id="nav">
+
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/index.html">
+ <span class="en">Overview</span>
+ </a></div>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/games.html">
+ <span class="en">Games</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/location.html">
+ <span class="en">Location</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/plus.html">
+ <span class="en">Google+</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/maps.html">
+ <span class="en">Maps</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play-services/ads.html">
+ <span class="en">Ads</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play-services/id.html">
+ <span class="en">Advertising ID</span></a>
+ </li>
+ </ul>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/wallet.html">
+ <span class="en">Wallet</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/auth.html">
+ <span class="en">Authorization</span>
+ </a></div>
+ </li>
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play-services/index.html">
+ <span class="en">Google Play Services</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play-services/setup.html">
+ <span class="en">Setup</span></a>
+ </li>
+ <li id="gms-tree-list" class="nav-section">
+ <div class="nav-section-header">
+ <a href="/reference/gms-packages.html">
+ <span class="en">Reference</span>
+ </a>
+ <div>
+ </li>
+ </ul>
+ </li>
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/billing/index.html">
+ <span class="en">Google Play In-app Billing</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/billing/billing_overview.html">
+ <span class="en">Overview</span></a>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/api.html">
+ <span class="en">Version 3 API</span></a></div>
+ <ul>
+ <li><a href="/google/play/billing/billing_integrate.html">
+ <span class="en">Implementing the API</span></a></li>
+ <li><a href="/google/play/billing/billing_reference.html">
+ <span class="en">Reference</span></a></li>
+ </ul>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/v2/api.html">
+ <span class="en">Version 2 API</span></a></div>
+ <ul>
+ <li><a href="/google/play/billing/v2/billing_integrate.html">
+ <span class="en">Implementing the API</span></a></li>
+ <li><a href="/google/play/billing/v2/billing_subscriptions.html">
+ <span class="en">Subscriptions</span></a></li>
+ <li><a href="/google/play/billing/v2/billing_reference.html">
+ <span class="en">Reference</span></a></li>
+ </ul>
+ </li>
+ <li><a href="/google/play/billing/billing_subscriptions.html">
+ <span class="en">Subscriptions</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_best_practices.html">
+ <span class="en">Security and Design</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_testing.html">
+ <span class="en">Testing In-app Billing</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_admin.html">
+ <span class="en">Administering In-app Billing</span></a>
+ </li>
+ <li><a href="/google/play/billing/gp-purchase-status-api.html">
+ <span class="en">Purchase Status API</span></a>
+ </li>
+ <li><a href="/google/play/billing/versions.html">
+ <span class="en">Version Notes</span></a>
+ </li>
+ </ul>
+ </li>
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/gcm/index.html">
+ <span class="en">Google Cloud Messaging</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
+ <li><a href="/google/gcm/gs.html">
+ <span class="en">Getting Started</span></a>
+ </li>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
+ </li>
+ <li><a href="/google/gcm/notifications.html">
+ <span class="en">User Notifications</span></a>
+ </li>
+ <li><a href="/google/gcm/adv.html">
+ <span class="en">Advanced Topics</span></a>
+ </li>
+ <li><a href="/google/gcm/c2dm.html">
+ <span class="en">Migration</span></a>
+ </li>
+ <li id="gcm-tree-list" class="nav-section">
+ <div class="nav-section-header">
+ <a href="/reference/gcm-packages.html">
+ <span class="en">Reference</span>
+ </a>
+ <div>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/dist.html">
+ <span class="en">Google Play Distribution</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/filters.html">
+ <span class="en">Filters on Google Play</span></a>
+ </li>
+
+ <li><a href="/google/play/publishing/multiple-apks.html">
+ <span class="en">Multiple APK Support</span></a>
+ </li>
+ <li><a href="/google/play/expansion-files.html">
+ <span class="en">APK Expansion Files</span></a>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/licensing/index.html">
+ <span class="en">Application Licensing</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/licensing/overview.html">
+ <span class="en">Licensing Overview</span></a>
+ </li>
+ <li><a href="/google/play/licensing/setting-up.html">
+ <span class="en">Setting Up for Licensing</span></a>
+ </li>
+ <li><a href="/google/play/licensing/adding-licensing.html">
+ <span class="en">Adding Licensing to Your App</span></a>
+ </li>
+ <li><a href="/google/play/licensing/licensing-reference.html">
+ <span class="en">Licensing Reference</span></a>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/backup/index.html">
+ Android Backup Service</a>
+ </div>
+ <ul>
+ <li><a href="/google/backup/signup.html">
+ Register</a>
+ </li>
+ </ul>
+ </li>
+
+ </ul>
+
+</li>
+
+
+
+</ul>
+
+<script type="text/javascript">
+<!--
+ buildToggleLists();
+ changeNavLang(getLangPref());
+//-->
+</script>
+
+
+
+
+ </div>
+ <script type="text/javascript">
+ showGoogleRefTree();
+
+ </script>
+ </div> <!-- end side-nav -->
+ <script>
+ $(document).ready(function() {
+ scrollIntoView("devdoc-nav");
+ });
+ </script>
+
+
+
+
+
+
+<div class="col-12" id="doc-col">
+
+<div id="api-info-block">
+<div class="api-level">
+
+
+
+
+</div>
+</div>
+
+<div id="jd-header">
+ package
+ <h1>com.google.android.gms.ads.search</h1>
+</div><!-- end header -->
+
+<div id="naMessage"></div>
+
+<div id="jd-content" class="api apilevel-">
+
+
+ <div class="jd-descr">
+ Contains classes for Search Ads for Apps.
+
+ </div>
+
+
+
+
+
+
+
+
+
+ <h2>Classes</h2>
+ <div class="jd-sumtable">
+
+ <table class="jd-sumtable-expando">
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/ads/search/SearchAdRequest.html">SearchAdRequest</a></td>
+ <td class="jd-descrcol" width="100%">A <code><a href="/reference/com/google/android/gms/ads/search/SearchAdRequest.html">SearchAdRequest</a></code> contains targeting information used to fetch an ad from Search Ads for
+ Apps. </td>
+ </tr>
+ <tr class=" api apilevel-" >
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/ads/search/SearchAdRequest.Builder.html">SearchAdRequest.Builder</a></td>
+ <td class="jd-descrcol" width="100%">Builds a <code><a href="/reference/com/google/android/gms/ads/search/SearchAdRequest.html">SearchAdRequest</a></code>. </td>
+ </tr>
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/ads/search/SearchAdView.html">SearchAdView</a></td>
+ <td class="jd-descrcol" width="100%">The <code><a href="/reference/android/view/View.html">View</a></code> to display search banner ads for use with Search Ads for Apps. </td>
+ </tr>
+ </table>
+ </div>
+
+
+
+
+
+
+
+
+
+
+
+
+<div id="footer" class="wrap" >
+
+
+ <div id="copyright">
+
+ Except as noted, this content is licensed under <a
+ href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.
+ For details and restrictions, see the <a href="/license.html">
+ Content License</a>.
+ </div>
+ <div id="build_info">
+
+<script src="/timestamp.js" type="text/javascript"></script>
+<script>document.write(BUILD_TIMESTAMP)</script>
+
+ </div>
+
+
+ <div id="footerlinks">
+
+ <p>
+ <a href="/about/index.html">About Android</a> |
+ <a href="/legal.html">Legal</a> |
+ <a href="/support.html">Support</a>
+ </p>
+ </div>
+
+</div> <!-- end footer -->
+</div><!-- end jd-content -->
+</div><!-- doc-content -->
+
+</div> <!-- end body-content -->
+
+
+
+
+
+
+</body>
+</html>
diff --git a/docs/html/reference/com/google/android/gms/appstate/AppState.html b/docs/html/reference/com/google/android/gms/appstate/AppState.html
index bc61b35..62e27e1 100644
--- a/docs/html/reference/com/google/android/gms/appstate/AppState.html
+++ b/docs/html/reference/com/google/android/gms/appstate/AppState.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/appstate/AppStateBuffer.html b/docs/html/reference/com/google/android/gms/appstate/AppStateBuffer.html
index e4e34a6..66ba53c 100644
--- a/docs/html/reference/com/google/android/gms/appstate/AppStateBuffer.html
+++ b/docs/html/reference/com/google/android/gms/appstate/AppStateBuffer.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/appstate/AppStateClient.Builder.html b/docs/html/reference/com/google/android/gms/appstate/AppStateClient.Builder.html
index ab28269..f2d82b2 100644
--- a/docs/html/reference/com/google/android/gms/appstate/AppStateClient.Builder.html
+++ b/docs/html/reference/com/google/android/gms/appstate/AppStateClient.Builder.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/appstate/AppStateClient.html b/docs/html/reference/com/google/android/gms/appstate/AppStateClient.html
index 2ea169f..f1b013a 100644
--- a/docs/html/reference/com/google/android/gms/appstate/AppStateClient.html
+++ b/docs/html/reference/com/google/android/gms/appstate/AppStateClient.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
@@ -2747,8 +2760,8 @@
service in the background.
<p>
This method will call <code><a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.ConnectionCallbacks.html#onDisconnected()">onDisconnected()</a></code>
- followed by either <code><a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.ConnectionCallbacks.html#onConnected(android.os.Bundle)">onConnected(Bundle)</a></code>
- if the connection is successful or
+ followed by either <code><a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.ConnectionCallbacks.html#onConnected(android.os.Bundle)">onConnected(Bundle)</a></code> if the
+ connection is successful or
<code><a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.OnConnectionFailedListener.html#onConnectionFailed(com.google.android.gms.common.ConnectionResult)">onConnectionFailed(ConnectionResult)</a></code> on a failure.</p></div>
<div class="jd-tagdata">
<h5 class="jd-tagtitle">See Also</h5>
diff --git a/docs/html/reference/com/google/android/gms/appstate/OnSignOutCompleteListener.html b/docs/html/reference/com/google/android/gms/appstate/OnSignOutCompleteListener.html
index 4bd073e..42d5770 100644
--- a/docs/html/reference/com/google/android/gms/appstate/OnSignOutCompleteListener.html
+++ b/docs/html/reference/com/google/android/gms/appstate/OnSignOutCompleteListener.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/appstate/OnStateDeletedListener.html b/docs/html/reference/com/google/android/gms/appstate/OnStateDeletedListener.html
index b145688..d7a6ec3 100644
--- a/docs/html/reference/com/google/android/gms/appstate/OnStateDeletedListener.html
+++ b/docs/html/reference/com/google/android/gms/appstate/OnStateDeletedListener.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
@@ -853,8 +866,8 @@
<li><code><a href="/reference/com/google/android/gms/appstate/AppStateClient.html#STATUS_OK">STATUS_OK</a></code> if data was successfully deleted from the server.</li>
<li><code><a href="/reference/com/google/android/gms/appstate/AppStateClient.html#STATUS_NETWORK_ERROR_OPERATION_FAILED">STATUS_NETWORK_ERROR_OPERATION_FAILED</a></code> if the device was unable to
communicate with the network. In this case, the operation is not retried automatically.</li>
- <li><code><a href="/reference/com/google/android/gms/appstate/AppStateClient.html#STATUS_CLIENT_RECONNECT_REQUIRED">STATUS_CLIENT_RECONNECT_REQUIRED</a></code> if the <code><a href="/reference/com/google/android/gms/appstate/AppStateClient.html">AppStateClient</a></code>
- needs to reconnect to the service to access this data.</li>
+ <li><code><a href="/reference/com/google/android/gms/appstate/AppStateClient.html#STATUS_CLIENT_RECONNECT_REQUIRED">STATUS_CLIENT_RECONNECT_REQUIRED</a></code> if the client needs to reconnect
+ to the service to access this data.</li>
<li><code><a href="/reference/com/google/android/gms/appstate/AppStateClient.html#STATUS_INTERNAL_ERROR">STATUS_INTERNAL_ERROR</a></code> if an unexpected error occurred in the
service.</li>
</ul></p></div>
diff --git a/docs/html/reference/com/google/android/gms/appstate/OnStateListLoadedListener.html b/docs/html/reference/com/google/android/gms/appstate/OnStateListLoadedListener.html
index 0f2cefb..fd12a73 100644
--- a/docs/html/reference/com/google/android/gms/appstate/OnStateListLoadedListener.html
+++ b/docs/html/reference/com/google/android/gms/appstate/OnStateListLoadedListener.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
@@ -855,8 +868,8 @@
communicate with the network and has no local data available.</li>
<li><code><a href="/reference/com/google/android/gms/appstate/AppStateClient.html#STATUS_NETWORK_ERROR_STALE_DATA">STATUS_NETWORK_ERROR_STALE_DATA</a></code> if the device was unable to
retrieve the latest data from the network.</li>
- <li><code><a href="/reference/com/google/android/gms/appstate/AppStateClient.html#STATUS_CLIENT_RECONNECT_REQUIRED">STATUS_CLIENT_RECONNECT_REQUIRED</a></code> if the <code><a href="/reference/com/google/android/gms/appstate/AppStateClient.html">AppStateClient</a></code>
- needs to reconnect to the service to access this data.</li>
+ <li><code><a href="/reference/com/google/android/gms/appstate/AppStateClient.html#STATUS_CLIENT_RECONNECT_REQUIRED">STATUS_CLIENT_RECONNECT_REQUIRED</a></code> if the client needs to reconnect
+ to the service to access this data.</li>
<li><code><a href="/reference/com/google/android/gms/appstate/AppStateClient.html#STATUS_INTERNAL_ERROR">STATUS_INTERNAL_ERROR</a></code> if an unexpected error occurred in the
service.</li>
</ul></p></div>
diff --git a/docs/html/reference/com/google/android/gms/appstate/OnStateLoadedListener.html b/docs/html/reference/com/google/android/gms/appstate/OnStateLoadedListener.html
index e4ce5ed..9e14ec0 100644
--- a/docs/html/reference/com/google/android/gms/appstate/OnStateLoadedListener.html
+++ b/docs/html/reference/com/google/android/gms/appstate/OnStateLoadedListener.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
@@ -867,8 +880,8 @@
<div class="jd-details-descr">
<div class="jd-tagdata jd-tagdescr"><p>Called when a conflict is detected while loading app state. To resolve the conflict, call
- <code><a href="/reference/com/google/android/gms/appstate/AppStateClient.html#resolveState(com.google.android.gms.appstate.OnStateLoadedListener, int, java.lang.String, byte[])">resolveState(OnStateLoadedListener, int, String, byte[])</a></code> with the new
- desired data and the value of <code>resolvedVersion</code> provided here.</p></div>
+ <code><a href="/reference/com/google/android/gms/appstate/AppStateClient.html#resolveState(com.google.android.gms.appstate.OnStateLoadedListener, int, java.lang.String, byte[])">resolveState(OnStateLoadedListener, int, String, byte[])</a></code> with the new desired data and the value of
+ <code>resolvedVersion</code> provided here.</p></div>
<div class="jd-tagdata">
<h5 class="jd-tagtitle">Parameters</h5>
<table class="jd-tagtable">
@@ -927,8 +940,8 @@
communicate with the network and has no local data available.</li>
<li><code><a href="/reference/com/google/android/gms/appstate/AppStateClient.html#STATUS_NETWORK_ERROR_STALE_DATA">STATUS_NETWORK_ERROR_STALE_DATA</a></code> if the device was unable to
retrieve the latest data from the network.</li>
- <li><code><a href="/reference/com/google/android/gms/appstate/AppStateClient.html#STATUS_CLIENT_RECONNECT_REQUIRED">STATUS_CLIENT_RECONNECT_REQUIRED</a></code> if the <code><a href="/reference/com/google/android/gms/appstate/AppStateClient.html">AppStateClient</a></code>
- needs to reconnect to the service to access this data.</li>
+ <li><code><a href="/reference/com/google/android/gms/appstate/AppStateClient.html#STATUS_CLIENT_RECONNECT_REQUIRED">STATUS_CLIENT_RECONNECT_REQUIRED</a></code> if the client needs to reconnect
+ to the service to access this data.</li>
<li><code><a href="/reference/com/google/android/gms/appstate/AppStateClient.html#STATUS_INTERNAL_ERROR">STATUS_INTERNAL_ERROR</a></code> if an unexpected error occurred in the
service.</li>
<li><code><a href="/reference/com/google/android/gms/appstate/AppStateClient.html#STATUS_STATE_KEY_NOT_FOUND">STATUS_STATE_KEY_NOT_FOUND</a></code> if the requested state key is not found
diff --git a/docs/html/reference/com/google/android/gms/appstate/package-summary.html b/docs/html/reference/com/google/android/gms/appstate/package-summary.html
index da6cd9a..4fa5381 100644
--- a/docs/html/reference/com/google/android/gms/appstate/package-summary.html
+++ b/docs/html/reference/com/google/android/gms/appstate/package-summary.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -242,6 +243,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -280,7 +283,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -309,6 +312,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -348,7 +354,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -376,6 +382,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -518,29 +528,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/auth/GoogleAuthException.html b/docs/html/reference/com/google/android/gms/auth/GoogleAuthException.html
index 2d6392e..49639f2 100644
--- a/docs/html/reference/com/google/android/gms/auth/GoogleAuthException.html
+++ b/docs/html/reference/com/google/android/gms/auth/GoogleAuthException.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
@@ -979,7 +992,23 @@
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
- synchronized
+
+ final
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">addSuppressed</span>(Throwable arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
@@ -992,7 +1021,7 @@
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
@@ -1008,7 +1037,7 @@
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
@@ -1024,7 +1053,7 @@
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
@@ -1040,7 +1069,7 @@
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
@@ -1056,10 +1085,26 @@
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ Throwable[]</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getSuppressed</span>()</nobr>
+
+ </td></tr>
+
+
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
- synchronized
+
@@ -1082,7 +1127,7 @@
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad">printStackTrace</span>(PrintWriter arg0)</nobr>
+ <span class="sympad">printStackTrace</span>(PrintStream arg0)</nobr>
</td></tr>
@@ -1098,7 +1143,7 @@
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad">printStackTrace</span>(PrintStream arg0)</nobr>
+ <span class="sympad">printStackTrace</span>(PrintWriter arg0)</nobr>
</td></tr>
diff --git a/docs/html/reference/com/google/android/gms/auth/GoogleAuthUtil.html b/docs/html/reference/com/google/android/gms/auth/GoogleAuthUtil.html
index 74f6dac..df2c830 100644
--- a/docs/html/reference/com/google/android/gms/auth/GoogleAuthUtil.html
+++ b/docs/html/reference/com/google/android/gms/auth/GoogleAuthUtil.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/auth/GooglePlayServicesAvailabilityException.html b/docs/html/reference/com/google/android/gms/auth/GooglePlayServicesAvailabilityException.html
index 2600f30..0fe811e 100644
--- a/docs/html/reference/com/google/android/gms/auth/GooglePlayServicesAvailabilityException.html
+++ b/docs/html/reference/com/google/android/gms/auth/GooglePlayServicesAvailabilityException.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
@@ -1006,7 +1019,23 @@
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
- synchronized
+
+ final
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">addSuppressed</span>(Throwable arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
@@ -1019,7 +1048,7 @@
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
@@ -1035,7 +1064,7 @@
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
@@ -1051,7 +1080,7 @@
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
@@ -1067,7 +1096,7 @@
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
@@ -1083,10 +1112,26 @@
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ Throwable[]</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getSuppressed</span>()</nobr>
+
+ </td></tr>
+
+
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
- synchronized
+
@@ -1109,7 +1154,7 @@
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad">printStackTrace</span>(PrintWriter arg0)</nobr>
+ <span class="sympad">printStackTrace</span>(PrintStream arg0)</nobr>
</td></tr>
@@ -1125,7 +1170,7 @@
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad">printStackTrace</span>(PrintStream arg0)</nobr>
+ <span class="sympad">printStackTrace</span>(PrintWriter arg0)</nobr>
</td></tr>
diff --git a/docs/html/reference/com/google/android/gms/auth/UserRecoverableAuthException.html b/docs/html/reference/com/google/android/gms/auth/UserRecoverableAuthException.html
index 6d39781..6746c14 100644
--- a/docs/html/reference/com/google/android/gms/auth/UserRecoverableAuthException.html
+++ b/docs/html/reference/com/google/android/gms/auth/UserRecoverableAuthException.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
@@ -993,7 +1006,23 @@
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
- synchronized
+
+ final
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">addSuppressed</span>(Throwable arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
@@ -1006,7 +1035,7 @@
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
@@ -1022,7 +1051,7 @@
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
@@ -1038,7 +1067,7 @@
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
@@ -1054,7 +1083,7 @@
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
@@ -1070,10 +1099,26 @@
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ Throwable[]</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getSuppressed</span>()</nobr>
+
+ </td></tr>
+
+
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
- synchronized
+
@@ -1096,7 +1141,7 @@
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad">printStackTrace</span>(PrintWriter arg0)</nobr>
+ <span class="sympad">printStackTrace</span>(PrintStream arg0)</nobr>
</td></tr>
@@ -1112,7 +1157,7 @@
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad">printStackTrace</span>(PrintStream arg0)</nobr>
+ <span class="sympad">printStackTrace</span>(PrintWriter arg0)</nobr>
</td></tr>
diff --git a/docs/html/reference/com/google/android/gms/auth/UserRecoverableNotifiedException.html b/docs/html/reference/com/google/android/gms/auth/UserRecoverableNotifiedException.html
index 39ae993..1b73516 100644
--- a/docs/html/reference/com/google/android/gms/auth/UserRecoverableNotifiedException.html
+++ b/docs/html/reference/com/google/android/gms/auth/UserRecoverableNotifiedException.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
@@ -931,7 +944,23 @@
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
- synchronized
+
+ final
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">addSuppressed</span>(Throwable arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
@@ -944,7 +973,7 @@
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
@@ -960,7 +989,7 @@
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
@@ -976,7 +1005,7 @@
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
@@ -992,7 +1021,7 @@
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
@@ -1008,10 +1037,26 @@
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ Throwable[]</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getSuppressed</span>()</nobr>
+
+ </td></tr>
+
+
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
- synchronized
+
@@ -1034,7 +1079,7 @@
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad">printStackTrace</span>(PrintWriter arg0)</nobr>
+ <span class="sympad">printStackTrace</span>(PrintStream arg0)</nobr>
</td></tr>
@@ -1050,7 +1095,7 @@
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad">printStackTrace</span>(PrintStream arg0)</nobr>
+ <span class="sympad">printStackTrace</span>(PrintWriter arg0)</nobr>
</td></tr>
diff --git a/docs/html/reference/com/google/android/gms/auth/package-summary.html b/docs/html/reference/com/google/android/gms/auth/package-summary.html
index 4f3165a..88340a9 100644
--- a/docs/html/reference/com/google/android/gms/auth/package-summary.html
+++ b/docs/html/reference/com/google/android/gms/auth/package-summary.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -242,6 +243,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -280,7 +283,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -309,6 +312,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -348,7 +354,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -376,6 +382,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -518,29 +528,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
@@ -681,10 +694,6 @@
<td class="jd-descrcol" width="100%">GoogleAuthUtil provides static utility methods to acquire and invalidate
authentication tokens. </td>
</tr>
- <tr class=" api apilevel-" >
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html">RecoveryDecision</a></td>
- <td class="jd-descrcol" width="100%"> </td>
- </tr>
</table>
</div>
diff --git a/docs/html/reference/com/google/android/gms/common/AccountPicker.html b/docs/html/reference/com/google/android/gms/common/AccountPicker.html
index 8697b8f..1bb62949 100644
--- a/docs/html/reference/com/google/android/gms/common/AccountPicker.html
+++ b/docs/html/reference/com/google/android/gms/common/AccountPicker.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/common/ConnectionResult.html b/docs/html/reference/com/google/android/gms/common/ConnectionResult.html
index 84d7f54..5049280 100644
--- a/docs/html/reference/com/google/android/gms/common/ConnectionResult.html
+++ b/docs/html/reference/com/google/android/gms/common/ConnectionResult.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/common/GooglePlayServicesClient.ConnectionCallbacks.html b/docs/html/reference/com/google/android/gms/common/GooglePlayServicesClient.ConnectionCallbacks.html
index 1bc1f05..c6c29d1 100644
--- a/docs/html/reference/com/google/android/gms/common/GooglePlayServicesClient.ConnectionCallbacks.html
+++ b/docs/html/reference/com/google/android/gms/common/GooglePlayServicesClient.ConnectionCallbacks.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
@@ -646,6 +659,25 @@
<div class="sum-details-links">
+Summary:
+
+
+
+
+
+
+
+
+
+
+
+ <a href="#pubmethods">Methods</a>
+
+
+
+
+| <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
+
</div><!-- end sum-details-links -->
<div class="api-level">
@@ -694,6 +726,38 @@
+<table class="jd-sumtable jd-sumtable-subclasses"><tr><td colspan="12" style="border:none;margin:0;padding:0;">
+
+ <a href="#" onclick="return toggleInherited(this, null)" id="subclasses-indirect" class="jd-expando-trigger closed"
+ ><img id="subclasses-indirect-trigger"
+ src="/assets/images/triangle-closed.png"
+ class="jd-expando-trigger-img" /></a>Known Indirect Subclasses
+
+ <div id="subclasses-indirect">
+ <div id="subclasses-indirect-list"
+ class="jd-inheritedlinks"
+
+ >
+
+
+ <a href="/reference/com/google/android/gms/common/api/GoogleApiClient.ConnectionCallbacks.html">GoogleApiClient.ConnectionCallbacks</a>
+
+
+ </div>
+ <div id="subclasses-indirect-summary"
+ style="display: none;"
+ >
+ <table class="jd-sumtable-expando">
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/common/api/GoogleApiClient.ConnectionCallbacks.html">GoogleApiClient.ConnectionCallbacks</a></td>
+ <td class="jd-descrcol" width="100%">Provides callbacks that are called when the client is connected or disconnected from the
+ service. </td>
+ </tr>
+ </table>
+ </div>
+ </div>
+</td></tr></table>
+
<div class="jd-descr">
diff --git a/docs/html/reference/com/google/android/gms/common/GooglePlayServicesClient.OnConnectionFailedListener.html b/docs/html/reference/com/google/android/gms/common/GooglePlayServicesClient.OnConnectionFailedListener.html
index a1f52be..95974846 100644
--- a/docs/html/reference/com/google/android/gms/common/GooglePlayServicesClient.OnConnectionFailedListener.html
+++ b/docs/html/reference/com/google/android/gms/common/GooglePlayServicesClient.OnConnectionFailedListener.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
@@ -646,6 +659,25 @@
<div class="sum-details-links">
+Summary:
+
+
+
+
+
+
+
+
+
+
+
+ <a href="#pubmethods">Methods</a>
+
+
+
+
+| <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
+
</div><!-- end sum-details-links -->
<div class="api-level">
@@ -694,6 +726,38 @@
+<table class="jd-sumtable jd-sumtable-subclasses"><tr><td colspan="12" style="border:none;margin:0;padding:0;">
+
+ <a href="#" onclick="return toggleInherited(this, null)" id="subclasses-indirect" class="jd-expando-trigger closed"
+ ><img id="subclasses-indirect-trigger"
+ src="/assets/images/triangle-closed.png"
+ class="jd-expando-trigger-img" /></a>Known Indirect Subclasses
+
+ <div id="subclasses-indirect">
+ <div id="subclasses-indirect-list"
+ class="jd-inheritedlinks"
+
+ >
+
+
+ <a href="/reference/com/google/android/gms/common/api/GoogleApiClient.OnConnectionFailedListener.html">GoogleApiClient.OnConnectionFailedListener</a>
+
+
+ </div>
+ <div id="subclasses-indirect-summary"
+ style="display: none;"
+ >
+ <table class="jd-sumtable-expando">
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/common/api/GoogleApiClient.OnConnectionFailedListener.html">GoogleApiClient.OnConnectionFailedListener</a></td>
+ <td class="jd-descrcol" width="100%">Provides callbacks for scenarios that result in a failed attempt to
+ connect the client to the service. </td>
+ </tr>
+ </table>
+ </div>
+ </div>
+</td></tr></table>
+
<div class="jd-descr">
diff --git a/docs/html/reference/com/google/android/gms/common/GooglePlayServicesClient.html b/docs/html/reference/com/google/android/gms/common/GooglePlayServicesClient.html
index ce3cd96f..1f21837 100644
--- a/docs/html/reference/com/google/android/gms/common/GooglePlayServicesClient.html
+++ b/docs/html/reference/com/google/android/gms/common/GooglePlayServicesClient.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
@@ -760,7 +773,7 @@
</tr>
<tr class="alt-color api apilevel-" >
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/GamesClient.html">GamesClient</a></td>
- <td class="jd-descrcol" width="100%">Main public API entry point for the games client. </td>
+ <td class="jd-descrcol" width="100%">Main public entry point for Games APIs. </td>
</tr>
<tr class=" api apilevel-" >
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/location/LocationClient.html">LocationClient</a></td>
@@ -769,7 +782,7 @@
</tr>
<tr class="alt-color api apilevel-" >
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/panorama/PanoramaClient.html">PanoramaClient</a></td>
- <td class="jd-descrcol" width="100%">The main entry point for panorama integration. </td>
+ <td class="jd-descrcol" width="100%">This class has been deprecated. </td>
</tr>
<tr class=" api apilevel-" >
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/plus/PlusClient.html">PlusClient</a></td>
diff --git a/docs/html/reference/com/google/android/gms/common/GooglePlayServicesNotAvailableException.html b/docs/html/reference/com/google/android/gms/common/GooglePlayServicesNotAvailableException.html
index d8be4dd..310d22d 100644
--- a/docs/html/reference/com/google/android/gms/common/GooglePlayServicesNotAvailableException.html
+++ b/docs/html/reference/com/google/android/gms/common/GooglePlayServicesNotAvailableException.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
@@ -928,7 +941,23 @@
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
- synchronized
+
+ final
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">addSuppressed</span>(Throwable arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
@@ -941,7 +970,7 @@
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
@@ -957,7 +986,7 @@
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
@@ -973,7 +1002,7 @@
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
@@ -989,7 +1018,7 @@
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
@@ -1005,10 +1034,26 @@
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ Throwable[]</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getSuppressed</span>()</nobr>
+
+ </td></tr>
+
+
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
- synchronized
+
@@ -1031,7 +1076,7 @@
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad">printStackTrace</span>(PrintWriter arg0)</nobr>
+ <span class="sympad">printStackTrace</span>(PrintStream arg0)</nobr>
</td></tr>
@@ -1047,7 +1092,7 @@
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad">printStackTrace</span>(PrintStream arg0)</nobr>
+ <span class="sympad">printStackTrace</span>(PrintWriter arg0)</nobr>
</td></tr>
diff --git a/docs/html/reference/com/google/android/gms/common/GooglePlayServicesRepairableException.html b/docs/html/reference/com/google/android/gms/common/GooglePlayServicesRepairableException.html
index a454fb0..328a24e 100644
--- a/docs/html/reference/com/google/android/gms/common/GooglePlayServicesRepairableException.html
+++ b/docs/html/reference/com/google/android/gms/common/GooglePlayServicesRepairableException.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
@@ -979,7 +992,23 @@
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
- synchronized
+
+ final
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">addSuppressed</span>(Throwable arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
@@ -992,7 +1021,7 @@
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
@@ -1008,7 +1037,7 @@
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
@@ -1024,7 +1053,7 @@
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
@@ -1040,7 +1069,7 @@
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
@@ -1056,10 +1085,26 @@
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ Throwable[]</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getSuppressed</span>()</nobr>
+
+ </td></tr>
+
+
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
- synchronized
+
@@ -1082,7 +1127,7 @@
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad">printStackTrace</span>(PrintWriter arg0)</nobr>
+ <span class="sympad">printStackTrace</span>(PrintStream arg0)</nobr>
</td></tr>
@@ -1098,7 +1143,7 @@
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad">printStackTrace</span>(PrintStream arg0)</nobr>
+ <span class="sympad">printStackTrace</span>(PrintWriter arg0)</nobr>
</td></tr>
diff --git a/docs/html/reference/com/google/android/gms/common/GooglePlayServicesUtil.html b/docs/html/reference/com/google/android/gms/common/GooglePlayServicesUtil.html
index ca25152..2c3e017 100644
--- a/docs/html/reference/com/google/android/gms/common/GooglePlayServicesUtil.html
+++ b/docs/html/reference/com/google/android/gms/common/GooglePlayServicesUtil.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
@@ -1315,8 +1328,8 @@
<span class="jd-tagtitle">Constant Value: </span>
<span>
- 4030000
- (0x003d7e30)
+ 4131000
+ (0x003f08b8)
</span>
</div>
diff --git a/docs/html/reference/com/google/android/gms/common/OnStatusReceivedCallback.html b/docs/html/reference/com/google/android/gms/common/OnStatusReceivedCallback.html
new file mode 100644
index 0000000..2fa3a13
--- /dev/null
+++ b/docs/html/reference/com/google/android/gms/common/OnStatusReceivedCallback.html
@@ -0,0 +1,919 @@
+<!DOCTYPE html>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<html>
+<head>
+
+
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<meta name="viewport" content="width=device-width" />
+
+<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
+<title>OnStatusReceivedCallback | Android Developers</title>
+
+<!-- STYLESHEETS -->
+<link rel="stylesheet"
+href="//fonts.googleapis.com/css?family=Roboto:regular,medium,thin,italic,mediumitalic,bold" title="roboto">
+<link href="/assets/css/default.css" rel="stylesheet" type="text/css">
+
+
+
+<!-- JAVASCRIPT -->
+<script src="//www.google.com/jsapi" type="text/javascript"></script>
+<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
+<script type="text/javascript">
+ var toRoot = "/";
+ var metaTags = [];
+ var devsite = false;
+</script>
+<script src="/assets/js/docs.js" type="text/javascript"></script>
+
+<script type="text/javascript">
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-5831155-1']);
+ _gaq.push(['_trackPageview']);
+
+ (function() {
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+ })();
+</script>
+</head>
+<body class="gc-documentation google
+ develop" itemscope itemtype="http://schema.org/Article">
+ <div id="doc-api-level" class="" style="display:none"></div>
+ <a name="top"></a>
+
+<a name="top"></a>
+
+ <!-- Header -->
+ <div id="header">
+ <div class="wrap" id="header-wrap">
+ <div class="col-3 logo">
+ <a href="/index.html">
+ <img src="/assets/images/dac_logo.png" width="123" height="25" alt="Android Developers" />
+ </a>
+ <div class="btn-quicknav" id="btn-quicknav">
+ <a href="#" class="arrow-inactive">Quicknav</a>
+ <a href="#" class="arrow-active">Quicknav</a>
+ </div>
+ </div>
+ <ul class="nav-x col-9">
+ <li class="design">
+ <a href="/design/index.html"
+ zh-tw-lang="設計"
+ zh-cn-lang="设计"
+ ru-lang="Проектирование"
+ ko-lang="디자인"
+ ja-lang="設計"
+ es-lang="Diseñar"
+ >Design</a></li>
+ <li class="develop"><a href="/develop/index.html"
+ zh-tw-lang="開發"
+ zh-cn-lang="开发"
+ ru-lang="Разработка"
+ ko-lang="개발"
+ ja-lang="開発"
+ es-lang="Desarrollar"
+ >Develop</a></li>
+ <li class="distribute last"><a href="/distribute/index.html"
+ zh-tw-lang="發佈"
+ zh-cn-lang="分发"
+ ru-lang="Распространение"
+ ko-lang="배포"
+ ja-lang="配布"
+ es-lang="Distribuir"
+ >Distribute</a></li>
+ </ul>
+
+ <!-- New Search -->
+ <div class="menu-container">
+ <div class="moremenu">
+ <div id="more-btn"></div>
+ </div>
+ <div class="morehover" id="moremenu">
+ <div class="top"></div>
+ <div class="mid">
+ <div class="header">Links</div>
+ <ul>
+ <li><a href="https://play.google.com/apps/publish/">Google Play Developer Console</a></li>
+ <li><a href="http://android-developers.blogspot.com/">Android Developers Blog</a></li>
+ <li><a href="/about/index.html">About Android</a></li>
+ </ul>
+ <div class="header">Android Sites</div>
+ <ul>
+ <li><a href="http://www.android.com">Android.com</a></li>
+ <li class="active"><a>Android Developers</a></li>
+ <li><a href="http://source.android.com">Android Open Source Project</a></li>
+ </ul>
+
+
+
+ <div class="header">Language</div>
+ <div id="language" class="locales">
+ <select name="language" onChange="changeLangPref(this.value, true)">
+ <option value="en">English</option>
+ <option value="es">Español</option>
+ <option value="ja">日本語</option>
+ <option value="ko">한국어</option>
+ <option value="ru">Русский</option>
+ <option value="zh-cn">中文 (中国)</option>
+ <option value="zh-tw">中文 (台灣)</option>
+ </select>
+ </div>
+ <script type="text/javascript">
+ <!--
+ loadLangPref();
+ //-->
+ </script>
+
+
+
+
+ <br class="clearfix" />
+ </div>
+ <div class="bottom"></div>
+ </div>
+ <div class="search" id="search-container">
+ <div class="search-inner">
+ <div id="search-btn"></div>
+ <div class="left"></div>
+ <form onsubmit="return submit_search()">
+ <input id="search_autocomplete" type="text" value="" autocomplete="off" name="q"
+onfocus="search_focus_changed(this, true)" onblur="search_focus_changed(this, false)"
+onkeydown="return search_changed(event, true, '/')"
+onkeyup="return search_changed(event, false, '/')" />
+ </form>
+ <div class="right"></div>
+ <a class="close hide">close</a>
+ <div class="left"></div>
+ <div class="right"></div>
+ </div>
+ </div>
+
+ <div class="search_filtered_wrapper reference">
+ <div class="suggest-card reference no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ </div>
+
+ <div class="search_filtered_wrapper docs">
+ <div class="suggest-card dummy no-display"> </div>
+ <div class="suggest-card develop no-display">
+ <ul class="search_filtered">
+ </ul>
+ <div class="child-card guides no-display">
+ </div>
+ <div class="child-card training no-display">
+ </div>
+ <div class="child-card samples no-display">
+ </div>
+ </div>
+ <div class="suggest-card design no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ <div class="suggest-card distribute no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ </div>
+
+ </div>
+ <!-- /New Search>
+
+
+ <!-- Expanded quicknav -->
+ <div id="quicknav" class="col-9">
+ <ul>
+ <li class="design">
+ <ul>
+ <li><a href="/design/index.html">Get Started</a></li>
+ <li><a href="/design/style/index.html">Style</a></li>
+ <li><a href="/design/patterns/index.html">Patterns</a></li>
+ <li><a href="/design/building-blocks/index.html">Building Blocks</a></li>
+ <li><a href="/design/downloads/index.html">Downloads</a></li>
+ <li><a href="/design/videos/index.html">Videos</a></li>
+ </ul>
+ </li>
+ <li class="develop">
+ <ul>
+ <li><a href="/training/index.html"
+ zh-tw-lang="訓練課程"
+ zh-cn-lang="培训"
+ ru-lang="Курсы"
+ ko-lang="교육"
+ ja-lang="トレーニング"
+ es-lang="Capacitación"
+ >Training</a></li>
+ <li><a href="/guide/index.html"
+ zh-tw-lang="API 指南"
+ zh-cn-lang="API 指南"
+ ru-lang="Руководства по API"
+ ko-lang="API 가이드"
+ ja-lang="API ガイド"
+ es-lang="Guías de la API"
+ >API Guides</a></li>
+ <li><a href="/reference/packages.html"
+ zh-tw-lang="參考資源"
+ zh-cn-lang="参考"
+ ru-lang="Справочник"
+ ko-lang="참조문서"
+ ja-lang="リファレンス"
+ es-lang="Referencia"
+ >Reference</a></li>
+ <li><a href="/tools/index.html"
+ zh-tw-lang="相關工具"
+ zh-cn-lang="工具"
+ ru-lang="Инструменты"
+ ko-lang="도구"
+ ja-lang="ツール"
+ es-lang="Herramientas"
+ >Tools</a>
+ <ul><li><a href="/sdk/index.html">Get the SDK</a></li></ul>
+ </li>
+ <li><a href="/google/index.html">Google Services</a>
+ </li>
+
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
+ </ul>
+ </li>
+ <li class="distribute last">
+ <ul>
+ <li><a href="/distribute/index.html">Google Play</a></li>
+ <li><a href="/distribute/googleplay/publish/index.html">Publishing</a></li>
+ <li><a href="/distribute/googleplay/promote/index.html">Promoting</a></li>
+ <li><a href="/distribute/googleplay/quality/index.html">App Quality</a></li>
+ <li><a href="/distribute/googleplay/spotlight/index.html">Spotlight</a></li>
+ <li><a href="/distribute/open.html">Open Distribution</a></li>
+ </ul>
+ </li>
+ </ul>
+ </div>
+ <!-- /Expanded quicknav -->
+ </div>
+ </div>
+ <!-- /Header -->
+
+
+ <div id="searchResults" class="wrap" style="display:none;">
+ <h2 id="searchTitle">Results</h2>
+ <div id="leftSearchControl" class="search-control">Loading...</div>
+ </div>
+
+
+
+ <!-- Secondary x-nav -->
+ <div id="nav-x">
+ <div class="wrap">
+ <ul class="nav-x col-9 develop" style="width:100%">
+ <li class="training"><a href="/training/index.html"
+ zh-tw-lang="訓練課程"
+ zh-cn-lang="培训"
+ ru-lang="Курсы"
+ ko-lang="교육"
+ ja-lang="トレーニング"
+ es-lang="Capacitación"
+ >Training</a></li>
+ <li class="guide"><a href="/guide/index.html"
+ zh-tw-lang="API 指南"
+ zh-cn-lang="API 指南"
+ ru-lang="Руководства по API"
+ ko-lang="API 가이드"
+ ja-lang="API ガイド"
+ es-lang="Guías de la API"
+ >API Guides</a></li>
+ <li class="reference"><a href="/reference/packages.html"
+ zh-tw-lang="參考資源"
+ zh-cn-lang="参考"
+ ru-lang="Справочник"
+ ko-lang="참조문서"
+ ja-lang="リファレンス"
+ es-lang="Referencia"
+ >Reference</a></li>
+ <li class="tools"><a href="/tools/index.html"
+ zh-tw-lang="相關工具"
+ zh-cn-lang="工具"
+ ru-lang="Инструменты"
+ ko-lang="도구"
+ ja-lang="ツール"
+ es-lang="Herramientas"
+ >Tools</a></li>
+ <li class="google"><a href="/google/index.html"
+ >Google Services</a>
+ </li>
+
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
+ </ul>
+ </div>
+
+ </div>
+ <!-- /Sendondary x-nav -->
+
+
+
+
+
+
+
+
+
+ <div class="wrap clearfix" id="body-content">
+ <div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
+ <div id="devdoc-nav" class="scroll-pane">
+<a class="totop" href="#top" data-g-event="left-nav-top">to top</a>
+
+
+
+<ul id="nav">
+
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/index.html">
+ <span class="en">Overview</span>
+ </a></div>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/games.html">
+ <span class="en">Games</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/location.html">
+ <span class="en">Location</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/plus.html">
+ <span class="en">Google+</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/maps.html">
+ <span class="en">Maps</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play-services/ads.html">
+ <span class="en">Ads</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play-services/id.html">
+ <span class="en">Advertising ID</span></a>
+ </li>
+ </ul>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/wallet.html">
+ <span class="en">Wallet</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/auth.html">
+ <span class="en">Authorization</span>
+ </a></div>
+ </li>
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play-services/index.html">
+ <span class="en">Google Play Services</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play-services/setup.html">
+ <span class="en">Setup</span></a>
+ </li>
+ <li id="gms-tree-list" class="nav-section">
+ <div class="nav-section-header">
+ <a href="/reference/gms-packages.html">
+ <span class="en">Reference</span>
+ </a>
+ <div>
+ </li>
+ </ul>
+ </li>
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/billing/index.html">
+ <span class="en">Google Play In-app Billing</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/billing/billing_overview.html">
+ <span class="en">Overview</span></a>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/api.html">
+ <span class="en">Version 3 API</span></a></div>
+ <ul>
+ <li><a href="/google/play/billing/billing_integrate.html">
+ <span class="en">Implementing the API</span></a></li>
+ <li><a href="/google/play/billing/billing_reference.html">
+ <span class="en">Reference</span></a></li>
+ </ul>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/v2/api.html">
+ <span class="en">Version 2 API</span></a></div>
+ <ul>
+ <li><a href="/google/play/billing/v2/billing_integrate.html">
+ <span class="en">Implementing the API</span></a></li>
+ <li><a href="/google/play/billing/v2/billing_subscriptions.html">
+ <span class="en">Subscriptions</span></a></li>
+ <li><a href="/google/play/billing/v2/billing_reference.html">
+ <span class="en">Reference</span></a></li>
+ </ul>
+ </li>
+ <li><a href="/google/play/billing/billing_subscriptions.html">
+ <span class="en">Subscriptions</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_best_practices.html">
+ <span class="en">Security and Design</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_testing.html">
+ <span class="en">Testing In-app Billing</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_admin.html">
+ <span class="en">Administering In-app Billing</span></a>
+ </li>
+ <li><a href="/google/play/billing/gp-purchase-status-api.html">
+ <span class="en">Purchase Status API</span></a>
+ </li>
+ <li><a href="/google/play/billing/versions.html">
+ <span class="en">Version Notes</span></a>
+ </li>
+ </ul>
+ </li>
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/gcm/index.html">
+ <span class="en">Google Cloud Messaging</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
+ <li><a href="/google/gcm/gs.html">
+ <span class="en">Getting Started</span></a>
+ </li>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
+ </li>
+ <li><a href="/google/gcm/notifications.html">
+ <span class="en">User Notifications</span></a>
+ </li>
+ <li><a href="/google/gcm/adv.html">
+ <span class="en">Advanced Topics</span></a>
+ </li>
+ <li><a href="/google/gcm/c2dm.html">
+ <span class="en">Migration</span></a>
+ </li>
+ <li id="gcm-tree-list" class="nav-section">
+ <div class="nav-section-header">
+ <a href="/reference/gcm-packages.html">
+ <span class="en">Reference</span>
+ </a>
+ <div>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/dist.html">
+ <span class="en">Google Play Distribution</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/filters.html">
+ <span class="en">Filters on Google Play</span></a>
+ </li>
+
+ <li><a href="/google/play/publishing/multiple-apks.html">
+ <span class="en">Multiple APK Support</span></a>
+ </li>
+ <li><a href="/google/play/expansion-files.html">
+ <span class="en">APK Expansion Files</span></a>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/licensing/index.html">
+ <span class="en">Application Licensing</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/licensing/overview.html">
+ <span class="en">Licensing Overview</span></a>
+ </li>
+ <li><a href="/google/play/licensing/setting-up.html">
+ <span class="en">Setting Up for Licensing</span></a>
+ </li>
+ <li><a href="/google/play/licensing/adding-licensing.html">
+ <span class="en">Adding Licensing to Your App</span></a>
+ </li>
+ <li><a href="/google/play/licensing/licensing-reference.html">
+ <span class="en">Licensing Reference</span></a>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/backup/index.html">
+ Android Backup Service</a>
+ </div>
+ <ul>
+ <li><a href="/google/backup/signup.html">
+ Register</a>
+ </li>
+ </ul>
+ </li>
+
+ </ul>
+
+</li>
+
+
+
+</ul>
+
+<script type="text/javascript">
+<!--
+ buildToggleLists();
+ changeNavLang(getLangPref());
+//-->
+</script>
+
+
+
+
+ </div>
+ <script type="text/javascript">
+ showGoogleRefTree();
+
+ </script>
+ </div> <!-- end side-nav -->
+ <script>
+ $(document).ready(function() {
+ scrollIntoView("devdoc-nav");
+ });
+ </script>
+
+
+
+
+
+
+<div class="col-12" id="doc-col">
+
+<div id="api-info-block">
+
+
+
+
+<div class="sum-details-links">
+
+</div><!-- end sum-details-links -->
+<div class="api-level">
+
+
+
+
+</div>
+</div><!-- end api-info-block -->
+
+
+<!-- ======== START OF CLASS DATA ======== -->
+
+<div id="jd-header">
+ public
+
+
+
+ interface
+<h1 itemprop="name">OnStatusReceivedCallback</h1>
+
+
+
+
+
+
+
+
+</div><!-- end header -->
+
+<div id="naMessage"></div>
+
+<div id="jd-content" class="api apilevel-">
+<table class="jd-inheritance-table">
+
+
+ <tr>
+
+ <td colspan="1" class="jd-inheritance-class-cell">com.google.android.gms.common.OnStatusReceivedCallback</td>
+ </tr>
+
+
+</table>
+
+
+
+
+
+
+
+<div class="jd-descr">
+
+
+<h2>Class Overview</h2>
+<p itemprop="articleBody">For use with <code><a href="/">ERROR(/PendingResult)</a></code> for generic status callacks in
+ PendingResult<Status, OnStatusReceivedCallback>.
+</p>
+
+
+
+
+
+</div><!-- jd-descr -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<div class="jd-descr">
+
+
+<h2>Summary</h2>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
+
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/common/OnStatusReceivedCallback.html#onStatusReceived(com.google.android.gms.common.api.Status)">onStatusReceived</a></span>(<a href="/reference/com/google/android/gms/common/api/Status.html">Status</a> status)</nobr>
+
+ </td></tr>
+
+
+
+</table>
+
+
+
+
+
+
+
+</div><!-- jd-descr (summary) -->
+
+<!-- Details -->
+
+
+
+
+
+
+
+
+<!-- XML Attributes -->
+
+
+<!-- Enum Values -->
+
+
+<!-- Constants -->
+
+
+<!-- Fields -->
+
+
+<!-- Public ctors -->
+
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<!-- Protected ctors -->
+
+
+
+<!-- ========= METHOD DETAIL ======== -->
+<!-- Public methdos -->
+
+<h2>Public Methods</h2>
+
+
+
+<A NAME="onStatusReceived(com.google.android.gms.common.api.Status)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+ abstract
+
+ void
+ </span>
+ <span class="sympad">onStatusReceived</span>
+ <span class="normal">(<a href="/reference/com/google/android/gms/common/api/Status.html">Status</a> status)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+ </div>
+</div>
+
+
+
+
+
+<!-- ========= METHOD DETAIL ======== -->
+
+
+
+<!-- ========= END OF CLASS DATA ========= -->
+<A NAME="navbar_top"></A>
+
+<div id="footer" class="wrap" >
+
+
+ <div id="copyright">
+
+ Except as noted, this content is licensed under <a
+ href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.
+ For details and restrictions, see the <a href="/license.html">
+ Content License</a>.
+ </div>
+ <div id="build_info">
+
+<script src="/timestamp.js" type="text/javascript"></script>
+<script>document.write(BUILD_TIMESTAMP)</script>
+
+ </div>
+
+
+ <div id="footerlinks">
+
+ <p>
+ <a href="/about/index.html">About Android</a> |
+ <a href="/legal.html">Legal</a> |
+ <a href="/support.html">Support</a>
+ </p>
+ </div>
+
+</div> <!-- end footer -->
+</div> <!-- jd-content -->
+
+</div><!-- end doc-content -->
+
+</div> <!-- end body-content -->
+
+
+
+
+
+
+</body>
+</html>
diff --git a/docs/html/reference/com/google/android/gms/common/Scopes.html b/docs/html/reference/com/google/android/gms/common/Scopes.html
index 76618ff..60fc1fd 100644
--- a/docs/html/reference/com/google/android/gms/common/Scopes.html
+++ b/docs/html/reference/com/google/android/gms/common/Scopes.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
@@ -797,12 +810,19 @@
<tr class=" api apilevel-" >
<td class="jd-typecol">String</td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/common/Scopes.html#DRIVE_FILE">DRIVE_FILE</a></td>
+ <td class="jd-descrcol" width="100%">Scopes for access user-authorized files from Google Drive.</td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">String</td>
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/common/Scopes.html#GAMES">GAMES</a></td>
<td class="jd-descrcol" width="100%">Scope for accessing data from Google Play Games.</td>
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol">String</td>
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/common/Scopes.html#PLUS_LOGIN">PLUS_LOGIN</a></td>
<td class="jd-descrcol" width="100%">OAuth 2.0 scope for accessing the user's name, basic profile info, list of people in the
@@ -810,7 +830,7 @@
</tr>
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol">String</td>
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/common/Scopes.html#PLUS_PROFILE">PLUS_PROFILE</a></td>
<td class="jd-descrcol" width="100%">OAuth 2.0 scope for accessing the user's Google+ profile data.</td>
@@ -1114,6 +1134,44 @@
+<A NAME="DRIVE_FILE"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+ static
+ final
+ String
+ </span>
+ DRIVE_FILE
+ </h4>
+ <div class="api-level">
+
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Scopes for access user-authorized files from Google Drive.
+</p></div>
+
+
+ <div class="jd-tagdata">
+ <span class="jd-tagtitle">Constant Value: </span>
+ <span>
+
+ "https://www.googleapis.com/auth/drive.file"
+
+ </span>
+ </div>
+
+ </div>
+</div>
+
+
+
<A NAME="GAMES"></A>
<div class="jd-details api apilevel-">
diff --git a/docs/html/reference/com/google/android/gms/common/SignInButton.html b/docs/html/reference/com/google/android/gms/common/SignInButton.html
index efe6661..93e6b80 100644
--- a/docs/html/reference/com/google/android/gms/common/SignInButton.html
+++ b/docs/html/reference/com/google/android/gms/common/SignInButton.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
@@ -1467,145 +1480,152 @@
<tr class="alt-color api apilevel-" >
<td class="jd-typecol">int</td>
- <td class="jd-linkcol">SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN</td>
+ <td class="jd-linkcol">SYSTEM_UI_FLAG_IMMERSIVE_STICKY</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
<tr class=" api apilevel-" >
<td class="jd-typecol">int</td>
+ <td class="jd-linkcol">SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
<td class="jd-linkcol">SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol">SYSTEM_UI_FLAG_LAYOUT_STABLE</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol">SYSTEM_UI_FLAG_LOW_PROFILE</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol">SYSTEM_UI_FLAG_VISIBLE</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol">SYSTEM_UI_LAYOUT_FLAGS</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol">TEXT_ALIGNMENT_CENTER</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol">TEXT_ALIGNMENT_GRAVITY</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol">TEXT_ALIGNMENT_INHERIT</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol">TEXT_ALIGNMENT_TEXT_END</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol">TEXT_ALIGNMENT_TEXT_START</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol">TEXT_ALIGNMENT_VIEW_END</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol">TEXT_ALIGNMENT_VIEW_START</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol">TEXT_DIRECTION_ANY_RTL</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol">TEXT_DIRECTION_FIRST_STRONG</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol">TEXT_DIRECTION_INHERIT</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol">TEXT_DIRECTION_LOCALE</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol">TEXT_DIRECTION_LTR</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol">TEXT_DIRECTION_RTL</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
-
-
- <tr class=" api apilevel-" >
+
+
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol">String</td>
<td class="jd-linkcol">VIEW_LOG_TAG</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol">VISIBLE</td>
<td class="jd-descrcol" width="100%"></td>
diff --git a/docs/html/reference/com/google/android/gms/common/UserRecoverableException.html b/docs/html/reference/com/google/android/gms/common/UserRecoverableException.html
index 4fbaf32..91a2df2 100644
--- a/docs/html/reference/com/google/android/gms/common/UserRecoverableException.html
+++ b/docs/html/reference/com/google/android/gms/common/UserRecoverableException.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
@@ -968,7 +981,23 @@
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
- synchronized
+
+ final
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">addSuppressed</span>(Throwable arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
@@ -981,7 +1010,7 @@
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
@@ -997,7 +1026,7 @@
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
@@ -1013,7 +1042,7 @@
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
@@ -1029,7 +1058,7 @@
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
@@ -1045,10 +1074,26 @@
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ Throwable[]</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getSuppressed</span>()</nobr>
+
+ </td></tr>
+
+
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
- synchronized
+
@@ -1071,7 +1116,7 @@
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad">printStackTrace</span>(PrintWriter arg0)</nobr>
+ <span class="sympad">printStackTrace</span>(PrintStream arg0)</nobr>
</td></tr>
@@ -1087,7 +1132,7 @@
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad">printStackTrace</span>(PrintStream arg0)</nobr>
+ <span class="sympad">printStackTrace</span>(PrintWriter arg0)</nobr>
</td></tr>
diff --git a/docs/html/reference/com/google/android/gms/common/annotation/KeepName.html b/docs/html/reference/com/google/android/gms/common/annotation/KeepName.html
index 7d58ef2..61d2391 100644
--- a/docs/html/reference/com/google/android/gms/common/annotation/KeepName.html
+++ b/docs/html/reference/com/google/android/gms/common/annotation/KeepName.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/common/annotation/package-summary.html b/docs/html/reference/com/google/android/gms/common/annotation/package-summary.html
new file mode 100644
index 0000000..be6633f
--- /dev/null
+++ b/docs/html/reference/com/google/android/gms/common/annotation/package-summary.html
@@ -0,0 +1,733 @@
+<!DOCTYPE html>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<html>
+<head>
+
+
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<meta name="viewport" content="width=device-width" />
+
+<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
+<title>com.google.android.gms.common.annotation | Android Developers</title>
+
+<!-- STYLESHEETS -->
+<link rel="stylesheet"
+href="//fonts.googleapis.com/css?family=Roboto:regular,medium,thin,italic,mediumitalic,bold" title="roboto">
+<link href="/assets/css/default.css" rel="stylesheet" type="text/css">
+
+
+
+<!-- JAVASCRIPT -->
+<script src="//www.google.com/jsapi" type="text/javascript"></script>
+<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
+<script type="text/javascript">
+ var toRoot = "/";
+ var metaTags = [];
+ var devsite = false;
+</script>
+<script src="/assets/js/docs.js" type="text/javascript"></script>
+
+<script type="text/javascript">
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-5831155-1']);
+ _gaq.push(['_trackPageview']);
+
+ (function() {
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+ })();
+</script>
+</head>
+
+<body class="gc-documentation google
+ develop">
+ <div id="doc-api-level" class="" style="display:none"></div>
+ <a name="top"></a>
+
+<a name="top"></a>
+
+ <!-- Header -->
+ <div id="header">
+ <div class="wrap" id="header-wrap">
+ <div class="col-3 logo">
+ <a href="/index.html">
+ <img src="/assets/images/dac_logo.png" width="123" height="25" alt="Android Developers" />
+ </a>
+ <div class="btn-quicknav" id="btn-quicknav">
+ <a href="#" class="arrow-inactive">Quicknav</a>
+ <a href="#" class="arrow-active">Quicknav</a>
+ </div>
+ </div>
+ <ul class="nav-x col-9">
+ <li class="design">
+ <a href="/design/index.html"
+ zh-tw-lang="設計"
+ zh-cn-lang="设计"
+ ru-lang="Проектирование"
+ ko-lang="디자인"
+ ja-lang="設計"
+ es-lang="Diseñar"
+ >Design</a></li>
+ <li class="develop"><a href="/develop/index.html"
+ zh-tw-lang="開發"
+ zh-cn-lang="开发"
+ ru-lang="Разработка"
+ ko-lang="개발"
+ ja-lang="開発"
+ es-lang="Desarrollar"
+ >Develop</a></li>
+ <li class="distribute last"><a href="/distribute/index.html"
+ zh-tw-lang="發佈"
+ zh-cn-lang="分发"
+ ru-lang="Распространение"
+ ko-lang="배포"
+ ja-lang="配布"
+ es-lang="Distribuir"
+ >Distribute</a></li>
+ </ul>
+
+ <!-- New Search -->
+ <div class="menu-container">
+ <div class="moremenu">
+ <div id="more-btn"></div>
+ </div>
+ <div class="morehover" id="moremenu">
+ <div class="top"></div>
+ <div class="mid">
+ <div class="header">Links</div>
+ <ul>
+ <li><a href="https://play.google.com/apps/publish/">Google Play Developer Console</a></li>
+ <li><a href="http://android-developers.blogspot.com/">Android Developers Blog</a></li>
+ <li><a href="/about/index.html">About Android</a></li>
+ </ul>
+ <div class="header">Android Sites</div>
+ <ul>
+ <li><a href="http://www.android.com">Android.com</a></li>
+ <li class="active"><a>Android Developers</a></li>
+ <li><a href="http://source.android.com">Android Open Source Project</a></li>
+ </ul>
+
+
+
+ <div class="header">Language</div>
+ <div id="language" class="locales">
+ <select name="language" onChange="changeLangPref(this.value, true)">
+ <option value="en">English</option>
+ <option value="es">Español</option>
+ <option value="ja">日本語</option>
+ <option value="ko">한국어</option>
+ <option value="ru">Русский</option>
+ <option value="zh-cn">中文 (中国)</option>
+ <option value="zh-tw">中文 (台灣)</option>
+ </select>
+ </div>
+ <script type="text/javascript">
+ <!--
+ loadLangPref();
+ //-->
+ </script>
+
+
+
+
+ <br class="clearfix" />
+ </div>
+ <div class="bottom"></div>
+ </div>
+ <div class="search" id="search-container">
+ <div class="search-inner">
+ <div id="search-btn"></div>
+ <div class="left"></div>
+ <form onsubmit="return submit_search()">
+ <input id="search_autocomplete" type="text" value="" autocomplete="off" name="q"
+onfocus="search_focus_changed(this, true)" onblur="search_focus_changed(this, false)"
+onkeydown="return search_changed(event, true, '/')"
+onkeyup="return search_changed(event, false, '/')" />
+ </form>
+ <div class="right"></div>
+ <a class="close hide">close</a>
+ <div class="left"></div>
+ <div class="right"></div>
+ </div>
+ </div>
+
+ <div class="search_filtered_wrapper reference">
+ <div class="suggest-card reference no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ </div>
+
+ <div class="search_filtered_wrapper docs">
+ <div class="suggest-card dummy no-display"> </div>
+ <div class="suggest-card develop no-display">
+ <ul class="search_filtered">
+ </ul>
+ <div class="child-card guides no-display">
+ </div>
+ <div class="child-card training no-display">
+ </div>
+ <div class="child-card samples no-display">
+ </div>
+ </div>
+ <div class="suggest-card design no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ <div class="suggest-card distribute no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ </div>
+
+ </div>
+ <!-- /New Search>
+
+
+ <!-- Expanded quicknav -->
+ <div id="quicknav" class="col-9">
+ <ul>
+ <li class="design">
+ <ul>
+ <li><a href="/design/index.html">Get Started</a></li>
+ <li><a href="/design/style/index.html">Style</a></li>
+ <li><a href="/design/patterns/index.html">Patterns</a></li>
+ <li><a href="/design/building-blocks/index.html">Building Blocks</a></li>
+ <li><a href="/design/downloads/index.html">Downloads</a></li>
+ <li><a href="/design/videos/index.html">Videos</a></li>
+ </ul>
+ </li>
+ <li class="develop">
+ <ul>
+ <li><a href="/training/index.html"
+ zh-tw-lang="訓練課程"
+ zh-cn-lang="培训"
+ ru-lang="Курсы"
+ ko-lang="교육"
+ ja-lang="トレーニング"
+ es-lang="Capacitación"
+ >Training</a></li>
+ <li><a href="/guide/index.html"
+ zh-tw-lang="API 指南"
+ zh-cn-lang="API 指南"
+ ru-lang="Руководства по API"
+ ko-lang="API 가이드"
+ ja-lang="API ガイド"
+ es-lang="Guías de la API"
+ >API Guides</a></li>
+ <li><a href="/reference/packages.html"
+ zh-tw-lang="參考資源"
+ zh-cn-lang="参考"
+ ru-lang="Справочник"
+ ko-lang="참조문서"
+ ja-lang="リファレンス"
+ es-lang="Referencia"
+ >Reference</a></li>
+ <li><a href="/tools/index.html"
+ zh-tw-lang="相關工具"
+ zh-cn-lang="工具"
+ ru-lang="Инструменты"
+ ko-lang="도구"
+ ja-lang="ツール"
+ es-lang="Herramientas"
+ >Tools</a>
+ <ul><li><a href="/sdk/index.html">Get the SDK</a></li></ul>
+ </li>
+ <li><a href="/google/index.html">Google Services</a>
+ </li>
+
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
+ </ul>
+ </li>
+ <li class="distribute last">
+ <ul>
+ <li><a href="/distribute/index.html">Google Play</a></li>
+ <li><a href="/distribute/googleplay/publish/index.html">Publishing</a></li>
+ <li><a href="/distribute/googleplay/promote/index.html">Promoting</a></li>
+ <li><a href="/distribute/googleplay/quality/index.html">App Quality</a></li>
+ <li><a href="/distribute/googleplay/spotlight/index.html">Spotlight</a></li>
+ <li><a href="/distribute/open.html">Open Distribution</a></li>
+ </ul>
+ </li>
+ </ul>
+ </div>
+ <!-- /Expanded quicknav -->
+ </div>
+ </div>
+ <!-- /Header -->
+
+
+ <div id="searchResults" class="wrap" style="display:none;">
+ <h2 id="searchTitle">Results</h2>
+ <div id="leftSearchControl" class="search-control">Loading...</div>
+ </div>
+
+
+
+ <!-- Secondary x-nav -->
+ <div id="nav-x">
+ <div class="wrap">
+ <ul class="nav-x col-9 develop" style="width:100%">
+ <li class="training"><a href="/training/index.html"
+ zh-tw-lang="訓練課程"
+ zh-cn-lang="培训"
+ ru-lang="Курсы"
+ ko-lang="교육"
+ ja-lang="トレーニング"
+ es-lang="Capacitación"
+ >Training</a></li>
+ <li class="guide"><a href="/guide/index.html"
+ zh-tw-lang="API 指南"
+ zh-cn-lang="API 指南"
+ ru-lang="Руководства по API"
+ ko-lang="API 가이드"
+ ja-lang="API ガイド"
+ es-lang="Guías de la API"
+ >API Guides</a></li>
+ <li class="reference"><a href="/reference/packages.html"
+ zh-tw-lang="參考資源"
+ zh-cn-lang="参考"
+ ru-lang="Справочник"
+ ko-lang="참조문서"
+ ja-lang="リファレンス"
+ es-lang="Referencia"
+ >Reference</a></li>
+ <li class="tools"><a href="/tools/index.html"
+ zh-tw-lang="相關工具"
+ zh-cn-lang="工具"
+ ru-lang="Инструменты"
+ ko-lang="도구"
+ ja-lang="ツール"
+ es-lang="Herramientas"
+ >Tools</a></li>
+ <li class="google"><a href="/google/index.html"
+ >Google Services</a>
+ </li>
+
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
+ </ul>
+ </div>
+
+ </div>
+ <!-- /Sendondary x-nav -->
+
+
+
+
+
+
+
+
+
+ <div class="wrap clearfix" id="body-content">
+ <div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
+ <div id="devdoc-nav" class="scroll-pane">
+<a class="totop" href="#top" data-g-event="left-nav-top">to top</a>
+
+
+
+<ul id="nav">
+
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/index.html">
+ <span class="en">Overview</span>
+ </a></div>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/games.html">
+ <span class="en">Games</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/location.html">
+ <span class="en">Location</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/plus.html">
+ <span class="en">Google+</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/maps.html">
+ <span class="en">Maps</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play-services/ads.html">
+ <span class="en">Ads</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play-services/id.html">
+ <span class="en">Advertising ID</span></a>
+ </li>
+ </ul>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/wallet.html">
+ <span class="en">Wallet</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/auth.html">
+ <span class="en">Authorization</span>
+ </a></div>
+ </li>
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play-services/index.html">
+ <span class="en">Google Play Services</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play-services/setup.html">
+ <span class="en">Setup</span></a>
+ </li>
+ <li id="gms-tree-list" class="nav-section">
+ <div class="nav-section-header">
+ <a href="/reference/gms-packages.html">
+ <span class="en">Reference</span>
+ </a>
+ <div>
+ </li>
+ </ul>
+ </li>
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/billing/index.html">
+ <span class="en">Google Play In-app Billing</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/billing/billing_overview.html">
+ <span class="en">Overview</span></a>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/api.html">
+ <span class="en">Version 3 API</span></a></div>
+ <ul>
+ <li><a href="/google/play/billing/billing_integrate.html">
+ <span class="en">Implementing the API</span></a></li>
+ <li><a href="/google/play/billing/billing_reference.html">
+ <span class="en">Reference</span></a></li>
+ </ul>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/v2/api.html">
+ <span class="en">Version 2 API</span></a></div>
+ <ul>
+ <li><a href="/google/play/billing/v2/billing_integrate.html">
+ <span class="en">Implementing the API</span></a></li>
+ <li><a href="/google/play/billing/v2/billing_subscriptions.html">
+ <span class="en">Subscriptions</span></a></li>
+ <li><a href="/google/play/billing/v2/billing_reference.html">
+ <span class="en">Reference</span></a></li>
+ </ul>
+ </li>
+ <li><a href="/google/play/billing/billing_subscriptions.html">
+ <span class="en">Subscriptions</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_best_practices.html">
+ <span class="en">Security and Design</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_testing.html">
+ <span class="en">Testing In-app Billing</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_admin.html">
+ <span class="en">Administering In-app Billing</span></a>
+ </li>
+ <li><a href="/google/play/billing/gp-purchase-status-api.html">
+ <span class="en">Purchase Status API</span></a>
+ </li>
+ <li><a href="/google/play/billing/versions.html">
+ <span class="en">Version Notes</span></a>
+ </li>
+ </ul>
+ </li>
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/gcm/index.html">
+ <span class="en">Google Cloud Messaging</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
+ <li><a href="/google/gcm/gs.html">
+ <span class="en">Getting Started</span></a>
+ </li>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
+ </li>
+ <li><a href="/google/gcm/notifications.html">
+ <span class="en">User Notifications</span></a>
+ </li>
+ <li><a href="/google/gcm/adv.html">
+ <span class="en">Advanced Topics</span></a>
+ </li>
+ <li><a href="/google/gcm/c2dm.html">
+ <span class="en">Migration</span></a>
+ </li>
+ <li id="gcm-tree-list" class="nav-section">
+ <div class="nav-section-header">
+ <a href="/reference/gcm-packages.html">
+ <span class="en">Reference</span>
+ </a>
+ <div>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/dist.html">
+ <span class="en">Google Play Distribution</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/filters.html">
+ <span class="en">Filters on Google Play</span></a>
+ </li>
+
+ <li><a href="/google/play/publishing/multiple-apks.html">
+ <span class="en">Multiple APK Support</span></a>
+ </li>
+ <li><a href="/google/play/expansion-files.html">
+ <span class="en">APK Expansion Files</span></a>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/licensing/index.html">
+ <span class="en">Application Licensing</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/licensing/overview.html">
+ <span class="en">Licensing Overview</span></a>
+ </li>
+ <li><a href="/google/play/licensing/setting-up.html">
+ <span class="en">Setting Up for Licensing</span></a>
+ </li>
+ <li><a href="/google/play/licensing/adding-licensing.html">
+ <span class="en">Adding Licensing to Your App</span></a>
+ </li>
+ <li><a href="/google/play/licensing/licensing-reference.html">
+ <span class="en">Licensing Reference</span></a>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/backup/index.html">
+ Android Backup Service</a>
+ </div>
+ <ul>
+ <li><a href="/google/backup/signup.html">
+ Register</a>
+ </li>
+ </ul>
+ </li>
+
+ </ul>
+
+</li>
+
+
+
+</ul>
+
+<script type="text/javascript">
+<!--
+ buildToggleLists();
+ changeNavLang(getLangPref());
+//-->
+</script>
+
+
+
+
+ </div>
+ <script type="text/javascript">
+ showGoogleRefTree();
+
+ </script>
+ </div> <!-- end side-nav -->
+ <script>
+ $(document).ready(function() {
+ scrollIntoView("devdoc-nav");
+ });
+ </script>
+
+
+
+
+
+
+<div class="col-12" id="doc-col">
+
+<div id="api-info-block">
+<div class="api-level">
+
+
+
+
+</div>
+</div>
+
+<div id="jd-header">
+ package
+ <h1>com.google.android.gms.common.annotation</h1>
+</div><!-- end header -->
+
+<div id="naMessage"></div>
+
+<div id="jd-content" class="api apilevel-">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<div id="footer" class="wrap" >
+
+
+ <div id="copyright">
+
+ Except as noted, this content is licensed under <a
+ href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.
+ For details and restrictions, see the <a href="/license.html">
+ Content License</a>.
+ </div>
+ <div id="build_info">
+
+<script src="/timestamp.js" type="text/javascript"></script>
+<script>document.write(BUILD_TIMESTAMP)</script>
+
+ </div>
+
+
+ <div id="footerlinks">
+
+ <p>
+ <a href="/about/index.html">About Android</a> |
+ <a href="/legal.html">Legal</a> |
+ <a href="/support.html">Support</a>
+ </p>
+ </div>
+
+</div> <!-- end footer -->
+</div><!-- end jd-content -->
+</div><!-- doc-content -->
+
+</div> <!-- end body-content -->
+
+
+
+
+
+
+</body>
+</html>
diff --git a/docs/html/reference/com/google/android/gms/common/api/Api.html b/docs/html/reference/com/google/android/gms/common/api/Api.html
new file mode 100644
index 0000000..81d0b49
--- /dev/null
+++ b/docs/html/reference/com/google/android/gms/common/api/Api.html
@@ -0,0 +1,1121 @@
+<!DOCTYPE html>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<html>
+<head>
+
+
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<meta name="viewport" content="width=device-width" />
+
+<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
+<title>Api | Android Developers</title>
+
+<!-- STYLESHEETS -->
+<link rel="stylesheet"
+href="//fonts.googleapis.com/css?family=Roboto:regular,medium,thin,italic,mediumitalic,bold" title="roboto">
+<link href="/assets/css/default.css" rel="stylesheet" type="text/css">
+
+
+
+<!-- JAVASCRIPT -->
+<script src="//www.google.com/jsapi" type="text/javascript"></script>
+<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
+<script type="text/javascript">
+ var toRoot = "/";
+ var metaTags = [];
+ var devsite = false;
+</script>
+<script src="/assets/js/docs.js" type="text/javascript"></script>
+
+<script type="text/javascript">
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-5831155-1']);
+ _gaq.push(['_trackPageview']);
+
+ (function() {
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+ })();
+</script>
+</head>
+<body class="gc-documentation google
+ develop" itemscope itemtype="http://schema.org/Article">
+ <div id="doc-api-level" class="" style="display:none"></div>
+ <a name="top"></a>
+
+<a name="top"></a>
+
+ <!-- Header -->
+ <div id="header">
+ <div class="wrap" id="header-wrap">
+ <div class="col-3 logo">
+ <a href="/index.html">
+ <img src="/assets/images/dac_logo.png" width="123" height="25" alt="Android Developers" />
+ </a>
+ <div class="btn-quicknav" id="btn-quicknav">
+ <a href="#" class="arrow-inactive">Quicknav</a>
+ <a href="#" class="arrow-active">Quicknav</a>
+ </div>
+ </div>
+ <ul class="nav-x col-9">
+ <li class="design">
+ <a href="/design/index.html"
+ zh-tw-lang="設計"
+ zh-cn-lang="设计"
+ ru-lang="Проектирование"
+ ko-lang="디자인"
+ ja-lang="設計"
+ es-lang="Diseñar"
+ >Design</a></li>
+ <li class="develop"><a href="/develop/index.html"
+ zh-tw-lang="開發"
+ zh-cn-lang="开发"
+ ru-lang="Разработка"
+ ko-lang="개발"
+ ja-lang="開発"
+ es-lang="Desarrollar"
+ >Develop</a></li>
+ <li class="distribute last"><a href="/distribute/index.html"
+ zh-tw-lang="發佈"
+ zh-cn-lang="分发"
+ ru-lang="Распространение"
+ ko-lang="배포"
+ ja-lang="配布"
+ es-lang="Distribuir"
+ >Distribute</a></li>
+ </ul>
+
+ <!-- New Search -->
+ <div class="menu-container">
+ <div class="moremenu">
+ <div id="more-btn"></div>
+ </div>
+ <div class="morehover" id="moremenu">
+ <div class="top"></div>
+ <div class="mid">
+ <div class="header">Links</div>
+ <ul>
+ <li><a href="https://play.google.com/apps/publish/">Google Play Developer Console</a></li>
+ <li><a href="http://android-developers.blogspot.com/">Android Developers Blog</a></li>
+ <li><a href="/about/index.html">About Android</a></li>
+ </ul>
+ <div class="header">Android Sites</div>
+ <ul>
+ <li><a href="http://www.android.com">Android.com</a></li>
+ <li class="active"><a>Android Developers</a></li>
+ <li><a href="http://source.android.com">Android Open Source Project</a></li>
+ </ul>
+
+
+
+ <div class="header">Language</div>
+ <div id="language" class="locales">
+ <select name="language" onChange="changeLangPref(this.value, true)">
+ <option value="en">English</option>
+ <option value="es">Español</option>
+ <option value="ja">日本語</option>
+ <option value="ko">한국어</option>
+ <option value="ru">Русский</option>
+ <option value="zh-cn">中文 (中国)</option>
+ <option value="zh-tw">中文 (台灣)</option>
+ </select>
+ </div>
+ <script type="text/javascript">
+ <!--
+ loadLangPref();
+ //-->
+ </script>
+
+
+
+
+ <br class="clearfix" />
+ </div>
+ <div class="bottom"></div>
+ </div>
+ <div class="search" id="search-container">
+ <div class="search-inner">
+ <div id="search-btn"></div>
+ <div class="left"></div>
+ <form onsubmit="return submit_search()">
+ <input id="search_autocomplete" type="text" value="" autocomplete="off" name="q"
+onfocus="search_focus_changed(this, true)" onblur="search_focus_changed(this, false)"
+onkeydown="return search_changed(event, true, '/')"
+onkeyup="return search_changed(event, false, '/')" />
+ </form>
+ <div class="right"></div>
+ <a class="close hide">close</a>
+ <div class="left"></div>
+ <div class="right"></div>
+ </div>
+ </div>
+
+ <div class="search_filtered_wrapper reference">
+ <div class="suggest-card reference no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ </div>
+
+ <div class="search_filtered_wrapper docs">
+ <div class="suggest-card dummy no-display"> </div>
+ <div class="suggest-card develop no-display">
+ <ul class="search_filtered">
+ </ul>
+ <div class="child-card guides no-display">
+ </div>
+ <div class="child-card training no-display">
+ </div>
+ <div class="child-card samples no-display">
+ </div>
+ </div>
+ <div class="suggest-card design no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ <div class="suggest-card distribute no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ </div>
+
+ </div>
+ <!-- /New Search>
+
+
+ <!-- Expanded quicknav -->
+ <div id="quicknav" class="col-9">
+ <ul>
+ <li class="design">
+ <ul>
+ <li><a href="/design/index.html">Get Started</a></li>
+ <li><a href="/design/style/index.html">Style</a></li>
+ <li><a href="/design/patterns/index.html">Patterns</a></li>
+ <li><a href="/design/building-blocks/index.html">Building Blocks</a></li>
+ <li><a href="/design/downloads/index.html">Downloads</a></li>
+ <li><a href="/design/videos/index.html">Videos</a></li>
+ </ul>
+ </li>
+ <li class="develop">
+ <ul>
+ <li><a href="/training/index.html"
+ zh-tw-lang="訓練課程"
+ zh-cn-lang="培训"
+ ru-lang="Курсы"
+ ko-lang="교육"
+ ja-lang="トレーニング"
+ es-lang="Capacitación"
+ >Training</a></li>
+ <li><a href="/guide/index.html"
+ zh-tw-lang="API 指南"
+ zh-cn-lang="API 指南"
+ ru-lang="Руководства по API"
+ ko-lang="API 가이드"
+ ja-lang="API ガイド"
+ es-lang="Guías de la API"
+ >API Guides</a></li>
+ <li><a href="/reference/packages.html"
+ zh-tw-lang="參考資源"
+ zh-cn-lang="参考"
+ ru-lang="Справочник"
+ ko-lang="참조문서"
+ ja-lang="リファレンス"
+ es-lang="Referencia"
+ >Reference</a></li>
+ <li><a href="/tools/index.html"
+ zh-tw-lang="相關工具"
+ zh-cn-lang="工具"
+ ru-lang="Инструменты"
+ ko-lang="도구"
+ ja-lang="ツール"
+ es-lang="Herramientas"
+ >Tools</a>
+ <ul><li><a href="/sdk/index.html">Get the SDK</a></li></ul>
+ </li>
+ <li><a href="/google/index.html">Google Services</a>
+ </li>
+
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
+ </ul>
+ </li>
+ <li class="distribute last">
+ <ul>
+ <li><a href="/distribute/index.html">Google Play</a></li>
+ <li><a href="/distribute/googleplay/publish/index.html">Publishing</a></li>
+ <li><a href="/distribute/googleplay/promote/index.html">Promoting</a></li>
+ <li><a href="/distribute/googleplay/quality/index.html">App Quality</a></li>
+ <li><a href="/distribute/googleplay/spotlight/index.html">Spotlight</a></li>
+ <li><a href="/distribute/open.html">Open Distribution</a></li>
+ </ul>
+ </li>
+ </ul>
+ </div>
+ <!-- /Expanded quicknav -->
+ </div>
+ </div>
+ <!-- /Header -->
+
+
+ <div id="searchResults" class="wrap" style="display:none;">
+ <h2 id="searchTitle">Results</h2>
+ <div id="leftSearchControl" class="search-control">Loading...</div>
+ </div>
+
+
+
+ <!-- Secondary x-nav -->
+ <div id="nav-x">
+ <div class="wrap">
+ <ul class="nav-x col-9 develop" style="width:100%">
+ <li class="training"><a href="/training/index.html"
+ zh-tw-lang="訓練課程"
+ zh-cn-lang="培训"
+ ru-lang="Курсы"
+ ko-lang="교육"
+ ja-lang="トレーニング"
+ es-lang="Capacitación"
+ >Training</a></li>
+ <li class="guide"><a href="/guide/index.html"
+ zh-tw-lang="API 指南"
+ zh-cn-lang="API 指南"
+ ru-lang="Руководства по API"
+ ko-lang="API 가이드"
+ ja-lang="API ガイド"
+ es-lang="Guías de la API"
+ >API Guides</a></li>
+ <li class="reference"><a href="/reference/packages.html"
+ zh-tw-lang="參考資源"
+ zh-cn-lang="参考"
+ ru-lang="Справочник"
+ ko-lang="참조문서"
+ ja-lang="リファレンス"
+ es-lang="Referencia"
+ >Reference</a></li>
+ <li class="tools"><a href="/tools/index.html"
+ zh-tw-lang="相關工具"
+ zh-cn-lang="工具"
+ ru-lang="Инструменты"
+ ko-lang="도구"
+ ja-lang="ツール"
+ es-lang="Herramientas"
+ >Tools</a></li>
+ <li class="google"><a href="/google/index.html"
+ >Google Services</a>
+ </li>
+
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
+ </ul>
+ </div>
+
+ </div>
+ <!-- /Sendondary x-nav -->
+
+
+
+
+
+
+
+
+
+ <div class="wrap clearfix" id="body-content">
+ <div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
+ <div id="devdoc-nav" class="scroll-pane">
+<a class="totop" href="#top" data-g-event="left-nav-top">to top</a>
+
+
+
+<ul id="nav">
+
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/index.html">
+ <span class="en">Overview</span>
+ </a></div>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/games.html">
+ <span class="en">Games</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/location.html">
+ <span class="en">Location</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/plus.html">
+ <span class="en">Google+</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/maps.html">
+ <span class="en">Maps</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play-services/ads.html">
+ <span class="en">Ads</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play-services/id.html">
+ <span class="en">Advertising ID</span></a>
+ </li>
+ </ul>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/wallet.html">
+ <span class="en">Wallet</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/auth.html">
+ <span class="en">Authorization</span>
+ </a></div>
+ </li>
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play-services/index.html">
+ <span class="en">Google Play Services</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play-services/setup.html">
+ <span class="en">Setup</span></a>
+ </li>
+ <li id="gms-tree-list" class="nav-section">
+ <div class="nav-section-header">
+ <a href="/reference/gms-packages.html">
+ <span class="en">Reference</span>
+ </a>
+ <div>
+ </li>
+ </ul>
+ </li>
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/billing/index.html">
+ <span class="en">Google Play In-app Billing</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/billing/billing_overview.html">
+ <span class="en">Overview</span></a>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/api.html">
+ <span class="en">Version 3 API</span></a></div>
+ <ul>
+ <li><a href="/google/play/billing/billing_integrate.html">
+ <span class="en">Implementing the API</span></a></li>
+ <li><a href="/google/play/billing/billing_reference.html">
+ <span class="en">Reference</span></a></li>
+ </ul>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/v2/api.html">
+ <span class="en">Version 2 API</span></a></div>
+ <ul>
+ <li><a href="/google/play/billing/v2/billing_integrate.html">
+ <span class="en">Implementing the API</span></a></li>
+ <li><a href="/google/play/billing/v2/billing_subscriptions.html">
+ <span class="en">Subscriptions</span></a></li>
+ <li><a href="/google/play/billing/v2/billing_reference.html">
+ <span class="en">Reference</span></a></li>
+ </ul>
+ </li>
+ <li><a href="/google/play/billing/billing_subscriptions.html">
+ <span class="en">Subscriptions</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_best_practices.html">
+ <span class="en">Security and Design</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_testing.html">
+ <span class="en">Testing In-app Billing</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_admin.html">
+ <span class="en">Administering In-app Billing</span></a>
+ </li>
+ <li><a href="/google/play/billing/gp-purchase-status-api.html">
+ <span class="en">Purchase Status API</span></a>
+ </li>
+ <li><a href="/google/play/billing/versions.html">
+ <span class="en">Version Notes</span></a>
+ </li>
+ </ul>
+ </li>
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/gcm/index.html">
+ <span class="en">Google Cloud Messaging</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
+ <li><a href="/google/gcm/gs.html">
+ <span class="en">Getting Started</span></a>
+ </li>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
+ </li>
+ <li><a href="/google/gcm/notifications.html">
+ <span class="en">User Notifications</span></a>
+ </li>
+ <li><a href="/google/gcm/adv.html">
+ <span class="en">Advanced Topics</span></a>
+ </li>
+ <li><a href="/google/gcm/c2dm.html">
+ <span class="en">Migration</span></a>
+ </li>
+ <li id="gcm-tree-list" class="nav-section">
+ <div class="nav-section-header">
+ <a href="/reference/gcm-packages.html">
+ <span class="en">Reference</span>
+ </a>
+ <div>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/dist.html">
+ <span class="en">Google Play Distribution</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/filters.html">
+ <span class="en">Filters on Google Play</span></a>
+ </li>
+
+ <li><a href="/google/play/publishing/multiple-apks.html">
+ <span class="en">Multiple APK Support</span></a>
+ </li>
+ <li><a href="/google/play/expansion-files.html">
+ <span class="en">APK Expansion Files</span></a>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/licensing/index.html">
+ <span class="en">Application Licensing</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/licensing/overview.html">
+ <span class="en">Licensing Overview</span></a>
+ </li>
+ <li><a href="/google/play/licensing/setting-up.html">
+ <span class="en">Setting Up for Licensing</span></a>
+ </li>
+ <li><a href="/google/play/licensing/adding-licensing.html">
+ <span class="en">Adding Licensing to Your App</span></a>
+ </li>
+ <li><a href="/google/play/licensing/licensing-reference.html">
+ <span class="en">Licensing Reference</span></a>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/backup/index.html">
+ Android Backup Service</a>
+ </div>
+ <ul>
+ <li><a href="/google/backup/signup.html">
+ Register</a>
+ </li>
+ </ul>
+ </li>
+
+ </ul>
+
+</li>
+
+
+
+</ul>
+
+<script type="text/javascript">
+<!--
+ buildToggleLists();
+ changeNavLang(getLangPref());
+//-->
+</script>
+
+
+
+
+ </div>
+ <script type="text/javascript">
+ showGoogleRefTree();
+
+ </script>
+ </div> <!-- end side-nav -->
+ <script>
+ $(document).ready(function() {
+ scrollIntoView("devdoc-nav");
+ });
+ </script>
+
+
+
+
+
+
+<div class="col-12" id="doc-col">
+
+<div id="api-info-block">
+
+
+
+
+
+
+
+
+
+
+
+<div class="sum-details-links">
+
+Summary:
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <a href="#inhmethods">Inherited Methods</a>
+
+| <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
+
+</div><!-- end sum-details-links -->
+<div class="api-level">
+
+
+
+
+</div>
+</div><!-- end api-info-block -->
+
+
+<!-- ======== START OF CLASS DATA ======== -->
+
+<div id="jd-header">
+ public
+
+ final
+
+ class
+<h1 itemprop="name">Api</h1>
+
+
+
+
+ extends Object<br/>
+
+
+
+
+
+
+
+
+
+</div><!-- end header -->
+
+<div id="naMessage"></div>
+
+<div id="jd-content" class="api apilevel-">
+<table class="jd-inheritance-table">
+
+
+ <tr>
+
+ <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
+ </tr>
+
+
+ <tr>
+
+ <td class="jd-inheritance-space"> ↳</td>
+
+ <td colspan="1" class="jd-inheritance-class-cell">com.google.android.gms.common.api.Api</td>
+ </tr>
+
+
+</table>
+
+
+
+
+
+
+
+<div class="jd-descr">
+
+
+<h2>Class Overview</h2>
+<p itemprop="articleBody">Describes a section of the Google Play Services API that should be made available.
+ Instances of this should be passed into <code><a href="/reference/com/google/android/gms/common/api/GoogleApiClient.Builder.html#addApi(com.google.android.gms.common.api.Api)">addApi(Api)</a></code> to enable the
+ appropriate parts of Google Play Services.
+ <p>
+ Google APIs are partitioned into sections which allow your application to configure only the
+ services it requires. Each Google API provides an API object which can be passed to
+ <code><a href="/reference/com/google/android/gms/common/api/GoogleApiClient.Builder.html#addApi(com.google.android.gms.common.api.Api)">addApi(Api)</a></code> in order to configure and enable that functionality
+ in your <code><a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html">GoogleApiClient</a></code> instance.
+ <p>
+ See <code><a href="/reference/com/google/android/gms/common/api/GoogleApiClient.Builder.html">GoogleApiClient.Builder</a></code> for usage examples.</p>
+
+
+
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">See Also</h5>
+ <ul class="nolist"><li><code><a href="/reference/com/google/android/gms/drive/Drive.html#API">API</a></code></li>
+ </ul>
+ </div>
+
+
+</div><!-- jd-descr -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<div class="jd-descr">
+
+
+<h2>Summary</h2>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+<table id="inhmethods" class="jd-sumtable"><tr><th>
+ <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
+ <div style="clear:left;">Inherited Methods</div></th></tr>
+
+
+<tr class="api apilevel-" >
+<td colspan="12">
+ <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
+ ><img id="inherited-methods-java.lang.Object-trigger"
+ src="/assets/images/triangle-closed.png"
+ class="jd-expando-trigger-img" /></a>
+From class
+
+ java.lang.Object
+
+<div id="inherited-methods-java.lang.Object">
+ <div id="inherited-methods-java.lang.Object-list"
+ class="jd-inheritedlinks">
+ </div>
+ <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
+ <table class="jd-sumtable-expando">
+
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ Object</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">clone</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">equals</span>(Object arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">finalize</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ Class<?></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getClass</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">hashCode</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">notify</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">notifyAll</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ String</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">toString</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">wait</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">wait</span>(long arg0)</nobr>
+
+ </td></tr>
+
+
+</table>
+ </div>
+</div>
+</td></tr>
+
+
+</table>
+
+
+</div><!-- jd-descr (summary) -->
+
+<!-- Details -->
+
+
+
+
+
+
+
+
+<!-- XML Attributes -->
+
+
+<!-- Enum Values -->
+
+
+<!-- Constants -->
+
+
+<!-- Fields -->
+
+
+<!-- Public ctors -->
+
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<!-- Protected ctors -->
+
+
+
+<!-- ========= METHOD DETAIL ======== -->
+<!-- Public methdos -->
+
+
+
+<!-- ========= METHOD DETAIL ======== -->
+
+
+
+<!-- ========= END OF CLASS DATA ========= -->
+<A NAME="navbar_top"></A>
+
+<div id="footer" class="wrap" >
+
+
+ <div id="copyright">
+
+ Except as noted, this content is licensed under <a
+ href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.
+ For details and restrictions, see the <a href="/license.html">
+ Content License</a>.
+ </div>
+ <div id="build_info">
+
+<script src="/timestamp.js" type="text/javascript"></script>
+<script>document.write(BUILD_TIMESTAMP)</script>
+
+ </div>
+
+
+ <div id="footerlinks">
+
+ <p>
+ <a href="/about/index.html">About Android</a> |
+ <a href="/legal.html">Legal</a> |
+ <a href="/support.html">Support</a>
+ </p>
+ </div>
+
+</div> <!-- end footer -->
+</div> <!-- jd-content -->
+
+</div><!-- end doc-content -->
+
+</div> <!-- end body-content -->
+
+
+
+
+
+
+</body>
+</html>
diff --git a/docs/html/reference/com/google/android/gms/common/api/GoogleApiClient.ApiOptions.html b/docs/html/reference/com/google/android/gms/common/api/GoogleApiClient.ApiOptions.html
new file mode 100644
index 0000000..9806a06
--- /dev/null
+++ b/docs/html/reference/com/google/android/gms/common/api/GoogleApiClient.ApiOptions.html
@@ -0,0 +1,827 @@
+<!DOCTYPE html>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<html>
+<head>
+
+
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<meta name="viewport" content="width=device-width" />
+
+<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
+<title>GoogleApiClient.ApiOptions | Android Developers</title>
+
+<!-- STYLESHEETS -->
+<link rel="stylesheet"
+href="//fonts.googleapis.com/css?family=Roboto:regular,medium,thin,italic,mediumitalic,bold" title="roboto">
+<link href="/assets/css/default.css" rel="stylesheet" type="text/css">
+
+
+
+<!-- JAVASCRIPT -->
+<script src="//www.google.com/jsapi" type="text/javascript"></script>
+<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
+<script type="text/javascript">
+ var toRoot = "/";
+ var metaTags = [];
+ var devsite = false;
+</script>
+<script src="/assets/js/docs.js" type="text/javascript"></script>
+
+<script type="text/javascript">
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-5831155-1']);
+ _gaq.push(['_trackPageview']);
+
+ (function() {
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+ })();
+</script>
+</head>
+<body class="gc-documentation google
+ develop" itemscope itemtype="http://schema.org/Article">
+ <div id="doc-api-level" class="" style="display:none"></div>
+ <a name="top"></a>
+
+<a name="top"></a>
+
+ <!-- Header -->
+ <div id="header">
+ <div class="wrap" id="header-wrap">
+ <div class="col-3 logo">
+ <a href="/index.html">
+ <img src="/assets/images/dac_logo.png" width="123" height="25" alt="Android Developers" />
+ </a>
+ <div class="btn-quicknav" id="btn-quicknav">
+ <a href="#" class="arrow-inactive">Quicknav</a>
+ <a href="#" class="arrow-active">Quicknav</a>
+ </div>
+ </div>
+ <ul class="nav-x col-9">
+ <li class="design">
+ <a href="/design/index.html"
+ zh-tw-lang="設計"
+ zh-cn-lang="设计"
+ ru-lang="Проектирование"
+ ko-lang="디자인"
+ ja-lang="設計"
+ es-lang="Diseñar"
+ >Design</a></li>
+ <li class="develop"><a href="/develop/index.html"
+ zh-tw-lang="開發"
+ zh-cn-lang="开发"
+ ru-lang="Разработка"
+ ko-lang="개발"
+ ja-lang="開発"
+ es-lang="Desarrollar"
+ >Develop</a></li>
+ <li class="distribute last"><a href="/distribute/index.html"
+ zh-tw-lang="發佈"
+ zh-cn-lang="分发"
+ ru-lang="Распространение"
+ ko-lang="배포"
+ ja-lang="配布"
+ es-lang="Distribuir"
+ >Distribute</a></li>
+ </ul>
+
+ <!-- New Search -->
+ <div class="menu-container">
+ <div class="moremenu">
+ <div id="more-btn"></div>
+ </div>
+ <div class="morehover" id="moremenu">
+ <div class="top"></div>
+ <div class="mid">
+ <div class="header">Links</div>
+ <ul>
+ <li><a href="https://play.google.com/apps/publish/">Google Play Developer Console</a></li>
+ <li><a href="http://android-developers.blogspot.com/">Android Developers Blog</a></li>
+ <li><a href="/about/index.html">About Android</a></li>
+ </ul>
+ <div class="header">Android Sites</div>
+ <ul>
+ <li><a href="http://www.android.com">Android.com</a></li>
+ <li class="active"><a>Android Developers</a></li>
+ <li><a href="http://source.android.com">Android Open Source Project</a></li>
+ </ul>
+
+
+
+ <div class="header">Language</div>
+ <div id="language" class="locales">
+ <select name="language" onChange="changeLangPref(this.value, true)">
+ <option value="en">English</option>
+ <option value="es">Español</option>
+ <option value="ja">日本語</option>
+ <option value="ko">한국어</option>
+ <option value="ru">Русский</option>
+ <option value="zh-cn">中文 (中国)</option>
+ <option value="zh-tw">中文 (台灣)</option>
+ </select>
+ </div>
+ <script type="text/javascript">
+ <!--
+ loadLangPref();
+ //-->
+ </script>
+
+
+
+
+ <br class="clearfix" />
+ </div>
+ <div class="bottom"></div>
+ </div>
+ <div class="search" id="search-container">
+ <div class="search-inner">
+ <div id="search-btn"></div>
+ <div class="left"></div>
+ <form onsubmit="return submit_search()">
+ <input id="search_autocomplete" type="text" value="" autocomplete="off" name="q"
+onfocus="search_focus_changed(this, true)" onblur="search_focus_changed(this, false)"
+onkeydown="return search_changed(event, true, '/')"
+onkeyup="return search_changed(event, false, '/')" />
+ </form>
+ <div class="right"></div>
+ <a class="close hide">close</a>
+ <div class="left"></div>
+ <div class="right"></div>
+ </div>
+ </div>
+
+ <div class="search_filtered_wrapper reference">
+ <div class="suggest-card reference no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ </div>
+
+ <div class="search_filtered_wrapper docs">
+ <div class="suggest-card dummy no-display"> </div>
+ <div class="suggest-card develop no-display">
+ <ul class="search_filtered">
+ </ul>
+ <div class="child-card guides no-display">
+ </div>
+ <div class="child-card training no-display">
+ </div>
+ <div class="child-card samples no-display">
+ </div>
+ </div>
+ <div class="suggest-card design no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ <div class="suggest-card distribute no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ </div>
+
+ </div>
+ <!-- /New Search>
+
+
+ <!-- Expanded quicknav -->
+ <div id="quicknav" class="col-9">
+ <ul>
+ <li class="design">
+ <ul>
+ <li><a href="/design/index.html">Get Started</a></li>
+ <li><a href="/design/style/index.html">Style</a></li>
+ <li><a href="/design/patterns/index.html">Patterns</a></li>
+ <li><a href="/design/building-blocks/index.html">Building Blocks</a></li>
+ <li><a href="/design/downloads/index.html">Downloads</a></li>
+ <li><a href="/design/videos/index.html">Videos</a></li>
+ </ul>
+ </li>
+ <li class="develop">
+ <ul>
+ <li><a href="/training/index.html"
+ zh-tw-lang="訓練課程"
+ zh-cn-lang="培训"
+ ru-lang="Курсы"
+ ko-lang="교육"
+ ja-lang="トレーニング"
+ es-lang="Capacitación"
+ >Training</a></li>
+ <li><a href="/guide/index.html"
+ zh-tw-lang="API 指南"
+ zh-cn-lang="API 指南"
+ ru-lang="Руководства по API"
+ ko-lang="API 가이드"
+ ja-lang="API ガイド"
+ es-lang="Guías de la API"
+ >API Guides</a></li>
+ <li><a href="/reference/packages.html"
+ zh-tw-lang="參考資源"
+ zh-cn-lang="参考"
+ ru-lang="Справочник"
+ ko-lang="참조문서"
+ ja-lang="リファレンス"
+ es-lang="Referencia"
+ >Reference</a></li>
+ <li><a href="/tools/index.html"
+ zh-tw-lang="相關工具"
+ zh-cn-lang="工具"
+ ru-lang="Инструменты"
+ ko-lang="도구"
+ ja-lang="ツール"
+ es-lang="Herramientas"
+ >Tools</a>
+ <ul><li><a href="/sdk/index.html">Get the SDK</a></li></ul>
+ </li>
+ <li><a href="/google/index.html">Google Services</a>
+ </li>
+
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
+ </ul>
+ </li>
+ <li class="distribute last">
+ <ul>
+ <li><a href="/distribute/index.html">Google Play</a></li>
+ <li><a href="/distribute/googleplay/publish/index.html">Publishing</a></li>
+ <li><a href="/distribute/googleplay/promote/index.html">Promoting</a></li>
+ <li><a href="/distribute/googleplay/quality/index.html">App Quality</a></li>
+ <li><a href="/distribute/googleplay/spotlight/index.html">Spotlight</a></li>
+ <li><a href="/distribute/open.html">Open Distribution</a></li>
+ </ul>
+ </li>
+ </ul>
+ </div>
+ <!-- /Expanded quicknav -->
+ </div>
+ </div>
+ <!-- /Header -->
+
+
+ <div id="searchResults" class="wrap" style="display:none;">
+ <h2 id="searchTitle">Results</h2>
+ <div id="leftSearchControl" class="search-control">Loading...</div>
+ </div>
+
+
+
+ <!-- Secondary x-nav -->
+ <div id="nav-x">
+ <div class="wrap">
+ <ul class="nav-x col-9 develop" style="width:100%">
+ <li class="training"><a href="/training/index.html"
+ zh-tw-lang="訓練課程"
+ zh-cn-lang="培训"
+ ru-lang="Курсы"
+ ko-lang="교육"
+ ja-lang="トレーニング"
+ es-lang="Capacitación"
+ >Training</a></li>
+ <li class="guide"><a href="/guide/index.html"
+ zh-tw-lang="API 指南"
+ zh-cn-lang="API 指南"
+ ru-lang="Руководства по API"
+ ko-lang="API 가이드"
+ ja-lang="API ガイド"
+ es-lang="Guías de la API"
+ >API Guides</a></li>
+ <li class="reference"><a href="/reference/packages.html"
+ zh-tw-lang="參考資源"
+ zh-cn-lang="参考"
+ ru-lang="Справочник"
+ ko-lang="참조문서"
+ ja-lang="リファレンス"
+ es-lang="Referencia"
+ >Reference</a></li>
+ <li class="tools"><a href="/tools/index.html"
+ zh-tw-lang="相關工具"
+ zh-cn-lang="工具"
+ ru-lang="Инструменты"
+ ko-lang="도구"
+ ja-lang="ツール"
+ es-lang="Herramientas"
+ >Tools</a></li>
+ <li class="google"><a href="/google/index.html"
+ >Google Services</a>
+ </li>
+
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
+ </ul>
+ </div>
+
+ </div>
+ <!-- /Sendondary x-nav -->
+
+
+
+
+
+
+
+
+
+ <div class="wrap clearfix" id="body-content">
+ <div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
+ <div id="devdoc-nav" class="scroll-pane">
+<a class="totop" href="#top" data-g-event="left-nav-top">to top</a>
+
+
+
+<ul id="nav">
+
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/index.html">
+ <span class="en">Overview</span>
+ </a></div>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/games.html">
+ <span class="en">Games</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/location.html">
+ <span class="en">Location</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/plus.html">
+ <span class="en">Google+</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/maps.html">
+ <span class="en">Maps</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play-services/ads.html">
+ <span class="en">Ads</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play-services/id.html">
+ <span class="en">Advertising ID</span></a>
+ </li>
+ </ul>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/wallet.html">
+ <span class="en">Wallet</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/auth.html">
+ <span class="en">Authorization</span>
+ </a></div>
+ </li>
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play-services/index.html">
+ <span class="en">Google Play Services</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play-services/setup.html">
+ <span class="en">Setup</span></a>
+ </li>
+ <li id="gms-tree-list" class="nav-section">
+ <div class="nav-section-header">
+ <a href="/reference/gms-packages.html">
+ <span class="en">Reference</span>
+ </a>
+ <div>
+ </li>
+ </ul>
+ </li>
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/billing/index.html">
+ <span class="en">Google Play In-app Billing</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/billing/billing_overview.html">
+ <span class="en">Overview</span></a>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/api.html">
+ <span class="en">Version 3 API</span></a></div>
+ <ul>
+ <li><a href="/google/play/billing/billing_integrate.html">
+ <span class="en">Implementing the API</span></a></li>
+ <li><a href="/google/play/billing/billing_reference.html">
+ <span class="en">Reference</span></a></li>
+ </ul>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/v2/api.html">
+ <span class="en">Version 2 API</span></a></div>
+ <ul>
+ <li><a href="/google/play/billing/v2/billing_integrate.html">
+ <span class="en">Implementing the API</span></a></li>
+ <li><a href="/google/play/billing/v2/billing_subscriptions.html">
+ <span class="en">Subscriptions</span></a></li>
+ <li><a href="/google/play/billing/v2/billing_reference.html">
+ <span class="en">Reference</span></a></li>
+ </ul>
+ </li>
+ <li><a href="/google/play/billing/billing_subscriptions.html">
+ <span class="en">Subscriptions</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_best_practices.html">
+ <span class="en">Security and Design</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_testing.html">
+ <span class="en">Testing In-app Billing</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_admin.html">
+ <span class="en">Administering In-app Billing</span></a>
+ </li>
+ <li><a href="/google/play/billing/gp-purchase-status-api.html">
+ <span class="en">Purchase Status API</span></a>
+ </li>
+ <li><a href="/google/play/billing/versions.html">
+ <span class="en">Version Notes</span></a>
+ </li>
+ </ul>
+ </li>
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/gcm/index.html">
+ <span class="en">Google Cloud Messaging</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
+ <li><a href="/google/gcm/gs.html">
+ <span class="en">Getting Started</span></a>
+ </li>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
+ </li>
+ <li><a href="/google/gcm/notifications.html">
+ <span class="en">User Notifications</span></a>
+ </li>
+ <li><a href="/google/gcm/adv.html">
+ <span class="en">Advanced Topics</span></a>
+ </li>
+ <li><a href="/google/gcm/c2dm.html">
+ <span class="en">Migration</span></a>
+ </li>
+ <li id="gcm-tree-list" class="nav-section">
+ <div class="nav-section-header">
+ <a href="/reference/gcm-packages.html">
+ <span class="en">Reference</span>
+ </a>
+ <div>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/dist.html">
+ <span class="en">Google Play Distribution</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/filters.html">
+ <span class="en">Filters on Google Play</span></a>
+ </li>
+
+ <li><a href="/google/play/publishing/multiple-apks.html">
+ <span class="en">Multiple APK Support</span></a>
+ </li>
+ <li><a href="/google/play/expansion-files.html">
+ <span class="en">APK Expansion Files</span></a>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/licensing/index.html">
+ <span class="en">Application Licensing</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/licensing/overview.html">
+ <span class="en">Licensing Overview</span></a>
+ </li>
+ <li><a href="/google/play/licensing/setting-up.html">
+ <span class="en">Setting Up for Licensing</span></a>
+ </li>
+ <li><a href="/google/play/licensing/adding-licensing.html">
+ <span class="en">Adding Licensing to Your App</span></a>
+ </li>
+ <li><a href="/google/play/licensing/licensing-reference.html">
+ <span class="en">Licensing Reference</span></a>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/backup/index.html">
+ Android Backup Service</a>
+ </div>
+ <ul>
+ <li><a href="/google/backup/signup.html">
+ Register</a>
+ </li>
+ </ul>
+ </li>
+
+ </ul>
+
+</li>
+
+
+
+</ul>
+
+<script type="text/javascript">
+<!--
+ buildToggleLists();
+ changeNavLang(getLangPref());
+//-->
+</script>
+
+
+
+
+ </div>
+ <script type="text/javascript">
+ showGoogleRefTree();
+
+ </script>
+ </div> <!-- end side-nav -->
+ <script>
+ $(document).ready(function() {
+ scrollIntoView("devdoc-nav");
+ });
+ </script>
+
+
+
+
+
+
+<div class="col-12" id="doc-col">
+
+<div id="api-info-block">
+
+
+
+
+<div class="sum-details-links">
+
+</div><!-- end sum-details-links -->
+<div class="api-level">
+
+
+
+
+</div>
+</div><!-- end api-info-block -->
+
+
+<!-- ======== START OF CLASS DATA ======== -->
+
+<div id="jd-header">
+ public
+ static
+
+
+ interface
+<h1 itemprop="name">GoogleApiClient.ApiOptions</h1>
+
+
+
+
+
+
+
+
+</div><!-- end header -->
+
+<div id="naMessage"></div>
+
+<div id="jd-content" class="api apilevel-">
+<table class="jd-inheritance-table">
+
+
+ <tr>
+
+ <td colspan="1" class="jd-inheritance-class-cell">com.google.android.gms.common.api.GoogleApiClient.ApiOptions</td>
+ </tr>
+
+
+</table>
+
+
+
+
+
+
+
+<div class="jd-descr">
+
+
+<h2>Class Overview</h2>
+<p itemprop="articleBody">Base interface for API options. These are used to configure specific parameters for
+ individual API surfaces. The default implementation has no parameters.
+</p>
+
+
+
+
+
+</div><!-- jd-descr -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<div class="jd-descr">
+
+
+</div><!-- jd-descr (summary) -->
+
+<!-- Details -->
+
+
+
+
+
+
+
+
+<!-- XML Attributes -->
+
+
+<!-- Enum Values -->
+
+
+<!-- Constants -->
+
+
+<!-- Fields -->
+
+
+<!-- Public ctors -->
+
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<!-- Protected ctors -->
+
+
+
+<!-- ========= METHOD DETAIL ======== -->
+<!-- Public methdos -->
+
+
+
+<!-- ========= METHOD DETAIL ======== -->
+
+
+
+<!-- ========= END OF CLASS DATA ========= -->
+<A NAME="navbar_top"></A>
+
+<div id="footer" class="wrap" >
+
+
+ <div id="copyright">
+
+ Except as noted, this content is licensed under <a
+ href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.
+ For details and restrictions, see the <a href="/license.html">
+ Content License</a>.
+ </div>
+ <div id="build_info">
+
+<script src="/timestamp.js" type="text/javascript"></script>
+<script>document.write(BUILD_TIMESTAMP)</script>
+
+ </div>
+
+
+ <div id="footerlinks">
+
+ <p>
+ <a href="/about/index.html">About Android</a> |
+ <a href="/legal.html">Legal</a> |
+ <a href="/support.html">Support</a>
+ </p>
+ </div>
+
+</div> <!-- end footer -->
+</div> <!-- jd-content -->
+
+</div><!-- end doc-content -->
+
+</div> <!-- end body-content -->
+
+
+
+
+
+
+</body>
+</html>
diff --git a/docs/html/reference/com/google/android/gms/common/api/GoogleApiClient.Builder.html b/docs/html/reference/com/google/android/gms/common/api/GoogleApiClient.Builder.html
new file mode 100644
index 0000000..2a9f35d
--- /dev/null
+++ b/docs/html/reference/com/google/android/gms/common/api/GoogleApiClient.Builder.html
@@ -0,0 +1,1880 @@
+<!DOCTYPE html>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<html>
+<head>
+
+
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<meta name="viewport" content="width=device-width" />
+
+<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
+<title>GoogleApiClient.Builder | Android Developers</title>
+
+<!-- STYLESHEETS -->
+<link rel="stylesheet"
+href="//fonts.googleapis.com/css?family=Roboto:regular,medium,thin,italic,mediumitalic,bold" title="roboto">
+<link href="/assets/css/default.css" rel="stylesheet" type="text/css">
+
+
+
+<!-- JAVASCRIPT -->
+<script src="//www.google.com/jsapi" type="text/javascript"></script>
+<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
+<script type="text/javascript">
+ var toRoot = "/";
+ var metaTags = [];
+ var devsite = false;
+</script>
+<script src="/assets/js/docs.js" type="text/javascript"></script>
+
+<script type="text/javascript">
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-5831155-1']);
+ _gaq.push(['_trackPageview']);
+
+ (function() {
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+ })();
+</script>
+</head>
+<body class="gc-documentation google
+ develop" itemscope itemtype="http://schema.org/Article">
+ <div id="doc-api-level" class="" style="display:none"></div>
+ <a name="top"></a>
+
+<a name="top"></a>
+
+ <!-- Header -->
+ <div id="header">
+ <div class="wrap" id="header-wrap">
+ <div class="col-3 logo">
+ <a href="/index.html">
+ <img src="/assets/images/dac_logo.png" width="123" height="25" alt="Android Developers" />
+ </a>
+ <div class="btn-quicknav" id="btn-quicknav">
+ <a href="#" class="arrow-inactive">Quicknav</a>
+ <a href="#" class="arrow-active">Quicknav</a>
+ </div>
+ </div>
+ <ul class="nav-x col-9">
+ <li class="design">
+ <a href="/design/index.html"
+ zh-tw-lang="設計"
+ zh-cn-lang="设计"
+ ru-lang="Проектирование"
+ ko-lang="디자인"
+ ja-lang="設計"
+ es-lang="Diseñar"
+ >Design</a></li>
+ <li class="develop"><a href="/develop/index.html"
+ zh-tw-lang="開發"
+ zh-cn-lang="开发"
+ ru-lang="Разработка"
+ ko-lang="개발"
+ ja-lang="開発"
+ es-lang="Desarrollar"
+ >Develop</a></li>
+ <li class="distribute last"><a href="/distribute/index.html"
+ zh-tw-lang="發佈"
+ zh-cn-lang="分发"
+ ru-lang="Распространение"
+ ko-lang="배포"
+ ja-lang="配布"
+ es-lang="Distribuir"
+ >Distribute</a></li>
+ </ul>
+
+ <!-- New Search -->
+ <div class="menu-container">
+ <div class="moremenu">
+ <div id="more-btn"></div>
+ </div>
+ <div class="morehover" id="moremenu">
+ <div class="top"></div>
+ <div class="mid">
+ <div class="header">Links</div>
+ <ul>
+ <li><a href="https://play.google.com/apps/publish/">Google Play Developer Console</a></li>
+ <li><a href="http://android-developers.blogspot.com/">Android Developers Blog</a></li>
+ <li><a href="/about/index.html">About Android</a></li>
+ </ul>
+ <div class="header">Android Sites</div>
+ <ul>
+ <li><a href="http://www.android.com">Android.com</a></li>
+ <li class="active"><a>Android Developers</a></li>
+ <li><a href="http://source.android.com">Android Open Source Project</a></li>
+ </ul>
+
+
+
+ <div class="header">Language</div>
+ <div id="language" class="locales">
+ <select name="language" onChange="changeLangPref(this.value, true)">
+ <option value="en">English</option>
+ <option value="es">Español</option>
+ <option value="ja">日本語</option>
+ <option value="ko">한국어</option>
+ <option value="ru">Русский</option>
+ <option value="zh-cn">中文 (中国)</option>
+ <option value="zh-tw">中文 (台灣)</option>
+ </select>
+ </div>
+ <script type="text/javascript">
+ <!--
+ loadLangPref();
+ //-->
+ </script>
+
+
+
+
+ <br class="clearfix" />
+ </div>
+ <div class="bottom"></div>
+ </div>
+ <div class="search" id="search-container">
+ <div class="search-inner">
+ <div id="search-btn"></div>
+ <div class="left"></div>
+ <form onsubmit="return submit_search()">
+ <input id="search_autocomplete" type="text" value="" autocomplete="off" name="q"
+onfocus="search_focus_changed(this, true)" onblur="search_focus_changed(this, false)"
+onkeydown="return search_changed(event, true, '/')"
+onkeyup="return search_changed(event, false, '/')" />
+ </form>
+ <div class="right"></div>
+ <a class="close hide">close</a>
+ <div class="left"></div>
+ <div class="right"></div>
+ </div>
+ </div>
+
+ <div class="search_filtered_wrapper reference">
+ <div class="suggest-card reference no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ </div>
+
+ <div class="search_filtered_wrapper docs">
+ <div class="suggest-card dummy no-display"> </div>
+ <div class="suggest-card develop no-display">
+ <ul class="search_filtered">
+ </ul>
+ <div class="child-card guides no-display">
+ </div>
+ <div class="child-card training no-display">
+ </div>
+ <div class="child-card samples no-display">
+ </div>
+ </div>
+ <div class="suggest-card design no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ <div class="suggest-card distribute no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ </div>
+
+ </div>
+ <!-- /New Search>
+
+
+ <!-- Expanded quicknav -->
+ <div id="quicknav" class="col-9">
+ <ul>
+ <li class="design">
+ <ul>
+ <li><a href="/design/index.html">Get Started</a></li>
+ <li><a href="/design/style/index.html">Style</a></li>
+ <li><a href="/design/patterns/index.html">Patterns</a></li>
+ <li><a href="/design/building-blocks/index.html">Building Blocks</a></li>
+ <li><a href="/design/downloads/index.html">Downloads</a></li>
+ <li><a href="/design/videos/index.html">Videos</a></li>
+ </ul>
+ </li>
+ <li class="develop">
+ <ul>
+ <li><a href="/training/index.html"
+ zh-tw-lang="訓練課程"
+ zh-cn-lang="培训"
+ ru-lang="Курсы"
+ ko-lang="교육"
+ ja-lang="トレーニング"
+ es-lang="Capacitación"
+ >Training</a></li>
+ <li><a href="/guide/index.html"
+ zh-tw-lang="API 指南"
+ zh-cn-lang="API 指南"
+ ru-lang="Руководства по API"
+ ko-lang="API 가이드"
+ ja-lang="API ガイド"
+ es-lang="Guías de la API"
+ >API Guides</a></li>
+ <li><a href="/reference/packages.html"
+ zh-tw-lang="參考資源"
+ zh-cn-lang="参考"
+ ru-lang="Справочник"
+ ko-lang="참조문서"
+ ja-lang="リファレンス"
+ es-lang="Referencia"
+ >Reference</a></li>
+ <li><a href="/tools/index.html"
+ zh-tw-lang="相關工具"
+ zh-cn-lang="工具"
+ ru-lang="Инструменты"
+ ko-lang="도구"
+ ja-lang="ツール"
+ es-lang="Herramientas"
+ >Tools</a>
+ <ul><li><a href="/sdk/index.html">Get the SDK</a></li></ul>
+ </li>
+ <li><a href="/google/index.html">Google Services</a>
+ </li>
+
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
+ </ul>
+ </li>
+ <li class="distribute last">
+ <ul>
+ <li><a href="/distribute/index.html">Google Play</a></li>
+ <li><a href="/distribute/googleplay/publish/index.html">Publishing</a></li>
+ <li><a href="/distribute/googleplay/promote/index.html">Promoting</a></li>
+ <li><a href="/distribute/googleplay/quality/index.html">App Quality</a></li>
+ <li><a href="/distribute/googleplay/spotlight/index.html">Spotlight</a></li>
+ <li><a href="/distribute/open.html">Open Distribution</a></li>
+ </ul>
+ </li>
+ </ul>
+ </div>
+ <!-- /Expanded quicknav -->
+ </div>
+ </div>
+ <!-- /Header -->
+
+
+ <div id="searchResults" class="wrap" style="display:none;">
+ <h2 id="searchTitle">Results</h2>
+ <div id="leftSearchControl" class="search-control">Loading...</div>
+ </div>
+
+
+
+ <!-- Secondary x-nav -->
+ <div id="nav-x">
+ <div class="wrap">
+ <ul class="nav-x col-9 develop" style="width:100%">
+ <li class="training"><a href="/training/index.html"
+ zh-tw-lang="訓練課程"
+ zh-cn-lang="培训"
+ ru-lang="Курсы"
+ ko-lang="교육"
+ ja-lang="トレーニング"
+ es-lang="Capacitación"
+ >Training</a></li>
+ <li class="guide"><a href="/guide/index.html"
+ zh-tw-lang="API 指南"
+ zh-cn-lang="API 指南"
+ ru-lang="Руководства по API"
+ ko-lang="API 가이드"
+ ja-lang="API ガイド"
+ es-lang="Guías de la API"
+ >API Guides</a></li>
+ <li class="reference"><a href="/reference/packages.html"
+ zh-tw-lang="參考資源"
+ zh-cn-lang="参考"
+ ru-lang="Справочник"
+ ko-lang="참조문서"
+ ja-lang="リファレンス"
+ es-lang="Referencia"
+ >Reference</a></li>
+ <li class="tools"><a href="/tools/index.html"
+ zh-tw-lang="相關工具"
+ zh-cn-lang="工具"
+ ru-lang="Инструменты"
+ ko-lang="도구"
+ ja-lang="ツール"
+ es-lang="Herramientas"
+ >Tools</a></li>
+ <li class="google"><a href="/google/index.html"
+ >Google Services</a>
+ </li>
+
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
+ </ul>
+ </div>
+
+ </div>
+ <!-- /Sendondary x-nav -->
+
+
+
+
+
+
+
+
+
+ <div class="wrap clearfix" id="body-content">
+ <div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
+ <div id="devdoc-nav" class="scroll-pane">
+<a class="totop" href="#top" data-g-event="left-nav-top">to top</a>
+
+
+
+<ul id="nav">
+
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/index.html">
+ <span class="en">Overview</span>
+ </a></div>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/games.html">
+ <span class="en">Games</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/location.html">
+ <span class="en">Location</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/plus.html">
+ <span class="en">Google+</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/maps.html">
+ <span class="en">Maps</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play-services/ads.html">
+ <span class="en">Ads</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play-services/id.html">
+ <span class="en">Advertising ID</span></a>
+ </li>
+ </ul>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/wallet.html">
+ <span class="en">Wallet</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/auth.html">
+ <span class="en">Authorization</span>
+ </a></div>
+ </li>
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play-services/index.html">
+ <span class="en">Google Play Services</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play-services/setup.html">
+ <span class="en">Setup</span></a>
+ </li>
+ <li id="gms-tree-list" class="nav-section">
+ <div class="nav-section-header">
+ <a href="/reference/gms-packages.html">
+ <span class="en">Reference</span>
+ </a>
+ <div>
+ </li>
+ </ul>
+ </li>
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/billing/index.html">
+ <span class="en">Google Play In-app Billing</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/billing/billing_overview.html">
+ <span class="en">Overview</span></a>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/api.html">
+ <span class="en">Version 3 API</span></a></div>
+ <ul>
+ <li><a href="/google/play/billing/billing_integrate.html">
+ <span class="en">Implementing the API</span></a></li>
+ <li><a href="/google/play/billing/billing_reference.html">
+ <span class="en">Reference</span></a></li>
+ </ul>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/v2/api.html">
+ <span class="en">Version 2 API</span></a></div>
+ <ul>
+ <li><a href="/google/play/billing/v2/billing_integrate.html">
+ <span class="en">Implementing the API</span></a></li>
+ <li><a href="/google/play/billing/v2/billing_subscriptions.html">
+ <span class="en">Subscriptions</span></a></li>
+ <li><a href="/google/play/billing/v2/billing_reference.html">
+ <span class="en">Reference</span></a></li>
+ </ul>
+ </li>
+ <li><a href="/google/play/billing/billing_subscriptions.html">
+ <span class="en">Subscriptions</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_best_practices.html">
+ <span class="en">Security and Design</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_testing.html">
+ <span class="en">Testing In-app Billing</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_admin.html">
+ <span class="en">Administering In-app Billing</span></a>
+ </li>
+ <li><a href="/google/play/billing/gp-purchase-status-api.html">
+ <span class="en">Purchase Status API</span></a>
+ </li>
+ <li><a href="/google/play/billing/versions.html">
+ <span class="en">Version Notes</span></a>
+ </li>
+ </ul>
+ </li>
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/gcm/index.html">
+ <span class="en">Google Cloud Messaging</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
+ <li><a href="/google/gcm/gs.html">
+ <span class="en">Getting Started</span></a>
+ </li>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
+ </li>
+ <li><a href="/google/gcm/notifications.html">
+ <span class="en">User Notifications</span></a>
+ </li>
+ <li><a href="/google/gcm/adv.html">
+ <span class="en">Advanced Topics</span></a>
+ </li>
+ <li><a href="/google/gcm/c2dm.html">
+ <span class="en">Migration</span></a>
+ </li>
+ <li id="gcm-tree-list" class="nav-section">
+ <div class="nav-section-header">
+ <a href="/reference/gcm-packages.html">
+ <span class="en">Reference</span>
+ </a>
+ <div>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/dist.html">
+ <span class="en">Google Play Distribution</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/filters.html">
+ <span class="en">Filters on Google Play</span></a>
+ </li>
+
+ <li><a href="/google/play/publishing/multiple-apks.html">
+ <span class="en">Multiple APK Support</span></a>
+ </li>
+ <li><a href="/google/play/expansion-files.html">
+ <span class="en">APK Expansion Files</span></a>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/licensing/index.html">
+ <span class="en">Application Licensing</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/licensing/overview.html">
+ <span class="en">Licensing Overview</span></a>
+ </li>
+ <li><a href="/google/play/licensing/setting-up.html">
+ <span class="en">Setting Up for Licensing</span></a>
+ </li>
+ <li><a href="/google/play/licensing/adding-licensing.html">
+ <span class="en">Adding Licensing to Your App</span></a>
+ </li>
+ <li><a href="/google/play/licensing/licensing-reference.html">
+ <span class="en">Licensing Reference</span></a>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/backup/index.html">
+ Android Backup Service</a>
+ </div>
+ <ul>
+ <li><a href="/google/backup/signup.html">
+ Register</a>
+ </li>
+ </ul>
+ </li>
+
+ </ul>
+
+</li>
+
+
+
+</ul>
+
+<script type="text/javascript">
+<!--
+ buildToggleLists();
+ changeNavLang(getLangPref());
+//-->
+</script>
+
+
+
+
+ </div>
+ <script type="text/javascript">
+ showGoogleRefTree();
+
+ </script>
+ </div> <!-- end side-nav -->
+ <script>
+ $(document).ready(function() {
+ scrollIntoView("devdoc-nav");
+ });
+ </script>
+
+
+
+
+
+
+<div class="col-12" id="doc-col">
+
+<div id="api-info-block">
+
+
+
+
+
+
+
+
+
+
+
+<div class="sum-details-links">
+
+Summary:
+
+
+
+
+
+
+
+
+
+ <a href="#pubctors">Ctors</a>
+
+
+
+
+ | <a href="#pubmethods">Methods</a>
+
+
+
+
+ | <a href="#inhmethods">Inherited Methods</a>
+
+| <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
+
+</div><!-- end sum-details-links -->
+<div class="api-level">
+
+
+
+
+</div>
+</div><!-- end api-info-block -->
+
+
+<!-- ======== START OF CLASS DATA ======== -->
+
+<div id="jd-header">
+ public
+ static
+ final
+
+ class
+<h1 itemprop="name">GoogleApiClient.Builder</h1>
+
+
+
+
+ extends Object<br/>
+
+
+
+
+
+
+
+
+
+</div><!-- end header -->
+
+<div id="naMessage"></div>
+
+<div id="jd-content" class="api apilevel-">
+<table class="jd-inheritance-table">
+
+
+ <tr>
+
+ <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
+ </tr>
+
+
+ <tr>
+
+ <td class="jd-inheritance-space"> ↳</td>
+
+ <td colspan="1" class="jd-inheritance-class-cell">com.google.android.gms.common.api.GoogleApiClient.Builder</td>
+ </tr>
+
+
+</table>
+
+
+
+
+
+
+
+<div class="jd-descr">
+
+
+<h2>Class Overview</h2>
+<p itemprop="articleBody">Builder to configure a <code><a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html">GoogleApiClient</a></code>.
+ <p>
+ Example:
+ <pre>
+ GoogleApiClient client = new GoogleApiClient.Builder(this)
+ .addApi(Plus.API)
+ .addScope(Plus.SCOPE_PLUS_LOGIN)
+ .setAccountName("users.account.name@gmail.com")
+ .build();
+ client.connect();
+ </pre>
+</p>
+
+
+
+
+
+</div><!-- jd-descr -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<div class="jd-descr">
+
+
+<h2>Summary</h2>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
+
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ </nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/common/api/GoogleApiClient.Builder.html#GoogleApiClient.Builder(android.content.Context)">GoogleApiClient.Builder</a></span>(Context context)</nobr>
+
+ <div class="jd-descrdiv">Builder to help construct the <code><a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html">GoogleApiClient</a></code> object.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ </nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/common/api/GoogleApiClient.Builder.html#GoogleApiClient.Builder(android.content.Context, com.google.android.gms.common.api.GoogleApiClient.ConnectionCallbacks, com.google.android.gms.common.api.GoogleApiClient.OnConnectionFailedListener)">GoogleApiClient.Builder</a></span>(Context context, <a href="/reference/com/google/android/gms/common/api/GoogleApiClient.ConnectionCallbacks.html">GoogleApiClient.ConnectionCallbacks</a> connectedListener, <a href="/reference/com/google/android/gms/common/api/GoogleApiClient.OnConnectionFailedListener.html">GoogleApiClient.OnConnectionFailedListener</a> connectionFailedListener)</nobr>
+
+ <div class="jd-descrdiv">Builder to help construct the <code><a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html">GoogleApiClient</a></code> object.</div>
+
+ </td></tr>
+
+
+
+</table>
+
+
+
+
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
+
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ <a href="/reference/com/google/android/gms/common/api/GoogleApiClient.Builder.html">GoogleApiClient.Builder</a></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/common/api/GoogleApiClient.Builder.html#addApi(com.google.android.gms.common.api.Api)">addApi</a></span>(<a href="/reference/com/google/android/gms/common/api/Api.html">Api</a> api)</nobr>
+
+ <div class="jd-descrdiv">Specify which Apis are requested by your app.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ <a href="/reference/com/google/android/gms/common/api/GoogleApiClient.Builder.html">GoogleApiClient.Builder</a></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/common/api/GoogleApiClient.Builder.html#addApi(com.google.android.gms.common.api.Api, com.google.android.gms.common.api.GoogleApiClient.ApiOptions)">addApi</a></span>(<a href="/reference/com/google/android/gms/common/api/Api.html">Api</a> api, <a href="/reference/com/google/android/gms/common/api/GoogleApiClient.ApiOptions.html">GoogleApiClient.ApiOptions</a> options)</nobr>
+
+ <div class="jd-descrdiv">Specify which Apis are requested by your app.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ <a href="/reference/com/google/android/gms/common/api/GoogleApiClient.Builder.html">GoogleApiClient.Builder</a></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/common/api/GoogleApiClient.Builder.html#addConnectionCallbacks(com.google.android.gms.common.api.GoogleApiClient.ConnectionCallbacks)">addConnectionCallbacks</a></span>(<a href="/reference/com/google/android/gms/common/api/GoogleApiClient.ConnectionCallbacks.html">GoogleApiClient.ConnectionCallbacks</a> listener)</nobr>
+
+ <div class="jd-descrdiv">Registers a listener to receive connection events from this <code>GoogleApiClient</code>.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ <a href="/reference/com/google/android/gms/common/api/GoogleApiClient.Builder.html">GoogleApiClient.Builder</a></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/common/api/GoogleApiClient.Builder.html#addOnConnectionFailedListener(com.google.android.gms.common.api.GoogleApiClient.OnConnectionFailedListener)">addOnConnectionFailedListener</a></span>(<a href="/reference/com/google/android/gms/common/api/GoogleApiClient.OnConnectionFailedListener.html">GoogleApiClient.OnConnectionFailedListener</a> listener)</nobr>
+
+ <div class="jd-descrdiv">Adds a listener to register to receive connection failed events from this
+ <code>GoogleApiClient</code>.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ <a href="/reference/com/google/android/gms/common/api/GoogleApiClient.Builder.html">GoogleApiClient.Builder</a></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/common/api/GoogleApiClient.Builder.html#addScope(com.google.android.gms.common.api.Scope)">addScope</a></span>(<a href="/reference/com/google/android/gms/common/api/Scope.html">Scope</a> scope)</nobr>
+
+ <div class="jd-descrdiv">Specify the OAuth 2.0 scopes requested by your app.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ <a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html">GoogleApiClient</a></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/common/api/GoogleApiClient.Builder.html#build()">build</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Builds a new <code><a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html">GoogleApiClient</a></code> object for communicating with the Google
+ APIs.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ <a href="/reference/com/google/android/gms/common/api/GoogleApiClient.Builder.html">GoogleApiClient.Builder</a></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/common/api/GoogleApiClient.Builder.html#setAccountName(java.lang.String)">setAccountName</a></span>(String accountName)</nobr>
+
+ <div class="jd-descrdiv">Specify an account name on the device that should be used.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ <a href="/reference/com/google/android/gms/common/api/GoogleApiClient.Builder.html">GoogleApiClient.Builder</a></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/common/api/GoogleApiClient.Builder.html#setGravityForPopups(int)">setGravityForPopups</a></span>(int gravityForPopups)</nobr>
+
+ <div class="jd-descrdiv">Specifies the part of the screen at which games service popups (for example, "welcome
+ back" or "achievement unlocked" popups) will be displayed using gravity.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ <a href="/reference/com/google/android/gms/common/api/GoogleApiClient.Builder.html">GoogleApiClient.Builder</a></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/common/api/GoogleApiClient.Builder.html#setViewForPopups(android.view.View)">setViewForPopups</a></span>(View viewForPopups)</nobr>
+
+ <div class="jd-descrdiv">Sets the <code><a href="/reference/android/view/View.html">View</a></code> to use as a content view for popups.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ <a href="/reference/com/google/android/gms/common/api/GoogleApiClient.Builder.html">GoogleApiClient.Builder</a></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/common/api/GoogleApiClient.Builder.html#useDefaultAccount()">useDefaultAccount</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Specify that the default account should be used when connecting to services.</div>
+
+ </td></tr>
+
+
+
+</table>
+
+
+
+
+
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+<table id="inhmethods" class="jd-sumtable"><tr><th>
+ <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
+ <div style="clear:left;">Inherited Methods</div></th></tr>
+
+
+<tr class="api apilevel-" >
+<td colspan="12">
+ <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
+ ><img id="inherited-methods-java.lang.Object-trigger"
+ src="/assets/images/triangle-closed.png"
+ class="jd-expando-trigger-img" /></a>
+From class
+
+ java.lang.Object
+
+<div id="inherited-methods-java.lang.Object">
+ <div id="inherited-methods-java.lang.Object-list"
+ class="jd-inheritedlinks">
+ </div>
+ <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
+ <table class="jd-sumtable-expando">
+
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ Object</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">clone</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">equals</span>(Object arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">finalize</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ Class<?></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getClass</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">hashCode</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">notify</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">notifyAll</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ String</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">toString</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">wait</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">wait</span>(long arg0)</nobr>
+
+ </td></tr>
+
+
+</table>
+ </div>
+</div>
+</td></tr>
+
+
+</table>
+
+
+</div><!-- jd-descr (summary) -->
+
+<!-- Details -->
+
+
+
+
+
+
+
+
+<!-- XML Attributes -->
+
+
+<!-- Enum Values -->
+
+
+<!-- Constants -->
+
+
+<!-- Fields -->
+
+
+<!-- Public ctors -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<h2>Public Constructors</h2>
+
+
+
+<A NAME="GoogleApiClient.Builder(android.content.Context)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+
+ </span>
+ <span class="sympad">GoogleApiClient.Builder</span>
+ <span class="normal">(Context context)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Builder to help construct the <code><a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html">GoogleApiClient</a></code> object.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>context</td>
+ <td>The context to use for the connection.
+</td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="GoogleApiClient.Builder(android.content.Context, com.google.android.gms.common.api.GoogleApiClient.ConnectionCallbacks, com.google.android.gms.common.api.GoogleApiClient.OnConnectionFailedListener)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+
+ </span>
+ <span class="sympad">GoogleApiClient.Builder</span>
+ <span class="normal">(Context context, <a href="/reference/com/google/android/gms/common/api/GoogleApiClient.ConnectionCallbacks.html">GoogleApiClient.ConnectionCallbacks</a> connectedListener, <a href="/reference/com/google/android/gms/common/api/GoogleApiClient.OnConnectionFailedListener.html">GoogleApiClient.OnConnectionFailedListener</a> connectionFailedListener)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Builder to help construct the <code><a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html">GoogleApiClient</a></code> object.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>context</td>
+ <td>The context to use for the connection.</td>
+ </tr>
+ <tr>
+ <th>connectedListener</td>
+ <td>The listener where the results of the asynchronous
+ <code><a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html#connect()">connect()</a></code> call are delivered.</td>
+ </tr>
+ <tr>
+ <th>connectionFailedListener</td>
+ <td>The listener which will be notified if the connection
+ attempt fails.
+</td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
+
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<!-- Protected ctors -->
+
+
+
+<!-- ========= METHOD DETAIL ======== -->
+<!-- Public methdos -->
+
+<h2>Public Methods</h2>
+
+
+
+<A NAME="addApi(com.google.android.gms.common.api.Api)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ <a href="/reference/com/google/android/gms/common/api/GoogleApiClient.Builder.html">GoogleApiClient.Builder</a>
+ </span>
+ <span class="sympad">addApi</span>
+ <span class="normal">(<a href="/reference/com/google/android/gms/common/api/Api.html">Api</a> api)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Specify which Apis are requested by your app. See <code><a href="/reference/com/google/android/gms/common/api/Api.html">Api</a></code> for more information.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>api</td>
+ <td>The Api requested by your app.</td>
+ </tr>
+ </table>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">See Also</h5>
+ <ul class="nolist"><li><code><a href="/reference/com/google/android/gms/common/api/Api.html">Api</a></code></li>
+ </ul>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="addApi(com.google.android.gms.common.api.Api, com.google.android.gms.common.api.GoogleApiClient.ApiOptions)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ <a href="/reference/com/google/android/gms/common/api/GoogleApiClient.Builder.html">GoogleApiClient.Builder</a>
+ </span>
+ <span class="sympad">addApi</span>
+ <span class="normal">(<a href="/reference/com/google/android/gms/common/api/Api.html">Api</a> api, <a href="/reference/com/google/android/gms/common/api/GoogleApiClient.ApiOptions.html">GoogleApiClient.ApiOptions</a> options)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Specify which Apis are requested by your app. See <code><a href="/reference/com/google/android/gms/common/api/Api.html">Api</a></code> for more information.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>api</td>
+ <td>The Api requested by your app.</td>
+ </tr>
+ <tr>
+ <th>options</td>
+ <td>Any additional parameters required for the specific API.</td>
+ </tr>
+ </table>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">See Also</h5>
+ <ul class="nolist"><li><code><a href="/reference/com/google/android/gms/common/api/Api.html">Api</a></code></li>
+ </ul>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="addConnectionCallbacks(com.google.android.gms.common.api.GoogleApiClient.ConnectionCallbacks)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ <a href="/reference/com/google/android/gms/common/api/GoogleApiClient.Builder.html">GoogleApiClient.Builder</a>
+ </span>
+ <span class="sympad">addConnectionCallbacks</span>
+ <span class="normal">(<a href="/reference/com/google/android/gms/common/api/GoogleApiClient.ConnectionCallbacks.html">GoogleApiClient.ConnectionCallbacks</a> listener)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Registers a listener to receive connection events from this <code>GoogleApiClient</code>.
+ Applications should balance calls to this method with calls to
+ <code><a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html#unregisterConnectionCallbacks(com.google.android.gms.common.api.GoogleApiClient.ConnectionCallbacks)">unregisterConnectionCallbacks(ConnectionCallbacks)</a></code> to avoid leaking resources.
+ <p>
+ If the specified listener is already registered to receive connection events, this
+ method will not add a duplicate entry for the same listener.
+ <p>
+ Note that the order of messages received here may not be stable, so clients should not
+ rely on the order that multiple listeners receive events in.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>listener</td>
+ <td>the listener where the results of the asynchronous <code><a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html#connect()">connect()</a></code> call
+ are delivered.
+</td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="addOnConnectionFailedListener(com.google.android.gms.common.api.GoogleApiClient.OnConnectionFailedListener)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ <a href="/reference/com/google/android/gms/common/api/GoogleApiClient.Builder.html">GoogleApiClient.Builder</a>
+ </span>
+ <span class="sympad">addOnConnectionFailedListener</span>
+ <span class="normal">(<a href="/reference/com/google/android/gms/common/api/GoogleApiClient.OnConnectionFailedListener.html">GoogleApiClient.OnConnectionFailedListener</a> listener)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Adds a listener to register to receive connection failed events from this
+ <code>GoogleApiClient</code>. Applications should balance calls to this method with calls to
+ <code><a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html#unregisterConnectionFailedListener(com.google.android.gms.common.api.GoogleApiClient.OnConnectionFailedListener)">unregisterConnectionFailedListener(OnConnectionFailedListener)</a></code> to avoid leaking
+ resources.
+ <p>
+ If the specified listener is already registered to receive connection failed events, this
+ method will not add a duplicate entry for the same listener.
+ <p>
+ Note that the order of messages received here may not be stable, so clients should not
+ rely on the order that multiple listeners receive events in.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>listener</td>
+ <td>the listener where the results of the asynchronous <code><a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html#connect()">connect()</a></code> call
+ are delivered.
+</td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="addScope(com.google.android.gms.common.api.Scope)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ <a href="/reference/com/google/android/gms/common/api/GoogleApiClient.Builder.html">GoogleApiClient.Builder</a>
+ </span>
+ <span class="sympad">addScope</span>
+ <span class="normal">(<a href="/reference/com/google/android/gms/common/api/Scope.html">Scope</a> scope)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Specify the OAuth 2.0 scopes requested by your app. See <code><a href="/reference/com/google/android/gms/common/Scopes.html">Scopes</a></code> for more
+ information.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>scope</td>
+ <td>The OAuth 2.0 scopes requested by your app.</td>
+ </tr>
+ </table>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">See Also</h5>
+ <ul class="nolist"><li><code><a href="/reference/com/google/android/gms/common/Scopes.html">Scopes</a></code></li>
+ </ul>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="build()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ <a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html">GoogleApiClient</a>
+ </span>
+ <span class="sympad">build</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Builds a new <code><a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html">GoogleApiClient</a></code> object for communicating with the Google
+ APIs.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>The <code><a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html">GoogleApiClient</a></code> object.
+</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="setAccountName(java.lang.String)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ <a href="/reference/com/google/android/gms/common/api/GoogleApiClient.Builder.html">GoogleApiClient.Builder</a>
+ </span>
+ <span class="sympad">setAccountName</span>
+ <span class="normal">(String accountName)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Specify an account name on the device that should be used. If this is never called, the
+ client will use the current default account for Google Play services for this
+ application.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>accountName</td>
+ <td>The account name on the device that should be used by
+ <code><a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html">GoogleApiClient</a></code>.
+</td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="setGravityForPopups(int)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ <a href="/reference/com/google/android/gms/common/api/GoogleApiClient.Builder.html">GoogleApiClient.Builder</a>
+ </span>
+ <span class="sympad">setGravityForPopups</span>
+ <span class="normal">(int gravityForPopups)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Specifies the part of the screen at which games service popups (for example, "welcome
+ back" or "achievement unlocked" popups) will be displayed using gravity.
+ <p>
+ Default value is <code><a href="/reference/android/view/Gravity.html#TOP">TOP</a></code>|<code><a href="/reference/android/view/Gravity.html#CENTER_HORIZONTAL">CENTER_HORIZONTAL</a></code>.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>gravityForPopups</td>
+ <td>The gravity which controls the placement of games service popups.
+</td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="setViewForPopups(android.view.View)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ <a href="/reference/com/google/android/gms/common/api/GoogleApiClient.Builder.html">GoogleApiClient.Builder</a>
+ </span>
+ <span class="sympad">setViewForPopups</span>
+ <span class="normal">(View viewForPopups)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Sets the <code><a href="/reference/android/view/View.html">View</a></code> to use as a content view for popups.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>viewForPopups</td>
+ <td>The view to use as a content view for popups. View cannot be null.
+</td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="useDefaultAccount()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ <a href="/reference/com/google/android/gms/common/api/GoogleApiClient.Builder.html">GoogleApiClient.Builder</a>
+ </span>
+ <span class="sympad">useDefaultAccount</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Specify that the default account should be used when connecting to services.
+</p></div>
+
+ </div>
+</div>
+
+
+
+
+
+<!-- ========= METHOD DETAIL ======== -->
+
+
+
+<!-- ========= END OF CLASS DATA ========= -->
+<A NAME="navbar_top"></A>
+
+<div id="footer" class="wrap" >
+
+
+ <div id="copyright">
+
+ Except as noted, this content is licensed under <a
+ href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.
+ For details and restrictions, see the <a href="/license.html">
+ Content License</a>.
+ </div>
+ <div id="build_info">
+
+<script src="/timestamp.js" type="text/javascript"></script>
+<script>document.write(BUILD_TIMESTAMP)</script>
+
+ </div>
+
+
+ <div id="footerlinks">
+
+ <p>
+ <a href="/about/index.html">About Android</a> |
+ <a href="/legal.html">Legal</a> |
+ <a href="/support.html">Support</a>
+ </p>
+ </div>
+
+</div> <!-- end footer -->
+</div> <!-- jd-content -->
+
+</div><!-- end doc-content -->
+
+</div> <!-- end body-content -->
+
+
+
+
+
+
+</body>
+</html>
diff --git a/docs/html/reference/com/google/android/gms/common/api/GoogleApiClient.ConnectionCallbacks.html b/docs/html/reference/com/google/android/gms/common/api/GoogleApiClient.ConnectionCallbacks.html
new file mode 100644
index 0000000..5b24a01
--- /dev/null
+++ b/docs/html/reference/com/google/android/gms/common/api/GoogleApiClient.ConnectionCallbacks.html
@@ -0,0 +1,963 @@
+<!DOCTYPE html>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<html>
+<head>
+
+
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<meta name="viewport" content="width=device-width" />
+
+<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
+<title>GoogleApiClient.ConnectionCallbacks | Android Developers</title>
+
+<!-- STYLESHEETS -->
+<link rel="stylesheet"
+href="//fonts.googleapis.com/css?family=Roboto:regular,medium,thin,italic,mediumitalic,bold" title="roboto">
+<link href="/assets/css/default.css" rel="stylesheet" type="text/css">
+
+
+
+<!-- JAVASCRIPT -->
+<script src="//www.google.com/jsapi" type="text/javascript"></script>
+<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
+<script type="text/javascript">
+ var toRoot = "/";
+ var metaTags = [];
+ var devsite = false;
+</script>
+<script src="/assets/js/docs.js" type="text/javascript"></script>
+
+<script type="text/javascript">
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-5831155-1']);
+ _gaq.push(['_trackPageview']);
+
+ (function() {
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+ })();
+</script>
+</head>
+<body class="gc-documentation google
+ develop" itemscope itemtype="http://schema.org/Article">
+ <div id="doc-api-level" class="" style="display:none"></div>
+ <a name="top"></a>
+
+<a name="top"></a>
+
+ <!-- Header -->
+ <div id="header">
+ <div class="wrap" id="header-wrap">
+ <div class="col-3 logo">
+ <a href="/index.html">
+ <img src="/assets/images/dac_logo.png" width="123" height="25" alt="Android Developers" />
+ </a>
+ <div class="btn-quicknav" id="btn-quicknav">
+ <a href="#" class="arrow-inactive">Quicknav</a>
+ <a href="#" class="arrow-active">Quicknav</a>
+ </div>
+ </div>
+ <ul class="nav-x col-9">
+ <li class="design">
+ <a href="/design/index.html"
+ zh-tw-lang="設計"
+ zh-cn-lang="设计"
+ ru-lang="Проектирование"
+ ko-lang="디자인"
+ ja-lang="設計"
+ es-lang="Diseñar"
+ >Design</a></li>
+ <li class="develop"><a href="/develop/index.html"
+ zh-tw-lang="開發"
+ zh-cn-lang="开发"
+ ru-lang="Разработка"
+ ko-lang="개발"
+ ja-lang="開発"
+ es-lang="Desarrollar"
+ >Develop</a></li>
+ <li class="distribute last"><a href="/distribute/index.html"
+ zh-tw-lang="發佈"
+ zh-cn-lang="分发"
+ ru-lang="Распространение"
+ ko-lang="배포"
+ ja-lang="配布"
+ es-lang="Distribuir"
+ >Distribute</a></li>
+ </ul>
+
+ <!-- New Search -->
+ <div class="menu-container">
+ <div class="moremenu">
+ <div id="more-btn"></div>
+ </div>
+ <div class="morehover" id="moremenu">
+ <div class="top"></div>
+ <div class="mid">
+ <div class="header">Links</div>
+ <ul>
+ <li><a href="https://play.google.com/apps/publish/">Google Play Developer Console</a></li>
+ <li><a href="http://android-developers.blogspot.com/">Android Developers Blog</a></li>
+ <li><a href="/about/index.html">About Android</a></li>
+ </ul>
+ <div class="header">Android Sites</div>
+ <ul>
+ <li><a href="http://www.android.com">Android.com</a></li>
+ <li class="active"><a>Android Developers</a></li>
+ <li><a href="http://source.android.com">Android Open Source Project</a></li>
+ </ul>
+
+
+
+ <div class="header">Language</div>
+ <div id="language" class="locales">
+ <select name="language" onChange="changeLangPref(this.value, true)">
+ <option value="en">English</option>
+ <option value="es">Español</option>
+ <option value="ja">日本語</option>
+ <option value="ko">한국어</option>
+ <option value="ru">Русский</option>
+ <option value="zh-cn">中文 (中国)</option>
+ <option value="zh-tw">中文 (台灣)</option>
+ </select>
+ </div>
+ <script type="text/javascript">
+ <!--
+ loadLangPref();
+ //-->
+ </script>
+
+
+
+
+ <br class="clearfix" />
+ </div>
+ <div class="bottom"></div>
+ </div>
+ <div class="search" id="search-container">
+ <div class="search-inner">
+ <div id="search-btn"></div>
+ <div class="left"></div>
+ <form onsubmit="return submit_search()">
+ <input id="search_autocomplete" type="text" value="" autocomplete="off" name="q"
+onfocus="search_focus_changed(this, true)" onblur="search_focus_changed(this, false)"
+onkeydown="return search_changed(event, true, '/')"
+onkeyup="return search_changed(event, false, '/')" />
+ </form>
+ <div class="right"></div>
+ <a class="close hide">close</a>
+ <div class="left"></div>
+ <div class="right"></div>
+ </div>
+ </div>
+
+ <div class="search_filtered_wrapper reference">
+ <div class="suggest-card reference no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ </div>
+
+ <div class="search_filtered_wrapper docs">
+ <div class="suggest-card dummy no-display"> </div>
+ <div class="suggest-card develop no-display">
+ <ul class="search_filtered">
+ </ul>
+ <div class="child-card guides no-display">
+ </div>
+ <div class="child-card training no-display">
+ </div>
+ <div class="child-card samples no-display">
+ </div>
+ </div>
+ <div class="suggest-card design no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ <div class="suggest-card distribute no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ </div>
+
+ </div>
+ <!-- /New Search>
+
+
+ <!-- Expanded quicknav -->
+ <div id="quicknav" class="col-9">
+ <ul>
+ <li class="design">
+ <ul>
+ <li><a href="/design/index.html">Get Started</a></li>
+ <li><a href="/design/style/index.html">Style</a></li>
+ <li><a href="/design/patterns/index.html">Patterns</a></li>
+ <li><a href="/design/building-blocks/index.html">Building Blocks</a></li>
+ <li><a href="/design/downloads/index.html">Downloads</a></li>
+ <li><a href="/design/videos/index.html">Videos</a></li>
+ </ul>
+ </li>
+ <li class="develop">
+ <ul>
+ <li><a href="/training/index.html"
+ zh-tw-lang="訓練課程"
+ zh-cn-lang="培训"
+ ru-lang="Курсы"
+ ko-lang="교육"
+ ja-lang="トレーニング"
+ es-lang="Capacitación"
+ >Training</a></li>
+ <li><a href="/guide/index.html"
+ zh-tw-lang="API 指南"
+ zh-cn-lang="API 指南"
+ ru-lang="Руководства по API"
+ ko-lang="API 가이드"
+ ja-lang="API ガイド"
+ es-lang="Guías de la API"
+ >API Guides</a></li>
+ <li><a href="/reference/packages.html"
+ zh-tw-lang="參考資源"
+ zh-cn-lang="参考"
+ ru-lang="Справочник"
+ ko-lang="참조문서"
+ ja-lang="リファレンス"
+ es-lang="Referencia"
+ >Reference</a></li>
+ <li><a href="/tools/index.html"
+ zh-tw-lang="相關工具"
+ zh-cn-lang="工具"
+ ru-lang="Инструменты"
+ ko-lang="도구"
+ ja-lang="ツール"
+ es-lang="Herramientas"
+ >Tools</a>
+ <ul><li><a href="/sdk/index.html">Get the SDK</a></li></ul>
+ </li>
+ <li><a href="/google/index.html">Google Services</a>
+ </li>
+
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
+ </ul>
+ </li>
+ <li class="distribute last">
+ <ul>
+ <li><a href="/distribute/index.html">Google Play</a></li>
+ <li><a href="/distribute/googleplay/publish/index.html">Publishing</a></li>
+ <li><a href="/distribute/googleplay/promote/index.html">Promoting</a></li>
+ <li><a href="/distribute/googleplay/quality/index.html">App Quality</a></li>
+ <li><a href="/distribute/googleplay/spotlight/index.html">Spotlight</a></li>
+ <li><a href="/distribute/open.html">Open Distribution</a></li>
+ </ul>
+ </li>
+ </ul>
+ </div>
+ <!-- /Expanded quicknav -->
+ </div>
+ </div>
+ <!-- /Header -->
+
+
+ <div id="searchResults" class="wrap" style="display:none;">
+ <h2 id="searchTitle">Results</h2>
+ <div id="leftSearchControl" class="search-control">Loading...</div>
+ </div>
+
+
+
+ <!-- Secondary x-nav -->
+ <div id="nav-x">
+ <div class="wrap">
+ <ul class="nav-x col-9 develop" style="width:100%">
+ <li class="training"><a href="/training/index.html"
+ zh-tw-lang="訓練課程"
+ zh-cn-lang="培训"
+ ru-lang="Курсы"
+ ko-lang="교육"
+ ja-lang="トレーニング"
+ es-lang="Capacitación"
+ >Training</a></li>
+ <li class="guide"><a href="/guide/index.html"
+ zh-tw-lang="API 指南"
+ zh-cn-lang="API 指南"
+ ru-lang="Руководства по API"
+ ko-lang="API 가이드"
+ ja-lang="API ガイド"
+ es-lang="Guías de la API"
+ >API Guides</a></li>
+ <li class="reference"><a href="/reference/packages.html"
+ zh-tw-lang="參考資源"
+ zh-cn-lang="参考"
+ ru-lang="Справочник"
+ ko-lang="참조문서"
+ ja-lang="リファレンス"
+ es-lang="Referencia"
+ >Reference</a></li>
+ <li class="tools"><a href="/tools/index.html"
+ zh-tw-lang="相關工具"
+ zh-cn-lang="工具"
+ ru-lang="Инструменты"
+ ko-lang="도구"
+ ja-lang="ツール"
+ es-lang="Herramientas"
+ >Tools</a></li>
+ <li class="google"><a href="/google/index.html"
+ >Google Services</a>
+ </li>
+
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
+ </ul>
+ </div>
+
+ </div>
+ <!-- /Sendondary x-nav -->
+
+
+
+
+
+
+
+
+
+ <div class="wrap clearfix" id="body-content">
+ <div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
+ <div id="devdoc-nav" class="scroll-pane">
+<a class="totop" href="#top" data-g-event="left-nav-top">to top</a>
+
+
+
+<ul id="nav">
+
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/index.html">
+ <span class="en">Overview</span>
+ </a></div>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/games.html">
+ <span class="en">Games</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/location.html">
+ <span class="en">Location</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/plus.html">
+ <span class="en">Google+</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/maps.html">
+ <span class="en">Maps</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play-services/ads.html">
+ <span class="en">Ads</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play-services/id.html">
+ <span class="en">Advertising ID</span></a>
+ </li>
+ </ul>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/wallet.html">
+ <span class="en">Wallet</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/auth.html">
+ <span class="en">Authorization</span>
+ </a></div>
+ </li>
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play-services/index.html">
+ <span class="en">Google Play Services</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play-services/setup.html">
+ <span class="en">Setup</span></a>
+ </li>
+ <li id="gms-tree-list" class="nav-section">
+ <div class="nav-section-header">
+ <a href="/reference/gms-packages.html">
+ <span class="en">Reference</span>
+ </a>
+ <div>
+ </li>
+ </ul>
+ </li>
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/billing/index.html">
+ <span class="en">Google Play In-app Billing</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/billing/billing_overview.html">
+ <span class="en">Overview</span></a>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/api.html">
+ <span class="en">Version 3 API</span></a></div>
+ <ul>
+ <li><a href="/google/play/billing/billing_integrate.html">
+ <span class="en">Implementing the API</span></a></li>
+ <li><a href="/google/play/billing/billing_reference.html">
+ <span class="en">Reference</span></a></li>
+ </ul>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/v2/api.html">
+ <span class="en">Version 2 API</span></a></div>
+ <ul>
+ <li><a href="/google/play/billing/v2/billing_integrate.html">
+ <span class="en">Implementing the API</span></a></li>
+ <li><a href="/google/play/billing/v2/billing_subscriptions.html">
+ <span class="en">Subscriptions</span></a></li>
+ <li><a href="/google/play/billing/v2/billing_reference.html">
+ <span class="en">Reference</span></a></li>
+ </ul>
+ </li>
+ <li><a href="/google/play/billing/billing_subscriptions.html">
+ <span class="en">Subscriptions</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_best_practices.html">
+ <span class="en">Security and Design</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_testing.html">
+ <span class="en">Testing In-app Billing</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_admin.html">
+ <span class="en">Administering In-app Billing</span></a>
+ </li>
+ <li><a href="/google/play/billing/gp-purchase-status-api.html">
+ <span class="en">Purchase Status API</span></a>
+ </li>
+ <li><a href="/google/play/billing/versions.html">
+ <span class="en">Version Notes</span></a>
+ </li>
+ </ul>
+ </li>
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/gcm/index.html">
+ <span class="en">Google Cloud Messaging</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
+ <li><a href="/google/gcm/gs.html">
+ <span class="en">Getting Started</span></a>
+ </li>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
+ </li>
+ <li><a href="/google/gcm/notifications.html">
+ <span class="en">User Notifications</span></a>
+ </li>
+ <li><a href="/google/gcm/adv.html">
+ <span class="en">Advanced Topics</span></a>
+ </li>
+ <li><a href="/google/gcm/c2dm.html">
+ <span class="en">Migration</span></a>
+ </li>
+ <li id="gcm-tree-list" class="nav-section">
+ <div class="nav-section-header">
+ <a href="/reference/gcm-packages.html">
+ <span class="en">Reference</span>
+ </a>
+ <div>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/dist.html">
+ <span class="en">Google Play Distribution</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/filters.html">
+ <span class="en">Filters on Google Play</span></a>
+ </li>
+
+ <li><a href="/google/play/publishing/multiple-apks.html">
+ <span class="en">Multiple APK Support</span></a>
+ </li>
+ <li><a href="/google/play/expansion-files.html">
+ <span class="en">APK Expansion Files</span></a>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/licensing/index.html">
+ <span class="en">Application Licensing</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/licensing/overview.html">
+ <span class="en">Licensing Overview</span></a>
+ </li>
+ <li><a href="/google/play/licensing/setting-up.html">
+ <span class="en">Setting Up for Licensing</span></a>
+ </li>
+ <li><a href="/google/play/licensing/adding-licensing.html">
+ <span class="en">Adding Licensing to Your App</span></a>
+ </li>
+ <li><a href="/google/play/licensing/licensing-reference.html">
+ <span class="en">Licensing Reference</span></a>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/backup/index.html">
+ Android Backup Service</a>
+ </div>
+ <ul>
+ <li><a href="/google/backup/signup.html">
+ Register</a>
+ </li>
+ </ul>
+ </li>
+
+ </ul>
+
+</li>
+
+
+
+</ul>
+
+<script type="text/javascript">
+<!--
+ buildToggleLists();
+ changeNavLang(getLangPref());
+//-->
+</script>
+
+
+
+
+ </div>
+ <script type="text/javascript">
+ showGoogleRefTree();
+
+ </script>
+ </div> <!-- end side-nav -->
+ <script>
+ $(document).ready(function() {
+ scrollIntoView("devdoc-nav");
+ });
+ </script>
+
+
+
+
+
+
+<div class="col-12" id="doc-col">
+
+<div id="api-info-block">
+
+
+
+
+
+
+
+
+
+
+
+<div class="sum-details-links">
+
+Summary:
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <a href="#inhmethods">Inherited Methods</a>
+
+| <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
+
+</div><!-- end sum-details-links -->
+<div class="api-level">
+
+
+
+
+</div>
+</div><!-- end api-info-block -->
+
+
+<!-- ======== START OF CLASS DATA ======== -->
+
+<div id="jd-header">
+ public
+ static
+
+
+ interface
+<h1 itemprop="name">GoogleApiClient.ConnectionCallbacks</h1>
+
+
+
+
+
+ implements
+
+ <a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.ConnectionCallbacks.html">GooglePlayServicesClient.ConnectionCallbacks</a>
+
+
+
+
+
+</div><!-- end header -->
+
+<div id="naMessage"></div>
+
+<div id="jd-content" class="api apilevel-">
+<table class="jd-inheritance-table">
+
+
+ <tr>
+
+ <td colspan="1" class="jd-inheritance-class-cell">com.google.android.gms.common.api.GoogleApiClient.ConnectionCallbacks</td>
+ </tr>
+
+
+</table>
+
+
+
+
+
+
+
+<div class="jd-descr">
+
+
+<h2>Class Overview</h2>
+<p itemprop="articleBody">Provides callbacks that are called when the client is connected or disconnected from the
+ service. Most applications implement
+ <code><a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.ConnectionCallbacks.html#onConnected(android.os.Bundle)">onConnected(Bundle)</a></code> to start making
+ requests.
+</p>
+
+
+
+
+
+</div><!-- jd-descr -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<div class="jd-descr">
+
+
+<h2>Summary</h2>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+<table id="inhmethods" class="jd-sumtable"><tr><th>
+ <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
+ <div style="clear:left;">Inherited Methods</div></th></tr>
+
+
+<tr class="api apilevel-" >
+<td colspan="12">
+ <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.android.gms.common.GooglePlayServicesClient.ConnectionCallbacks" class="jd-expando-trigger closed"
+ ><img id="inherited-methods-com.google.android.gms.common.GooglePlayServicesClient.ConnectionCallbacks-trigger"
+ src="/assets/images/triangle-closed.png"
+ class="jd-expando-trigger-img" /></a>
+From interface
+
+ <a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.ConnectionCallbacks.html">com.google.android.gms.common.GooglePlayServicesClient.ConnectionCallbacks</a>
+
+<div id="inherited-methods-com.google.android.gms.common.GooglePlayServicesClient.ConnectionCallbacks">
+ <div id="inherited-methods-com.google.android.gms.common.GooglePlayServicesClient.ConnectionCallbacks-list"
+ class="jd-inheritedlinks">
+ </div>
+ <div id="inherited-methods-com.google.android.gms.common.GooglePlayServicesClient.ConnectionCallbacks-summary" style="display: none;">
+ <table class="jd-sumtable-expando">
+
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.ConnectionCallbacks.html#onConnected(android.os.Bundle)">onConnected</a></span>(Bundle connectionHint)</nobr>
+
+ <div class="jd-descrdiv">After calling <code><a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.html#connect()">connect()</a></code>, this method will be invoked
+ asynchronously when the connect request has successfully completed.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.ConnectionCallbacks.html#onDisconnected()">onDisconnected</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Called when the client is disconnected.</div>
+
+ </td></tr>
+
+
+</table>
+ </div>
+</div>
+</td></tr>
+
+
+</table>
+
+
+</div><!-- jd-descr (summary) -->
+
+<!-- Details -->
+
+
+
+
+
+
+
+
+<!-- XML Attributes -->
+
+
+<!-- Enum Values -->
+
+
+<!-- Constants -->
+
+
+<!-- Fields -->
+
+
+<!-- Public ctors -->
+
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<!-- Protected ctors -->
+
+
+
+<!-- ========= METHOD DETAIL ======== -->
+<!-- Public methdos -->
+
+
+
+<!-- ========= METHOD DETAIL ======== -->
+
+
+
+<!-- ========= END OF CLASS DATA ========= -->
+<A NAME="navbar_top"></A>
+
+<div id="footer" class="wrap" >
+
+
+ <div id="copyright">
+
+ Except as noted, this content is licensed under <a
+ href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.
+ For details and restrictions, see the <a href="/license.html">
+ Content License</a>.
+ </div>
+ <div id="build_info">
+
+<script src="/timestamp.js" type="text/javascript"></script>
+<script>document.write(BUILD_TIMESTAMP)</script>
+
+ </div>
+
+
+ <div id="footerlinks">
+
+ <p>
+ <a href="/about/index.html">About Android</a> |
+ <a href="/legal.html">Legal</a> |
+ <a href="/support.html">Support</a>
+ </p>
+ </div>
+
+</div> <!-- end footer -->
+</div> <!-- jd-content -->
+
+</div><!-- end doc-content -->
+
+</div> <!-- end body-content -->
+
+
+
+
+
+
+</body>
+</html>
diff --git a/docs/html/reference/com/google/android/gms/common/api/GoogleApiClient.OnConnectionFailedListener.html b/docs/html/reference/com/google/android/gms/common/api/GoogleApiClient.OnConnectionFailedListener.html
new file mode 100644
index 0000000..a0474135
--- /dev/null
+++ b/docs/html/reference/com/google/android/gms/common/api/GoogleApiClient.OnConnectionFailedListener.html
@@ -0,0 +1,943 @@
+<!DOCTYPE html>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<html>
+<head>
+
+
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<meta name="viewport" content="width=device-width" />
+
+<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
+<title>GoogleApiClient.OnConnectionFailedListener | Android Developers</title>
+
+<!-- STYLESHEETS -->
+<link rel="stylesheet"
+href="//fonts.googleapis.com/css?family=Roboto:regular,medium,thin,italic,mediumitalic,bold" title="roboto">
+<link href="/assets/css/default.css" rel="stylesheet" type="text/css">
+
+
+
+<!-- JAVASCRIPT -->
+<script src="//www.google.com/jsapi" type="text/javascript"></script>
+<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
+<script type="text/javascript">
+ var toRoot = "/";
+ var metaTags = [];
+ var devsite = false;
+</script>
+<script src="/assets/js/docs.js" type="text/javascript"></script>
+
+<script type="text/javascript">
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-5831155-1']);
+ _gaq.push(['_trackPageview']);
+
+ (function() {
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+ })();
+</script>
+</head>
+<body class="gc-documentation google
+ develop" itemscope itemtype="http://schema.org/Article">
+ <div id="doc-api-level" class="" style="display:none"></div>
+ <a name="top"></a>
+
+<a name="top"></a>
+
+ <!-- Header -->
+ <div id="header">
+ <div class="wrap" id="header-wrap">
+ <div class="col-3 logo">
+ <a href="/index.html">
+ <img src="/assets/images/dac_logo.png" width="123" height="25" alt="Android Developers" />
+ </a>
+ <div class="btn-quicknav" id="btn-quicknav">
+ <a href="#" class="arrow-inactive">Quicknav</a>
+ <a href="#" class="arrow-active">Quicknav</a>
+ </div>
+ </div>
+ <ul class="nav-x col-9">
+ <li class="design">
+ <a href="/design/index.html"
+ zh-tw-lang="設計"
+ zh-cn-lang="设计"
+ ru-lang="Проектирование"
+ ko-lang="디자인"
+ ja-lang="設計"
+ es-lang="Diseñar"
+ >Design</a></li>
+ <li class="develop"><a href="/develop/index.html"
+ zh-tw-lang="開發"
+ zh-cn-lang="开发"
+ ru-lang="Разработка"
+ ko-lang="개발"
+ ja-lang="開発"
+ es-lang="Desarrollar"
+ >Develop</a></li>
+ <li class="distribute last"><a href="/distribute/index.html"
+ zh-tw-lang="發佈"
+ zh-cn-lang="分发"
+ ru-lang="Распространение"
+ ko-lang="배포"
+ ja-lang="配布"
+ es-lang="Distribuir"
+ >Distribute</a></li>
+ </ul>
+
+ <!-- New Search -->
+ <div class="menu-container">
+ <div class="moremenu">
+ <div id="more-btn"></div>
+ </div>
+ <div class="morehover" id="moremenu">
+ <div class="top"></div>
+ <div class="mid">
+ <div class="header">Links</div>
+ <ul>
+ <li><a href="https://play.google.com/apps/publish/">Google Play Developer Console</a></li>
+ <li><a href="http://android-developers.blogspot.com/">Android Developers Blog</a></li>
+ <li><a href="/about/index.html">About Android</a></li>
+ </ul>
+ <div class="header">Android Sites</div>
+ <ul>
+ <li><a href="http://www.android.com">Android.com</a></li>
+ <li class="active"><a>Android Developers</a></li>
+ <li><a href="http://source.android.com">Android Open Source Project</a></li>
+ </ul>
+
+
+
+ <div class="header">Language</div>
+ <div id="language" class="locales">
+ <select name="language" onChange="changeLangPref(this.value, true)">
+ <option value="en">English</option>
+ <option value="es">Español</option>
+ <option value="ja">日本語</option>
+ <option value="ko">한국어</option>
+ <option value="ru">Русский</option>
+ <option value="zh-cn">中文 (中国)</option>
+ <option value="zh-tw">中文 (台灣)</option>
+ </select>
+ </div>
+ <script type="text/javascript">
+ <!--
+ loadLangPref();
+ //-->
+ </script>
+
+
+
+
+ <br class="clearfix" />
+ </div>
+ <div class="bottom"></div>
+ </div>
+ <div class="search" id="search-container">
+ <div class="search-inner">
+ <div id="search-btn"></div>
+ <div class="left"></div>
+ <form onsubmit="return submit_search()">
+ <input id="search_autocomplete" type="text" value="" autocomplete="off" name="q"
+onfocus="search_focus_changed(this, true)" onblur="search_focus_changed(this, false)"
+onkeydown="return search_changed(event, true, '/')"
+onkeyup="return search_changed(event, false, '/')" />
+ </form>
+ <div class="right"></div>
+ <a class="close hide">close</a>
+ <div class="left"></div>
+ <div class="right"></div>
+ </div>
+ </div>
+
+ <div class="search_filtered_wrapper reference">
+ <div class="suggest-card reference no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ </div>
+
+ <div class="search_filtered_wrapper docs">
+ <div class="suggest-card dummy no-display"> </div>
+ <div class="suggest-card develop no-display">
+ <ul class="search_filtered">
+ </ul>
+ <div class="child-card guides no-display">
+ </div>
+ <div class="child-card training no-display">
+ </div>
+ <div class="child-card samples no-display">
+ </div>
+ </div>
+ <div class="suggest-card design no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ <div class="suggest-card distribute no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ </div>
+
+ </div>
+ <!-- /New Search>
+
+
+ <!-- Expanded quicknav -->
+ <div id="quicknav" class="col-9">
+ <ul>
+ <li class="design">
+ <ul>
+ <li><a href="/design/index.html">Get Started</a></li>
+ <li><a href="/design/style/index.html">Style</a></li>
+ <li><a href="/design/patterns/index.html">Patterns</a></li>
+ <li><a href="/design/building-blocks/index.html">Building Blocks</a></li>
+ <li><a href="/design/downloads/index.html">Downloads</a></li>
+ <li><a href="/design/videos/index.html">Videos</a></li>
+ </ul>
+ </li>
+ <li class="develop">
+ <ul>
+ <li><a href="/training/index.html"
+ zh-tw-lang="訓練課程"
+ zh-cn-lang="培训"
+ ru-lang="Курсы"
+ ko-lang="교육"
+ ja-lang="トレーニング"
+ es-lang="Capacitación"
+ >Training</a></li>
+ <li><a href="/guide/index.html"
+ zh-tw-lang="API 指南"
+ zh-cn-lang="API 指南"
+ ru-lang="Руководства по API"
+ ko-lang="API 가이드"
+ ja-lang="API ガイド"
+ es-lang="Guías de la API"
+ >API Guides</a></li>
+ <li><a href="/reference/packages.html"
+ zh-tw-lang="參考資源"
+ zh-cn-lang="参考"
+ ru-lang="Справочник"
+ ko-lang="참조문서"
+ ja-lang="リファレンス"
+ es-lang="Referencia"
+ >Reference</a></li>
+ <li><a href="/tools/index.html"
+ zh-tw-lang="相關工具"
+ zh-cn-lang="工具"
+ ru-lang="Инструменты"
+ ko-lang="도구"
+ ja-lang="ツール"
+ es-lang="Herramientas"
+ >Tools</a>
+ <ul><li><a href="/sdk/index.html">Get the SDK</a></li></ul>
+ </li>
+ <li><a href="/google/index.html">Google Services</a>
+ </li>
+
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
+ </ul>
+ </li>
+ <li class="distribute last">
+ <ul>
+ <li><a href="/distribute/index.html">Google Play</a></li>
+ <li><a href="/distribute/googleplay/publish/index.html">Publishing</a></li>
+ <li><a href="/distribute/googleplay/promote/index.html">Promoting</a></li>
+ <li><a href="/distribute/googleplay/quality/index.html">App Quality</a></li>
+ <li><a href="/distribute/googleplay/spotlight/index.html">Spotlight</a></li>
+ <li><a href="/distribute/open.html">Open Distribution</a></li>
+ </ul>
+ </li>
+ </ul>
+ </div>
+ <!-- /Expanded quicknav -->
+ </div>
+ </div>
+ <!-- /Header -->
+
+
+ <div id="searchResults" class="wrap" style="display:none;">
+ <h2 id="searchTitle">Results</h2>
+ <div id="leftSearchControl" class="search-control">Loading...</div>
+ </div>
+
+
+
+ <!-- Secondary x-nav -->
+ <div id="nav-x">
+ <div class="wrap">
+ <ul class="nav-x col-9 develop" style="width:100%">
+ <li class="training"><a href="/training/index.html"
+ zh-tw-lang="訓練課程"
+ zh-cn-lang="培训"
+ ru-lang="Курсы"
+ ko-lang="교육"
+ ja-lang="トレーニング"
+ es-lang="Capacitación"
+ >Training</a></li>
+ <li class="guide"><a href="/guide/index.html"
+ zh-tw-lang="API 指南"
+ zh-cn-lang="API 指南"
+ ru-lang="Руководства по API"
+ ko-lang="API 가이드"
+ ja-lang="API ガイド"
+ es-lang="Guías de la API"
+ >API Guides</a></li>
+ <li class="reference"><a href="/reference/packages.html"
+ zh-tw-lang="參考資源"
+ zh-cn-lang="参考"
+ ru-lang="Справочник"
+ ko-lang="참조문서"
+ ja-lang="リファレンス"
+ es-lang="Referencia"
+ >Reference</a></li>
+ <li class="tools"><a href="/tools/index.html"
+ zh-tw-lang="相關工具"
+ zh-cn-lang="工具"
+ ru-lang="Инструменты"
+ ko-lang="도구"
+ ja-lang="ツール"
+ es-lang="Herramientas"
+ >Tools</a></li>
+ <li class="google"><a href="/google/index.html"
+ >Google Services</a>
+ </li>
+
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
+ </ul>
+ </div>
+
+ </div>
+ <!-- /Sendondary x-nav -->
+
+
+
+
+
+
+
+
+
+ <div class="wrap clearfix" id="body-content">
+ <div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
+ <div id="devdoc-nav" class="scroll-pane">
+<a class="totop" href="#top" data-g-event="left-nav-top">to top</a>
+
+
+
+<ul id="nav">
+
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/index.html">
+ <span class="en">Overview</span>
+ </a></div>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/games.html">
+ <span class="en">Games</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/location.html">
+ <span class="en">Location</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/plus.html">
+ <span class="en">Google+</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/maps.html">
+ <span class="en">Maps</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play-services/ads.html">
+ <span class="en">Ads</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play-services/id.html">
+ <span class="en">Advertising ID</span></a>
+ </li>
+ </ul>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/wallet.html">
+ <span class="en">Wallet</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/auth.html">
+ <span class="en">Authorization</span>
+ </a></div>
+ </li>
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play-services/index.html">
+ <span class="en">Google Play Services</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play-services/setup.html">
+ <span class="en">Setup</span></a>
+ </li>
+ <li id="gms-tree-list" class="nav-section">
+ <div class="nav-section-header">
+ <a href="/reference/gms-packages.html">
+ <span class="en">Reference</span>
+ </a>
+ <div>
+ </li>
+ </ul>
+ </li>
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/billing/index.html">
+ <span class="en">Google Play In-app Billing</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/billing/billing_overview.html">
+ <span class="en">Overview</span></a>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/api.html">
+ <span class="en">Version 3 API</span></a></div>
+ <ul>
+ <li><a href="/google/play/billing/billing_integrate.html">
+ <span class="en">Implementing the API</span></a></li>
+ <li><a href="/google/play/billing/billing_reference.html">
+ <span class="en">Reference</span></a></li>
+ </ul>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/v2/api.html">
+ <span class="en">Version 2 API</span></a></div>
+ <ul>
+ <li><a href="/google/play/billing/v2/billing_integrate.html">
+ <span class="en">Implementing the API</span></a></li>
+ <li><a href="/google/play/billing/v2/billing_subscriptions.html">
+ <span class="en">Subscriptions</span></a></li>
+ <li><a href="/google/play/billing/v2/billing_reference.html">
+ <span class="en">Reference</span></a></li>
+ </ul>
+ </li>
+ <li><a href="/google/play/billing/billing_subscriptions.html">
+ <span class="en">Subscriptions</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_best_practices.html">
+ <span class="en">Security and Design</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_testing.html">
+ <span class="en">Testing In-app Billing</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_admin.html">
+ <span class="en">Administering In-app Billing</span></a>
+ </li>
+ <li><a href="/google/play/billing/gp-purchase-status-api.html">
+ <span class="en">Purchase Status API</span></a>
+ </li>
+ <li><a href="/google/play/billing/versions.html">
+ <span class="en">Version Notes</span></a>
+ </li>
+ </ul>
+ </li>
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/gcm/index.html">
+ <span class="en">Google Cloud Messaging</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
+ <li><a href="/google/gcm/gs.html">
+ <span class="en">Getting Started</span></a>
+ </li>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
+ </li>
+ <li><a href="/google/gcm/notifications.html">
+ <span class="en">User Notifications</span></a>
+ </li>
+ <li><a href="/google/gcm/adv.html">
+ <span class="en">Advanced Topics</span></a>
+ </li>
+ <li><a href="/google/gcm/c2dm.html">
+ <span class="en">Migration</span></a>
+ </li>
+ <li id="gcm-tree-list" class="nav-section">
+ <div class="nav-section-header">
+ <a href="/reference/gcm-packages.html">
+ <span class="en">Reference</span>
+ </a>
+ <div>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/dist.html">
+ <span class="en">Google Play Distribution</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/filters.html">
+ <span class="en">Filters on Google Play</span></a>
+ </li>
+
+ <li><a href="/google/play/publishing/multiple-apks.html">
+ <span class="en">Multiple APK Support</span></a>
+ </li>
+ <li><a href="/google/play/expansion-files.html">
+ <span class="en">APK Expansion Files</span></a>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/licensing/index.html">
+ <span class="en">Application Licensing</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/licensing/overview.html">
+ <span class="en">Licensing Overview</span></a>
+ </li>
+ <li><a href="/google/play/licensing/setting-up.html">
+ <span class="en">Setting Up for Licensing</span></a>
+ </li>
+ <li><a href="/google/play/licensing/adding-licensing.html">
+ <span class="en">Adding Licensing to Your App</span></a>
+ </li>
+ <li><a href="/google/play/licensing/licensing-reference.html">
+ <span class="en">Licensing Reference</span></a>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/backup/index.html">
+ Android Backup Service</a>
+ </div>
+ <ul>
+ <li><a href="/google/backup/signup.html">
+ Register</a>
+ </li>
+ </ul>
+ </li>
+
+ </ul>
+
+</li>
+
+
+
+</ul>
+
+<script type="text/javascript">
+<!--
+ buildToggleLists();
+ changeNavLang(getLangPref());
+//-->
+</script>
+
+
+
+
+ </div>
+ <script type="text/javascript">
+ showGoogleRefTree();
+
+ </script>
+ </div> <!-- end side-nav -->
+ <script>
+ $(document).ready(function() {
+ scrollIntoView("devdoc-nav");
+ });
+ </script>
+
+
+
+
+
+
+<div class="col-12" id="doc-col">
+
+<div id="api-info-block">
+
+
+
+
+
+
+
+
+
+
+
+<div class="sum-details-links">
+
+Summary:
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <a href="#inhmethods">Inherited Methods</a>
+
+| <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
+
+</div><!-- end sum-details-links -->
+<div class="api-level">
+
+
+
+
+</div>
+</div><!-- end api-info-block -->
+
+
+<!-- ======== START OF CLASS DATA ======== -->
+
+<div id="jd-header">
+ public
+ static
+
+
+ interface
+<h1 itemprop="name">GoogleApiClient.OnConnectionFailedListener</h1>
+
+
+
+
+
+ implements
+
+ <a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.OnConnectionFailedListener.html">GooglePlayServicesClient.OnConnectionFailedListener</a>
+
+
+
+
+
+</div><!-- end header -->
+
+<div id="naMessage"></div>
+
+<div id="jd-content" class="api apilevel-">
+<table class="jd-inheritance-table">
+
+
+ <tr>
+
+ <td colspan="1" class="jd-inheritance-class-cell">com.google.android.gms.common.api.GoogleApiClient.OnConnectionFailedListener</td>
+ </tr>
+
+
+</table>
+
+
+
+
+
+
+
+<div class="jd-descr">
+
+
+<h2>Class Overview</h2>
+<p itemprop="articleBody">Provides callbacks for scenarios that result in a failed attempt to
+ connect the client to the service. See <code><a href="/reference/com/google/android/gms/common/ConnectionResult.html">ConnectionResult</a></code>
+ for a list of error codes and suggestions for resolution.
+</p>
+
+
+
+
+
+</div><!-- jd-descr -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<div class="jd-descr">
+
+
+<h2>Summary</h2>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+<table id="inhmethods" class="jd-sumtable"><tr><th>
+ <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
+ <div style="clear:left;">Inherited Methods</div></th></tr>
+
+
+<tr class="api apilevel-" >
+<td colspan="12">
+ <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.android.gms.common.GooglePlayServicesClient.OnConnectionFailedListener" class="jd-expando-trigger closed"
+ ><img id="inherited-methods-com.google.android.gms.common.GooglePlayServicesClient.OnConnectionFailedListener-trigger"
+ src="/assets/images/triangle-closed.png"
+ class="jd-expando-trigger-img" /></a>
+From interface
+
+ <a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.OnConnectionFailedListener.html">com.google.android.gms.common.GooglePlayServicesClient.OnConnectionFailedListener</a>
+
+<div id="inherited-methods-com.google.android.gms.common.GooglePlayServicesClient.OnConnectionFailedListener">
+ <div id="inherited-methods-com.google.android.gms.common.GooglePlayServicesClient.OnConnectionFailedListener-list"
+ class="jd-inheritedlinks">
+ </div>
+ <div id="inherited-methods-com.google.android.gms.common.GooglePlayServicesClient.OnConnectionFailedListener-summary" style="display: none;">
+ <table class="jd-sumtable-expando">
+
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.OnConnectionFailedListener.html#onConnectionFailed(com.google.android.gms.common.ConnectionResult)">onConnectionFailed</a></span>(<a href="/reference/com/google/android/gms/common/ConnectionResult.html">ConnectionResult</a> result)</nobr>
+
+ <div class="jd-descrdiv">Called when there was an error connecting the client to the service.</div>
+
+ </td></tr>
+
+
+</table>
+ </div>
+</div>
+</td></tr>
+
+
+</table>
+
+
+</div><!-- jd-descr (summary) -->
+
+<!-- Details -->
+
+
+
+
+
+
+
+
+<!-- XML Attributes -->
+
+
+<!-- Enum Values -->
+
+
+<!-- Constants -->
+
+
+<!-- Fields -->
+
+
+<!-- Public ctors -->
+
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<!-- Protected ctors -->
+
+
+
+<!-- ========= METHOD DETAIL ======== -->
+<!-- Public methdos -->
+
+
+
+<!-- ========= METHOD DETAIL ======== -->
+
+
+
+<!-- ========= END OF CLASS DATA ========= -->
+<A NAME="navbar_top"></A>
+
+<div id="footer" class="wrap" >
+
+
+ <div id="copyright">
+
+ Except as noted, this content is licensed under <a
+ href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.
+ For details and restrictions, see the <a href="/license.html">
+ Content License</a>.
+ </div>
+ <div id="build_info">
+
+<script src="/timestamp.js" type="text/javascript"></script>
+<script>document.write(BUILD_TIMESTAMP)</script>
+
+ </div>
+
+
+ <div id="footerlinks">
+
+ <p>
+ <a href="/about/index.html">About Android</a> |
+ <a href="/legal.html">Legal</a> |
+ <a href="/support.html">Support</a>
+ </p>
+ </div>
+
+</div> <!-- end footer -->
+</div> <!-- jd-content -->
+
+</div><!-- end doc-content -->
+
+</div> <!-- end body-content -->
+
+
+
+
+
+
+</body>
+</html>
diff --git a/docs/html/reference/com/google/android/gms/common/api/GoogleApiClient.html b/docs/html/reference/com/google/android/gms/common/api/GoogleApiClient.html
new file mode 100644
index 0000000..04f8240
--- /dev/null
+++ b/docs/html/reference/com/google/android/gms/common/api/GoogleApiClient.html
@@ -0,0 +1,1878 @@
+<!DOCTYPE html>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<html>
+<head>
+
+
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<meta name="viewport" content="width=device-width" />
+
+<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
+<title>GoogleApiClient | Android Developers</title>
+
+<!-- STYLESHEETS -->
+<link rel="stylesheet"
+href="//fonts.googleapis.com/css?family=Roboto:regular,medium,thin,italic,mediumitalic,bold" title="roboto">
+<link href="/assets/css/default.css" rel="stylesheet" type="text/css">
+
+
+
+<!-- JAVASCRIPT -->
+<script src="//www.google.com/jsapi" type="text/javascript"></script>
+<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
+<script type="text/javascript">
+ var toRoot = "/";
+ var metaTags = [];
+ var devsite = false;
+</script>
+<script src="/assets/js/docs.js" type="text/javascript"></script>
+
+<script type="text/javascript">
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-5831155-1']);
+ _gaq.push(['_trackPageview']);
+
+ (function() {
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+ })();
+</script>
+</head>
+<body class="gc-documentation google
+ develop" itemscope itemtype="http://schema.org/Article">
+ <div id="doc-api-level" class="" style="display:none"></div>
+ <a name="top"></a>
+
+<a name="top"></a>
+
+ <!-- Header -->
+ <div id="header">
+ <div class="wrap" id="header-wrap">
+ <div class="col-3 logo">
+ <a href="/index.html">
+ <img src="/assets/images/dac_logo.png" width="123" height="25" alt="Android Developers" />
+ </a>
+ <div class="btn-quicknav" id="btn-quicknav">
+ <a href="#" class="arrow-inactive">Quicknav</a>
+ <a href="#" class="arrow-active">Quicknav</a>
+ </div>
+ </div>
+ <ul class="nav-x col-9">
+ <li class="design">
+ <a href="/design/index.html"
+ zh-tw-lang="設計"
+ zh-cn-lang="设计"
+ ru-lang="Проектирование"
+ ko-lang="디자인"
+ ja-lang="設計"
+ es-lang="Diseñar"
+ >Design</a></li>
+ <li class="develop"><a href="/develop/index.html"
+ zh-tw-lang="開發"
+ zh-cn-lang="开发"
+ ru-lang="Разработка"
+ ko-lang="개발"
+ ja-lang="開発"
+ es-lang="Desarrollar"
+ >Develop</a></li>
+ <li class="distribute last"><a href="/distribute/index.html"
+ zh-tw-lang="發佈"
+ zh-cn-lang="分发"
+ ru-lang="Распространение"
+ ko-lang="배포"
+ ja-lang="配布"
+ es-lang="Distribuir"
+ >Distribute</a></li>
+ </ul>
+
+ <!-- New Search -->
+ <div class="menu-container">
+ <div class="moremenu">
+ <div id="more-btn"></div>
+ </div>
+ <div class="morehover" id="moremenu">
+ <div class="top"></div>
+ <div class="mid">
+ <div class="header">Links</div>
+ <ul>
+ <li><a href="https://play.google.com/apps/publish/">Google Play Developer Console</a></li>
+ <li><a href="http://android-developers.blogspot.com/">Android Developers Blog</a></li>
+ <li><a href="/about/index.html">About Android</a></li>
+ </ul>
+ <div class="header">Android Sites</div>
+ <ul>
+ <li><a href="http://www.android.com">Android.com</a></li>
+ <li class="active"><a>Android Developers</a></li>
+ <li><a href="http://source.android.com">Android Open Source Project</a></li>
+ </ul>
+
+
+
+ <div class="header">Language</div>
+ <div id="language" class="locales">
+ <select name="language" onChange="changeLangPref(this.value, true)">
+ <option value="en">English</option>
+ <option value="es">Español</option>
+ <option value="ja">日本語</option>
+ <option value="ko">한국어</option>
+ <option value="ru">Русский</option>
+ <option value="zh-cn">中文 (中国)</option>
+ <option value="zh-tw">中文 (台灣)</option>
+ </select>
+ </div>
+ <script type="text/javascript">
+ <!--
+ loadLangPref();
+ //-->
+ </script>
+
+
+
+
+ <br class="clearfix" />
+ </div>
+ <div class="bottom"></div>
+ </div>
+ <div class="search" id="search-container">
+ <div class="search-inner">
+ <div id="search-btn"></div>
+ <div class="left"></div>
+ <form onsubmit="return submit_search()">
+ <input id="search_autocomplete" type="text" value="" autocomplete="off" name="q"
+onfocus="search_focus_changed(this, true)" onblur="search_focus_changed(this, false)"
+onkeydown="return search_changed(event, true, '/')"
+onkeyup="return search_changed(event, false, '/')" />
+ </form>
+ <div class="right"></div>
+ <a class="close hide">close</a>
+ <div class="left"></div>
+ <div class="right"></div>
+ </div>
+ </div>
+
+ <div class="search_filtered_wrapper reference">
+ <div class="suggest-card reference no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ </div>
+
+ <div class="search_filtered_wrapper docs">
+ <div class="suggest-card dummy no-display"> </div>
+ <div class="suggest-card develop no-display">
+ <ul class="search_filtered">
+ </ul>
+ <div class="child-card guides no-display">
+ </div>
+ <div class="child-card training no-display">
+ </div>
+ <div class="child-card samples no-display">
+ </div>
+ </div>
+ <div class="suggest-card design no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ <div class="suggest-card distribute no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ </div>
+
+ </div>
+ <!-- /New Search>
+
+
+ <!-- Expanded quicknav -->
+ <div id="quicknav" class="col-9">
+ <ul>
+ <li class="design">
+ <ul>
+ <li><a href="/design/index.html">Get Started</a></li>
+ <li><a href="/design/style/index.html">Style</a></li>
+ <li><a href="/design/patterns/index.html">Patterns</a></li>
+ <li><a href="/design/building-blocks/index.html">Building Blocks</a></li>
+ <li><a href="/design/downloads/index.html">Downloads</a></li>
+ <li><a href="/design/videos/index.html">Videos</a></li>
+ </ul>
+ </li>
+ <li class="develop">
+ <ul>
+ <li><a href="/training/index.html"
+ zh-tw-lang="訓練課程"
+ zh-cn-lang="培训"
+ ru-lang="Курсы"
+ ko-lang="교육"
+ ja-lang="トレーニング"
+ es-lang="Capacitación"
+ >Training</a></li>
+ <li><a href="/guide/index.html"
+ zh-tw-lang="API 指南"
+ zh-cn-lang="API 指南"
+ ru-lang="Руководства по API"
+ ko-lang="API 가이드"
+ ja-lang="API ガイド"
+ es-lang="Guías de la API"
+ >API Guides</a></li>
+ <li><a href="/reference/packages.html"
+ zh-tw-lang="參考資源"
+ zh-cn-lang="参考"
+ ru-lang="Справочник"
+ ko-lang="참조문서"
+ ja-lang="リファレンス"
+ es-lang="Referencia"
+ >Reference</a></li>
+ <li><a href="/tools/index.html"
+ zh-tw-lang="相關工具"
+ zh-cn-lang="工具"
+ ru-lang="Инструменты"
+ ko-lang="도구"
+ ja-lang="ツール"
+ es-lang="Herramientas"
+ >Tools</a>
+ <ul><li><a href="/sdk/index.html">Get the SDK</a></li></ul>
+ </li>
+ <li><a href="/google/index.html">Google Services</a>
+ </li>
+
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
+ </ul>
+ </li>
+ <li class="distribute last">
+ <ul>
+ <li><a href="/distribute/index.html">Google Play</a></li>
+ <li><a href="/distribute/googleplay/publish/index.html">Publishing</a></li>
+ <li><a href="/distribute/googleplay/promote/index.html">Promoting</a></li>
+ <li><a href="/distribute/googleplay/quality/index.html">App Quality</a></li>
+ <li><a href="/distribute/googleplay/spotlight/index.html">Spotlight</a></li>
+ <li><a href="/distribute/open.html">Open Distribution</a></li>
+ </ul>
+ </li>
+ </ul>
+ </div>
+ <!-- /Expanded quicknav -->
+ </div>
+ </div>
+ <!-- /Header -->
+
+
+ <div id="searchResults" class="wrap" style="display:none;">
+ <h2 id="searchTitle">Results</h2>
+ <div id="leftSearchControl" class="search-control">Loading...</div>
+ </div>
+
+
+
+ <!-- Secondary x-nav -->
+ <div id="nav-x">
+ <div class="wrap">
+ <ul class="nav-x col-9 develop" style="width:100%">
+ <li class="training"><a href="/training/index.html"
+ zh-tw-lang="訓練課程"
+ zh-cn-lang="培训"
+ ru-lang="Курсы"
+ ko-lang="교육"
+ ja-lang="トレーニング"
+ es-lang="Capacitación"
+ >Training</a></li>
+ <li class="guide"><a href="/guide/index.html"
+ zh-tw-lang="API 指南"
+ zh-cn-lang="API 指南"
+ ru-lang="Руководства по API"
+ ko-lang="API 가이드"
+ ja-lang="API ガイド"
+ es-lang="Guías de la API"
+ >API Guides</a></li>
+ <li class="reference"><a href="/reference/packages.html"
+ zh-tw-lang="參考資源"
+ zh-cn-lang="参考"
+ ru-lang="Справочник"
+ ko-lang="참조문서"
+ ja-lang="リファレンス"
+ es-lang="Referencia"
+ >Reference</a></li>
+ <li class="tools"><a href="/tools/index.html"
+ zh-tw-lang="相關工具"
+ zh-cn-lang="工具"
+ ru-lang="Инструменты"
+ ko-lang="도구"
+ ja-lang="ツール"
+ es-lang="Herramientas"
+ >Tools</a></li>
+ <li class="google"><a href="/google/index.html"
+ >Google Services</a>
+ </li>
+
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
+ </ul>
+ </div>
+
+ </div>
+ <!-- /Sendondary x-nav -->
+
+
+
+
+
+
+
+
+
+ <div class="wrap clearfix" id="body-content">
+ <div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
+ <div id="devdoc-nav" class="scroll-pane">
+<a class="totop" href="#top" data-g-event="left-nav-top">to top</a>
+
+
+
+<ul id="nav">
+
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/index.html">
+ <span class="en">Overview</span>
+ </a></div>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/games.html">
+ <span class="en">Games</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/location.html">
+ <span class="en">Location</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/plus.html">
+ <span class="en">Google+</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/maps.html">
+ <span class="en">Maps</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play-services/ads.html">
+ <span class="en">Ads</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play-services/id.html">
+ <span class="en">Advertising ID</span></a>
+ </li>
+ </ul>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/wallet.html">
+ <span class="en">Wallet</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/auth.html">
+ <span class="en">Authorization</span>
+ </a></div>
+ </li>
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play-services/index.html">
+ <span class="en">Google Play Services</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play-services/setup.html">
+ <span class="en">Setup</span></a>
+ </li>
+ <li id="gms-tree-list" class="nav-section">
+ <div class="nav-section-header">
+ <a href="/reference/gms-packages.html">
+ <span class="en">Reference</span>
+ </a>
+ <div>
+ </li>
+ </ul>
+ </li>
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/billing/index.html">
+ <span class="en">Google Play In-app Billing</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/billing/billing_overview.html">
+ <span class="en">Overview</span></a>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/api.html">
+ <span class="en">Version 3 API</span></a></div>
+ <ul>
+ <li><a href="/google/play/billing/billing_integrate.html">
+ <span class="en">Implementing the API</span></a></li>
+ <li><a href="/google/play/billing/billing_reference.html">
+ <span class="en">Reference</span></a></li>
+ </ul>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/v2/api.html">
+ <span class="en">Version 2 API</span></a></div>
+ <ul>
+ <li><a href="/google/play/billing/v2/billing_integrate.html">
+ <span class="en">Implementing the API</span></a></li>
+ <li><a href="/google/play/billing/v2/billing_subscriptions.html">
+ <span class="en">Subscriptions</span></a></li>
+ <li><a href="/google/play/billing/v2/billing_reference.html">
+ <span class="en">Reference</span></a></li>
+ </ul>
+ </li>
+ <li><a href="/google/play/billing/billing_subscriptions.html">
+ <span class="en">Subscriptions</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_best_practices.html">
+ <span class="en">Security and Design</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_testing.html">
+ <span class="en">Testing In-app Billing</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_admin.html">
+ <span class="en">Administering In-app Billing</span></a>
+ </li>
+ <li><a href="/google/play/billing/gp-purchase-status-api.html">
+ <span class="en">Purchase Status API</span></a>
+ </li>
+ <li><a href="/google/play/billing/versions.html">
+ <span class="en">Version Notes</span></a>
+ </li>
+ </ul>
+ </li>
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/gcm/index.html">
+ <span class="en">Google Cloud Messaging</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
+ <li><a href="/google/gcm/gs.html">
+ <span class="en">Getting Started</span></a>
+ </li>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
+ </li>
+ <li><a href="/google/gcm/notifications.html">
+ <span class="en">User Notifications</span></a>
+ </li>
+ <li><a href="/google/gcm/adv.html">
+ <span class="en">Advanced Topics</span></a>
+ </li>
+ <li><a href="/google/gcm/c2dm.html">
+ <span class="en">Migration</span></a>
+ </li>
+ <li id="gcm-tree-list" class="nav-section">
+ <div class="nav-section-header">
+ <a href="/reference/gcm-packages.html">
+ <span class="en">Reference</span>
+ </a>
+ <div>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/dist.html">
+ <span class="en">Google Play Distribution</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/filters.html">
+ <span class="en">Filters on Google Play</span></a>
+ </li>
+
+ <li><a href="/google/play/publishing/multiple-apks.html">
+ <span class="en">Multiple APK Support</span></a>
+ </li>
+ <li><a href="/google/play/expansion-files.html">
+ <span class="en">APK Expansion Files</span></a>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/licensing/index.html">
+ <span class="en">Application Licensing</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/licensing/overview.html">
+ <span class="en">Licensing Overview</span></a>
+ </li>
+ <li><a href="/google/play/licensing/setting-up.html">
+ <span class="en">Setting Up for Licensing</span></a>
+ </li>
+ <li><a href="/google/play/licensing/adding-licensing.html">
+ <span class="en">Adding Licensing to Your App</span></a>
+ </li>
+ <li><a href="/google/play/licensing/licensing-reference.html">
+ <span class="en">Licensing Reference</span></a>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/backup/index.html">
+ Android Backup Service</a>
+ </div>
+ <ul>
+ <li><a href="/google/backup/signup.html">
+ Register</a>
+ </li>
+ </ul>
+ </li>
+
+ </ul>
+
+</li>
+
+
+
+</ul>
+
+<script type="text/javascript">
+<!--
+ buildToggleLists();
+ changeNavLang(getLangPref());
+//-->
+</script>
+
+
+
+
+ </div>
+ <script type="text/javascript">
+ showGoogleRefTree();
+
+ </script>
+ </div> <!-- end side-nav -->
+ <script>
+ $(document).ready(function() {
+ scrollIntoView("devdoc-nav");
+ });
+ </script>
+
+
+
+
+
+
+<div class="col-12" id="doc-col">
+
+<div id="api-info-block">
+
+
+
+
+
+
+
+
+
+
+
+<div class="sum-details-links">
+
+Summary:
+
+ <a href="#nestedclasses">Nested Classes</a>
+
+
+
+
+
+
+
+
+
+
+
+
+ | <a href="#pubmethods">Methods</a>
+
+
+
+
+ | <a href="#inhmethods">Inherited Methods</a>
+
+| <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
+
+</div><!-- end sum-details-links -->
+<div class="api-level">
+
+
+
+
+</div>
+</div><!-- end api-info-block -->
+
+
+<!-- ======== START OF CLASS DATA ======== -->
+
+<div id="jd-header">
+ public
+
+ final
+
+ class
+<h1 itemprop="name">GoogleApiClient</h1>
+
+
+
+
+ extends Object<br/>
+
+
+
+
+
+
+
+
+
+</div><!-- end header -->
+
+<div id="naMessage"></div>
+
+<div id="jd-content" class="api apilevel-">
+<table class="jd-inheritance-table">
+
+
+ <tr>
+
+ <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
+ </tr>
+
+
+ <tr>
+
+ <td class="jd-inheritance-space"> ↳</td>
+
+ <td colspan="1" class="jd-inheritance-class-cell">com.google.android.gms.common.api.GoogleApiClient</td>
+ </tr>
+
+
+</table>
+
+
+
+
+
+
+
+<div class="jd-descr">
+
+
+<h2>Class Overview</h2>
+<p class="caution">
+ The GoogleApiClient API is currently in <strong>developer
+ preview</strong>. Applications compiled using this version of the API will
+ continue to operate on devices using future versions of Google Play services;
+ however, changes to the API are expected in future releases.
+</p>
+<p itemprop="articleBody">The main entry point for Google Play services integration.
+ <p>
+ GooglePlayServicesClient is used with a variety of static methods. Some of these methods
+ require that GoogleApiClient be connected, some will queue up calls before
+ GoogleApiClient is connected; check the specific API documentation to determine
+ whether you need to be connected.
+ <p>
+ Before any operation is executed, the GoogleApiClient must be connected using the
+ <code><a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html#connect()">connect()</a></code> method. The client is not considered connected until the
+ <code><a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.ConnectionCallbacks.html#onConnected(android.os.Bundle)">onConnected(Bundle)</a></code> callback has been called.
+ <p>
+ When your app is done using this client, call <code><a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html#disconnect()">disconnect()</a></code>, even if the async result from
+ <code><a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html#connect()">connect()</a></code> has not yet been delivered.
+ <p>
+ You should instantiate this object in your Activity's <code><a href="/reference/android/app/Activity.html#onCreate(android.os.Bundle)">onCreate(Bundle)</a></code> method and then
+ call <code><a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html#connect()">connect()</a></code> in <code><a href="/reference/android/app/Activity.html#onStart()">onStart()</a></code> and <code><a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html#disconnect()">disconnect()</a></code> in
+ <code><a href="/reference/android/app/Activity.html#onStop()">onStop()</a></code>, regardless of the state.
+</p>
+
+
+
+
+
+</div><!-- jd-descr -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<div class="jd-descr">
+
+
+<h2>Summary</h2>
+
+
+
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<table id="nestedclasses" class="jd-sumtable"><tr><th colspan="12">Nested Classes</th></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+ interface</nobr></td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/common/api/GoogleApiClient.ApiOptions.html">GoogleApiClient.ApiOptions</a></td>
+ <td class="jd-descrcol" width="100%">Base interface for API options. </td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+ class</nobr></td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/common/api/GoogleApiClient.Builder.html">GoogleApiClient.Builder</a></td>
+ <td class="jd-descrcol" width="100%">Builder to configure a <code><a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html">GoogleApiClient</a></code>. </td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+ interface</nobr></td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/common/api/GoogleApiClient.ConnectionCallbacks.html">GoogleApiClient.ConnectionCallbacks</a></td>
+ <td class="jd-descrcol" width="100%">Provides callbacks that are called when the client is connected or disconnected from the
+ service. </td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+ interface</nobr></td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/common/api/GoogleApiClient.OnConnectionFailedListener.html">GoogleApiClient.OnConnectionFailedListener</a></td>
+ <td class="jd-descrcol" width="100%">Provides callbacks for scenarios that result in a failed attempt to
+ connect the client to the service. </td>
+ </tr>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
+
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html#connect()">connect</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Connects the client to Google Play services.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html#disconnect()">disconnect</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Closes the connection to Google Play services.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html#isConnected()">isConnected</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Checks if the client is currently connected to the service, so that requests to other methods
+ will succeed.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html#isConnecting()">isConnecting</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Checks if the client is attempting to connect to the service.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html#isConnectionCallbacksRegistered(com.google.android.gms.common.api.GoogleApiClient.ConnectionCallbacks)">isConnectionCallbacksRegistered</a></span>(<a href="/reference/com/google/android/gms/common/api/GoogleApiClient.ConnectionCallbacks.html">GoogleApiClient.ConnectionCallbacks</a> listener)</nobr>
+
+ <div class="jd-descrdiv">Returns true if the specified listener is currently registered to
+ receive connection events.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html#isConnectionFailedListenerRegistered(com.google.android.gms.common.api.GoogleApiClient.OnConnectionFailedListener)">isConnectionFailedListenerRegistered</a></span>(<a href="/reference/com/google/android/gms/common/api/GoogleApiClient.OnConnectionFailedListener.html">GoogleApiClient.OnConnectionFailedListener</a> listener)</nobr>
+
+ <div class="jd-descrdiv">Returns true if the specified listener is currently registered to
+ receive connection failed events.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html#reconnect()">reconnect</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Closes the current connection to Google Play services and creates a new connection.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html#registerConnectionCallbacks(com.google.android.gms.common.api.GoogleApiClient.ConnectionCallbacks)">registerConnectionCallbacks</a></span>(<a href="/reference/com/google/android/gms/common/api/GoogleApiClient.ConnectionCallbacks.html">GoogleApiClient.ConnectionCallbacks</a> listener)</nobr>
+
+ <div class="jd-descrdiv">Registers a listener to receive connection events from this <code>GoogleApiClient</code>.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html#registerConnectionFailedListener(com.google.android.gms.common.api.GoogleApiClient.OnConnectionFailedListener)">registerConnectionFailedListener</a></span>(<a href="/reference/com/google/android/gms/common/api/GoogleApiClient.OnConnectionFailedListener.html">GoogleApiClient.OnConnectionFailedListener</a> listener)</nobr>
+
+ <div class="jd-descrdiv">Registers a listener to receive connection failed events from this
+ <code>GoogleApiClient</code>.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html#unregisterConnectionCallbacks(com.google.android.gms.common.api.GoogleApiClient.ConnectionCallbacks)">unregisterConnectionCallbacks</a></span>(<a href="/reference/com/google/android/gms/common/api/GoogleApiClient.ConnectionCallbacks.html">GoogleApiClient.ConnectionCallbacks</a> listener)</nobr>
+
+ <div class="jd-descrdiv">Removes a connection listener from this <code>GoogleApiClient</code>.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html#unregisterConnectionFailedListener(com.google.android.gms.common.api.GoogleApiClient.OnConnectionFailedListener)">unregisterConnectionFailedListener</a></span>(<a href="/reference/com/google/android/gms/common/api/GoogleApiClient.OnConnectionFailedListener.html">GoogleApiClient.OnConnectionFailedListener</a> listener)</nobr>
+
+ <div class="jd-descrdiv">Removes a connection failed listener from the <code>GoogleApiClient</code>.</div>
+
+ </td></tr>
+
+
+
+</table>
+
+
+
+
+
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+<table id="inhmethods" class="jd-sumtable"><tr><th>
+ <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
+ <div style="clear:left;">Inherited Methods</div></th></tr>
+
+
+<tr class="api apilevel-" >
+<td colspan="12">
+ <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
+ ><img id="inherited-methods-java.lang.Object-trigger"
+ src="/assets/images/triangle-closed.png"
+ class="jd-expando-trigger-img" /></a>
+From class
+
+ java.lang.Object
+
+<div id="inherited-methods-java.lang.Object">
+ <div id="inherited-methods-java.lang.Object-list"
+ class="jd-inheritedlinks">
+ </div>
+ <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
+ <table class="jd-sumtable-expando">
+
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ Object</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">clone</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">equals</span>(Object arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">finalize</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ Class<?></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getClass</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">hashCode</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">notify</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">notifyAll</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ String</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">toString</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">wait</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">wait</span>(long arg0)</nobr>
+
+ </td></tr>
+
+
+</table>
+ </div>
+</div>
+</td></tr>
+
+
+</table>
+
+
+</div><!-- jd-descr (summary) -->
+
+<!-- Details -->
+
+
+
+
+
+
+
+
+<!-- XML Attributes -->
+
+
+<!-- Enum Values -->
+
+
+<!-- Constants -->
+
+
+<!-- Fields -->
+
+
+<!-- Public ctors -->
+
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<!-- Protected ctors -->
+
+
+
+<!-- ========= METHOD DETAIL ======== -->
+<!-- Public methdos -->
+
+<h2>Public Methods</h2>
+
+
+
+<A NAME="connect()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ void
+ </span>
+ <span class="sympad">connect</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Connects the client to Google Play services. This method returns immediately, and connects to
+ the service in the background. If the connection is successful,
+ <code><a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.ConnectionCallbacks.html#onConnected(android.os.Bundle)">onConnected(Bundle)</a></code> is called and enqueued items are executed. On a
+ failure, <code><a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.OnConnectionFailedListener.html#onConnectionFailed(com.google.android.gms.common.ConnectionResult)">onConnectionFailed(ConnectionResult)</a></code> is called.
+</p></div>
+
+ </div>
+</div>
+
+
+<A NAME="disconnect()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ void
+ </span>
+ <span class="sympad">disconnect</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Closes the connection to Google Play services. No calls can be made using this client after
+ calling this method. Any queued tasks will be cleared and the tasks and callbacks will never
+ be executed.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">See Also</h5>
+ <ul class="nolist"><li><code><a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html#connect()">connect()</a></code></li>
+ </ul>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="isConnected()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ boolean
+ </span>
+ <span class="sympad">isConnected</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Checks if the client is currently connected to the service, so that requests to other methods
+ will succeed. Applications should guard client actions caused by the user with a call to
+ this method.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>true if the client is connected to the service.
+</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="isConnecting()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ boolean
+ </span>
+ <span class="sympad">isConnecting</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Checks if the client is attempting to connect to the service.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>true if the client is attempting to connect to the service.
+</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="isConnectionCallbacksRegistered(com.google.android.gms.common.api.GoogleApiClient.ConnectionCallbacks)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ boolean
+ </span>
+ <span class="sympad">isConnectionCallbacksRegistered</span>
+ <span class="normal">(<a href="/reference/com/google/android/gms/common/api/GoogleApiClient.ConnectionCallbacks.html">GoogleApiClient.ConnectionCallbacks</a> listener)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Returns true if the specified listener is currently registered to
+ receive connection events.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>listener</td>
+ <td>The listener to check for.</td>
+ </tr>
+ </table>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>true if the specified listener is currently registered to receive connection
+ events.</li></ul>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">See Also</h5>
+ <ul class="nolist"><li><code><a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html#registerConnectionCallbacks(com.google.android.gms.common.api.GoogleApiClient.ConnectionCallbacks)">registerConnectionCallbacks(ConnectionCallbacks)</a></code></li><li><code><a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html#unregisterConnectionCallbacks(com.google.android.gms.common.api.GoogleApiClient.ConnectionCallbacks)">unregisterConnectionCallbacks(ConnectionCallbacks)</a></code></li>
+ </ul>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="isConnectionFailedListenerRegistered(com.google.android.gms.common.api.GoogleApiClient.OnConnectionFailedListener)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ boolean
+ </span>
+ <span class="sympad">isConnectionFailedListenerRegistered</span>
+ <span class="normal">(<a href="/reference/com/google/android/gms/common/api/GoogleApiClient.OnConnectionFailedListener.html">GoogleApiClient.OnConnectionFailedListener</a> listener)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Returns true if the specified listener is currently registered to
+ receive connection failed events.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>listener</td>
+ <td>The listener to check for.</td>
+ </tr>
+ </table>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>true if the specified listener is currently registered to receive connection
+ failed events.</li></ul>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">See Also</h5>
+ <ul class="nolist"><li><code><a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html#registerConnectionFailedListener(com.google.android.gms.common.api.GoogleApiClient.OnConnectionFailedListener)">registerConnectionFailedListener(OnConnectionFailedListener)</a></code></li><li><code><a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html#unregisterConnectionFailedListener(com.google.android.gms.common.api.GoogleApiClient.OnConnectionFailedListener)">unregisterConnectionFailedListener(OnConnectionFailedListener)</a></code></li>
+ </ul>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="reconnect()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ void
+ </span>
+ <span class="sympad">reconnect</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Closes the current connection to Google Play services and creates a new connection.
+ <p>
+ This method closes the current connection then returns immediately and reconnects to the
+ service in the background.
+ <p>
+ After calling this method, your application will receive
+ <code><a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.ConnectionCallbacks.html#onConnected(android.os.Bundle)">onConnected(Bundle)</a></code> if the connection is successful, or
+ <code><a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.OnConnectionFailedListener.html#onConnectionFailed(com.google.android.gms.common.ConnectionResult)">onConnectionFailed(ConnectionResult)</a></code> if the connection failed.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">See Also</h5>
+ <ul class="nolist"><li><code><a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html#connect()">connect()</a></code></li><li><code><a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html#disconnect()">disconnect()</a></code></li>
+ </ul>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="registerConnectionCallbacks(com.google.android.gms.common.api.GoogleApiClient.ConnectionCallbacks)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ void
+ </span>
+ <span class="sympad">registerConnectionCallbacks</span>
+ <span class="normal">(<a href="/reference/com/google/android/gms/common/api/GoogleApiClient.ConnectionCallbacks.html">GoogleApiClient.ConnectionCallbacks</a> listener)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Registers a listener to receive connection events from this <code>GoogleApiClient</code>.
+ If the service is already connected, the listener's <code><a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.ConnectionCallbacks.html#onConnected(android.os.Bundle)">onConnected(Bundle)</a></code>
+ method will be called immediately. Applications should balance calls to this method with
+ calls to <code><a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html#unregisterConnectionCallbacks(com.google.android.gms.common.api.GoogleApiClient.ConnectionCallbacks)">unregisterConnectionCallbacks(ConnectionCallbacks)</a></code> to avoid leaking
+ resources.
+ <p>
+ If the specified listener is already registered to receive connection events, this
+ method will not add a duplicate entry for the same listener, but <strong>will</strong>
+ still call the listener's <code><a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.ConnectionCallbacks.html#onConnected(android.os.Bundle)">onConnected(Bundle)</a></code> method if currently
+ connected.
+ <p>
+ Note that the order of messages received here may not be stable, so clients should not rely
+ on the order that multiple listeners receive events in.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>listener</td>
+ <td>the listener where the results of the asynchronous <code><a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html#connect()">connect()</a></code> call are
+ delivered.
+</td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="registerConnectionFailedListener(com.google.android.gms.common.api.GoogleApiClient.OnConnectionFailedListener)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ void
+ </span>
+ <span class="sympad">registerConnectionFailedListener</span>
+ <span class="normal">(<a href="/reference/com/google/android/gms/common/api/GoogleApiClient.OnConnectionFailedListener.html">GoogleApiClient.OnConnectionFailedListener</a> listener)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Registers a listener to receive connection failed events from this
+ <code>GoogleApiClient</code>. Unlike <code><a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html#registerConnectionCallbacks(com.google.android.gms.common.api.GoogleApiClient.ConnectionCallbacks)">registerConnectionCallbacks(GoogleApiClient.ConnectionCallbacks)</a></code>, if the service
+ is not already connected, the listener's
+ <code><a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.OnConnectionFailedListener.html#onConnectionFailed(com.google.android.gms.common.ConnectionResult)">onConnectionFailed(ConnectionResult)</a></code> method will not be called immediately.
+ Applications should balance calls to this method with calls to
+ <code><a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html#unregisterConnectionFailedListener(com.google.android.gms.common.api.GoogleApiClient.OnConnectionFailedListener)">unregisterConnectionFailedListener(OnConnectionFailedListener)</a></code> to avoid leaking
+ resources.
+ <p>
+ If the specified listener is already registered to receive connection failed events, this
+ method will not add a duplicate entry for the same listener.
+ <p>
+ Note that the order of messages received here may not be stable, so clients should not rely
+ on the order that multiple listeners receive events in.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>listener</td>
+ <td>the listener where the results of the asynchronous <code><a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html#connect()">connect()</a></code> call are
+ delivered.
+</td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="unregisterConnectionCallbacks(com.google.android.gms.common.api.GoogleApiClient.ConnectionCallbacks)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ void
+ </span>
+ <span class="sympad">unregisterConnectionCallbacks</span>
+ <span class="normal">(<a href="/reference/com/google/android/gms/common/api/GoogleApiClient.ConnectionCallbacks.html">GoogleApiClient.ConnectionCallbacks</a> listener)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Removes a connection listener from this <code>GoogleApiClient</code>. Note that removing
+ a listener does not generate any callbacks.
+ <p>
+ If the specified listener is not currently registered to receive connection events, this
+ method will have no effect.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>listener</td>
+ <td>the listener to unregister.
+</td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="unregisterConnectionFailedListener(com.google.android.gms.common.api.GoogleApiClient.OnConnectionFailedListener)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ void
+ </span>
+ <span class="sympad">unregisterConnectionFailedListener</span>
+ <span class="normal">(<a href="/reference/com/google/android/gms/common/api/GoogleApiClient.OnConnectionFailedListener.html">GoogleApiClient.OnConnectionFailedListener</a> listener)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Removes a connection failed listener from the <code>GoogleApiClient</code>.
+ Note that removing a listener does not generate any callbacks.
+ <p>
+ If the specified listener is not currently registered to receive connection failed events,
+ this method will have no effect.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>listener</td>
+ <td>the listener to unregister.
+</td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
+
+
+
+<!-- ========= METHOD DETAIL ======== -->
+
+
+
+<!-- ========= END OF CLASS DATA ========= -->
+<A NAME="navbar_top"></A>
+
+<div id="footer" class="wrap" >
+
+
+ <div id="copyright">
+
+ Except as noted, this content is licensed under <a
+ href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.
+ For details and restrictions, see the <a href="/license.html">
+ Content License</a>.
+ </div>
+ <div id="build_info">
+
+<script src="/timestamp.js" type="text/javascript"></script>
+<script>document.write(BUILD_TIMESTAMP)</script>
+
+ </div>
+
+
+ <div id="footerlinks">
+
+ <p>
+ <a href="/about/index.html">About Android</a> |
+ <a href="/legal.html">Legal</a> |
+ <a href="/support.html">Support</a>
+ </p>
+ </div>
+
+</div> <!-- end footer -->
+</div> <!-- jd-content -->
+
+</div><!-- end doc-content -->
+
+</div> <!-- end body-content -->
+
+
+
+
+
+
+</body>
+</html>
diff --git a/docs/html/reference/com/google/android/gms/common/api/PendingResult.html b/docs/html/reference/com/google/android/gms/common/api/PendingResult.html
new file mode 100644
index 0000000..fe6df17
--- /dev/null
+++ b/docs/html/reference/com/google/android/gms/common/api/PendingResult.html
@@ -0,0 +1,1164 @@
+<!DOCTYPE html>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<html>
+<head>
+
+
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<meta name="viewport" content="width=device-width" />
+
+<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
+<title>PendingResult | Android Developers</title>
+
+<!-- STYLESHEETS -->
+<link rel="stylesheet"
+href="//fonts.googleapis.com/css?family=Roboto:regular,medium,thin,italic,mediumitalic,bold" title="roboto">
+<link href="/assets/css/default.css" rel="stylesheet" type="text/css">
+
+
+
+<!-- JAVASCRIPT -->
+<script src="//www.google.com/jsapi" type="text/javascript"></script>
+<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
+<script type="text/javascript">
+ var toRoot = "/";
+ var metaTags = [];
+ var devsite = false;
+</script>
+<script src="/assets/js/docs.js" type="text/javascript"></script>
+
+<script type="text/javascript">
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-5831155-1']);
+ _gaq.push(['_trackPageview']);
+
+ (function() {
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+ })();
+</script>
+</head>
+<body class="gc-documentation google
+ develop" itemscope itemtype="http://schema.org/Article">
+ <div id="doc-api-level" class="" style="display:none"></div>
+ <a name="top"></a>
+
+<a name="top"></a>
+
+ <!-- Header -->
+ <div id="header">
+ <div class="wrap" id="header-wrap">
+ <div class="col-3 logo">
+ <a href="/index.html">
+ <img src="/assets/images/dac_logo.png" width="123" height="25" alt="Android Developers" />
+ </a>
+ <div class="btn-quicknav" id="btn-quicknav">
+ <a href="#" class="arrow-inactive">Quicknav</a>
+ <a href="#" class="arrow-active">Quicknav</a>
+ </div>
+ </div>
+ <ul class="nav-x col-9">
+ <li class="design">
+ <a href="/design/index.html"
+ zh-tw-lang="設計"
+ zh-cn-lang="设计"
+ ru-lang="Проектирование"
+ ko-lang="디자인"
+ ja-lang="設計"
+ es-lang="Diseñar"
+ >Design</a></li>
+ <li class="develop"><a href="/develop/index.html"
+ zh-tw-lang="開發"
+ zh-cn-lang="开发"
+ ru-lang="Разработка"
+ ko-lang="개발"
+ ja-lang="開発"
+ es-lang="Desarrollar"
+ >Develop</a></li>
+ <li class="distribute last"><a href="/distribute/index.html"
+ zh-tw-lang="發佈"
+ zh-cn-lang="分发"
+ ru-lang="Распространение"
+ ko-lang="배포"
+ ja-lang="配布"
+ es-lang="Distribuir"
+ >Distribute</a></li>
+ </ul>
+
+ <!-- New Search -->
+ <div class="menu-container">
+ <div class="moremenu">
+ <div id="more-btn"></div>
+ </div>
+ <div class="morehover" id="moremenu">
+ <div class="top"></div>
+ <div class="mid">
+ <div class="header">Links</div>
+ <ul>
+ <li><a href="https://play.google.com/apps/publish/">Google Play Developer Console</a></li>
+ <li><a href="http://android-developers.blogspot.com/">Android Developers Blog</a></li>
+ <li><a href="/about/index.html">About Android</a></li>
+ </ul>
+ <div class="header">Android Sites</div>
+ <ul>
+ <li><a href="http://www.android.com">Android.com</a></li>
+ <li class="active"><a>Android Developers</a></li>
+ <li><a href="http://source.android.com">Android Open Source Project</a></li>
+ </ul>
+
+
+
+ <div class="header">Language</div>
+ <div id="language" class="locales">
+ <select name="language" onChange="changeLangPref(this.value, true)">
+ <option value="en">English</option>
+ <option value="es">Español</option>
+ <option value="ja">日本語</option>
+ <option value="ko">한국어</option>
+ <option value="ru">Русский</option>
+ <option value="zh-cn">中文 (中国)</option>
+ <option value="zh-tw">中文 (台灣)</option>
+ </select>
+ </div>
+ <script type="text/javascript">
+ <!--
+ loadLangPref();
+ //-->
+ </script>
+
+
+
+
+ <br class="clearfix" />
+ </div>
+ <div class="bottom"></div>
+ </div>
+ <div class="search" id="search-container">
+ <div class="search-inner">
+ <div id="search-btn"></div>
+ <div class="left"></div>
+ <form onsubmit="return submit_search()">
+ <input id="search_autocomplete" type="text" value="" autocomplete="off" name="q"
+onfocus="search_focus_changed(this, true)" onblur="search_focus_changed(this, false)"
+onkeydown="return search_changed(event, true, '/')"
+onkeyup="return search_changed(event, false, '/')" />
+ </form>
+ <div class="right"></div>
+ <a class="close hide">close</a>
+ <div class="left"></div>
+ <div class="right"></div>
+ </div>
+ </div>
+
+ <div class="search_filtered_wrapper reference">
+ <div class="suggest-card reference no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ </div>
+
+ <div class="search_filtered_wrapper docs">
+ <div class="suggest-card dummy no-display"> </div>
+ <div class="suggest-card develop no-display">
+ <ul class="search_filtered">
+ </ul>
+ <div class="child-card guides no-display">
+ </div>
+ <div class="child-card training no-display">
+ </div>
+ <div class="child-card samples no-display">
+ </div>
+ </div>
+ <div class="suggest-card design no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ <div class="suggest-card distribute no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ </div>
+
+ </div>
+ <!-- /New Search>
+
+
+ <!-- Expanded quicknav -->
+ <div id="quicknav" class="col-9">
+ <ul>
+ <li class="design">
+ <ul>
+ <li><a href="/design/index.html">Get Started</a></li>
+ <li><a href="/design/style/index.html">Style</a></li>
+ <li><a href="/design/patterns/index.html">Patterns</a></li>
+ <li><a href="/design/building-blocks/index.html">Building Blocks</a></li>
+ <li><a href="/design/downloads/index.html">Downloads</a></li>
+ <li><a href="/design/videos/index.html">Videos</a></li>
+ </ul>
+ </li>
+ <li class="develop">
+ <ul>
+ <li><a href="/training/index.html"
+ zh-tw-lang="訓練課程"
+ zh-cn-lang="培训"
+ ru-lang="Курсы"
+ ko-lang="교육"
+ ja-lang="トレーニング"
+ es-lang="Capacitación"
+ >Training</a></li>
+ <li><a href="/guide/index.html"
+ zh-tw-lang="API 指南"
+ zh-cn-lang="API 指南"
+ ru-lang="Руководства по API"
+ ko-lang="API 가이드"
+ ja-lang="API ガイド"
+ es-lang="Guías de la API"
+ >API Guides</a></li>
+ <li><a href="/reference/packages.html"
+ zh-tw-lang="參考資源"
+ zh-cn-lang="参考"
+ ru-lang="Справочник"
+ ko-lang="참조문서"
+ ja-lang="リファレンス"
+ es-lang="Referencia"
+ >Reference</a></li>
+ <li><a href="/tools/index.html"
+ zh-tw-lang="相關工具"
+ zh-cn-lang="工具"
+ ru-lang="Инструменты"
+ ko-lang="도구"
+ ja-lang="ツール"
+ es-lang="Herramientas"
+ >Tools</a>
+ <ul><li><a href="/sdk/index.html">Get the SDK</a></li></ul>
+ </li>
+ <li><a href="/google/index.html">Google Services</a>
+ </li>
+
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
+ </ul>
+ </li>
+ <li class="distribute last">
+ <ul>
+ <li><a href="/distribute/index.html">Google Play</a></li>
+ <li><a href="/distribute/googleplay/publish/index.html">Publishing</a></li>
+ <li><a href="/distribute/googleplay/promote/index.html">Promoting</a></li>
+ <li><a href="/distribute/googleplay/quality/index.html">App Quality</a></li>
+ <li><a href="/distribute/googleplay/spotlight/index.html">Spotlight</a></li>
+ <li><a href="/distribute/open.html">Open Distribution</a></li>
+ </ul>
+ </li>
+ </ul>
+ </div>
+ <!-- /Expanded quicknav -->
+ </div>
+ </div>
+ <!-- /Header -->
+
+
+ <div id="searchResults" class="wrap" style="display:none;">
+ <h2 id="searchTitle">Results</h2>
+ <div id="leftSearchControl" class="search-control">Loading...</div>
+ </div>
+
+
+
+ <!-- Secondary x-nav -->
+ <div id="nav-x">
+ <div class="wrap">
+ <ul class="nav-x col-9 develop" style="width:100%">
+ <li class="training"><a href="/training/index.html"
+ zh-tw-lang="訓練課程"
+ zh-cn-lang="培训"
+ ru-lang="Курсы"
+ ko-lang="교육"
+ ja-lang="トレーニング"
+ es-lang="Capacitación"
+ >Training</a></li>
+ <li class="guide"><a href="/guide/index.html"
+ zh-tw-lang="API 指南"
+ zh-cn-lang="API 指南"
+ ru-lang="Руководства по API"
+ ko-lang="API 가이드"
+ ja-lang="API ガイド"
+ es-lang="Guías de la API"
+ >API Guides</a></li>
+ <li class="reference"><a href="/reference/packages.html"
+ zh-tw-lang="參考資源"
+ zh-cn-lang="参考"
+ ru-lang="Справочник"
+ ko-lang="참조문서"
+ ja-lang="リファレンス"
+ es-lang="Referencia"
+ >Reference</a></li>
+ <li class="tools"><a href="/tools/index.html"
+ zh-tw-lang="相關工具"
+ zh-cn-lang="工具"
+ ru-lang="Инструменты"
+ ko-lang="도구"
+ ja-lang="ツール"
+ es-lang="Herramientas"
+ >Tools</a></li>
+ <li class="google"><a href="/google/index.html"
+ >Google Services</a>
+ </li>
+
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
+ </ul>
+ </div>
+
+ </div>
+ <!-- /Sendondary x-nav -->
+
+
+
+
+
+
+
+
+
+ <div class="wrap clearfix" id="body-content">
+ <div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
+ <div id="devdoc-nav" class="scroll-pane">
+<a class="totop" href="#top" data-g-event="left-nav-top">to top</a>
+
+
+
+<ul id="nav">
+
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/index.html">
+ <span class="en">Overview</span>
+ </a></div>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/games.html">
+ <span class="en">Games</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/location.html">
+ <span class="en">Location</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/plus.html">
+ <span class="en">Google+</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/maps.html">
+ <span class="en">Maps</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play-services/ads.html">
+ <span class="en">Ads</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play-services/id.html">
+ <span class="en">Advertising ID</span></a>
+ </li>
+ </ul>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/wallet.html">
+ <span class="en">Wallet</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/auth.html">
+ <span class="en">Authorization</span>
+ </a></div>
+ </li>
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play-services/index.html">
+ <span class="en">Google Play Services</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play-services/setup.html">
+ <span class="en">Setup</span></a>
+ </li>
+ <li id="gms-tree-list" class="nav-section">
+ <div class="nav-section-header">
+ <a href="/reference/gms-packages.html">
+ <span class="en">Reference</span>
+ </a>
+ <div>
+ </li>
+ </ul>
+ </li>
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/billing/index.html">
+ <span class="en">Google Play In-app Billing</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/billing/billing_overview.html">
+ <span class="en">Overview</span></a>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/api.html">
+ <span class="en">Version 3 API</span></a></div>
+ <ul>
+ <li><a href="/google/play/billing/billing_integrate.html">
+ <span class="en">Implementing the API</span></a></li>
+ <li><a href="/google/play/billing/billing_reference.html">
+ <span class="en">Reference</span></a></li>
+ </ul>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/v2/api.html">
+ <span class="en">Version 2 API</span></a></div>
+ <ul>
+ <li><a href="/google/play/billing/v2/billing_integrate.html">
+ <span class="en">Implementing the API</span></a></li>
+ <li><a href="/google/play/billing/v2/billing_subscriptions.html">
+ <span class="en">Subscriptions</span></a></li>
+ <li><a href="/google/play/billing/v2/billing_reference.html">
+ <span class="en">Reference</span></a></li>
+ </ul>
+ </li>
+ <li><a href="/google/play/billing/billing_subscriptions.html">
+ <span class="en">Subscriptions</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_best_practices.html">
+ <span class="en">Security and Design</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_testing.html">
+ <span class="en">Testing In-app Billing</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_admin.html">
+ <span class="en">Administering In-app Billing</span></a>
+ </li>
+ <li><a href="/google/play/billing/gp-purchase-status-api.html">
+ <span class="en">Purchase Status API</span></a>
+ </li>
+ <li><a href="/google/play/billing/versions.html">
+ <span class="en">Version Notes</span></a>
+ </li>
+ </ul>
+ </li>
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/gcm/index.html">
+ <span class="en">Google Cloud Messaging</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
+ <li><a href="/google/gcm/gs.html">
+ <span class="en">Getting Started</span></a>
+ </li>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
+ </li>
+ <li><a href="/google/gcm/notifications.html">
+ <span class="en">User Notifications</span></a>
+ </li>
+ <li><a href="/google/gcm/adv.html">
+ <span class="en">Advanced Topics</span></a>
+ </li>
+ <li><a href="/google/gcm/c2dm.html">
+ <span class="en">Migration</span></a>
+ </li>
+ <li id="gcm-tree-list" class="nav-section">
+ <div class="nav-section-header">
+ <a href="/reference/gcm-packages.html">
+ <span class="en">Reference</span>
+ </a>
+ <div>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/dist.html">
+ <span class="en">Google Play Distribution</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/filters.html">
+ <span class="en">Filters on Google Play</span></a>
+ </li>
+
+ <li><a href="/google/play/publishing/multiple-apks.html">
+ <span class="en">Multiple APK Support</span></a>
+ </li>
+ <li><a href="/google/play/expansion-files.html">
+ <span class="en">APK Expansion Files</span></a>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/licensing/index.html">
+ <span class="en">Application Licensing</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/licensing/overview.html">
+ <span class="en">Licensing Overview</span></a>
+ </li>
+ <li><a href="/google/play/licensing/setting-up.html">
+ <span class="en">Setting Up for Licensing</span></a>
+ </li>
+ <li><a href="/google/play/licensing/adding-licensing.html">
+ <span class="en">Adding Licensing to Your App</span></a>
+ </li>
+ <li><a href="/google/play/licensing/licensing-reference.html">
+ <span class="en">Licensing Reference</span></a>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/backup/index.html">
+ Android Backup Service</a>
+ </div>
+ <ul>
+ <li><a href="/google/backup/signup.html">
+ Register</a>
+ </li>
+ </ul>
+ </li>
+
+ </ul>
+
+</li>
+
+
+
+</ul>
+
+<script type="text/javascript">
+<!--
+ buildToggleLists();
+ changeNavLang(getLangPref());
+//-->
+</script>
+
+
+
+
+ </div>
+ <script type="text/javascript">
+ showGoogleRefTree();
+
+ </script>
+ </div> <!-- end side-nav -->
+ <script>
+ $(document).ready(function() {
+ scrollIntoView("devdoc-nav");
+ });
+ </script>
+
+
+
+
+
+
+<div class="col-12" id="doc-col">
+
+<div id="api-info-block">
+
+
+
+
+
+
+
+
+
+
+
+<div class="sum-details-links">
+
+Summary:
+
+
+
+
+
+
+
+
+
+
+
+ <a href="#pubmethods">Methods</a>
+
+
+
+
+ | <a href="#inhmethods">Inherited Methods</a>
+
+| <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
+
+</div><!-- end sum-details-links -->
+<div class="api-level">
+
+
+
+
+</div>
+</div><!-- end api-info-block -->
+
+
+<!-- ======== START OF CLASS DATA ======== -->
+
+<div id="jd-header">
+ public
+
+
+
+ interface
+<h1 itemprop="name">PendingResult</h1>
+
+
+
+
+
+ implements
+
+ <a href="/reference/com/google/android/gms/common/api/Releasable.html">Releasable</a>
+
+
+
+
+
+</div><!-- end header -->
+
+<div id="naMessage"></div>
+
+<div id="jd-content" class="api apilevel-">
+<table class="jd-inheritance-table">
+
+
+ <tr>
+
+ <td colspan="1" class="jd-inheritance-class-cell">com.google.android.gms.common.api.PendingResult<R extends <a href="/reference/com/google/android/gms/common/api/Result.html">com.google.android.gms.common.api.Result</a>, C></td>
+ </tr>
+
+
+</table>
+
+
+
+
+
+
+
+<div class="jd-descr">
+
+
+<h2>Class Overview</h2>
+<p itemprop="articleBody">Represents a pending result from calling an API method in Google Play services. The final result
+ object from a PendingResult<R,C> is of class R, which can be retrieved in one of two ways.
+ <ul>
+ <li>via blocking calls to <code><a href="/reference/com/google/android/gms/common/api/PendingResult.html#await()">await()</a></code>, or <code><a href="/reference/com/google/android/gms/common/api/PendingResult.html#await(long, java.util.concurrent.TimeUnit)">await(long, TimeUnit)</a></code>, or
+ <li>via a callback by passing in an object implementing interface C to
+ <code><a href="/reference/com/google/android/gms/common/api/PendingResult.html#addResultCallback(C)">addResultCallback(C)</a></code>.
+ </ul>
+ <p>
+ Some method calls may hold resources that need to be closed (e.g. any <code><a href="/reference/com/google/android/gms/common/data/DataBuffer.html">DataBuffer</a></code> in the
+ result). Resources can be released individually, or all resources that are part of the final
+ result can be released by calling <code><a href="/reference/com/google/android/gms/common/api/PendingResult.html#release()">release()</a></code>. Note it is safe to release resources
+ before the final results.
+ <p></p>
+
+
+
+
+
+</div><!-- jd-descr -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<div class="jd-descr">
+
+
+<h2>Summary</h2>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
+
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/common/api/PendingResult.html#addResultCallback(C)">addResultCallback</a></span>(C callback)</nobr>
+
+ <div class="jd-descrdiv">Add your callback here if you want the result to be delivered via a callback when the
+ result is ready.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ R</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/common/api/PendingResult.html#await()">await</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Blocks until the task is completed.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ R</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/common/api/PendingResult.html#await(long, java.util.concurrent.TimeUnit)">await</a></span>(long time, TimeUnit units)</nobr>
+
+ <div class="jd-descrdiv">Blocks until the task is completed or has timed out waiting for the result.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/common/api/PendingResult.html#release()">release</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Releases any open resources.</div>
+
+ </td></tr>
+
+
+
+</table>
+
+
+
+
+
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+<table id="inhmethods" class="jd-sumtable"><tr><th>
+ <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
+ <div style="clear:left;">Inherited Methods</div></th></tr>
+
+
+<tr class="api apilevel-" >
+<td colspan="12">
+ <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.android.gms.common.api.Releasable" class="jd-expando-trigger closed"
+ ><img id="inherited-methods-com.google.android.gms.common.api.Releasable-trigger"
+ src="/assets/images/triangle-closed.png"
+ class="jd-expando-trigger-img" /></a>
+From interface
+
+ <a href="/reference/com/google/android/gms/common/api/Releasable.html">com.google.android.gms.common.api.Releasable</a>
+
+<div id="inherited-methods-com.google.android.gms.common.api.Releasable">
+ <div id="inherited-methods-com.google.android.gms.common.api.Releasable-list"
+ class="jd-inheritedlinks">
+ </div>
+ <div id="inherited-methods-com.google.android.gms.common.api.Releasable-summary" style="display: none;">
+ <table class="jd-sumtable-expando">
+
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/common/api/Releasable.html#release()">release</a></span>()</nobr>
+
+ </td></tr>
+
+
+</table>
+ </div>
+</div>
+</td></tr>
+
+
+</table>
+
+
+</div><!-- jd-descr (summary) -->
+
+<!-- Details -->
+
+
+
+
+
+
+
+
+<!-- XML Attributes -->
+
+
+<!-- Enum Values -->
+
+
+<!-- Constants -->
+
+
+<!-- Fields -->
+
+
+<!-- Public ctors -->
+
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<!-- Protected ctors -->
+
+
+
+<!-- ========= METHOD DETAIL ======== -->
+<!-- Public methdos -->
+
+<h2>Public Methods</h2>
+
+
+
+<A NAME="addResultCallback(C)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+ abstract
+
+ void
+ </span>
+ <span class="sympad">addResultCallback</span>
+ <span class="normal">(C callback)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Add your callback here if you want the result to be delivered via a callback when the
+ result is ready.
+</p></div>
+
+ </div>
+</div>
+
+
+<A NAME="await()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+ abstract
+
+ R
+ </span>
+ <span class="sympad">await</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Blocks until the task is completed. This is not allowed on the UI thread. The returned
+ result object can have an additional failure mode of <code><a href="/reference/com/google/android/gms/common/api/Status.html#INTERRUPTED">INTERRUPTED</a></code>.
+</p></div>
+
+ </div>
+</div>
+
+
+<A NAME="await(long, java.util.concurrent.TimeUnit)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+ abstract
+
+ R
+ </span>
+ <span class="sympad">await</span>
+ <span class="normal">(long time, TimeUnit units)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Blocks until the task is completed or has timed out waiting for the result. This is not
+ allowed on the UI thread. The returned result object can have an additional failure mode of
+ <code><a href="/reference/com/google/android/gms/common/api/Status.html#INTERRUPTED">INTERRUPTED</a></code>.
+</p></div>
+
+ </div>
+</div>
+
+
+<A NAME="release()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+ abstract
+
+ void
+ </span>
+ <span class="sympad">release</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Releases any open resources. This is safe to call before results are ready.
+</p></div>
+
+ </div>
+</div>
+
+
+
+
+
+<!-- ========= METHOD DETAIL ======== -->
+
+
+
+<!-- ========= END OF CLASS DATA ========= -->
+<A NAME="navbar_top"></A>
+
+<div id="footer" class="wrap" >
+
+
+ <div id="copyright">
+
+ Except as noted, this content is licensed under <a
+ href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.
+ For details and restrictions, see the <a href="/license.html">
+ Content License</a>.
+ </div>
+ <div id="build_info">
+
+<script src="/timestamp.js" type="text/javascript"></script>
+<script>document.write(BUILD_TIMESTAMP)</script>
+
+ </div>
+
+
+ <div id="footerlinks">
+
+ <p>
+ <a href="/about/index.html">About Android</a> |
+ <a href="/legal.html">Legal</a> |
+ <a href="/support.html">Support</a>
+ </p>
+ </div>
+
+</div> <!-- end footer -->
+</div> <!-- jd-content -->
+
+</div><!-- end doc-content -->
+
+</div> <!-- end body-content -->
+
+
+
+
+
+
+</body>
+</html>
diff --git a/docs/html/reference/com/google/android/gms/common/api/Releasable.html b/docs/html/reference/com/google/android/gms/common/api/Releasable.html
new file mode 100644
index 0000000..8be46ca
--- /dev/null
+++ b/docs/html/reference/com/google/android/gms/common/api/Releasable.html
@@ -0,0 +1,969 @@
+<!DOCTYPE html>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<html>
+<head>
+
+
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<meta name="viewport" content="width=device-width" />
+
+<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
+<title>Releasable | Android Developers</title>
+
+<!-- STYLESHEETS -->
+<link rel="stylesheet"
+href="//fonts.googleapis.com/css?family=Roboto:regular,medium,thin,italic,mediumitalic,bold" title="roboto">
+<link href="/assets/css/default.css" rel="stylesheet" type="text/css">
+
+
+
+<!-- JAVASCRIPT -->
+<script src="//www.google.com/jsapi" type="text/javascript"></script>
+<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
+<script type="text/javascript">
+ var toRoot = "/";
+ var metaTags = [];
+ var devsite = false;
+</script>
+<script src="/assets/js/docs.js" type="text/javascript"></script>
+
+<script type="text/javascript">
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-5831155-1']);
+ _gaq.push(['_trackPageview']);
+
+ (function() {
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+ })();
+</script>
+</head>
+<body class="gc-documentation google
+ develop" itemscope itemtype="http://schema.org/Article">
+ <div id="doc-api-level" class="" style="display:none"></div>
+ <a name="top"></a>
+
+<a name="top"></a>
+
+ <!-- Header -->
+ <div id="header">
+ <div class="wrap" id="header-wrap">
+ <div class="col-3 logo">
+ <a href="/index.html">
+ <img src="/assets/images/dac_logo.png" width="123" height="25" alt="Android Developers" />
+ </a>
+ <div class="btn-quicknav" id="btn-quicknav">
+ <a href="#" class="arrow-inactive">Quicknav</a>
+ <a href="#" class="arrow-active">Quicknav</a>
+ </div>
+ </div>
+ <ul class="nav-x col-9">
+ <li class="design">
+ <a href="/design/index.html"
+ zh-tw-lang="設計"
+ zh-cn-lang="设计"
+ ru-lang="Проектирование"
+ ko-lang="디자인"
+ ja-lang="設計"
+ es-lang="Diseñar"
+ >Design</a></li>
+ <li class="develop"><a href="/develop/index.html"
+ zh-tw-lang="開發"
+ zh-cn-lang="开发"
+ ru-lang="Разработка"
+ ko-lang="개발"
+ ja-lang="開発"
+ es-lang="Desarrollar"
+ >Develop</a></li>
+ <li class="distribute last"><a href="/distribute/index.html"
+ zh-tw-lang="發佈"
+ zh-cn-lang="分发"
+ ru-lang="Распространение"
+ ko-lang="배포"
+ ja-lang="配布"
+ es-lang="Distribuir"
+ >Distribute</a></li>
+ </ul>
+
+ <!-- New Search -->
+ <div class="menu-container">
+ <div class="moremenu">
+ <div id="more-btn"></div>
+ </div>
+ <div class="morehover" id="moremenu">
+ <div class="top"></div>
+ <div class="mid">
+ <div class="header">Links</div>
+ <ul>
+ <li><a href="https://play.google.com/apps/publish/">Google Play Developer Console</a></li>
+ <li><a href="http://android-developers.blogspot.com/">Android Developers Blog</a></li>
+ <li><a href="/about/index.html">About Android</a></li>
+ </ul>
+ <div class="header">Android Sites</div>
+ <ul>
+ <li><a href="http://www.android.com">Android.com</a></li>
+ <li class="active"><a>Android Developers</a></li>
+ <li><a href="http://source.android.com">Android Open Source Project</a></li>
+ </ul>
+
+
+
+ <div class="header">Language</div>
+ <div id="language" class="locales">
+ <select name="language" onChange="changeLangPref(this.value, true)">
+ <option value="en">English</option>
+ <option value="es">Español</option>
+ <option value="ja">日本語</option>
+ <option value="ko">한국어</option>
+ <option value="ru">Русский</option>
+ <option value="zh-cn">中文 (中国)</option>
+ <option value="zh-tw">中文 (台灣)</option>
+ </select>
+ </div>
+ <script type="text/javascript">
+ <!--
+ loadLangPref();
+ //-->
+ </script>
+
+
+
+
+ <br class="clearfix" />
+ </div>
+ <div class="bottom"></div>
+ </div>
+ <div class="search" id="search-container">
+ <div class="search-inner">
+ <div id="search-btn"></div>
+ <div class="left"></div>
+ <form onsubmit="return submit_search()">
+ <input id="search_autocomplete" type="text" value="" autocomplete="off" name="q"
+onfocus="search_focus_changed(this, true)" onblur="search_focus_changed(this, false)"
+onkeydown="return search_changed(event, true, '/')"
+onkeyup="return search_changed(event, false, '/')" />
+ </form>
+ <div class="right"></div>
+ <a class="close hide">close</a>
+ <div class="left"></div>
+ <div class="right"></div>
+ </div>
+ </div>
+
+ <div class="search_filtered_wrapper reference">
+ <div class="suggest-card reference no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ </div>
+
+ <div class="search_filtered_wrapper docs">
+ <div class="suggest-card dummy no-display"> </div>
+ <div class="suggest-card develop no-display">
+ <ul class="search_filtered">
+ </ul>
+ <div class="child-card guides no-display">
+ </div>
+ <div class="child-card training no-display">
+ </div>
+ <div class="child-card samples no-display">
+ </div>
+ </div>
+ <div class="suggest-card design no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ <div class="suggest-card distribute no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ </div>
+
+ </div>
+ <!-- /New Search>
+
+
+ <!-- Expanded quicknav -->
+ <div id="quicknav" class="col-9">
+ <ul>
+ <li class="design">
+ <ul>
+ <li><a href="/design/index.html">Get Started</a></li>
+ <li><a href="/design/style/index.html">Style</a></li>
+ <li><a href="/design/patterns/index.html">Patterns</a></li>
+ <li><a href="/design/building-blocks/index.html">Building Blocks</a></li>
+ <li><a href="/design/downloads/index.html">Downloads</a></li>
+ <li><a href="/design/videos/index.html">Videos</a></li>
+ </ul>
+ </li>
+ <li class="develop">
+ <ul>
+ <li><a href="/training/index.html"
+ zh-tw-lang="訓練課程"
+ zh-cn-lang="培训"
+ ru-lang="Курсы"
+ ko-lang="교육"
+ ja-lang="トレーニング"
+ es-lang="Capacitación"
+ >Training</a></li>
+ <li><a href="/guide/index.html"
+ zh-tw-lang="API 指南"
+ zh-cn-lang="API 指南"
+ ru-lang="Руководства по API"
+ ko-lang="API 가이드"
+ ja-lang="API ガイド"
+ es-lang="Guías de la API"
+ >API Guides</a></li>
+ <li><a href="/reference/packages.html"
+ zh-tw-lang="參考資源"
+ zh-cn-lang="参考"
+ ru-lang="Справочник"
+ ko-lang="참조문서"
+ ja-lang="リファレンス"
+ es-lang="Referencia"
+ >Reference</a></li>
+ <li><a href="/tools/index.html"
+ zh-tw-lang="相關工具"
+ zh-cn-lang="工具"
+ ru-lang="Инструменты"
+ ko-lang="도구"
+ ja-lang="ツール"
+ es-lang="Herramientas"
+ >Tools</a>
+ <ul><li><a href="/sdk/index.html">Get the SDK</a></li></ul>
+ </li>
+ <li><a href="/google/index.html">Google Services</a>
+ </li>
+
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
+ </ul>
+ </li>
+ <li class="distribute last">
+ <ul>
+ <li><a href="/distribute/index.html">Google Play</a></li>
+ <li><a href="/distribute/googleplay/publish/index.html">Publishing</a></li>
+ <li><a href="/distribute/googleplay/promote/index.html">Promoting</a></li>
+ <li><a href="/distribute/googleplay/quality/index.html">App Quality</a></li>
+ <li><a href="/distribute/googleplay/spotlight/index.html">Spotlight</a></li>
+ <li><a href="/distribute/open.html">Open Distribution</a></li>
+ </ul>
+ </li>
+ </ul>
+ </div>
+ <!-- /Expanded quicknav -->
+ </div>
+ </div>
+ <!-- /Header -->
+
+
+ <div id="searchResults" class="wrap" style="display:none;">
+ <h2 id="searchTitle">Results</h2>
+ <div id="leftSearchControl" class="search-control">Loading...</div>
+ </div>
+
+
+
+ <!-- Secondary x-nav -->
+ <div id="nav-x">
+ <div class="wrap">
+ <ul class="nav-x col-9 develop" style="width:100%">
+ <li class="training"><a href="/training/index.html"
+ zh-tw-lang="訓練課程"
+ zh-cn-lang="培训"
+ ru-lang="Курсы"
+ ko-lang="교육"
+ ja-lang="トレーニング"
+ es-lang="Capacitación"
+ >Training</a></li>
+ <li class="guide"><a href="/guide/index.html"
+ zh-tw-lang="API 指南"
+ zh-cn-lang="API 指南"
+ ru-lang="Руководства по API"
+ ko-lang="API 가이드"
+ ja-lang="API ガイド"
+ es-lang="Guías de la API"
+ >API Guides</a></li>
+ <li class="reference"><a href="/reference/packages.html"
+ zh-tw-lang="參考資源"
+ zh-cn-lang="参考"
+ ru-lang="Справочник"
+ ko-lang="참조문서"
+ ja-lang="リファレンス"
+ es-lang="Referencia"
+ >Reference</a></li>
+ <li class="tools"><a href="/tools/index.html"
+ zh-tw-lang="相關工具"
+ zh-cn-lang="工具"
+ ru-lang="Инструменты"
+ ko-lang="도구"
+ ja-lang="ツール"
+ es-lang="Herramientas"
+ >Tools</a></li>
+ <li class="google"><a href="/google/index.html"
+ >Google Services</a>
+ </li>
+
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
+ </ul>
+ </div>
+
+ </div>
+ <!-- /Sendondary x-nav -->
+
+
+
+
+
+
+
+
+
+ <div class="wrap clearfix" id="body-content">
+ <div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
+ <div id="devdoc-nav" class="scroll-pane">
+<a class="totop" href="#top" data-g-event="left-nav-top">to top</a>
+
+
+
+<ul id="nav">
+
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/index.html">
+ <span class="en">Overview</span>
+ </a></div>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/games.html">
+ <span class="en">Games</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/location.html">
+ <span class="en">Location</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/plus.html">
+ <span class="en">Google+</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/maps.html">
+ <span class="en">Maps</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play-services/ads.html">
+ <span class="en">Ads</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play-services/id.html">
+ <span class="en">Advertising ID</span></a>
+ </li>
+ </ul>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/wallet.html">
+ <span class="en">Wallet</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/auth.html">
+ <span class="en">Authorization</span>
+ </a></div>
+ </li>
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play-services/index.html">
+ <span class="en">Google Play Services</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play-services/setup.html">
+ <span class="en">Setup</span></a>
+ </li>
+ <li id="gms-tree-list" class="nav-section">
+ <div class="nav-section-header">
+ <a href="/reference/gms-packages.html">
+ <span class="en">Reference</span>
+ </a>
+ <div>
+ </li>
+ </ul>
+ </li>
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/billing/index.html">
+ <span class="en">Google Play In-app Billing</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/billing/billing_overview.html">
+ <span class="en">Overview</span></a>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/api.html">
+ <span class="en">Version 3 API</span></a></div>
+ <ul>
+ <li><a href="/google/play/billing/billing_integrate.html">
+ <span class="en">Implementing the API</span></a></li>
+ <li><a href="/google/play/billing/billing_reference.html">
+ <span class="en">Reference</span></a></li>
+ </ul>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/v2/api.html">
+ <span class="en">Version 2 API</span></a></div>
+ <ul>
+ <li><a href="/google/play/billing/v2/billing_integrate.html">
+ <span class="en">Implementing the API</span></a></li>
+ <li><a href="/google/play/billing/v2/billing_subscriptions.html">
+ <span class="en">Subscriptions</span></a></li>
+ <li><a href="/google/play/billing/v2/billing_reference.html">
+ <span class="en">Reference</span></a></li>
+ </ul>
+ </li>
+ <li><a href="/google/play/billing/billing_subscriptions.html">
+ <span class="en">Subscriptions</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_best_practices.html">
+ <span class="en">Security and Design</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_testing.html">
+ <span class="en">Testing In-app Billing</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_admin.html">
+ <span class="en">Administering In-app Billing</span></a>
+ </li>
+ <li><a href="/google/play/billing/gp-purchase-status-api.html">
+ <span class="en">Purchase Status API</span></a>
+ </li>
+ <li><a href="/google/play/billing/versions.html">
+ <span class="en">Version Notes</span></a>
+ </li>
+ </ul>
+ </li>
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/gcm/index.html">
+ <span class="en">Google Cloud Messaging</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
+ <li><a href="/google/gcm/gs.html">
+ <span class="en">Getting Started</span></a>
+ </li>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
+ </li>
+ <li><a href="/google/gcm/notifications.html">
+ <span class="en">User Notifications</span></a>
+ </li>
+ <li><a href="/google/gcm/adv.html">
+ <span class="en">Advanced Topics</span></a>
+ </li>
+ <li><a href="/google/gcm/c2dm.html">
+ <span class="en">Migration</span></a>
+ </li>
+ <li id="gcm-tree-list" class="nav-section">
+ <div class="nav-section-header">
+ <a href="/reference/gcm-packages.html">
+ <span class="en">Reference</span>
+ </a>
+ <div>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/dist.html">
+ <span class="en">Google Play Distribution</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/filters.html">
+ <span class="en">Filters on Google Play</span></a>
+ </li>
+
+ <li><a href="/google/play/publishing/multiple-apks.html">
+ <span class="en">Multiple APK Support</span></a>
+ </li>
+ <li><a href="/google/play/expansion-files.html">
+ <span class="en">APK Expansion Files</span></a>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/licensing/index.html">
+ <span class="en">Application Licensing</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/licensing/overview.html">
+ <span class="en">Licensing Overview</span></a>
+ </li>
+ <li><a href="/google/play/licensing/setting-up.html">
+ <span class="en">Setting Up for Licensing</span></a>
+ </li>
+ <li><a href="/google/play/licensing/adding-licensing.html">
+ <span class="en">Adding Licensing to Your App</span></a>
+ </li>
+ <li><a href="/google/play/licensing/licensing-reference.html">
+ <span class="en">Licensing Reference</span></a>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/backup/index.html">
+ Android Backup Service</a>
+ </div>
+ <ul>
+ <li><a href="/google/backup/signup.html">
+ Register</a>
+ </li>
+ </ul>
+ </li>
+
+ </ul>
+
+</li>
+
+
+
+</ul>
+
+<script type="text/javascript">
+<!--
+ buildToggleLists();
+ changeNavLang(getLangPref());
+//-->
+</script>
+
+
+
+
+ </div>
+ <script type="text/javascript">
+ showGoogleRefTree();
+
+ </script>
+ </div> <!-- end side-nav -->
+ <script>
+ $(document).ready(function() {
+ scrollIntoView("devdoc-nav");
+ });
+ </script>
+
+
+
+
+
+
+<div class="col-12" id="doc-col">
+
+<div id="api-info-block">
+
+
+
+
+<div class="sum-details-links">
+
+Summary:
+
+
+
+
+
+
+
+
+
+
+
+ <a href="#pubmethods">Methods</a>
+
+
+
+
+| <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
+
+</div><!-- end sum-details-links -->
+<div class="api-level">
+
+
+
+
+</div>
+</div><!-- end api-info-block -->
+
+
+<!-- ======== START OF CLASS DATA ======== -->
+
+<div id="jd-header">
+ public
+
+
+
+ interface
+<h1 itemprop="name">Releasable</h1>
+
+
+
+
+
+
+
+
+</div><!-- end header -->
+
+<div id="naMessage"></div>
+
+<div id="jd-content" class="api apilevel-">
+<table class="jd-inheritance-table">
+
+
+ <tr>
+
+ <td colspan="1" class="jd-inheritance-class-cell">com.google.android.gms.common.api.Releasable</td>
+ </tr>
+
+
+</table>
+
+
+
+
+
+
+<table class="jd-sumtable jd-sumtable-subclasses"><tr><td colspan="12" style="border:none;margin:0;padding:0;">
+
+ <a href="#" onclick="return toggleInherited(this, null)" id="subclasses-indirect" class="jd-expando-trigger closed"
+ ><img id="subclasses-indirect-trigger"
+ src="/assets/images/triangle-closed.png"
+ class="jd-expando-trigger-img" /></a>Known Indirect Subclasses
+
+ <div id="subclasses-indirect">
+ <div id="subclasses-indirect-list"
+ class="jd-inheritedlinks"
+
+ >
+
+
+ <a href="/reference/com/google/android/gms/common/api/PendingResult.html">PendingResult</a><R extends <a href="/reference/com/google/android/gms/common/api/Result.html">Result</a>, C>
+
+
+ </div>
+ <div id="subclasses-indirect-summary"
+ style="display: none;"
+ >
+ <table class="jd-sumtable-expando">
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/common/api/PendingResult.html">PendingResult</a><R extends <a href="/reference/com/google/android/gms/common/api/Result.html">Result</a>, C></td>
+ <td class="jd-descrcol" width="100%">Represents a pending result from calling an API method in Google Play services. </td>
+ </tr>
+ </table>
+ </div>
+ </div>
+</td></tr></table>
+
+
+<div class="jd-descr">
+
+
+<h2>Class Overview</h2>
+<p itemprop="articleBody">Represents a resource, or a holder of resources, which may be released once they are no longer
+ needed.
+</p>
+
+
+
+
+
+</div><!-- jd-descr -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<div class="jd-descr">
+
+
+<h2>Summary</h2>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
+
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/common/api/Releasable.html#release()">release</a></span>()</nobr>
+
+ </td></tr>
+
+
+
+</table>
+
+
+
+
+
+
+
+</div><!-- jd-descr (summary) -->
+
+<!-- Details -->
+
+
+
+
+
+
+
+
+<!-- XML Attributes -->
+
+
+<!-- Enum Values -->
+
+
+<!-- Constants -->
+
+
+<!-- Fields -->
+
+
+<!-- Public ctors -->
+
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<!-- Protected ctors -->
+
+
+
+<!-- ========= METHOD DETAIL ======== -->
+<!-- Public methdos -->
+
+<h2>Public Methods</h2>
+
+
+
+<A NAME="release()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+ abstract
+
+ void
+ </span>
+ <span class="sympad">release</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+ </div>
+</div>
+
+
+
+
+
+<!-- ========= METHOD DETAIL ======== -->
+
+
+
+<!-- ========= END OF CLASS DATA ========= -->
+<A NAME="navbar_top"></A>
+
+<div id="footer" class="wrap" >
+
+
+ <div id="copyright">
+
+ Except as noted, this content is licensed under <a
+ href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.
+ For details and restrictions, see the <a href="/license.html">
+ Content License</a>.
+ </div>
+ <div id="build_info">
+
+<script src="/timestamp.js" type="text/javascript"></script>
+<script>document.write(BUILD_TIMESTAMP)</script>
+
+ </div>
+
+
+ <div id="footerlinks">
+
+ <p>
+ <a href="/about/index.html">About Android</a> |
+ <a href="/legal.html">Legal</a> |
+ <a href="/support.html">Support</a>
+ </p>
+ </div>
+
+</div> <!-- end footer -->
+</div> <!-- jd-content -->
+
+</div><!-- end doc-content -->
+
+</div> <!-- end body-content -->
+
+
+
+
+
+
+</body>
+</html>
diff --git a/docs/html/reference/com/google/android/gms/common/api/Result.html b/docs/html/reference/com/google/android/gms/common/api/Result.html
new file mode 100644
index 0000000..a344d99
--- /dev/null
+++ b/docs/html/reference/com/google/android/gms/common/api/Result.html
@@ -0,0 +1,1004 @@
+<!DOCTYPE html>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<html>
+<head>
+
+
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<meta name="viewport" content="width=device-width" />
+
+<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
+<title>Result | Android Developers</title>
+
+<!-- STYLESHEETS -->
+<link rel="stylesheet"
+href="//fonts.googleapis.com/css?family=Roboto:regular,medium,thin,italic,mediumitalic,bold" title="roboto">
+<link href="/assets/css/default.css" rel="stylesheet" type="text/css">
+
+
+
+<!-- JAVASCRIPT -->
+<script src="//www.google.com/jsapi" type="text/javascript"></script>
+<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
+<script type="text/javascript">
+ var toRoot = "/";
+ var metaTags = [];
+ var devsite = false;
+</script>
+<script src="/assets/js/docs.js" type="text/javascript"></script>
+
+<script type="text/javascript">
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-5831155-1']);
+ _gaq.push(['_trackPageview']);
+
+ (function() {
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+ })();
+</script>
+</head>
+<body class="gc-documentation google
+ develop" itemscope itemtype="http://schema.org/Article">
+ <div id="doc-api-level" class="" style="display:none"></div>
+ <a name="top"></a>
+
+<a name="top"></a>
+
+ <!-- Header -->
+ <div id="header">
+ <div class="wrap" id="header-wrap">
+ <div class="col-3 logo">
+ <a href="/index.html">
+ <img src="/assets/images/dac_logo.png" width="123" height="25" alt="Android Developers" />
+ </a>
+ <div class="btn-quicknav" id="btn-quicknav">
+ <a href="#" class="arrow-inactive">Quicknav</a>
+ <a href="#" class="arrow-active">Quicknav</a>
+ </div>
+ </div>
+ <ul class="nav-x col-9">
+ <li class="design">
+ <a href="/design/index.html"
+ zh-tw-lang="設計"
+ zh-cn-lang="设计"
+ ru-lang="Проектирование"
+ ko-lang="디자인"
+ ja-lang="設計"
+ es-lang="Diseñar"
+ >Design</a></li>
+ <li class="develop"><a href="/develop/index.html"
+ zh-tw-lang="開發"
+ zh-cn-lang="开发"
+ ru-lang="Разработка"
+ ko-lang="개발"
+ ja-lang="開発"
+ es-lang="Desarrollar"
+ >Develop</a></li>
+ <li class="distribute last"><a href="/distribute/index.html"
+ zh-tw-lang="發佈"
+ zh-cn-lang="分发"
+ ru-lang="Распространение"
+ ko-lang="배포"
+ ja-lang="配布"
+ es-lang="Distribuir"
+ >Distribute</a></li>
+ </ul>
+
+ <!-- New Search -->
+ <div class="menu-container">
+ <div class="moremenu">
+ <div id="more-btn"></div>
+ </div>
+ <div class="morehover" id="moremenu">
+ <div class="top"></div>
+ <div class="mid">
+ <div class="header">Links</div>
+ <ul>
+ <li><a href="https://play.google.com/apps/publish/">Google Play Developer Console</a></li>
+ <li><a href="http://android-developers.blogspot.com/">Android Developers Blog</a></li>
+ <li><a href="/about/index.html">About Android</a></li>
+ </ul>
+ <div class="header">Android Sites</div>
+ <ul>
+ <li><a href="http://www.android.com">Android.com</a></li>
+ <li class="active"><a>Android Developers</a></li>
+ <li><a href="http://source.android.com">Android Open Source Project</a></li>
+ </ul>
+
+
+
+ <div class="header">Language</div>
+ <div id="language" class="locales">
+ <select name="language" onChange="changeLangPref(this.value, true)">
+ <option value="en">English</option>
+ <option value="es">Español</option>
+ <option value="ja">日本語</option>
+ <option value="ko">한국어</option>
+ <option value="ru">Русский</option>
+ <option value="zh-cn">中文 (中国)</option>
+ <option value="zh-tw">中文 (台灣)</option>
+ </select>
+ </div>
+ <script type="text/javascript">
+ <!--
+ loadLangPref();
+ //-->
+ </script>
+
+
+
+
+ <br class="clearfix" />
+ </div>
+ <div class="bottom"></div>
+ </div>
+ <div class="search" id="search-container">
+ <div class="search-inner">
+ <div id="search-btn"></div>
+ <div class="left"></div>
+ <form onsubmit="return submit_search()">
+ <input id="search_autocomplete" type="text" value="" autocomplete="off" name="q"
+onfocus="search_focus_changed(this, true)" onblur="search_focus_changed(this, false)"
+onkeydown="return search_changed(event, true, '/')"
+onkeyup="return search_changed(event, false, '/')" />
+ </form>
+ <div class="right"></div>
+ <a class="close hide">close</a>
+ <div class="left"></div>
+ <div class="right"></div>
+ </div>
+ </div>
+
+ <div class="search_filtered_wrapper reference">
+ <div class="suggest-card reference no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ </div>
+
+ <div class="search_filtered_wrapper docs">
+ <div class="suggest-card dummy no-display"> </div>
+ <div class="suggest-card develop no-display">
+ <ul class="search_filtered">
+ </ul>
+ <div class="child-card guides no-display">
+ </div>
+ <div class="child-card training no-display">
+ </div>
+ <div class="child-card samples no-display">
+ </div>
+ </div>
+ <div class="suggest-card design no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ <div class="suggest-card distribute no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ </div>
+
+ </div>
+ <!-- /New Search>
+
+
+ <!-- Expanded quicknav -->
+ <div id="quicknav" class="col-9">
+ <ul>
+ <li class="design">
+ <ul>
+ <li><a href="/design/index.html">Get Started</a></li>
+ <li><a href="/design/style/index.html">Style</a></li>
+ <li><a href="/design/patterns/index.html">Patterns</a></li>
+ <li><a href="/design/building-blocks/index.html">Building Blocks</a></li>
+ <li><a href="/design/downloads/index.html">Downloads</a></li>
+ <li><a href="/design/videos/index.html">Videos</a></li>
+ </ul>
+ </li>
+ <li class="develop">
+ <ul>
+ <li><a href="/training/index.html"
+ zh-tw-lang="訓練課程"
+ zh-cn-lang="培训"
+ ru-lang="Курсы"
+ ko-lang="교육"
+ ja-lang="トレーニング"
+ es-lang="Capacitación"
+ >Training</a></li>
+ <li><a href="/guide/index.html"
+ zh-tw-lang="API 指南"
+ zh-cn-lang="API 指南"
+ ru-lang="Руководства по API"
+ ko-lang="API 가이드"
+ ja-lang="API ガイド"
+ es-lang="Guías de la API"
+ >API Guides</a></li>
+ <li><a href="/reference/packages.html"
+ zh-tw-lang="參考資源"
+ zh-cn-lang="参考"
+ ru-lang="Справочник"
+ ko-lang="참조문서"
+ ja-lang="リファレンス"
+ es-lang="Referencia"
+ >Reference</a></li>
+ <li><a href="/tools/index.html"
+ zh-tw-lang="相關工具"
+ zh-cn-lang="工具"
+ ru-lang="Инструменты"
+ ko-lang="도구"
+ ja-lang="ツール"
+ es-lang="Herramientas"
+ >Tools</a>
+ <ul><li><a href="/sdk/index.html">Get the SDK</a></li></ul>
+ </li>
+ <li><a href="/google/index.html">Google Services</a>
+ </li>
+
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
+ </ul>
+ </li>
+ <li class="distribute last">
+ <ul>
+ <li><a href="/distribute/index.html">Google Play</a></li>
+ <li><a href="/distribute/googleplay/publish/index.html">Publishing</a></li>
+ <li><a href="/distribute/googleplay/promote/index.html">Promoting</a></li>
+ <li><a href="/distribute/googleplay/quality/index.html">App Quality</a></li>
+ <li><a href="/distribute/googleplay/spotlight/index.html">Spotlight</a></li>
+ <li><a href="/distribute/open.html">Open Distribution</a></li>
+ </ul>
+ </li>
+ </ul>
+ </div>
+ <!-- /Expanded quicknav -->
+ </div>
+ </div>
+ <!-- /Header -->
+
+
+ <div id="searchResults" class="wrap" style="display:none;">
+ <h2 id="searchTitle">Results</h2>
+ <div id="leftSearchControl" class="search-control">Loading...</div>
+ </div>
+
+
+
+ <!-- Secondary x-nav -->
+ <div id="nav-x">
+ <div class="wrap">
+ <ul class="nav-x col-9 develop" style="width:100%">
+ <li class="training"><a href="/training/index.html"
+ zh-tw-lang="訓練課程"
+ zh-cn-lang="培训"
+ ru-lang="Курсы"
+ ko-lang="교육"
+ ja-lang="トレーニング"
+ es-lang="Capacitación"
+ >Training</a></li>
+ <li class="guide"><a href="/guide/index.html"
+ zh-tw-lang="API 指南"
+ zh-cn-lang="API 指南"
+ ru-lang="Руководства по API"
+ ko-lang="API 가이드"
+ ja-lang="API ガイド"
+ es-lang="Guías de la API"
+ >API Guides</a></li>
+ <li class="reference"><a href="/reference/packages.html"
+ zh-tw-lang="參考資源"
+ zh-cn-lang="参考"
+ ru-lang="Справочник"
+ ko-lang="참조문서"
+ ja-lang="リファレンス"
+ es-lang="Referencia"
+ >Reference</a></li>
+ <li class="tools"><a href="/tools/index.html"
+ zh-tw-lang="相關工具"
+ zh-cn-lang="工具"
+ ru-lang="Инструменты"
+ ko-lang="도구"
+ ja-lang="ツール"
+ es-lang="Herramientas"
+ >Tools</a></li>
+ <li class="google"><a href="/google/index.html"
+ >Google Services</a>
+ </li>
+
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
+ </ul>
+ </div>
+
+ </div>
+ <!-- /Sendondary x-nav -->
+
+
+
+
+
+
+
+
+
+ <div class="wrap clearfix" id="body-content">
+ <div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
+ <div id="devdoc-nav" class="scroll-pane">
+<a class="totop" href="#top" data-g-event="left-nav-top">to top</a>
+
+
+
+<ul id="nav">
+
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/index.html">
+ <span class="en">Overview</span>
+ </a></div>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/games.html">
+ <span class="en">Games</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/location.html">
+ <span class="en">Location</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/plus.html">
+ <span class="en">Google+</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/maps.html">
+ <span class="en">Maps</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play-services/ads.html">
+ <span class="en">Ads</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play-services/id.html">
+ <span class="en">Advertising ID</span></a>
+ </li>
+ </ul>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/wallet.html">
+ <span class="en">Wallet</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/auth.html">
+ <span class="en">Authorization</span>
+ </a></div>
+ </li>
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play-services/index.html">
+ <span class="en">Google Play Services</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play-services/setup.html">
+ <span class="en">Setup</span></a>
+ </li>
+ <li id="gms-tree-list" class="nav-section">
+ <div class="nav-section-header">
+ <a href="/reference/gms-packages.html">
+ <span class="en">Reference</span>
+ </a>
+ <div>
+ </li>
+ </ul>
+ </li>
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/billing/index.html">
+ <span class="en">Google Play In-app Billing</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/billing/billing_overview.html">
+ <span class="en">Overview</span></a>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/api.html">
+ <span class="en">Version 3 API</span></a></div>
+ <ul>
+ <li><a href="/google/play/billing/billing_integrate.html">
+ <span class="en">Implementing the API</span></a></li>
+ <li><a href="/google/play/billing/billing_reference.html">
+ <span class="en">Reference</span></a></li>
+ </ul>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/v2/api.html">
+ <span class="en">Version 2 API</span></a></div>
+ <ul>
+ <li><a href="/google/play/billing/v2/billing_integrate.html">
+ <span class="en">Implementing the API</span></a></li>
+ <li><a href="/google/play/billing/v2/billing_subscriptions.html">
+ <span class="en">Subscriptions</span></a></li>
+ <li><a href="/google/play/billing/v2/billing_reference.html">
+ <span class="en">Reference</span></a></li>
+ </ul>
+ </li>
+ <li><a href="/google/play/billing/billing_subscriptions.html">
+ <span class="en">Subscriptions</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_best_practices.html">
+ <span class="en">Security and Design</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_testing.html">
+ <span class="en">Testing In-app Billing</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_admin.html">
+ <span class="en">Administering In-app Billing</span></a>
+ </li>
+ <li><a href="/google/play/billing/gp-purchase-status-api.html">
+ <span class="en">Purchase Status API</span></a>
+ </li>
+ <li><a href="/google/play/billing/versions.html">
+ <span class="en">Version Notes</span></a>
+ </li>
+ </ul>
+ </li>
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/gcm/index.html">
+ <span class="en">Google Cloud Messaging</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
+ <li><a href="/google/gcm/gs.html">
+ <span class="en">Getting Started</span></a>
+ </li>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
+ </li>
+ <li><a href="/google/gcm/notifications.html">
+ <span class="en">User Notifications</span></a>
+ </li>
+ <li><a href="/google/gcm/adv.html">
+ <span class="en">Advanced Topics</span></a>
+ </li>
+ <li><a href="/google/gcm/c2dm.html">
+ <span class="en">Migration</span></a>
+ </li>
+ <li id="gcm-tree-list" class="nav-section">
+ <div class="nav-section-header">
+ <a href="/reference/gcm-packages.html">
+ <span class="en">Reference</span>
+ </a>
+ <div>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/dist.html">
+ <span class="en">Google Play Distribution</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/filters.html">
+ <span class="en">Filters on Google Play</span></a>
+ </li>
+
+ <li><a href="/google/play/publishing/multiple-apks.html">
+ <span class="en">Multiple APK Support</span></a>
+ </li>
+ <li><a href="/google/play/expansion-files.html">
+ <span class="en">APK Expansion Files</span></a>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/licensing/index.html">
+ <span class="en">Application Licensing</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/licensing/overview.html">
+ <span class="en">Licensing Overview</span></a>
+ </li>
+ <li><a href="/google/play/licensing/setting-up.html">
+ <span class="en">Setting Up for Licensing</span></a>
+ </li>
+ <li><a href="/google/play/licensing/adding-licensing.html">
+ <span class="en">Adding Licensing to Your App</span></a>
+ </li>
+ <li><a href="/google/play/licensing/licensing-reference.html">
+ <span class="en">Licensing Reference</span></a>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/backup/index.html">
+ Android Backup Service</a>
+ </div>
+ <ul>
+ <li><a href="/google/backup/signup.html">
+ Register</a>
+ </li>
+ </ul>
+ </li>
+
+ </ul>
+
+</li>
+
+
+
+</ul>
+
+<script type="text/javascript">
+<!--
+ buildToggleLists();
+ changeNavLang(getLangPref());
+//-->
+</script>
+
+
+
+
+ </div>
+ <script type="text/javascript">
+ showGoogleRefTree();
+
+ </script>
+ </div> <!-- end side-nav -->
+ <script>
+ $(document).ready(function() {
+ scrollIntoView("devdoc-nav");
+ });
+ </script>
+
+
+
+
+
+
+<div class="col-12" id="doc-col">
+
+<div id="api-info-block">
+
+
+
+
+<div class="sum-details-links">
+
+Summary:
+
+
+
+
+
+
+
+
+
+
+
+ <a href="#pubmethods">Methods</a>
+
+
+
+
+| <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
+
+</div><!-- end sum-details-links -->
+<div class="api-level">
+
+
+
+
+</div>
+</div><!-- end api-info-block -->
+
+
+<!-- ======== START OF CLASS DATA ======== -->
+
+<div id="jd-header">
+ public
+
+
+
+ interface
+<h1 itemprop="name">Result</h1>
+
+
+
+
+
+
+
+
+</div><!-- end header -->
+
+<div id="naMessage"></div>
+
+<div id="jd-content" class="api apilevel-">
+<table class="jd-inheritance-table">
+
+
+ <tr>
+
+ <td colspan="1" class="jd-inheritance-class-cell">com.google.android.gms.common.api.Result</td>
+ </tr>
+
+
+</table>
+
+
+
+
+
+
+<table class="jd-sumtable jd-sumtable-subclasses"><tr><td colspan="12" style="border:none;margin:0;padding:0;">
+
+ <a href="#" onclick="return toggleInherited(this, null)" id="subclasses-indirect" class="jd-expando-trigger closed"
+ ><img id="subclasses-indirect-trigger"
+ src="/assets/images/triangle-closed.png"
+ class="jd-expando-trigger-img" /></a>Known Indirect Subclasses
+
+ <div id="subclasses-indirect">
+ <div id="subclasses-indirect-list"
+ class="jd-inheritedlinks"
+
+ >
+
+
+ <a href="/reference/com/google/android/gms/drive/DriveApi.ContentsResult.html">DriveApi.ContentsResult</a>,
+
+ <a href="/reference/com/google/android/gms/drive/DriveApi.IntentSenderResult.html">DriveApi.IntentSenderResult</a>,
+
+ <a href="/reference/com/google/android/gms/drive/DriveApi.MetadataBufferResult.html">DriveApi.MetadataBufferResult</a>,
+
+ <a href="/reference/com/google/android/gms/drive/DriveFolder.DriveFileResult.html">DriveFolder.DriveFileResult</a>,
+
+ <a href="/reference/com/google/android/gms/drive/DriveFolder.DriveFolderResult.html">DriveFolder.DriveFolderResult</a>,
+
+ <a href="/reference/com/google/android/gms/drive/DriveResource.MetadataResult.html">DriveResource.MetadataResult</a>,
+
+ <a href="/reference/com/google/android/gms/common/api/Status.html">Status</a>
+
+
+ </div>
+ <div id="subclasses-indirect-summary"
+ style="display: none;"
+ >
+ <table class="jd-sumtable-expando">
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/drive/DriveApi.ContentsResult.html">DriveApi.ContentsResult</a></td>
+ <td class="jd-descrcol" width="100%">Result that contains a Contents reference. </td>
+ </tr>
+ <tr class=" api apilevel-" >
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/drive/DriveApi.IntentSenderResult.html">DriveApi.IntentSenderResult</a></td>
+ <td class="jd-descrcol" width="100%">Result that contains an IntentSender reference. </td>
+ </tr>
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/drive/DriveApi.MetadataBufferResult.html">DriveApi.MetadataBufferResult</a></td>
+ <td class="jd-descrcol" width="100%">Result that contains a MetadataBuffer. </td>
+ </tr>
+ <tr class=" api apilevel-" >
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/drive/DriveFolder.DriveFileResult.html">DriveFolder.DriveFileResult</a></td>
+ <td class="jd-descrcol" width="100%">A result that contains a DriveFile. </td>
+ </tr>
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/drive/DriveFolder.DriveFolderResult.html">DriveFolder.DriveFolderResult</a></td>
+ <td class="jd-descrcol" width="100%">A result that contains a DriveFolder. </td>
+ </tr>
+ <tr class=" api apilevel-" >
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/drive/DriveResource.MetadataResult.html">DriveResource.MetadataResult</a></td>
+ <td class="jd-descrcol" width="100%">Result that is returned in response to metadata requests. </td>
+ </tr>
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/common/api/Status.html">Status</a></td>
+ <td class="jd-descrcol" width="100%">Represents the results of work. </td>
+ </tr>
+ </table>
+ </div>
+ </div>
+</td></tr></table>
+
+
+<div class="jd-descr">
+
+
+<h2>Class Overview</h2>
+<p itemprop="articleBody">Represents the final result of invoking an API method in Google Play Services.
+</p>
+
+
+
+
+
+</div><!-- jd-descr -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<div class="jd-descr">
+
+
+<h2>Summary</h2>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
+
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ <a href="/reference/com/google/android/gms/common/api/Status.html">Status</a></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/common/api/Result.html#getStatus()">getStatus</a></span>()</nobr>
+
+ </td></tr>
+
+
+
+</table>
+
+
+
+
+
+
+
+</div><!-- jd-descr (summary) -->
+
+<!-- Details -->
+
+
+
+
+
+
+
+
+<!-- XML Attributes -->
+
+
+<!-- Enum Values -->
+
+
+<!-- Constants -->
+
+
+<!-- Fields -->
+
+
+<!-- Public ctors -->
+
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<!-- Protected ctors -->
+
+
+
+<!-- ========= METHOD DETAIL ======== -->
+<!-- Public methdos -->
+
+<h2>Public Methods</h2>
+
+
+
+<A NAME="getStatus()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+ abstract
+
+ <a href="/reference/com/google/android/gms/common/api/Status.html">Status</a>
+ </span>
+ <span class="sympad">getStatus</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+ </div>
+</div>
+
+
+
+
+
+<!-- ========= METHOD DETAIL ======== -->
+
+
+
+<!-- ========= END OF CLASS DATA ========= -->
+<A NAME="navbar_top"></A>
+
+<div id="footer" class="wrap" >
+
+
+ <div id="copyright">
+
+ Except as noted, this content is licensed under <a
+ href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.
+ For details and restrictions, see the <a href="/license.html">
+ Content License</a>.
+ </div>
+ <div id="build_info">
+
+<script src="/timestamp.js" type="text/javascript"></script>
+<script>document.write(BUILD_TIMESTAMP)</script>
+
+ </div>
+
+
+ <div id="footerlinks">
+
+ <p>
+ <a href="/about/index.html">About Android</a> |
+ <a href="/legal.html">Legal</a> |
+ <a href="/support.html">Support</a>
+ </p>
+ </div>
+
+</div> <!-- end footer -->
+</div> <!-- jd-content -->
+
+</div><!-- end doc-content -->
+
+</div> <!-- end body-content -->
+
+
+
+
+
+
+</body>
+</html>
diff --git a/docs/html/reference/com/google/android/gms/auth/RecoveryDecision.html b/docs/html/reference/com/google/android/gms/common/api/Scope.html
similarity index 61%
copy from docs/html/reference/com/google/android/gms/auth/RecoveryDecision.html
copy to docs/html/reference/com/google/android/gms/common/api/Scope.html
index 59a1346..27e347b 100644
--- a/docs/html/reference/com/google/android/gms/auth/RecoveryDecision.html
+++ b/docs/html/reference/com/google/android/gms/common/api/Scope.html
@@ -83,7 +83,7 @@
<meta name="viewport" content="width=device-width" />
<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
-<title>RecoveryDecision | Android Developers</title>
+<title>Scope | Android Developers</title>
<!-- STYLESHEETS -->
<link rel="stylesheet"
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -128,7 +129,7 @@
<img src="/assets/images/dac_logo.png" width="123" height="25" alt="Android Developers" />
</a>
<div class="btn-quicknav" id="btn-quicknav">
- <a href="#" class="arrow-inactive">Quicknav</a>
+ <a href="#" class="arrow-inactive">Quicknav</a>
<a href="#" class="arrow-active">Quicknav</a>
</div>
</div>
@@ -140,7 +141,7 @@
ru-lang="Проектирование"
ko-lang="디자인"
ja-lang="設計"
- es-lang="Diseñar"
+ es-lang="Diseñar"
>Design</a></li>
<li class="develop"><a href="/develop/index.html"
zh-tw-lang="開發"
@@ -148,7 +149,7 @@
ru-lang="Разработка"
ko-lang="개발"
ja-lang="開発"
- es-lang="Desarrollar"
+ es-lang="Desarrollar"
>Develop</a></li>
<li class="distribute last"><a href="/distribute/index.html"
zh-tw-lang="發佈"
@@ -156,10 +157,10 @@
ru-lang="Распространение"
ko-lang="배포"
ja-lang="配布"
- es-lang="Distribuir"
+ es-lang="Distribuir"
>Distribute</a></li>
</ul>
-
+
<!-- New Search -->
<div class="menu-container">
<div class="moremenu">
@@ -180,9 +181,9 @@
<li class="active"><a>Android Developers</a></li>
<li><a href="http://source.android.com">Android Open Source Project</a></li>
</ul>
-
-
-
+
+
+
<div class="header">Language</div>
<div id="language" class="locales">
<select name="language" onChange="changeLangPref(this.value, true)">
@@ -200,8 +201,8 @@
loadLangPref();
//-->
</script>
-
-
+
+
<br class="clearfix" />
@@ -215,7 +216,7 @@
<form onsubmit="return submit_search()">
<input id="search_autocomplete" type="text" value="" autocomplete="off" name="q"
onfocus="search_focus_changed(this, true)" onblur="search_focus_changed(this, false)"
-onkeydown="return search_changed(event, true, '/')"
+onkeydown="return search_changed(event, true, '/')"
onkeyup="return search_changed(event, false, '/')" />
</form>
<div class="right"></div>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -254,8 +257,8 @@
</div>
<!-- /New Search>
-
-
+
+
<!-- Expanded quicknav -->
<div id="quicknav" class="col-9">
<ul>
@@ -277,15 +280,15 @@
ru-lang="Курсы"
ko-lang="교육"
ja-lang="トレーニング"
- es-lang="Capacitación"
+ es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
ko-lang="API 가이드"
ja-lang="API ガイド"
- es-lang="Guías de la API"
+ es-lang="Guías de la API"
>API Guides</a></li>
<li><a href="/reference/packages.html"
zh-tw-lang="參考資源"
@@ -293,7 +296,7 @@
ru-lang="Справочник"
ko-lang="참조문서"
ja-lang="リファレンス"
- es-lang="Referencia"
+ es-lang="Referencia"
>Reference</a></li>
<li><a href="/tools/index.html"
zh-tw-lang="相關工具"
@@ -301,13 +304,16 @@
ru-lang="Инструменты"
ko-lang="도구"
ja-lang="ツール"
- es-lang="Herramientas"
+ es-lang="Herramientas"
>Tools</a>
<ul><li><a href="/sdk/index.html">Get the SDK</a></li></ul>
</li>
<li><a href="/google/index.html">Google Services</a>
</li>
-
+
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -326,15 +332,15 @@
</div>
</div>
<!-- /Header -->
-
-
+
+
<div id="searchResults" class="wrap" style="display:none;">
<h2 id="searchTitle">Results</h2>
<div id="leftSearchControl" class="search-control">Loading...</div>
</div>
-
-
-
+
+
+
<!-- Secondary x-nav -->
<div id="nav-x">
<div class="wrap">
@@ -345,15 +351,15 @@
ru-lang="Курсы"
ko-lang="교육"
ja-lang="トレーニング"
- es-lang="Capacitación"
+ es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
ko-lang="API 가이드"
ja-lang="API ガイド"
- es-lang="Guías de la API"
+ es-lang="Guías de la API"
>API Guides</a></li>
<li class="reference"><a href="/reference/packages.html"
zh-tw-lang="參考資源"
@@ -361,7 +367,7 @@
ru-lang="Справочник"
ko-lang="참조문서"
ja-lang="リファレンス"
- es-lang="Referencia"
+ es-lang="Referencia"
>Reference</a></li>
<li class="tools"><a href="/tools/index.html"
zh-tw-lang="相關工具"
@@ -374,21 +380,25 @@
<li class="google"><a href="/google/index.html"
>Google Services</a>
</li>
-
+
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
-
+
</div>
<!-- /Sendondary x-nav -->
-
-
-
+
+
+
<div class="wrap clearfix" id="body-content">
<div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
<div id="devdoc-nav" class="scroll-pane">
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
@@ -618,12 +631,12 @@
</script>
-
+
</div>
<script type="text/javascript">
showGoogleRefTree();
-
+
</script>
</div> <!-- end side-nav -->
<script>
@@ -633,7 +646,7 @@
</script>
-
+
@@ -643,21 +656,12 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
<div class="sum-details-links">
@@ -669,22 +673,13 @@
- <a href="#inhconstants">Inherited Constants</a>
-
-
-
- | <a href="#lfields">Fields</a>
-
- | <a href="#pubctors">Ctors</a>
-
+ <a href="#pubctors">Ctors</a>
- | <a href="#pubmethods">Methods</a>
-
@@ -694,9 +689,9 @@
</div><!-- end sum-details-links -->
<div class="api-level">
-
-
-
+
+
+
</div>
</div><!-- end api-info-block -->
@@ -706,28 +701,23 @@
<div id="jd-header">
public
-
-
-
+
+ final
+
class
-<h1 itemprop="name">RecoveryDecision</h1>
+<h1 itemprop="name">Scope</h1>
-
+
extends Object<br/>
-
-
-
-
-
- implements
-
- Parcelable
-
-
-
+
+
+
+
+
+
</div><!-- end header -->
@@ -739,18 +729,18 @@
<tr>
-
+
<td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
</tr>
-
+
<tr>
-
+
<td class="jd-inheritance-space"> ↳</td>
-
- <td colspan="1" class="jd-inheritance-class-cell">com.google.android.gms.auth.RecoveryDecision</td>
+
+ <td colspan="1" class="jd-inheritance-class-cell">com.google.android.gms.common.api.Scope</td>
</tr>
-
+
</table>
@@ -763,6 +753,11 @@
<div class="jd-descr">
+<h2>Class Overview</h2>
+<p itemprop="articleBody">Describes an OAuth 2.0 scope to request. This has security implications for the user, and
+ requesting additional scopes will result in authorization dialogs.
+</p>
+
@@ -804,130 +799,6 @@
-<!-- =========== ENUM CONSTANT SUMMARY =========== -->
-<table id="inhconstants" class="jd-sumtable"><tr><th>
- <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
- <div style="clear:left;">Inherited Constants</div></th></tr>
-
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-
- <a href="#" onclick="return toggleInherited(this, null)" id="inherited-constants-android.os.Parcelable" class="jd-expando-trigger closed"
- ><img id="inherited-constants-android.os.Parcelable-trigger"
- src="/assets/images/triangle-closed.png"
- class="jd-expando-trigger-img" /></a>From interface
-android.os.Parcelable
-<div id="inherited-constants-android.os.Parcelable">
- <div id="inherited-constants-android.os.Parcelable-list"
- class="jd-inheritedlinks">
- </div>
- <div id="inherited-constants-android.os.Parcelable-summary" style="display: none;">
- <table class="jd-sumtable-expando">
-
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol">int</td>
- <td class="jd-linkcol">CONTENTS_FILE_DESCRIPTOR</td>
- <td class="jd-descrcol" width="100%"></td>
- </tr>
-
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol">int</td>
- <td class="jd-linkcol">PARCELABLE_WRITE_RETURN_VALUE</td>
- <td class="jd-descrcol" width="100%"></td>
- </tr>
-
-
-</table>
- </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-
-
-<!-- =========== FIELD SUMMARY =========== -->
-<table id="lfields" class="jd-sumtable"><tr><th colspan="12">Fields</th></tr>
-
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
- static
- final
- <a href="/reference/com/google/android/gms/auth/RecoveryDecisionCreator.html">RecoveryDecisionCreator</a></nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#CREATOR">CREATOR</a></td>
- <td class="jd-descrcol" width="100%"></td>
- </tr>
-
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- boolean</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#isRecoveryInfoNeeded">isRecoveryInfoNeeded</a></td>
- <td class="jd-descrcol" width="100%">Is <code>true</code> if either the account has no recovery information or it
- was updated long time back (controlled by server, default 1 year).</td>
- </tr>
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- boolean</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#isRecoveryInterstitialAllowed">isRecoveryInterstitialAllowed</a></td>
- <td class="jd-descrcol" width="100%">Is <code>true</code> iff the user has permission to update the account.</td>
- </tr>
-
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- PendingIntent</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#recoveryIntent">recoveryIntent</a></td>
- <td class="jd-descrcol" width="100%">A PendingIntent to an activity that gathers recovery information for the given account.</td>
- </tr>
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- PendingIntent</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#recoveryIntentWithoutIntro">recoveryIntentWithoutIntro</a></td>
- <td class="jd-descrcol" width="100%">A PendingIntent to an activity that gathers recovery information for the given account.</td>
- </tr>
-
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- boolean</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#showRecoveryInterstitial">showRecoveryInterstitial</a></td>
- <td class="jd-descrcol" width="100%">Represents the decision and should be obeyed by the client.</td>
- </tr>
-
-
-
-</table>
@@ -940,19 +811,21 @@
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#RecoveryDecision()">RecoveryDecision</a></span>()</nobr>
-
+ <span class="sympad"><a href="/reference/com/google/android/gms/common/api/Scope.html#Scope(java.lang.String)">Scope</a></span>(String scopeUri)</nobr>
+
+ <div class="jd-descrdiv">Creates a new scope with the given URI.</div>
+
</td></tr>
@@ -964,63 +837,6 @@
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
-
-
-
-
-
- int</nobr>
- </td>
- <td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#describeContents()">describeContents</a></span>()</nobr>
-
- </td></tr>
-
-
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol"><nobr>
-
-
-
-
-
- int</nobr>
- </td>
- <td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#getVersionCode()">getVersionCode</a></span>()</nobr>
-
- </td></tr>
-
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
-
-
-
-
-
- void</nobr>
- </td>
- <td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#writeToParcel(android.os.Parcel, int)">writeToParcel</a></span>(Parcel out, int flags)</nobr>
-
- </td></tr>
-
-
-
-</table>
-
-
@@ -1048,240 +864,182 @@
</div>
<div id="inherited-methods-java.lang.Object-summary" style="display: none;">
<table class="jd-sumtable-expando">
-
-
+
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
Object</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">clone</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
boolean</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">equals</span>(Object arg0)</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">finalize</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
Class<?></nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">getClass</span>()</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
int</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">hashCode</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">notify</span>()</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">notifyAll</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
String</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">toString</span>()</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">wait</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">wait</span>(long arg0)</nobr>
-
- </td></tr>
-
-</table>
- </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
- <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-android.os.Parcelable" class="jd-expando-trigger closed"
- ><img id="inherited-methods-android.os.Parcelable-trigger"
- src="/assets/images/triangle-closed.png"
- class="jd-expando-trigger-img" /></a>
-From interface
-
- android.os.Parcelable
-
-<div id="inherited-methods-android.os.Parcelable">
- <div id="inherited-methods-android.os.Parcelable-list"
- class="jd-inheritedlinks">
- </div>
- <div id="inherited-methods-android.os.Parcelable-summary" style="display: none;">
- <table class="jd-sumtable-expando">
-
-
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
- abstract
-
-
-
-
- int</nobr>
- </td>
- <td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad">describeContents</span>()</nobr>
-
- </td></tr>
-
-
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol"><nobr>
- abstract
-
-
-
-
- void</nobr>
- </td>
- <td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad">writeToParcel</span>(Parcel arg0, int arg1)</nobr>
-
</td></tr>
@@ -1317,197 +1075,6 @@
<!-- Fields -->
-<!-- ========= FIELD DETAIL ======== -->
-<h2>Fields</h2>
-
-
-
-
-<A NAME="CREATOR"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
- static
- final
- <a href="/reference/com/google/android/gms/auth/RecoveryDecisionCreator.html">RecoveryDecisionCreator</a>
- </span>
- CREATOR
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-
- </div>
-</div>
-
-
-
-<A NAME="isRecoveryInfoNeeded"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- boolean
- </span>
- isRecoveryInfoNeeded
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>Is <code>true</code> if either the account has no recovery information or it
- was updated long time back (controlled by server, default 1 year).
-</p></div>
-
-
- </div>
-</div>
-
-
-
-<A NAME="isRecoveryInterstitialAllowed"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- boolean
- </span>
- isRecoveryInterstitialAllowed
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>Is <code>true</code> iff the user has permission to update the account.
- Dasher accounts can have recovery information edit disabled by the administrator.
- Eg: @google.com
-</p></div>
-
-
- </div>
-</div>
-
-
-
-<A NAME="recoveryIntent"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- PendingIntent
- </span>
- recoveryIntent
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>A PendingIntent to an activity that gathers recovery information for the given account.
- This intent will be null iff isRecoveryInterstitialAllowed is <code>false</code>.
-</p></div>
-
-
- </div>
-</div>
-
-
-
-<A NAME="recoveryIntentWithoutIntro"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- PendingIntent
- </span>
- recoveryIntentWithoutIntro
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>A PendingIntent to an activity that gathers recovery information for the given account.
- This intent will be null iff isRecoveryInterstitialAllowed is <code>false</code>.
- This intent directly skips to the input activity without showing the intro message.
-</p></div>
-
-
- </div>
-</div>
-
-
-
-<A NAME="showRecoveryInterstitial"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- boolean
- </span>
- showRecoveryInterstitial
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>Represents the decision and should be obeyed by the client. The remaining
- two flags are provided as additional information for one off decisions. This value
- is <code>true</code> iff isRecoveryInfoNeeded is <code>true</code>, isRecoveryInterstitialAllowed is
- <code>true</code> and a specified period (controlled by server, default 2 months) has passed
- since the user was shown a prompt for recovery information on any google property
- (Android, Web, etc.)
-</p></div>
-
-
- </div>
-</div>
-
-
-
-
<!-- Public ctors -->
@@ -1516,30 +1083,31 @@
-<A NAME="RecoveryDecision()"></A>
+<A NAME="Scope(java.lang.String)"></A>
-<div class="jd-details api apilevel-">
+<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
- public
-
-
-
-
-
+ public
+
+
+
+
+
</span>
- <span class="sympad">RecoveryDecision</span>
- <span class="normal">()</span>
+ <span class="sympad">Scope</span>
+ <span class="normal">(String scopeUri)</span>
</h4>
<div class="api-level">
<div></div>
-
-
+
+
</div>
<div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+ <div class="jd-tagdata jd-tagdescr"><p>Creates a new scope with the given URI.
+</p></div>
</div>
</div>
@@ -1556,98 +1124,6 @@
<!-- ========= METHOD DETAIL ======== -->
<!-- Public methdos -->
-<h2>Public Methods</h2>
-
-
-
-<A NAME="describeContents()"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
-
-
- int
- </span>
- <span class="sympad">describeContents</span>
- <span class="normal">()</span>
- </h4>
- <div class="api-level">
- <div></div>
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
- </div>
-</div>
-
-
-<A NAME="getVersionCode()"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
-
-
- int
- </span>
- <span class="sympad">getVersionCode</span>
- <span class="normal">()</span>
- </h4>
- <div class="api-level">
- <div></div>
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
- </div>
-</div>
-
-
-<A NAME="writeToParcel(android.os.Parcel, int)"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
-
-
- void
- </span>
- <span class="sympad">writeToParcel</span>
- <span class="normal">(Parcel out, int flags)</span>
- </h4>
- <div class="api-level">
- <div></div>
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
- </div>
-</div>
-
-
-
<!-- ========= METHOD DETAIL ======== -->
@@ -1658,17 +1134,17 @@
<A NAME="navbar_top"></A>
<div id="footer" class="wrap" >
-
+
<div id="copyright">
-
+
Except as noted, this content is licensed under <a
- href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.
+ href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.
For details and restrictions, see the <a href="/license.html">
Content License</a>.
</div>
<div id="build_info">
-
+
<script src="/timestamp.js" type="text/javascript"></script>
<script>document.write(BUILD_TIMESTAMP)</script>
@@ -1676,7 +1152,7 @@
<div id="footerlinks">
-
+
<p>
<a href="/about/index.html">About Android</a> |
<a href="/legal.html">Legal</a> |
@@ -1689,7 +1165,7 @@
</div><!-- end doc-content -->
-</div> <!-- end body-content -->
+</div> <!-- end body-content -->
diff --git a/docs/html/reference/com/google/android/gms/common/api/Status.html b/docs/html/reference/com/google/android/gms/common/api/Status.html
new file mode 100644
index 0000000..a5ebe54
--- /dev/null
+++ b/docs/html/reference/com/google/android/gms/common/api/Status.html
@@ -0,0 +1,2828 @@
+<!DOCTYPE html>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<html>
+<head>
+
+
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<meta name="viewport" content="width=device-width" />
+
+<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
+<title>Status | Android Developers</title>
+
+<!-- STYLESHEETS -->
+<link rel="stylesheet"
+href="//fonts.googleapis.com/css?family=Roboto:regular,medium,thin,italic,mediumitalic,bold" title="roboto">
+<link href="/assets/css/default.css" rel="stylesheet" type="text/css">
+
+
+
+<!-- JAVASCRIPT -->
+<script src="//www.google.com/jsapi" type="text/javascript"></script>
+<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
+<script type="text/javascript">
+ var toRoot = "/";
+ var metaTags = [];
+ var devsite = false;
+</script>
+<script src="/assets/js/docs.js" type="text/javascript"></script>
+
+<script type="text/javascript">
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-5831155-1']);
+ _gaq.push(['_trackPageview']);
+
+ (function() {
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+ })();
+</script>
+</head>
+<body class="gc-documentation google
+ develop" itemscope itemtype="http://schema.org/Article">
+ <div id="doc-api-level" class="" style="display:none"></div>
+ <a name="top"></a>
+
+<a name="top"></a>
+
+ <!-- Header -->
+ <div id="header">
+ <div class="wrap" id="header-wrap">
+ <div class="col-3 logo">
+ <a href="/index.html">
+ <img src="/assets/images/dac_logo.png" width="123" height="25" alt="Android Developers" />
+ </a>
+ <div class="btn-quicknav" id="btn-quicknav">
+ <a href="#" class="arrow-inactive">Quicknav</a>
+ <a href="#" class="arrow-active">Quicknav</a>
+ </div>
+ </div>
+ <ul class="nav-x col-9">
+ <li class="design">
+ <a href="/design/index.html"
+ zh-tw-lang="設計"
+ zh-cn-lang="设计"
+ ru-lang="Проектирование"
+ ko-lang="디자인"
+ ja-lang="設計"
+ es-lang="Diseñar"
+ >Design</a></li>
+ <li class="develop"><a href="/develop/index.html"
+ zh-tw-lang="開發"
+ zh-cn-lang="开发"
+ ru-lang="Разработка"
+ ko-lang="개발"
+ ja-lang="開発"
+ es-lang="Desarrollar"
+ >Develop</a></li>
+ <li class="distribute last"><a href="/distribute/index.html"
+ zh-tw-lang="發佈"
+ zh-cn-lang="分发"
+ ru-lang="Распространение"
+ ko-lang="배포"
+ ja-lang="配布"
+ es-lang="Distribuir"
+ >Distribute</a></li>
+ </ul>
+
+ <!-- New Search -->
+ <div class="menu-container">
+ <div class="moremenu">
+ <div id="more-btn"></div>
+ </div>
+ <div class="morehover" id="moremenu">
+ <div class="top"></div>
+ <div class="mid">
+ <div class="header">Links</div>
+ <ul>
+ <li><a href="https://play.google.com/apps/publish/">Google Play Developer Console</a></li>
+ <li><a href="http://android-developers.blogspot.com/">Android Developers Blog</a></li>
+ <li><a href="/about/index.html">About Android</a></li>
+ </ul>
+ <div class="header">Android Sites</div>
+ <ul>
+ <li><a href="http://www.android.com">Android.com</a></li>
+ <li class="active"><a>Android Developers</a></li>
+ <li><a href="http://source.android.com">Android Open Source Project</a></li>
+ </ul>
+
+
+
+ <div class="header">Language</div>
+ <div id="language" class="locales">
+ <select name="language" onChange="changeLangPref(this.value, true)">
+ <option value="en">English</option>
+ <option value="es">Español</option>
+ <option value="ja">日本語</option>
+ <option value="ko">한국어</option>
+ <option value="ru">Русский</option>
+ <option value="zh-cn">中文 (中国)</option>
+ <option value="zh-tw">中文 (台灣)</option>
+ </select>
+ </div>
+ <script type="text/javascript">
+ <!--
+ loadLangPref();
+ //-->
+ </script>
+
+
+
+
+ <br class="clearfix" />
+ </div>
+ <div class="bottom"></div>
+ </div>
+ <div class="search" id="search-container">
+ <div class="search-inner">
+ <div id="search-btn"></div>
+ <div class="left"></div>
+ <form onsubmit="return submit_search()">
+ <input id="search_autocomplete" type="text" value="" autocomplete="off" name="q"
+onfocus="search_focus_changed(this, true)" onblur="search_focus_changed(this, false)"
+onkeydown="return search_changed(event, true, '/')"
+onkeyup="return search_changed(event, false, '/')" />
+ </form>
+ <div class="right"></div>
+ <a class="close hide">close</a>
+ <div class="left"></div>
+ <div class="right"></div>
+ </div>
+ </div>
+
+ <div class="search_filtered_wrapper reference">
+ <div class="suggest-card reference no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ </div>
+
+ <div class="search_filtered_wrapper docs">
+ <div class="suggest-card dummy no-display"> </div>
+ <div class="suggest-card develop no-display">
+ <ul class="search_filtered">
+ </ul>
+ <div class="child-card guides no-display">
+ </div>
+ <div class="child-card training no-display">
+ </div>
+ <div class="child-card samples no-display">
+ </div>
+ </div>
+ <div class="suggest-card design no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ <div class="suggest-card distribute no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ </div>
+
+ </div>
+ <!-- /New Search>
+
+
+ <!-- Expanded quicknav -->
+ <div id="quicknav" class="col-9">
+ <ul>
+ <li class="design">
+ <ul>
+ <li><a href="/design/index.html">Get Started</a></li>
+ <li><a href="/design/style/index.html">Style</a></li>
+ <li><a href="/design/patterns/index.html">Patterns</a></li>
+ <li><a href="/design/building-blocks/index.html">Building Blocks</a></li>
+ <li><a href="/design/downloads/index.html">Downloads</a></li>
+ <li><a href="/design/videos/index.html">Videos</a></li>
+ </ul>
+ </li>
+ <li class="develop">
+ <ul>
+ <li><a href="/training/index.html"
+ zh-tw-lang="訓練課程"
+ zh-cn-lang="培训"
+ ru-lang="Курсы"
+ ko-lang="교육"
+ ja-lang="トレーニング"
+ es-lang="Capacitación"
+ >Training</a></li>
+ <li><a href="/guide/index.html"
+ zh-tw-lang="API 指南"
+ zh-cn-lang="API 指南"
+ ru-lang="Руководства по API"
+ ko-lang="API 가이드"
+ ja-lang="API ガイド"
+ es-lang="Guías de la API"
+ >API Guides</a></li>
+ <li><a href="/reference/packages.html"
+ zh-tw-lang="參考資源"
+ zh-cn-lang="参考"
+ ru-lang="Справочник"
+ ko-lang="참조문서"
+ ja-lang="リファレンス"
+ es-lang="Referencia"
+ >Reference</a></li>
+ <li><a href="/tools/index.html"
+ zh-tw-lang="相關工具"
+ zh-cn-lang="工具"
+ ru-lang="Инструменты"
+ ko-lang="도구"
+ ja-lang="ツール"
+ es-lang="Herramientas"
+ >Tools</a>
+ <ul><li><a href="/sdk/index.html">Get the SDK</a></li></ul>
+ </li>
+ <li><a href="/google/index.html">Google Services</a>
+ </li>
+
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
+ </ul>
+ </li>
+ <li class="distribute last">
+ <ul>
+ <li><a href="/distribute/index.html">Google Play</a></li>
+ <li><a href="/distribute/googleplay/publish/index.html">Publishing</a></li>
+ <li><a href="/distribute/googleplay/promote/index.html">Promoting</a></li>
+ <li><a href="/distribute/googleplay/quality/index.html">App Quality</a></li>
+ <li><a href="/distribute/googleplay/spotlight/index.html">Spotlight</a></li>
+ <li><a href="/distribute/open.html">Open Distribution</a></li>
+ </ul>
+ </li>
+ </ul>
+ </div>
+ <!-- /Expanded quicknav -->
+ </div>
+ </div>
+ <!-- /Header -->
+
+
+ <div id="searchResults" class="wrap" style="display:none;">
+ <h2 id="searchTitle">Results</h2>
+ <div id="leftSearchControl" class="search-control">Loading...</div>
+ </div>
+
+
+
+ <!-- Secondary x-nav -->
+ <div id="nav-x">
+ <div class="wrap">
+ <ul class="nav-x col-9 develop" style="width:100%">
+ <li class="training"><a href="/training/index.html"
+ zh-tw-lang="訓練課程"
+ zh-cn-lang="培训"
+ ru-lang="Курсы"
+ ko-lang="교육"
+ ja-lang="トレーニング"
+ es-lang="Capacitación"
+ >Training</a></li>
+ <li class="guide"><a href="/guide/index.html"
+ zh-tw-lang="API 指南"
+ zh-cn-lang="API 指南"
+ ru-lang="Руководства по API"
+ ko-lang="API 가이드"
+ ja-lang="API ガイド"
+ es-lang="Guías de la API"
+ >API Guides</a></li>
+ <li class="reference"><a href="/reference/packages.html"
+ zh-tw-lang="參考資源"
+ zh-cn-lang="参考"
+ ru-lang="Справочник"
+ ko-lang="참조문서"
+ ja-lang="リファレンス"
+ es-lang="Referencia"
+ >Reference</a></li>
+ <li class="tools"><a href="/tools/index.html"
+ zh-tw-lang="相關工具"
+ zh-cn-lang="工具"
+ ru-lang="Инструменты"
+ ko-lang="도구"
+ ja-lang="ツール"
+ es-lang="Herramientas"
+ >Tools</a></li>
+ <li class="google"><a href="/google/index.html"
+ >Google Services</a>
+ </li>
+
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
+ </ul>
+ </div>
+
+ </div>
+ <!-- /Sendondary x-nav -->
+
+
+
+
+
+
+
+
+
+ <div class="wrap clearfix" id="body-content">
+ <div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
+ <div id="devdoc-nav" class="scroll-pane">
+<a class="totop" href="#top" data-g-event="left-nav-top">to top</a>
+
+
+
+<ul id="nav">
+
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/index.html">
+ <span class="en">Overview</span>
+ </a></div>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/games.html">
+ <span class="en">Games</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/location.html">
+ <span class="en">Location</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/plus.html">
+ <span class="en">Google+</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/maps.html">
+ <span class="en">Maps</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play-services/ads.html">
+ <span class="en">Ads</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play-services/id.html">
+ <span class="en">Advertising ID</span></a>
+ </li>
+ </ul>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/wallet.html">
+ <span class="en">Wallet</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/auth.html">
+ <span class="en">Authorization</span>
+ </a></div>
+ </li>
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play-services/index.html">
+ <span class="en">Google Play Services</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play-services/setup.html">
+ <span class="en">Setup</span></a>
+ </li>
+ <li id="gms-tree-list" class="nav-section">
+ <div class="nav-section-header">
+ <a href="/reference/gms-packages.html">
+ <span class="en">Reference</span>
+ </a>
+ <div>
+ </li>
+ </ul>
+ </li>
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/billing/index.html">
+ <span class="en">Google Play In-app Billing</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/billing/billing_overview.html">
+ <span class="en">Overview</span></a>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/api.html">
+ <span class="en">Version 3 API</span></a></div>
+ <ul>
+ <li><a href="/google/play/billing/billing_integrate.html">
+ <span class="en">Implementing the API</span></a></li>
+ <li><a href="/google/play/billing/billing_reference.html">
+ <span class="en">Reference</span></a></li>
+ </ul>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/v2/api.html">
+ <span class="en">Version 2 API</span></a></div>
+ <ul>
+ <li><a href="/google/play/billing/v2/billing_integrate.html">
+ <span class="en">Implementing the API</span></a></li>
+ <li><a href="/google/play/billing/v2/billing_subscriptions.html">
+ <span class="en">Subscriptions</span></a></li>
+ <li><a href="/google/play/billing/v2/billing_reference.html">
+ <span class="en">Reference</span></a></li>
+ </ul>
+ </li>
+ <li><a href="/google/play/billing/billing_subscriptions.html">
+ <span class="en">Subscriptions</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_best_practices.html">
+ <span class="en">Security and Design</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_testing.html">
+ <span class="en">Testing In-app Billing</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_admin.html">
+ <span class="en">Administering In-app Billing</span></a>
+ </li>
+ <li><a href="/google/play/billing/gp-purchase-status-api.html">
+ <span class="en">Purchase Status API</span></a>
+ </li>
+ <li><a href="/google/play/billing/versions.html">
+ <span class="en">Version Notes</span></a>
+ </li>
+ </ul>
+ </li>
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/gcm/index.html">
+ <span class="en">Google Cloud Messaging</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
+ <li><a href="/google/gcm/gs.html">
+ <span class="en">Getting Started</span></a>
+ </li>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
+ </li>
+ <li><a href="/google/gcm/notifications.html">
+ <span class="en">User Notifications</span></a>
+ </li>
+ <li><a href="/google/gcm/adv.html">
+ <span class="en">Advanced Topics</span></a>
+ </li>
+ <li><a href="/google/gcm/c2dm.html">
+ <span class="en">Migration</span></a>
+ </li>
+ <li id="gcm-tree-list" class="nav-section">
+ <div class="nav-section-header">
+ <a href="/reference/gcm-packages.html">
+ <span class="en">Reference</span>
+ </a>
+ <div>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/dist.html">
+ <span class="en">Google Play Distribution</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/filters.html">
+ <span class="en">Filters on Google Play</span></a>
+ </li>
+
+ <li><a href="/google/play/publishing/multiple-apks.html">
+ <span class="en">Multiple APK Support</span></a>
+ </li>
+ <li><a href="/google/play/expansion-files.html">
+ <span class="en">APK Expansion Files</span></a>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/licensing/index.html">
+ <span class="en">Application Licensing</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/licensing/overview.html">
+ <span class="en">Licensing Overview</span></a>
+ </li>
+ <li><a href="/google/play/licensing/setting-up.html">
+ <span class="en">Setting Up for Licensing</span></a>
+ </li>
+ <li><a href="/google/play/licensing/adding-licensing.html">
+ <span class="en">Adding Licensing to Your App</span></a>
+ </li>
+ <li><a href="/google/play/licensing/licensing-reference.html">
+ <span class="en">Licensing Reference</span></a>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/backup/index.html">
+ Android Backup Service</a>
+ </div>
+ <ul>
+ <li><a href="/google/backup/signup.html">
+ Register</a>
+ </li>
+ </ul>
+ </li>
+
+ </ul>
+
+</li>
+
+
+
+</ul>
+
+<script type="text/javascript">
+<!--
+ buildToggleLists();
+ changeNavLang(getLangPref());
+//-->
+</script>
+
+
+
+
+ </div>
+ <script type="text/javascript">
+ showGoogleRefTree();
+
+ </script>
+ </div> <!-- end side-nav -->
+ <script>
+ $(document).ready(function() {
+ scrollIntoView("devdoc-nav");
+ });
+ </script>
+
+
+
+
+
+
+<div class="col-12" id="doc-col">
+
+<div id="api-info-block">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<div class="sum-details-links">
+
+Summary:
+
+
+
+
+
+ <a href="#constants">Constants</a>
+
+
+
+ | <a href="#inhconstants">Inherited Constants</a>
+
+
+
+ | <a href="#lfields">Fields</a>
+
+
+
+
+
+
+ | <a href="#pubmethods">Methods</a>
+
+
+
+
+ | <a href="#inhmethods">Inherited Methods</a>
+
+| <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
+
+</div><!-- end sum-details-links -->
+<div class="api-level">
+
+
+
+
+</div>
+</div><!-- end api-info-block -->
+
+
+<!-- ======== START OF CLASS DATA ======== -->
+
+<div id="jd-header">
+ public
+
+ final
+
+ class
+<h1 itemprop="name">Status</h1>
+
+
+
+
+ extends Object<br/>
+
+
+
+
+
+
+ implements
+
+ Parcelable
+
+ <a href="/reference/com/google/android/gms/common/api/Result.html">Result</a>
+
+
+
+
+
+</div><!-- end header -->
+
+<div id="naMessage"></div>
+
+<div id="jd-content" class="api apilevel-">
+<table class="jd-inheritance-table">
+
+
+ <tr>
+
+ <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
+ </tr>
+
+
+ <tr>
+
+ <td class="jd-inheritance-space"> ↳</td>
+
+ <td colspan="1" class="jd-inheritance-class-cell">com.google.android.gms.common.api.Status</td>
+ </tr>
+
+
+</table>
+
+
+
+
+
+
+
+<div class="jd-descr">
+
+
+<h2>Class Overview</h2>
+<p itemprop="articleBody">Represents the results of work.
+</p>
+
+
+
+
+
+</div><!-- jd-descr -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<div class="jd-descr">
+
+
+<h2>Summary</h2>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<!-- =========== ENUM CONSTANT SUMMARY =========== -->
+<table id="constants" class="jd-sumtable"><tr><th colspan="12">Constants</th></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/common/api/Status.html#DATE_INVALID">DATE_INVALID</a></td>
+ <td class="jd-descrcol" width="100%">The device date is likely set incorrectly.</td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/common/api/Status.html#DEVELOPER_ERROR">DEVELOPER_ERROR</a></td>
+ <td class="jd-descrcol" width="100%">The application is misconfigured.</td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/common/api/Status.html#ERROR">ERROR</a></td>
+ <td class="jd-descrcol" width="100%">The operation failed with no more detailed information.</td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/common/api/Status.html#GEOFENCE_NOT_AVAILABLE">GEOFENCE_NOT_AVAILABLE</a></td>
+ <td class="jd-descrcol" width="100%">Geofence service is not available now.</td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/common/api/Status.html#GEOFENCE_TOO_MANY_GEOFENCES">GEOFENCE_TOO_MANY_GEOFENCES</a></td>
+ <td class="jd-descrcol" width="100%">Your app has registered more than 100 geofences.</td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/common/api/Status.html#GEOFENCE_TOO_MANY_PENDING_INTENTS">GEOFENCE_TOO_MANY_PENDING_INTENTS</a></td>
+ <td class="jd-descrcol" width="100%">You have provided more than 5 different PendingIntents to the
+ <code><a href="/reference/com/google/android/gms/location/LocationClient.html#addGeofences(java.util.List<com.google.android.gms.location.Geofence>, android.app.PendingIntent, com.google.android.gms.location.LocationClient.OnAddGeofencesResultListener)">addGeofences(List, PendingIntent, OnAddGeofencesResultListener)</a></code> call.</td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/common/api/Status.html#INTERNAL_ERROR">INTERNAL_ERROR</a></td>
+ <td class="jd-descrcol" width="100%">An internal error occurred.</td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/common/api/Status.html#INTERRUPTED">INTERRUPTED</a></td>
+ <td class="jd-descrcol" width="100%">Was interrupted while waiting for the result.</td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/common/api/Status.html#INVALID_ACCOUNT">INVALID_ACCOUNT</a></td>
+ <td class="jd-descrcol" width="100%">The client attempted to connect to the service with an invalid account name specified.</td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/common/api/Status.html#LICENSE_CHECK_FAILED">LICENSE_CHECK_FAILED</a></td>
+ <td class="jd-descrcol" width="100%">The application is not licensed to the user.</td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/common/api/Status.html#NETWORK_ERROR">NETWORK_ERROR</a></td>
+ <td class="jd-descrcol" width="100%">A network error occurred.</td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/common/api/Status.html#RESOLUTION_REQUIRED">RESOLUTION_REQUIRED</a></td>
+ <td class="jd-descrcol" width="100%">Completing the connection requires some form of resolution.</td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/common/api/Status.html#SERVICE_DISABLED">SERVICE_DISABLED</a></td>
+ <td class="jd-descrcol" width="100%">The installed version of Google Play services has been disabled on this device.</td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/common/api/Status.html#SERVICE_INVALID">SERVICE_INVALID</a></td>
+ <td class="jd-descrcol" width="100%">The version of the Google Play services installed on this device is not authentic.</td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/common/api/Status.html#SERVICE_MISSING">SERVICE_MISSING</a></td>
+ <td class="jd-descrcol" width="100%">Google Play services is missing on this device.</td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/common/api/Status.html#SERVICE_VERSION_UPDATE_REQUIRED">SERVICE_VERSION_UPDATE_REQUIRED</a></td>
+ <td class="jd-descrcol" width="100%">The installed version of Google Play services is out of date.</td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/common/api/Status.html#SIGN_IN_REQUIRED">SIGN_IN_REQUIRED</a></td>
+ <td class="jd-descrcol" width="100%">The client attempted to connect to the service but the user is not signed in.</td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/common/api/Status.html#SUCCESS">SUCCESS</a></td>
+ <td class="jd-descrcol" width="100%">The operation was successful.</td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/common/api/Status.html#SUCCESS_CACHE">SUCCESS_CACHE</a></td>
+ <td class="jd-descrcol" width="100%">The operation was successful, but was used the device's cache.</td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/common/api/Status.html#TIMEOUT">TIMEOUT</a></td>
+ <td class="jd-descrcol" width="100%">Timed out while awaiting the result.</td>
+ </tr>
+
+
+
+</table>
+
+
+
+
+
+<!-- =========== ENUM CONSTANT SUMMARY =========== -->
+<table id="inhconstants" class="jd-sumtable"><tr><th>
+ <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
+ <div style="clear:left;">Inherited Constants</div></th></tr>
+
+
+
+
+<tr class="api apilevel-" >
+<td colspan="12">
+
+ <a href="#" onclick="return toggleInherited(this, null)" id="inherited-constants-android.os.Parcelable" class="jd-expando-trigger closed"
+ ><img id="inherited-constants-android.os.Parcelable-trigger"
+ src="/assets/images/triangle-closed.png"
+ class="jd-expando-trigger-img" /></a>From interface
+android.os.Parcelable
+<div id="inherited-constants-android.os.Parcelable">
+ <div id="inherited-constants-android.os.Parcelable-list"
+ class="jd-inheritedlinks">
+ </div>
+ <div id="inherited-constants-android.os.Parcelable-summary" style="display: none;">
+ <table class="jd-sumtable-expando">
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">CONTENTS_FILE_DESCRIPTOR</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">PARCELABLE_WRITE_RETURN_VALUE</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+</table>
+ </div>
+</div>
+</td></tr>
+
+
+
+
+</table>
+
+
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+<table id="lfields" class="jd-sumtable"><tr><th colspan="12">Fields</th></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ public
+ static
+ final
+ <a href="/reference/com/google/android/gms/common/api/StatusCreator.html">StatusCreator</a></nobr></td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/common/api/Status.html#CREATOR">CREATOR</a></td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+
+</table>
+
+
+
+
+
+
+
+
+
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
+
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/common/api/Status.html#describeContents()">describeContents</a></span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ PendingIntent</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/common/api/Status.html#getResolution()">getResolution</a></span>()</nobr>
+
+ <div class="jd-descrdiv">A pending intent to resolve the failure.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ <a href="/reference/com/google/android/gms/common/api/Status.html">Status</a></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/common/api/Status.html#getStatus()">getStatus</a></span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/common/api/Status.html#getStatusCode()">getStatusCode</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Indicates the status of the operation.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/common/api/Status.html#hasResolution()">hasResolution</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Returns true if calling <code><a href="/reference/com/google/android/gms/common/api/Status.html#startResolutionForResult(android.app.Activity, int)">startResolutionForResult(Activity, int)</a></code>
+ will start any intents requiring user interaction.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/common/api/Status.html#isInterrupted()">isInterrupted</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Returns true if the operation was interrupted.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/common/api/Status.html#isSuccess()">isSuccess</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Returns true if the operation was successful.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/common/api/Status.html#startResolutionForResult(android.app.Activity, int)">startResolutionForResult</a></span>(Activity activity, int requestCode)</nobr>
+
+ <div class="jd-descrdiv">Resolves an error by starting any intents requiring user interaction.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ String</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/common/api/Status.html#toString()">toString</a></span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/common/api/Status.html#writeToParcel(android.os.Parcel, int)">writeToParcel</a></span>(Parcel out, int flags)</nobr>
+
+ </td></tr>
+
+
+
+</table>
+
+
+
+
+
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+<table id="inhmethods" class="jd-sumtable"><tr><th>
+ <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
+ <div style="clear:left;">Inherited Methods</div></th></tr>
+
+
+<tr class="api apilevel-" >
+<td colspan="12">
+ <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
+ ><img id="inherited-methods-java.lang.Object-trigger"
+ src="/assets/images/triangle-closed.png"
+ class="jd-expando-trigger-img" /></a>
+From class
+
+ java.lang.Object
+
+<div id="inherited-methods-java.lang.Object">
+ <div id="inherited-methods-java.lang.Object-list"
+ class="jd-inheritedlinks">
+ </div>
+ <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
+ <table class="jd-sumtable-expando">
+
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ Object</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">clone</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">equals</span>(Object arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">finalize</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ Class<?></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getClass</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">hashCode</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">notify</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">notifyAll</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ String</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">toString</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">wait</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">wait</span>(long arg0)</nobr>
+
+ </td></tr>
+
+
+</table>
+ </div>
+</div>
+</td></tr>
+
+
+
+<tr class="api apilevel-" >
+<td colspan="12">
+ <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-android.os.Parcelable" class="jd-expando-trigger closed"
+ ><img id="inherited-methods-android.os.Parcelable-trigger"
+ src="/assets/images/triangle-closed.png"
+ class="jd-expando-trigger-img" /></a>
+From interface
+
+ android.os.Parcelable
+
+<div id="inherited-methods-android.os.Parcelable">
+ <div id="inherited-methods-android.os.Parcelable-list"
+ class="jd-inheritedlinks">
+ </div>
+ <div id="inherited-methods-android.os.Parcelable-summary" style="display: none;">
+ <table class="jd-sumtable-expando">
+
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">describeContents</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">writeToParcel</span>(Parcel arg0, int arg1)</nobr>
+
+ </td></tr>
+
+
+</table>
+ </div>
+</div>
+</td></tr>
+
+
+
+<tr class="api apilevel-" >
+<td colspan="12">
+ <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.android.gms.common.api.Result" class="jd-expando-trigger closed"
+ ><img id="inherited-methods-com.google.android.gms.common.api.Result-trigger"
+ src="/assets/images/triangle-closed.png"
+ class="jd-expando-trigger-img" /></a>
+From interface
+
+ <a href="/reference/com/google/android/gms/common/api/Result.html">com.google.android.gms.common.api.Result</a>
+
+<div id="inherited-methods-com.google.android.gms.common.api.Result">
+ <div id="inherited-methods-com.google.android.gms.common.api.Result-list"
+ class="jd-inheritedlinks">
+ </div>
+ <div id="inherited-methods-com.google.android.gms.common.api.Result-summary" style="display: none;">
+ <table class="jd-sumtable-expando">
+
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ <a href="/reference/com/google/android/gms/common/api/Status.html">Status</a></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/common/api/Result.html#getStatus()">getStatus</a></span>()</nobr>
+
+ </td></tr>
+
+
+</table>
+ </div>
+</div>
+</td></tr>
+
+
+</table>
+
+
+</div><!-- jd-descr (summary) -->
+
+<!-- Details -->
+
+
+
+
+
+
+
+
+<!-- XML Attributes -->
+
+
+<!-- Enum Values -->
+
+
+<!-- Constants -->
+
+
+<!-- ========= ENUM CONSTANTS DETAIL ======== -->
+<h2>Constants</h2>
+
+
+
+
+<A NAME="DATE_INVALID"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+ static
+ final
+ int
+ </span>
+ DATE_INVALID
+ </h4>
+ <div class="api-level">
+
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>The device date is likely set incorrectly. This error is recoverable by the user updating the
+ date.
+</p></div>
+
+
+ <div class="jd-tagdata">
+ <span class="jd-tagtitle">Constant Value: </span>
+ <span>
+
+ 12
+ (0x0000000c)
+
+ </span>
+ </div>
+
+ </div>
+</div>
+
+
+
+<A NAME="DEVELOPER_ERROR"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+ static
+ final
+ int
+ </span>
+ DEVELOPER_ERROR
+ </h4>
+ <div class="api-level">
+
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>The application is misconfigured. This error is not recoverable and will be treated as fatal.
+ The developer should look at the logs after this to determine more actionable information.
+</p></div>
+
+
+ <div class="jd-tagdata">
+ <span class="jd-tagtitle">Constant Value: </span>
+ <span>
+
+ 10
+ (0x0000000a)
+
+ </span>
+ </div>
+
+ </div>
+</div>
+
+
+
+<A NAME="ERROR"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+ static
+ final
+ int
+ </span>
+ ERROR
+ </h4>
+ <div class="api-level">
+
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>The operation failed with no more detailed information. </p></div>
+
+
+ <div class="jd-tagdata">
+ <span class="jd-tagtitle">Constant Value: </span>
+ <span>
+
+ 13
+ (0x0000000d)
+
+ </span>
+ </div>
+
+ </div>
+</div>
+
+
+
+<A NAME="GEOFENCE_NOT_AVAILABLE"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+ static
+ final
+ int
+ </span>
+ GEOFENCE_NOT_AVAILABLE
+ </h4>
+ <div class="api-level">
+
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Geofence service is not available now. Typically this is because the user turned off location
+ access in settings > location access.
+</p></div>
+
+
+ <div class="jd-tagdata">
+ <span class="jd-tagtitle">Constant Value: </span>
+ <span>
+
+ 1000
+ (0x000003e8)
+
+ </span>
+ </div>
+
+ </div>
+</div>
+
+
+
+<A NAME="GEOFENCE_TOO_MANY_GEOFENCES"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+ static
+ final
+ int
+ </span>
+ GEOFENCE_TOO_MANY_GEOFENCES
+ </h4>
+ <div class="api-level">
+
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Your app has registered more than 100 geofences. Remove unused ones before adding new
+ geofences.
+</p></div>
+
+
+ <div class="jd-tagdata">
+ <span class="jd-tagtitle">Constant Value: </span>
+ <span>
+
+ 1001
+ (0x000003e9)
+
+ </span>
+ </div>
+
+ </div>
+</div>
+
+
+
+<A NAME="GEOFENCE_TOO_MANY_PENDING_INTENTS"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+ static
+ final
+ int
+ </span>
+ GEOFENCE_TOO_MANY_PENDING_INTENTS
+ </h4>
+ <div class="api-level">
+
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>You have provided more than 5 different PendingIntents to the
+ <code><a href="/reference/com/google/android/gms/location/LocationClient.html#addGeofences(java.util.List<com.google.android.gms.location.Geofence>, android.app.PendingIntent, com.google.android.gms.location.LocationClient.OnAddGeofencesResultListener)">addGeofences(List, PendingIntent, OnAddGeofencesResultListener)</a></code> call.
+</p></div>
+
+
+ <div class="jd-tagdata">
+ <span class="jd-tagtitle">Constant Value: </span>
+ <span>
+
+ 1002
+ (0x000003ea)
+
+ </span>
+ </div>
+
+ </div>
+</div>
+
+
+
+<A NAME="INTERNAL_ERROR"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+ static
+ final
+ int
+ </span>
+ INTERNAL_ERROR
+ </h4>
+ <div class="api-level">
+
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>An internal error occurred. Retrying should resolve the problem. </p></div>
+
+
+ <div class="jd-tagdata">
+ <span class="jd-tagtitle">Constant Value: </span>
+ <span>
+
+ 8
+ (0x00000008)
+
+ </span>
+ </div>
+
+ </div>
+</div>
+
+
+
+<A NAME="INTERRUPTED"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+ static
+ final
+ int
+ </span>
+ INTERRUPTED
+ </h4>
+ <div class="api-level">
+
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Was interrupted while waiting for the result.
+</p></div>
+
+
+ <div class="jd-tagdata">
+ <span class="jd-tagtitle">Constant Value: </span>
+ <span>
+
+ 14
+ (0x0000000e)
+
+ </span>
+ </div>
+
+ </div>
+</div>
+
+
+
+<A NAME="INVALID_ACCOUNT"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+ static
+ final
+ int
+ </span>
+ INVALID_ACCOUNT
+ </h4>
+ <div class="api-level">
+
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>The client attempted to connect to the service with an invalid account name specified. </p></div>
+
+
+ <div class="jd-tagdata">
+ <span class="jd-tagtitle">Constant Value: </span>
+ <span>
+
+ 5
+ (0x00000005)
+
+ </span>
+ </div>
+
+ </div>
+</div>
+
+
+
+<A NAME="LICENSE_CHECK_FAILED"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+ static
+ final
+ int
+ </span>
+ LICENSE_CHECK_FAILED
+ </h4>
+ <div class="api-level">
+
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>The application is not licensed to the user. This error is not recoverable and will be
+ treated as fatal.
+</p></div>
+
+
+ <div class="jd-tagdata">
+ <span class="jd-tagtitle">Constant Value: </span>
+ <span>
+
+ 11
+ (0x0000000b)
+
+ </span>
+ </div>
+
+ </div>
+</div>
+
+
+
+<A NAME="NETWORK_ERROR"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+ static
+ final
+ int
+ </span>
+ NETWORK_ERROR
+ </h4>
+ <div class="api-level">
+
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>A network error occurred. Retrying should resolve the problem. </p></div>
+
+
+ <div class="jd-tagdata">
+ <span class="jd-tagtitle">Constant Value: </span>
+ <span>
+
+ 7
+ (0x00000007)
+
+ </span>
+ </div>
+
+ </div>
+</div>
+
+
+
+<A NAME="RESOLUTION_REQUIRED"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+ static
+ final
+ int
+ </span>
+ RESOLUTION_REQUIRED
+ </h4>
+ <div class="api-level">
+
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Completing the connection requires some form of resolution. A resolution will be available
+ to be started with <code><a href="/reference/com/google/android/gms/common/api/Status.html#startResolutionForResult(android.app.Activity, int)">startResolutionForResult(Activity, int)</a></code>. If the result returned
+ is <code><a href="/reference/android/app/Activity.html#RESULT_OK">RESULT_OK</a></code>, then further attempts to connect should either complete or
+ continue on to the next issue that needs to be resolved.
+</p></div>
+
+
+ <div class="jd-tagdata">
+ <span class="jd-tagtitle">Constant Value: </span>
+ <span>
+
+ 6
+ (0x00000006)
+
+ </span>
+ </div>
+
+ </div>
+</div>
+
+
+
+<A NAME="SERVICE_DISABLED"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+ static
+ final
+ int
+ </span>
+ SERVICE_DISABLED
+ </h4>
+ <div class="api-level">
+
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>The installed version of Google Play services has been disabled on this device. The calling
+ activity should pass this error code to <code><a href="/reference/com/google/android/gms/common/GooglePlayServicesUtil.html#getErrorDialog(int, android.app.Activity, int)">getErrorDialog(int, Activity, int)</a></code> to get
+ a localized error dialog that will resolve the error when shown.
+</p></div>
+
+
+ <div class="jd-tagdata">
+ <span class="jd-tagtitle">Constant Value: </span>
+ <span>
+
+ 3
+ (0x00000003)
+
+ </span>
+ </div>
+
+ </div>
+</div>
+
+
+
+<A NAME="SERVICE_INVALID"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+ static
+ final
+ int
+ </span>
+ SERVICE_INVALID
+ </h4>
+ <div class="api-level">
+
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>The version of the Google Play services installed on this device is not authentic. </p></div>
+
+
+ <div class="jd-tagdata">
+ <span class="jd-tagtitle">Constant Value: </span>
+ <span>
+
+ 9
+ (0x00000009)
+
+ </span>
+ </div>
+
+ </div>
+</div>
+
+
+
+<A NAME="SERVICE_MISSING"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+ static
+ final
+ int
+ </span>
+ SERVICE_MISSING
+ </h4>
+ <div class="api-level">
+
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Google Play services is missing on this device. The calling activity should pass this error
+ code to <code><a href="/reference/com/google/android/gms/common/GooglePlayServicesUtil.html#getErrorDialog(int, android.app.Activity, int)">getErrorDialog(int, Activity, int)</a></code> to get a localized error dialog that
+ will resolve the error when shown.
+</p></div>
+
+
+ <div class="jd-tagdata">
+ <span class="jd-tagtitle">Constant Value: </span>
+ <span>
+
+ 1
+ (0x00000001)
+
+ </span>
+ </div>
+
+ </div>
+</div>
+
+
+
+<A NAME="SERVICE_VERSION_UPDATE_REQUIRED"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+ static
+ final
+ int
+ </span>
+ SERVICE_VERSION_UPDATE_REQUIRED
+ </h4>
+ <div class="api-level">
+
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>The installed version of Google Play services is out of date. The calling activity should
+ pass this error code to <code><a href="/reference/com/google/android/gms/common/GooglePlayServicesUtil.html#getErrorDialog(int, android.app.Activity, int)">getErrorDialog(int, Activity, int)</a></code> to get a localized
+ error dialog that will resolve the error when shown.
+</p></div>
+
+
+ <div class="jd-tagdata">
+ <span class="jd-tagtitle">Constant Value: </span>
+ <span>
+
+ 2
+ (0x00000002)
+
+ </span>
+ </div>
+
+ </div>
+</div>
+
+
+
+<A NAME="SIGN_IN_REQUIRED"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+ static
+ final
+ int
+ </span>
+ SIGN_IN_REQUIRED
+ </h4>
+ <div class="api-level">
+
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>The client attempted to connect to the service but the user is not signed in. The client may
+ choose to continue without using the API or it may call <code><a href="/reference/com/google/android/gms/common/api/Status.html#startResolutionForResult(android.app.Activity, int)">startResolutionForResult(Activity, int)</a></code> to
+ prompt the user to sign in. After the sign in activity returns with
+ <code><a href="/reference/android/app/Activity.html#RESULT_OK">RESULT_OK</a></code> further attempts to connect should succeed.
+</p></div>
+
+
+ <div class="jd-tagdata">
+ <span class="jd-tagtitle">Constant Value: </span>
+ <span>
+
+ 4
+ (0x00000004)
+
+ </span>
+ </div>
+
+ </div>
+</div>
+
+
+
+<A NAME="SUCCESS"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+ static
+ final
+ int
+ </span>
+ SUCCESS
+ </h4>
+ <div class="api-level">
+
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>The operation was successful. </p></div>
+
+
+ <div class="jd-tagdata">
+ <span class="jd-tagtitle">Constant Value: </span>
+ <span>
+
+ 0
+ (0x00000000)
+
+ </span>
+ </div>
+
+ </div>
+</div>
+
+
+
+<A NAME="SUCCESS_CACHE"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+ static
+ final
+ int
+ </span>
+ SUCCESS_CACHE
+ </h4>
+ <div class="api-level">
+
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>The operation was successful, but was used the device's cache. If this is a write, the data
+ will be written when the device is online; errors will be written to the logs. If this is a
+ read, the data was read from a device cache and may be stale.
+</p></div>
+
+
+ <div class="jd-tagdata">
+ <span class="jd-tagtitle">Constant Value: </span>
+ <span>
+
+ -1
+ (0xffffffff)
+
+ </span>
+ </div>
+
+ </div>
+</div>
+
+
+
+<A NAME="TIMEOUT"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+ static
+ final
+ int
+ </span>
+ TIMEOUT
+ </h4>
+ <div class="api-level">
+
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Timed out while awaiting the result.
+</p></div>
+
+
+ <div class="jd-tagdata">
+ <span class="jd-tagtitle">Constant Value: </span>
+ <span>
+
+ 15
+ (0x0000000f)
+
+ </span>
+ </div>
+
+ </div>
+</div>
+
+
+
+
+<!-- Fields -->
+
+
+<!-- ========= FIELD DETAIL ======== -->
+<h2>Fields</h2>
+
+
+
+
+<A NAME="CREATOR"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+ static
+ final
+ <a href="/reference/com/google/android/gms/common/api/StatusCreator.html">StatusCreator</a>
+ </span>
+ CREATOR
+ </h4>
+ <div class="api-level">
+
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+
+ </div>
+</div>
+
+
+
+
+<!-- Public ctors -->
+
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<!-- Protected ctors -->
+
+
+
+<!-- ========= METHOD DETAIL ======== -->
+<!-- Public methdos -->
+
+<h2>Public Methods</h2>
+
+
+
+<A NAME="describeContents()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ int
+ </span>
+ <span class="sympad">describeContents</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+ </div>
+</div>
+
+
+<A NAME="getResolution()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ PendingIntent
+ </span>
+ <span class="sympad">getResolution</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>A pending intent to resolve the failure. This intent can be started with
+ <code><a href="/reference/android/app/Activity.html#startIntentSenderForResult(android.content.IntentSender, int, android.content.Intent, int, int, int)">startIntentSenderForResult(IntentSender, int, Intent, int, int, int)</a></code> to
+ present UI to solve the issue.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>The pending intent to resolve the failure.
+</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="getStatus()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ <a href="/reference/com/google/android/gms/common/api/Status.html">Status</a>
+ </span>
+ <span class="sympad">getStatus</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+ </div>
+</div>
+
+
+<A NAME="getStatusCode()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ int
+ </span>
+ <span class="sympad">getStatusCode</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Indicates the status of the operation.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>Status code resulting from the operation.
+</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="hasResolution()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ boolean
+ </span>
+ <span class="sympad">hasResolution</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Returns true if calling <code><a href="/reference/com/google/android/gms/common/api/Status.html#startResolutionForResult(android.app.Activity, int)">startResolutionForResult(Activity, int)</a></code>
+ will start any intents requiring user interaction.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>true if there is a resolution that can be started.
+</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="isInterrupted()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ boolean
+ </span>
+ <span class="sympad">isInterrupted</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Returns true if the operation was interrupted.
+</p></div>
+
+ </div>
+</div>
+
+
+<A NAME="isSuccess()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ boolean
+ </span>
+ <span class="sympad">isSuccess</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Returns true if the operation was successful.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>true if the operation was successful, false if there was an error.
+</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="startResolutionForResult(android.app.Activity, int)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ void
+ </span>
+ <span class="sympad">startResolutionForResult</span>
+ <span class="normal">(Activity activity, int requestCode)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Resolves an error by starting any intents requiring user interaction.
+ See <code><a href="/reference/com/google/android/gms/common/api/Status.html#SIGN_IN_REQUIRED">SIGN_IN_REQUIRED</a></code>, and <code><a href="/reference/com/google/android/gms/common/api/Status.html#RESOLUTION_REQUIRED">RESOLUTION_REQUIRED</a></code>.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>activity</td>
+ <td>An Activity context to use to resolve the issue. The activity's
+ onActivityResult method will be invoked after the user is done. If the
+ resultCode is <code><a href="/reference/android/app/Activity.html#RESULT_OK">RESULT_OK</a></code>, the application should try to
+ connect again.</td>
+ </tr>
+ <tr>
+ <th>requestCode</td>
+ <td>The request code to pass to onActivityResult.</td>
+ </tr>
+ </table>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Throws</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>IntentSender.SendIntentException</td>
+ <td>If the resolution intent has been canceled or is
+ no longer able to execute the request.
+</td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="toString()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ String
+ </span>
+ <span class="sympad">toString</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+ </div>
+</div>
+
+
+<A NAME="writeToParcel(android.os.Parcel, int)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ void
+ </span>
+ <span class="sympad">writeToParcel</span>
+ <span class="normal">(Parcel out, int flags)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+ </div>
+</div>
+
+
+
+
+
+<!-- ========= METHOD DETAIL ======== -->
+
+
+
+<!-- ========= END OF CLASS DATA ========= -->
+<A NAME="navbar_top"></A>
+
+<div id="footer" class="wrap" >
+
+
+ <div id="copyright">
+
+ Except as noted, this content is licensed under <a
+ href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.
+ For details and restrictions, see the <a href="/license.html">
+ Content License</a>.
+ </div>
+ <div id="build_info">
+
+<script src="/timestamp.js" type="text/javascript"></script>
+<script>document.write(BUILD_TIMESTAMP)</script>
+
+ </div>
+
+
+ <div id="footerlinks">
+
+ <p>
+ <a href="/about/index.html">About Android</a> |
+ <a href="/legal.html">Legal</a> |
+ <a href="/support.html">Support</a>
+ </p>
+ </div>
+
+</div> <!-- end footer -->
+</div> <!-- jd-content -->
+
+</div><!-- end doc-content -->
+
+</div> <!-- end body-content -->
+
+
+
+
+
+
+</body>
+</html>
diff --git a/docs/html/reference/com/google/android/gms/common/api/package-summary.html b/docs/html/reference/com/google/android/gms/common/api/package-summary.html
new file mode 100644
index 0000000..5842c03
--- /dev/null
+++ b/docs/html/reference/com/google/android/gms/common/api/package-summary.html
@@ -0,0 +1,801 @@
+<!DOCTYPE html>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<html>
+<head>
+
+
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<meta name="viewport" content="width=device-width" />
+
+<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
+<title>com.google.android.gms.common.api | Android Developers</title>
+
+<!-- STYLESHEETS -->
+<link rel="stylesheet"
+href="//fonts.googleapis.com/css?family=Roboto:regular,medium,thin,italic,mediumitalic,bold" title="roboto">
+<link href="/assets/css/default.css" rel="stylesheet" type="text/css">
+
+
+
+<!-- JAVASCRIPT -->
+<script src="//www.google.com/jsapi" type="text/javascript"></script>
+<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
+<script type="text/javascript">
+ var toRoot = "/";
+ var metaTags = [];
+ var devsite = false;
+</script>
+<script src="/assets/js/docs.js" type="text/javascript"></script>
+
+<script type="text/javascript">
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-5831155-1']);
+ _gaq.push(['_trackPageview']);
+
+ (function() {
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+ })();
+</script>
+</head>
+
+<body class="gc-documentation google
+ develop">
+ <div id="doc-api-level" class="" style="display:none"></div>
+ <a name="top"></a>
+
+<a name="top"></a>
+
+ <!-- Header -->
+ <div id="header">
+ <div class="wrap" id="header-wrap">
+ <div class="col-3 logo">
+ <a href="/index.html">
+ <img src="/assets/images/dac_logo.png" width="123" height="25" alt="Android Developers" />
+ </a>
+ <div class="btn-quicknav" id="btn-quicknav">
+ <a href="#" class="arrow-inactive">Quicknav</a>
+ <a href="#" class="arrow-active">Quicknav</a>
+ </div>
+ </div>
+ <ul class="nav-x col-9">
+ <li class="design">
+ <a href="/design/index.html"
+ zh-tw-lang="設計"
+ zh-cn-lang="设计"
+ ru-lang="Проектирование"
+ ko-lang="디자인"
+ ja-lang="設計"
+ es-lang="Diseñar"
+ >Design</a></li>
+ <li class="develop"><a href="/develop/index.html"
+ zh-tw-lang="開發"
+ zh-cn-lang="开发"
+ ru-lang="Разработка"
+ ko-lang="개발"
+ ja-lang="開発"
+ es-lang="Desarrollar"
+ >Develop</a></li>
+ <li class="distribute last"><a href="/distribute/index.html"
+ zh-tw-lang="發佈"
+ zh-cn-lang="分发"
+ ru-lang="Распространение"
+ ko-lang="배포"
+ ja-lang="配布"
+ es-lang="Distribuir"
+ >Distribute</a></li>
+ </ul>
+
+ <!-- New Search -->
+ <div class="menu-container">
+ <div class="moremenu">
+ <div id="more-btn"></div>
+ </div>
+ <div class="morehover" id="moremenu">
+ <div class="top"></div>
+ <div class="mid">
+ <div class="header">Links</div>
+ <ul>
+ <li><a href="https://play.google.com/apps/publish/">Google Play Developer Console</a></li>
+ <li><a href="http://android-developers.blogspot.com/">Android Developers Blog</a></li>
+ <li><a href="/about/index.html">About Android</a></li>
+ </ul>
+ <div class="header">Android Sites</div>
+ <ul>
+ <li><a href="http://www.android.com">Android.com</a></li>
+ <li class="active"><a>Android Developers</a></li>
+ <li><a href="http://source.android.com">Android Open Source Project</a></li>
+ </ul>
+
+
+
+ <div class="header">Language</div>
+ <div id="language" class="locales">
+ <select name="language" onChange="changeLangPref(this.value, true)">
+ <option value="en">English</option>
+ <option value="es">Español</option>
+ <option value="ja">日本語</option>
+ <option value="ko">한국어</option>
+ <option value="ru">Русский</option>
+ <option value="zh-cn">中文 (中国)</option>
+ <option value="zh-tw">中文 (台灣)</option>
+ </select>
+ </div>
+ <script type="text/javascript">
+ <!--
+ loadLangPref();
+ //-->
+ </script>
+
+
+
+
+ <br class="clearfix" />
+ </div>
+ <div class="bottom"></div>
+ </div>
+ <div class="search" id="search-container">
+ <div class="search-inner">
+ <div id="search-btn"></div>
+ <div class="left"></div>
+ <form onsubmit="return submit_search()">
+ <input id="search_autocomplete" type="text" value="" autocomplete="off" name="q"
+onfocus="search_focus_changed(this, true)" onblur="search_focus_changed(this, false)"
+onkeydown="return search_changed(event, true, '/')"
+onkeyup="return search_changed(event, false, '/')" />
+ </form>
+ <div class="right"></div>
+ <a class="close hide">close</a>
+ <div class="left"></div>
+ <div class="right"></div>
+ </div>
+ </div>
+
+ <div class="search_filtered_wrapper reference">
+ <div class="suggest-card reference no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ </div>
+
+ <div class="search_filtered_wrapper docs">
+ <div class="suggest-card dummy no-display"> </div>
+ <div class="suggest-card develop no-display">
+ <ul class="search_filtered">
+ </ul>
+ <div class="child-card guides no-display">
+ </div>
+ <div class="child-card training no-display">
+ </div>
+ <div class="child-card samples no-display">
+ </div>
+ </div>
+ <div class="suggest-card design no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ <div class="suggest-card distribute no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ </div>
+
+ </div>
+ <!-- /New Search>
+
+
+ <!-- Expanded quicknav -->
+ <div id="quicknav" class="col-9">
+ <ul>
+ <li class="design">
+ <ul>
+ <li><a href="/design/index.html">Get Started</a></li>
+ <li><a href="/design/style/index.html">Style</a></li>
+ <li><a href="/design/patterns/index.html">Patterns</a></li>
+ <li><a href="/design/building-blocks/index.html">Building Blocks</a></li>
+ <li><a href="/design/downloads/index.html">Downloads</a></li>
+ <li><a href="/design/videos/index.html">Videos</a></li>
+ </ul>
+ </li>
+ <li class="develop">
+ <ul>
+ <li><a href="/training/index.html"
+ zh-tw-lang="訓練課程"
+ zh-cn-lang="培训"
+ ru-lang="Курсы"
+ ko-lang="교육"
+ ja-lang="トレーニング"
+ es-lang="Capacitación"
+ >Training</a></li>
+ <li><a href="/guide/index.html"
+ zh-tw-lang="API 指南"
+ zh-cn-lang="API 指南"
+ ru-lang="Руководства по API"
+ ko-lang="API 가이드"
+ ja-lang="API ガイド"
+ es-lang="Guías de la API"
+ >API Guides</a></li>
+ <li><a href="/reference/packages.html"
+ zh-tw-lang="參考資源"
+ zh-cn-lang="参考"
+ ru-lang="Справочник"
+ ko-lang="참조문서"
+ ja-lang="リファレンス"
+ es-lang="Referencia"
+ >Reference</a></li>
+ <li><a href="/tools/index.html"
+ zh-tw-lang="相關工具"
+ zh-cn-lang="工具"
+ ru-lang="Инструменты"
+ ko-lang="도구"
+ ja-lang="ツール"
+ es-lang="Herramientas"
+ >Tools</a>
+ <ul><li><a href="/sdk/index.html">Get the SDK</a></li></ul>
+ </li>
+ <li><a href="/google/index.html">Google Services</a>
+ </li>
+
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
+ </ul>
+ </li>
+ <li class="distribute last">
+ <ul>
+ <li><a href="/distribute/index.html">Google Play</a></li>
+ <li><a href="/distribute/googleplay/publish/index.html">Publishing</a></li>
+ <li><a href="/distribute/googleplay/promote/index.html">Promoting</a></li>
+ <li><a href="/distribute/googleplay/quality/index.html">App Quality</a></li>
+ <li><a href="/distribute/googleplay/spotlight/index.html">Spotlight</a></li>
+ <li><a href="/distribute/open.html">Open Distribution</a></li>
+ </ul>
+ </li>
+ </ul>
+ </div>
+ <!-- /Expanded quicknav -->
+ </div>
+ </div>
+ <!-- /Header -->
+
+
+ <div id="searchResults" class="wrap" style="display:none;">
+ <h2 id="searchTitle">Results</h2>
+ <div id="leftSearchControl" class="search-control">Loading...</div>
+ </div>
+
+
+
+ <!-- Secondary x-nav -->
+ <div id="nav-x">
+ <div class="wrap">
+ <ul class="nav-x col-9 develop" style="width:100%">
+ <li class="training"><a href="/training/index.html"
+ zh-tw-lang="訓練課程"
+ zh-cn-lang="培训"
+ ru-lang="Курсы"
+ ko-lang="교육"
+ ja-lang="トレーニング"
+ es-lang="Capacitación"
+ >Training</a></li>
+ <li class="guide"><a href="/guide/index.html"
+ zh-tw-lang="API 指南"
+ zh-cn-lang="API 指南"
+ ru-lang="Руководства по API"
+ ko-lang="API 가이드"
+ ja-lang="API ガイド"
+ es-lang="Guías de la API"
+ >API Guides</a></li>
+ <li class="reference"><a href="/reference/packages.html"
+ zh-tw-lang="參考資源"
+ zh-cn-lang="参考"
+ ru-lang="Справочник"
+ ko-lang="참조문서"
+ ja-lang="リファレンス"
+ es-lang="Referencia"
+ >Reference</a></li>
+ <li class="tools"><a href="/tools/index.html"
+ zh-tw-lang="相關工具"
+ zh-cn-lang="工具"
+ ru-lang="Инструменты"
+ ko-lang="도구"
+ ja-lang="ツール"
+ es-lang="Herramientas"
+ >Tools</a></li>
+ <li class="google"><a href="/google/index.html"
+ >Google Services</a>
+ </li>
+
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
+ </ul>
+ </div>
+
+ </div>
+ <!-- /Sendondary x-nav -->
+
+
+
+
+
+
+
+
+
+ <div class="wrap clearfix" id="body-content">
+ <div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
+ <div id="devdoc-nav" class="scroll-pane">
+<a class="totop" href="#top" data-g-event="left-nav-top">to top</a>
+
+
+
+<ul id="nav">
+
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/index.html">
+ <span class="en">Overview</span>
+ </a></div>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/games.html">
+ <span class="en">Games</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/location.html">
+ <span class="en">Location</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/plus.html">
+ <span class="en">Google+</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/maps.html">
+ <span class="en">Maps</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play-services/ads.html">
+ <span class="en">Ads</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play-services/id.html">
+ <span class="en">Advertising ID</span></a>
+ </li>
+ </ul>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/wallet.html">
+ <span class="en">Wallet</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/auth.html">
+ <span class="en">Authorization</span>
+ </a></div>
+ </li>
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play-services/index.html">
+ <span class="en">Google Play Services</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play-services/setup.html">
+ <span class="en">Setup</span></a>
+ </li>
+ <li id="gms-tree-list" class="nav-section">
+ <div class="nav-section-header">
+ <a href="/reference/gms-packages.html">
+ <span class="en">Reference</span>
+ </a>
+ <div>
+ </li>
+ </ul>
+ </li>
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/billing/index.html">
+ <span class="en">Google Play In-app Billing</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/billing/billing_overview.html">
+ <span class="en">Overview</span></a>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/api.html">
+ <span class="en">Version 3 API</span></a></div>
+ <ul>
+ <li><a href="/google/play/billing/billing_integrate.html">
+ <span class="en">Implementing the API</span></a></li>
+ <li><a href="/google/play/billing/billing_reference.html">
+ <span class="en">Reference</span></a></li>
+ </ul>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/v2/api.html">
+ <span class="en">Version 2 API</span></a></div>
+ <ul>
+ <li><a href="/google/play/billing/v2/billing_integrate.html">
+ <span class="en">Implementing the API</span></a></li>
+ <li><a href="/google/play/billing/v2/billing_subscriptions.html">
+ <span class="en">Subscriptions</span></a></li>
+ <li><a href="/google/play/billing/v2/billing_reference.html">
+ <span class="en">Reference</span></a></li>
+ </ul>
+ </li>
+ <li><a href="/google/play/billing/billing_subscriptions.html">
+ <span class="en">Subscriptions</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_best_practices.html">
+ <span class="en">Security and Design</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_testing.html">
+ <span class="en">Testing In-app Billing</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_admin.html">
+ <span class="en">Administering In-app Billing</span></a>
+ </li>
+ <li><a href="/google/play/billing/gp-purchase-status-api.html">
+ <span class="en">Purchase Status API</span></a>
+ </li>
+ <li><a href="/google/play/billing/versions.html">
+ <span class="en">Version Notes</span></a>
+ </li>
+ </ul>
+ </li>
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/gcm/index.html">
+ <span class="en">Google Cloud Messaging</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
+ <li><a href="/google/gcm/gs.html">
+ <span class="en">Getting Started</span></a>
+ </li>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
+ </li>
+ <li><a href="/google/gcm/notifications.html">
+ <span class="en">User Notifications</span></a>
+ </li>
+ <li><a href="/google/gcm/adv.html">
+ <span class="en">Advanced Topics</span></a>
+ </li>
+ <li><a href="/google/gcm/c2dm.html">
+ <span class="en">Migration</span></a>
+ </li>
+ <li id="gcm-tree-list" class="nav-section">
+ <div class="nav-section-header">
+ <a href="/reference/gcm-packages.html">
+ <span class="en">Reference</span>
+ </a>
+ <div>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/dist.html">
+ <span class="en">Google Play Distribution</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/filters.html">
+ <span class="en">Filters on Google Play</span></a>
+ </li>
+
+ <li><a href="/google/play/publishing/multiple-apks.html">
+ <span class="en">Multiple APK Support</span></a>
+ </li>
+ <li><a href="/google/play/expansion-files.html">
+ <span class="en">APK Expansion Files</span></a>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/licensing/index.html">
+ <span class="en">Application Licensing</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/licensing/overview.html">
+ <span class="en">Licensing Overview</span></a>
+ </li>
+ <li><a href="/google/play/licensing/setting-up.html">
+ <span class="en">Setting Up for Licensing</span></a>
+ </li>
+ <li><a href="/google/play/licensing/adding-licensing.html">
+ <span class="en">Adding Licensing to Your App</span></a>
+ </li>
+ <li><a href="/google/play/licensing/licensing-reference.html">
+ <span class="en">Licensing Reference</span></a>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/backup/index.html">
+ Android Backup Service</a>
+ </div>
+ <ul>
+ <li><a href="/google/backup/signup.html">
+ Register</a>
+ </li>
+ </ul>
+ </li>
+
+ </ul>
+
+</li>
+
+
+
+</ul>
+
+<script type="text/javascript">
+<!--
+ buildToggleLists();
+ changeNavLang(getLangPref());
+//-->
+</script>
+
+
+
+
+ </div>
+ <script type="text/javascript">
+ showGoogleRefTree();
+
+ </script>
+ </div> <!-- end side-nav -->
+ <script>
+ $(document).ready(function() {
+ scrollIntoView("devdoc-nav");
+ });
+ </script>
+
+
+
+
+
+
+<div class="col-12" id="doc-col">
+
+<div id="api-info-block">
+<div class="api-level">
+
+
+
+
+</div>
+</div>
+
+<div id="jd-header">
+ package
+ <h1>com.google.android.gms.common.api</h1>
+</div><!-- end header -->
+
+<div id="naMessage"></div>
+
+<div id="jd-content" class="api apilevel-">
+
+ <div class="jd-descr">
+<p class="caution">
+ The GoogleApiClient API is currently in <strong>developer
+ preview</strong>. Applications compiled using this version of the API will
+ continue to operate on devices using future versions of Google Play services;
+ however, changes to the API are expected in future releases.
+</p>
+ </div>
+
+
+
+
+
+ <h2>Interfaces</h2>
+ <div class="jd-sumtable">
+
+ <table class="jd-sumtable-expando">
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/common/api/GoogleApiClient.ApiOptions.html">GoogleApiClient.ApiOptions</a></td>
+ <td class="jd-descrcol" width="100%">Base interface for API options. </td>
+ </tr>
+ <tr class=" api apilevel-" >
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/common/api/GoogleApiClient.ConnectionCallbacks.html">GoogleApiClient.ConnectionCallbacks</a></td>
+ <td class="jd-descrcol" width="100%">Provides callbacks that are called when the client is connected or disconnected from the
+ service. </td>
+ </tr>
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/common/api/GoogleApiClient.OnConnectionFailedListener.html">GoogleApiClient.OnConnectionFailedListener</a></td>
+ <td class="jd-descrcol" width="100%">Provides callbacks for scenarios that result in a failed attempt to
+ connect the client to the service. </td>
+ </tr>
+ <tr class=" api apilevel-" >
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/common/api/PendingResult.html">PendingResult</a><R extends <a href="/reference/com/google/android/gms/common/api/Result.html">Result</a>, C></td>
+ <td class="jd-descrcol" width="100%">Represents a pending result from calling an API method in Google Play services. </td>
+ </tr>
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/common/api/Releasable.html">Releasable</a></td>
+ <td class="jd-descrcol" width="100%">Represents a resource, or a holder of resources, which may be released once they are no longer
+ needed. </td>
+ </tr>
+ <tr class=" api apilevel-" >
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/common/api/Result.html">Result</a></td>
+ <td class="jd-descrcol" width="100%">Represents the final result of invoking an API method in Google Play Services. </td>
+ </tr>
+ </table>
+ </div>
+
+
+
+
+ <h2>Classes</h2>
+ <div class="jd-sumtable">
+
+ <table class="jd-sumtable-expando">
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/common/api/Api.html">Api</a></td>
+ <td class="jd-descrcol" width="100%">Describes a section of the Google Play Services API that should be made available. </td>
+ </tr>
+ <tr class=" api apilevel-" >
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html">GoogleApiClient</a></td>
+ <td class="jd-descrcol" width="100%">The main entry point for Google Play services integration. </td>
+ </tr>
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/common/api/GoogleApiClient.Builder.html">GoogleApiClient.Builder</a></td>
+ <td class="jd-descrcol" width="100%">Builder to configure a <code><a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html">GoogleApiClient</a></code>. </td>
+ </tr>
+ <tr class=" api apilevel-" >
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/common/api/Scope.html">Scope</a></td>
+ <td class="jd-descrcol" width="100%">Describes an OAuth 2.0 scope to request. </td>
+ </tr>
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/common/api/Status.html">Status</a></td>
+ <td class="jd-descrcol" width="100%">Represents the results of work. </td>
+ </tr>
+ </table>
+ </div>
+
+
+
+
+
+
+
+
+
+
+
+
+<div id="footer" class="wrap" >
+
+
+ <div id="copyright">
+
+ Except as noted, this content is licensed under <a
+ href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.
+ For details and restrictions, see the <a href="/license.html">
+ Content License</a>.
+ </div>
+ <div id="build_info">
+
+<script src="/timestamp.js" type="text/javascript"></script>
+<script>document.write(BUILD_TIMESTAMP)</script>
+
+ </div>
+
+
+ <div id="footerlinks">
+
+ <p>
+ <a href="/about/index.html">About Android</a> |
+ <a href="/legal.html">Legal</a> |
+ <a href="/support.html">Support</a>
+ </p>
+ </div>
+
+</div> <!-- end footer -->
+</div><!-- end jd-content -->
+</div><!-- doc-content -->
+
+</div> <!-- end body-content -->
+
+
+
+
+
+
+</body>
+</html>
diff --git a/docs/html/reference/com/google/android/gms/common/data/DataBuffer.html b/docs/html/reference/com/google/android/gms/common/data/DataBuffer.html
index b7c9f29..3753c37 100644
--- a/docs/html/reference/com/google/android/gms/common/data/DataBuffer.html
+++ b/docs/html/reference/com/google/android/gms/common/data/DataBuffer.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
@@ -764,6 +777,8 @@
<a href="/reference/com/google/android/gms/appstate/AppStateBuffer.html">AppStateBuffer</a>,
+ <a href="/reference/com/google/android/gms/common/data/FilteredDataBuffer.html">FilteredDataBuffer</a><T>,
+
<a href="/reference/com/google/android/gms/games/GameBuffer.html">GameBuffer</a>,
<a href="/reference/com/google/android/gms/games/multiplayer/InvitationBuffer.html">InvitationBuffer</a>,
@@ -772,13 +787,17 @@
<a href="/reference/com/google/android/gms/games/leaderboard/LeaderboardScoreBuffer.html">LeaderboardScoreBuffer</a>,
+ <a href="/reference/com/google/android/gms/drive/MetadataBuffer.html">MetadataBuffer</a>,
+
<a href="/reference/com/google/android/gms/plus/model/moments/MomentBuffer.html">MomentBuffer</a>,
<a href="/reference/com/google/android/gms/games/multiplayer/ParticipantBuffer.html">ParticipantBuffer</a>,
<a href="/reference/com/google/android/gms/plus/model/people/PersonBuffer.html">PersonBuffer</a>,
- <a href="/reference/com/google/android/gms/games/PlayerBuffer.html">PlayerBuffer</a>
+ <a href="/reference/com/google/android/gms/games/PlayerBuffer.html">PlayerBuffer</a>,
+
+ <a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatchBuffer.html">TurnBasedMatchBuffer</a>
</div>
@@ -795,21 +814,29 @@
<td class="jd-descrcol" width="100%">Data structure providing access to a list of app states. </td>
</tr>
<tr class="alt-color api apilevel-" >
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/common/data/FilteredDataBuffer.html">FilteredDataBuffer</a><T></td>
+ <td class="jd-descrcol" width="100%">Base class for filtered buffers of typed data. </td>
+ </tr>
+ <tr class=" api apilevel-" >
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/GameBuffer.html">GameBuffer</a></td>
<td class="jd-descrcol" width="100%">Data structure providing access to a list of games. </td>
</tr>
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/multiplayer/InvitationBuffer.html">InvitationBuffer</a></td>
<td class="jd-descrcol" width="100%"><code><a href="/reference/com/google/android/gms/common/data/DataBuffer.html">DataBuffer</a></code> implementation containing Invitation data. </td>
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/leaderboard/LeaderboardBuffer.html">LeaderboardBuffer</a></td>
<td class="jd-descrcol" width="100%"><code><a href="/reference/com/google/android/gms/common/data/DataBuffer.html">DataBuffer</a></code> containing Leaderboard data. </td>
</tr>
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/leaderboard/LeaderboardScoreBuffer.html">LeaderboardScoreBuffer</a></td>
<td class="jd-descrcol" width="100%"><code><a href="/reference/com/google/android/gms/common/data/DataBuffer.html">DataBuffer</a></code> containing LeaderboardScore data. </td>
</tr>
+ <tr class=" api apilevel-" >
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/drive/MetadataBuffer.html">MetadataBuffer</a></td>
+ <td class="jd-descrcol" width="100%">A data buffer that points to Metadata entries. </td>
+ </tr>
<tr class="alt-color api apilevel-" >
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/plus/model/moments/MomentBuffer.html">MomentBuffer</a></td>
<td class="jd-descrcol" width="100%">Data structure providing access to a list of <code><a href="/reference/com/google/android/gms/plus/model/moments/Moment.html">Moment</a></code> objects. </td>
@@ -826,6 +853,10 @@
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/PlayerBuffer.html">PlayerBuffer</a></td>
<td class="jd-descrcol" width="100%">Data structure providing access to a list of players. </td>
</tr>
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatchBuffer.html">TurnBasedMatchBuffer</a></td>
+ <td class="jd-descrcol" width="100%"><code><a href="/reference/com/google/android/gms/common/data/DataBuffer.html">DataBuffer</a></code> implementation containing TurnBasedMatch details. </td>
+ </tr>
</table>
</div>
</div>
diff --git a/docs/html/reference/com/google/android/gms/common/data/DataBufferUtils.html b/docs/html/reference/com/google/android/gms/common/data/DataBufferUtils.html
index 1317c78..f85c660 100644
--- a/docs/html/reference/com/google/android/gms/common/data/DataBufferUtils.html
+++ b/docs/html/reference/com/google/android/gms/common/data/DataBufferUtils.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/auth/RecoveryDecision.html b/docs/html/reference/com/google/android/gms/common/data/FilteredDataBuffer.html
similarity index 70%
copy from docs/html/reference/com/google/android/gms/auth/RecoveryDecision.html
copy to docs/html/reference/com/google/android/gms/common/data/FilteredDataBuffer.html
index 59a1346..0eb0678 100644
--- a/docs/html/reference/com/google/android/gms/auth/RecoveryDecision.html
+++ b/docs/html/reference/com/google/android/gms/common/data/FilteredDataBuffer.html
@@ -83,7 +83,7 @@
<meta name="viewport" content="width=device-width" />
<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
-<title>RecoveryDecision | Android Developers</title>
+<title>FilteredDataBuffer | Android Developers</title>
<!-- STYLESHEETS -->
<link rel="stylesheet"
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -128,7 +129,7 @@
<img src="/assets/images/dac_logo.png" width="123" height="25" alt="Android Developers" />
</a>
<div class="btn-quicknav" id="btn-quicknav">
- <a href="#" class="arrow-inactive">Quicknav</a>
+ <a href="#" class="arrow-inactive">Quicknav</a>
<a href="#" class="arrow-active">Quicknav</a>
</div>
</div>
@@ -140,7 +141,7 @@
ru-lang="Проектирование"
ko-lang="디자인"
ja-lang="設計"
- es-lang="Diseñar"
+ es-lang="Diseñar"
>Design</a></li>
<li class="develop"><a href="/develop/index.html"
zh-tw-lang="開發"
@@ -148,7 +149,7 @@
ru-lang="Разработка"
ko-lang="개발"
ja-lang="開発"
- es-lang="Desarrollar"
+ es-lang="Desarrollar"
>Develop</a></li>
<li class="distribute last"><a href="/distribute/index.html"
zh-tw-lang="發佈"
@@ -156,10 +157,10 @@
ru-lang="Распространение"
ko-lang="배포"
ja-lang="配布"
- es-lang="Distribuir"
+ es-lang="Distribuir"
>Distribute</a></li>
</ul>
-
+
<!-- New Search -->
<div class="menu-container">
<div class="moremenu">
@@ -180,9 +181,9 @@
<li class="active"><a>Android Developers</a></li>
<li><a href="http://source.android.com">Android Open Source Project</a></li>
</ul>
-
-
-
+
+
+
<div class="header">Language</div>
<div id="language" class="locales">
<select name="language" onChange="changeLangPref(this.value, true)">
@@ -200,8 +201,8 @@
loadLangPref();
//-->
</script>
-
-
+
+
<br class="clearfix" />
@@ -215,7 +216,7 @@
<form onsubmit="return submit_search()">
<input id="search_autocomplete" type="text" value="" autocomplete="off" name="q"
onfocus="search_focus_changed(this, true)" onblur="search_focus_changed(this, false)"
-onkeydown="return search_changed(event, true, '/')"
+onkeydown="return search_changed(event, true, '/')"
onkeyup="return search_changed(event, false, '/')" />
</form>
<div class="right"></div>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -254,8 +257,8 @@
</div>
<!-- /New Search>
-
-
+
+
<!-- Expanded quicknav -->
<div id="quicknav" class="col-9">
<ul>
@@ -277,15 +280,15 @@
ru-lang="Курсы"
ko-lang="교육"
ja-lang="トレーニング"
- es-lang="Capacitación"
+ es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
ko-lang="API 가이드"
ja-lang="API ガイド"
- es-lang="Guías de la API"
+ es-lang="Guías de la API"
>API Guides</a></li>
<li><a href="/reference/packages.html"
zh-tw-lang="參考資源"
@@ -293,7 +296,7 @@
ru-lang="Справочник"
ko-lang="참조문서"
ja-lang="リファレンス"
- es-lang="Referencia"
+ es-lang="Referencia"
>Reference</a></li>
<li><a href="/tools/index.html"
zh-tw-lang="相關工具"
@@ -301,13 +304,16 @@
ru-lang="Инструменты"
ko-lang="도구"
ja-lang="ツール"
- es-lang="Herramientas"
+ es-lang="Herramientas"
>Tools</a>
<ul><li><a href="/sdk/index.html">Get the SDK</a></li></ul>
</li>
<li><a href="/google/index.html">Google Services</a>
</li>
-
+
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -326,15 +332,15 @@
</div>
</div>
<!-- /Header -->
-
-
+
+
<div id="searchResults" class="wrap" style="display:none;">
<h2 id="searchTitle">Results</h2>
<div id="leftSearchControl" class="search-control">Loading...</div>
</div>
-
-
-
+
+
+
<!-- Secondary x-nav -->
<div id="nav-x">
<div class="wrap">
@@ -345,15 +351,15 @@
ru-lang="Курсы"
ko-lang="교육"
ja-lang="トレーニング"
- es-lang="Capacitación"
+ es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
ko-lang="API 가이드"
ja-lang="API ガイド"
- es-lang="Guías de la API"
+ es-lang="Guías de la API"
>API Guides</a></li>
<li class="reference"><a href="/reference/packages.html"
zh-tw-lang="參考資源"
@@ -361,7 +367,7 @@
ru-lang="Справочник"
ko-lang="참조문서"
ja-lang="リファレンス"
- es-lang="Referencia"
+ es-lang="Referencia"
>Reference</a></li>
<li class="tools"><a href="/tools/index.html"
zh-tw-lang="相關工具"
@@ -374,21 +380,25 @@
<li class="google"><a href="/google/index.html"
>Google Services</a>
</li>
-
+
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
-
+
</div>
<!-- /Sendondary x-nav -->
-
-
-
+
+
+
<div class="wrap clearfix" id="body-content">
<div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
<div id="devdoc-nav" class="scroll-pane">
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
@@ -618,12 +631,12 @@
</script>
-
+
</div>
<script type="text/javascript">
showGoogleRefTree();
-
+
</script>
</div> <!-- end side-nav -->
<script>
@@ -633,7 +646,7 @@
</script>
-
+
@@ -643,21 +656,26 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
<div class="sum-details-links">
@@ -669,22 +687,22 @@
- <a href="#inhconstants">Inherited Constants</a>
-
+ <a href="#lfields">Fields</a>
- | <a href="#lfields">Fields</a>
-
| <a href="#pubctors">Ctors</a>
-
+
| <a href="#pubmethods">Methods</a>
-
+
+
+
+ | <a href="#promethods">Protected Methods</a>
@@ -694,9 +712,9 @@
</div><!-- end sum-details-links -->
<div class="api-level">
-
-
-
+
+
+
</div>
</div><!-- end api-info-block -->
@@ -706,28 +724,27 @@
<div id="jd-header">
public
-
-
-
+
+
+ abstract
class
-<h1 itemprop="name">RecoveryDecision</h1>
+<h1 itemprop="name">FilteredDataBuffer</h1>
-
- extends Object<br/>
-
-
-
-
-
- implements
-
- Parcelable
-
-
-
+
+
+
+
+ extends <a href="/reference/com/google/android/gms/common/data/DataBuffer.html">DataBuffer</a><T><br/>
+
+
+
+
+
+
+
</div><!-- end header -->
@@ -739,18 +756,28 @@
<tr>
-
- <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
+
+ <td colspan="3" class="jd-inheritance-class-cell">java.lang.Object</td>
</tr>
-
+
<tr>
-
+
<td class="jd-inheritance-space"> ↳</td>
-
- <td colspan="1" class="jd-inheritance-class-cell">com.google.android.gms.auth.RecoveryDecision</td>
+
+ <td colspan="2" class="jd-inheritance-class-cell"><a href="/reference/com/google/android/gms/common/data/DataBuffer.html">com.google.android.gms.common.data.DataBuffer</a><T></td>
</tr>
-
+
+
+ <tr>
+
+ <td class="jd-inheritance-space"> </td>
+
+ <td class="jd-inheritance-space"> ↳</td>
+
+ <td colspan="1" class="jd-inheritance-class-cell">com.google.android.gms.common.data.FilteredDataBuffer<T></td>
+ </tr>
+
</table>
@@ -763,6 +790,14 @@
<div class="jd-descr">
+<h2>Class Overview</h2>
+<p itemprop="articleBody">Base class for filtered buffers of typed data. A <code>FilteredDataBuffer</code> wraps a
+ <code><a href="/reference/com/google/android/gms/common/data/DataBuffer.html">DataBuffer</a></code>.
+ <p/>
+ Subclasses must implement <code><a href="/reference/com/google/android/gms/common/data/FilteredDataBuffer.html#computeRealPosition(int)">computeRealPosition(int)</a></code>. They must also implement
+ <code><a href="/reference/com/google/android/gms/common/data/DataBuffer.html#getCount()">getCount()</a></code> if they change the number of items.
+</p>
+
@@ -804,128 +839,24 @@
-<!-- =========== ENUM CONSTANT SUMMARY =========== -->
-<table id="inhconstants" class="jd-sumtable"><tr><th>
- <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
- <div style="clear:left;">Inherited Constants</div></th></tr>
-
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-
- <a href="#" onclick="return toggleInherited(this, null)" id="inherited-constants-android.os.Parcelable" class="jd-expando-trigger closed"
- ><img id="inherited-constants-android.os.Parcelable-trigger"
- src="/assets/images/triangle-closed.png"
- class="jd-expando-trigger-img" /></a>From interface
-android.os.Parcelable
-<div id="inherited-constants-android.os.Parcelable">
- <div id="inherited-constants-android.os.Parcelable-list"
- class="jd-inheritedlinks">
- </div>
- <div id="inherited-constants-android.os.Parcelable-summary" style="display: none;">
- <table class="jd-sumtable-expando">
-
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol">int</td>
- <td class="jd-linkcol">CONTENTS_FILE_DESCRIPTOR</td>
- <td class="jd-descrcol" width="100%"></td>
- </tr>
-
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol">int</td>
- <td class="jd-linkcol">PARCELABLE_WRITE_RETURN_VALUE</td>
- <td class="jd-descrcol" width="100%"></td>
- </tr>
-
-
-</table>
- </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
<!-- =========== FIELD SUMMARY =========== -->
<table id="lfields" class="jd-sumtable"><tr><th colspan="12">Fields</th></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
- public
- static
+ protected
+
final
- <a href="/reference/com/google/android/gms/auth/RecoveryDecisionCreator.html">RecoveryDecisionCreator</a></nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#CREATOR">CREATOR</a></td>
+ <a href="/reference/com/google/android/gms/common/data/DataBuffer.html">DataBuffer</a><T></nobr></td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/common/data/FilteredDataBuffer.html#mDataBuffer">mDataBuffer</a></td>
<td class="jd-descrcol" width="100%"></td>
</tr>
-
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- boolean</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#isRecoveryInfoNeeded">isRecoveryInfoNeeded</a></td>
- <td class="jd-descrcol" width="100%">Is <code>true</code> if either the account has no recovery information or it
- was updated long time back (controlled by server, default 1 year).</td>
- </tr>
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- boolean</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#isRecoveryInterstitialAllowed">isRecoveryInterstitialAllowed</a></td>
- <td class="jd-descrcol" width="100%">Is <code>true</code> iff the user has permission to update the account.</td>
- </tr>
-
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- PendingIntent</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#recoveryIntent">recoveryIntent</a></td>
- <td class="jd-descrcol" width="100%">A PendingIntent to an activity that gathers recovery information for the given account.</td>
- </tr>
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- PendingIntent</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#recoveryIntentWithoutIntro">recoveryIntentWithoutIntro</a></td>
- <td class="jd-descrcol" width="100%">A PendingIntent to an activity that gathers recovery information for the given account.</td>
- </tr>
-
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- boolean</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#showRecoveryInterstitial">showRecoveryInterstitial</a></td>
- <td class="jd-descrcol" width="100%">Represents the decision and should be obeyed by the client.</td>
- </tr>
-
-
+
+
</table>
@@ -940,19 +871,19 @@
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#RecoveryDecision()">RecoveryDecision</a></span>()</nobr>
-
+ <span class="sympad"><a href="/reference/com/google/android/gms/common/data/FilteredDataBuffer.html#FilteredDataBuffer(com.google.android.gms.common.data.DataBuffer<T>)">FilteredDataBuffer</a></span>(<a href="/reference/com/google/android/gms/common/data/DataBuffer.html">DataBuffer</a><T> dataBuffer)</nobr>
+
</td></tr>
@@ -969,51 +900,98 @@
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
- int</nobr>
- </td>
- <td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#describeContents()">describeContents</a></span>()</nobr>
-
- </td></tr>
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol"><nobr>
-
-
-
-
-
- int</nobr>
- </td>
- <td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#getVersionCode()">getVersionCode</a></span>()</nobr>
-
- </td></tr>
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
-
-
-
-
-
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#writeToParcel(android.os.Parcel, int)">writeToParcel</a></span>(Parcel out, int flags)</nobr>
-
+ <span class="sympad"><a href="/reference/com/google/android/gms/common/data/FilteredDataBuffer.html#close()">close</a></span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ T</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/common/data/FilteredDataBuffer.html#get(int)">get</a></span>(int position)</nobr>
+
+ <div class="jd-descrdiv">Get the item at the specified position.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ Bundle</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/common/data/FilteredDataBuffer.html#getMetadata()">getMetadata</a></span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/common/data/FilteredDataBuffer.html#isClosed()">isClosed</a></span>()</nobr>
+
+ </td></tr>
+
+
+
+</table>
+
+
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+<table id="promethods" class="jd-sumtable"><tr><th colspan="12">Protected Methods</th></tr>
+
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/common/data/FilteredDataBuffer.html#computeRealPosition(int)">computeRealPosition</a></span>(int position)</nobr>
+
+ <div class="jd-descrdiv">Compute the real position after filtering.</div>
+
</td></tr>
@@ -1024,8 +1002,6 @@
-
-
<!-- ========== METHOD SUMMARY =========== -->
<table id="inhmethods" class="jd-sumtable"><tr><th>
<a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
@@ -1034,6 +1010,130 @@
<tr class="api apilevel-" >
<td colspan="12">
+ <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.android.gms.common.data.DataBuffer" class="jd-expando-trigger closed"
+ ><img id="inherited-methods-com.google.android.gms.common.data.DataBuffer-trigger"
+ src="/assets/images/triangle-closed.png"
+ class="jd-expando-trigger-img" /></a>
+From class
+
+ <a href="/reference/com/google/android/gms/common/data/DataBuffer.html">com.google.android.gms.common.data.DataBuffer</a>
+
+<div id="inherited-methods-com.google.android.gms.common.data.DataBuffer">
+ <div id="inherited-methods-com.google.android.gms.common.data.DataBuffer-list"
+ class="jd-inheritedlinks">
+ </div>
+ <div id="inherited-methods-com.google.android.gms.common.data.DataBuffer-summary" style="display: none;">
+ <table class="jd-sumtable-expando">
+
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/common/data/DataBuffer.html#close()">close</a></span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/common/data/DataBuffer.html#describeContents()">describeContents</a></span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ T</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/common/data/DataBuffer.html#get(int)">get</a></span>(int position)</nobr>
+
+ <div class="jd-descrdiv">Get the item at the specified position.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/common/data/DataBuffer.html#getCount()">getCount</a></span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/common/data/DataBuffer.html#isClosed()">isClosed</a></span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ Iterator<T></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/common/data/DataBuffer.html#iterator()">iterator</a></span>()</nobr>
+
+ </td></tr>
+
+
+</table>
+ </div>
+</div>
+</td></tr>
+
+
+
+<tr class="api apilevel-" >
+<td colspan="12">
<a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
><img id="inherited-methods-java.lang.Object-trigger"
src="/assets/images/triangle-closed.png"
@@ -1048,182 +1148,182 @@
</div>
<div id="inherited-methods-java.lang.Object-summary" style="display: none;">
<table class="jd-sumtable-expando">
-
-
+
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
Object</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">clone</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
boolean</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">equals</span>(Object arg0)</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">finalize</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
Class<?></nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">getClass</span>()</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
int</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">hashCode</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">notify</span>()</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">notifyAll</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
String</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">toString</span>()</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">wait</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">wait</span>(long arg0)</nobr>
-
+
</td></tr>
@@ -1236,52 +1336,36 @@
<tr class="api apilevel-" >
<td colspan="12">
- <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-android.os.Parcelable" class="jd-expando-trigger closed"
- ><img id="inherited-methods-android.os.Parcelable-trigger"
+ <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Iterable" class="jd-expando-trigger closed"
+ ><img id="inherited-methods-java.lang.Iterable-trigger"
src="/assets/images/triangle-closed.png"
class="jd-expando-trigger-img" /></a>
From interface
- android.os.Parcelable
+ java.lang.Iterable
-<div id="inherited-methods-android.os.Parcelable">
- <div id="inherited-methods-android.os.Parcelable-list"
+<div id="inherited-methods-java.lang.Iterable">
+ <div id="inherited-methods-java.lang.Iterable-list"
class="jd-inheritedlinks">
</div>
- <div id="inherited-methods-android.os.Parcelable-summary" style="display: none;">
+ <div id="inherited-methods-java.lang.Iterable-summary" style="display: none;">
<table class="jd-sumtable-expando">
-
-
+
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
abstract
-
-
-
-
- int</nobr>
- </td>
- <td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad">describeContents</span>()</nobr>
-
- </td></tr>
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol"><nobr>
- abstract
-
-
-
-
- void</nobr>
+
+
+ Iterator<T></nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad">writeToParcel</span>(Parcel arg0, int arg1)</nobr>
-
+ <span class="sympad">iterator</span>()</nobr>
+
</td></tr>
@@ -1323,185 +1407,29 @@
-<A NAME="CREATOR"></A>
+<A NAME="mDataBuffer"></A>
-<div class="jd-details api apilevel-">
+<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
- public
- static
- final
- <a href="/reference/com/google/android/gms/auth/RecoveryDecisionCreator.html">RecoveryDecisionCreator</a>
+ protected
+
+ final
+ <a href="/reference/com/google/android/gms/common/data/DataBuffer.html">DataBuffer</a><T>
</span>
- CREATOR
+ mDataBuffer
</h4>
<div class="api-level">
-
-
-
+
+
+
</div>
<div class="jd-details-descr">
-
+
<div class="jd-tagdata jd-tagdescr"><p></p></div>
-
- </div>
-</div>
-
-
-<A NAME="isRecoveryInfoNeeded"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- boolean
- </span>
- isRecoveryInfoNeeded
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>Is <code>true</code> if either the account has no recovery information or it
- was updated long time back (controlled by server, default 1 year).
-</p></div>
-
-
- </div>
-</div>
-
-
-
-<A NAME="isRecoveryInterstitialAllowed"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- boolean
- </span>
- isRecoveryInterstitialAllowed
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>Is <code>true</code> iff the user has permission to update the account.
- Dasher accounts can have recovery information edit disabled by the administrator.
- Eg: @google.com
-</p></div>
-
-
- </div>
-</div>
-
-
-
-<A NAME="recoveryIntent"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- PendingIntent
- </span>
- recoveryIntent
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>A PendingIntent to an activity that gathers recovery information for the given account.
- This intent will be null iff isRecoveryInterstitialAllowed is <code>false</code>.
-</p></div>
-
-
- </div>
-</div>
-
-
-
-<A NAME="recoveryIntentWithoutIntro"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- PendingIntent
- </span>
- recoveryIntentWithoutIntro
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>A PendingIntent to an activity that gathers recovery information for the given account.
- This intent will be null iff isRecoveryInterstitialAllowed is <code>false</code>.
- This intent directly skips to the input activity without showing the intro message.
-</p></div>
-
-
- </div>
-</div>
-
-
-
-<A NAME="showRecoveryInterstitial"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- boolean
- </span>
- showRecoveryInterstitial
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>Represents the decision and should be obeyed by the client. The remaining
- two flags are provided as additional information for one off decisions. This value
- is <code>true</code> iff isRecoveryInfoNeeded is <code>true</code>, isRecoveryInterstitialAllowed is
- <code>true</code> and a specified period (controlled by server, default 2 months) has passed
- since the user was shown a prompt for recovery information on any google property
- (Android, Web, etc.)
-</p></div>
-
-
</div>
</div>
@@ -1516,29 +1444,29 @@
-<A NAME="RecoveryDecision()"></A>
+<A NAME="FilteredDataBuffer(com.google.android.gms.common.data.DataBuffer<T>)"></A>
-<div class="jd-details api apilevel-">
+<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
- public
-
-
-
-
-
+ public
+
+
+
+
+
</span>
- <span class="sympad">RecoveryDecision</span>
- <span class="normal">()</span>
+ <span class="sympad">FilteredDataBuffer</span>
+ <span class="normal">(<a href="/reference/com/google/android/gms/common/data/DataBuffer.html">DataBuffer</a><T> dataBuffer)</span>
</h4>
<div class="api-level">
<div></div>
-
-
+
+
</div>
<div class="jd-details-descr">
-
+
<div class="jd-tagdata jd-tagdescr"><p></p></div>
</div>
@@ -1560,87 +1488,140 @@
-<A NAME="describeContents()"></A>
+<A NAME="close()"></A>
-<div class="jd-details api apilevel-">
+<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
- public
-
-
-
-
- int
- </span>
- <span class="sympad">describeContents</span>
- <span class="normal">()</span>
- </h4>
- <div class="api-level">
- <div></div>
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
- </div>
-</div>
+ public
-<A NAME="getVersionCode()"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
-
-
- int
- </span>
- <span class="sympad">getVersionCode</span>
- <span class="normal">()</span>
- </h4>
- <div class="api-level">
- <div></div>
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
- </div>
-</div>
-<A NAME="writeToParcel(android.os.Parcel, int)"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
-
-
void
</span>
- <span class="sympad">writeToParcel</span>
- <span class="normal">(Parcel out, int flags)</span>
+ <span class="sympad">close</span>
+ <span class="normal">()</span>
</h4>
<div class="api-level">
<div></div>
-
-
+
+
</div>
<div class="jd-details-descr">
-
+
+ <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+ </div>
+</div>
+
+
+<A NAME="get(int)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ T
+ </span>
+ <span class="sympad">get</span>
+ <span class="normal">(int position)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Get the item at the specified position. Note that the objects returned from subsequent
+ invocations of this method for the same position may not be identical objects, but will be
+ equal in value. In other words:
+ <p>
+ <code>buffer.get(i) == buffer.get(i)</code> may return false.
+ <p>
+ <code>buffer.get(i).equals(buffer.get(i))</code> will return true.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>position</td>
+ <td>The position of the item to retrieve.</td>
+ </tr>
+ </table>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>the item at <code>position</code> in this buffer.
+</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="getMetadata()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ Bundle
+ </span>
+ <span class="sympad">getMetadata</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p></p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li><code>Bundle</code> containing metadata for this object.</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="isClosed()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ boolean
+ </span>
+ <span class="sympad">isClosed</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
<div class="jd-tagdata jd-tagdescr"><p></p></div>
</div>
@@ -1652,23 +1633,73 @@
<!-- ========= METHOD DETAIL ======== -->
+<h2>Protected Methods</h2>
+
+
+
+<A NAME="computeRealPosition(int)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ protected
+
+
+ abstract
+
+ int
+ </span>
+ <span class="sympad">computeRealPosition</span>
+ <span class="normal">(int position)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Compute the real position after filtering.
+ <p/>
+ Subclasses must override this method to implement their filtering.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>position</td>
+ <td>The position of the item to retrieve.</td>
+ </tr>
+ </table>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>The real position in the wrapped dataBuffer.
+</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+
<!-- ========= END OF CLASS DATA ========= -->
<A NAME="navbar_top"></A>
<div id="footer" class="wrap" >
-
+
<div id="copyright">
-
+
Except as noted, this content is licensed under <a
- href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.
+ href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.
For details and restrictions, see the <a href="/license.html">
Content License</a>.
</div>
<div id="build_info">
-
+
<script src="/timestamp.js" type="text/javascript"></script>
<script>document.write(BUILD_TIMESTAMP)</script>
@@ -1676,7 +1707,7 @@
<div id="footerlinks">
-
+
<p>
<a href="/about/index.html">About Android</a> |
<a href="/legal.html">Legal</a> |
@@ -1689,7 +1720,7 @@
</div><!-- end doc-content -->
-</div> <!-- end body-content -->
+</div> <!-- end body-content -->
diff --git a/docs/html/reference/com/google/android/gms/common/data/Freezable.html b/docs/html/reference/com/google/android/gms/common/data/Freezable.html
index 4b3f9602..0c853b5 100644
--- a/docs/html/reference/com/google/android/gms/common/data/Freezable.html
+++ b/docs/html/reference/com/google/android/gms/common/data/Freezable.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
@@ -758,6 +771,9 @@
+
+
+
<a href="/reference/com/google/android/gms/games/Game.html">Game</a>,
@@ -774,11 +790,8 @@
<a href="/reference/com/google/android/gms/games/GameEntity.html">GameEntity</a>,
-
-
-
and
- <a href="#" onclick="return toggleInherited(document.getElementById('subclasses-indirect', null))">9 others.</a>
+ <a href="#" onclick="return toggleInherited(document.getElementById('subclasses-indirect', null))">14 others.</a>
@@ -812,77 +825,98 @@
<td class="jd-descrcol" width="100%"> </td>
</tr>
<tr class="alt-color api apilevel-" >
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/leaderboard/Leaderboard.html">Leaderboard</a></td>
+ <td class="jd-descrcol" width="100%">Data interface for leaderboard metadata. </td>
+ </tr>
+ <tr class=" api apilevel-" >
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/leaderboard/LeaderboardScore.html">LeaderboardScore</a></td>
<td class="jd-descrcol" width="100%">Data interface representing a single score on a leaderboard. </td>
</tr>
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/leaderboard/LeaderboardVariant.html">LeaderboardVariant</a></td>
+ <td class="jd-descrcol" width="100%">Data interface for a specific variant of a leaderboard; a variant is defined by the combination
+ of the leaderboard's collection (public or social) and time span (daily, weekly, or all-time). </td>
+ </tr>
<tr class=" api apilevel-" >
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/drive/Metadata.html">Metadata</a></td>
+ <td class="jd-descrcol" width="100%">The details of a Drive file or folder. </td>
+ </tr>
+ <tr class="alt-color api apilevel-" >
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/plus/model/moments/Moment.html">Moment</a></td>
<td class="jd-descrcol" width="100%"> </td>
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/multiplayer/Participant.html">Participant</a></td>
<td class="jd-descrcol" width="100%">Data interface for multiplayer participants. </td>
</tr>
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/multiplayer/ParticipantEntity.html">ParticipantEntity</a></td>
<td class="jd-descrcol" width="100%">Data object representing a Participant in a match. </td>
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/plus/model/people/Person.html">Person</a></td>
<td class="jd-descrcol" width="100%"> </td>
</tr>
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/plus/model/people/Person.AgeRange.html">Person.AgeRange</a></td>
<td class="jd-descrcol" width="100%">The age range of the person. </td>
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/plus/model/people/Person.Cover.html">Person.Cover</a></td>
<td class="jd-descrcol" width="100%">The cover photo content. </td>
</tr>
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/plus/model/people/Person.Cover.CoverInfo.html">Person.Cover.CoverInfo</a></td>
<td class="jd-descrcol" width="100%">Extra information about the cover photo. </td>
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/plus/model/people/Person.Cover.CoverPhoto.html">Person.Cover.CoverPhoto</a></td>
<td class="jd-descrcol" width="100%">The person's primary cover image. </td>
</tr>
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/plus/model/people/Person.Image.html">Person.Image</a></td>
<td class="jd-descrcol" width="100%">The representation of the person's profile photo. </td>
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/plus/model/people/Person.Name.html">Person.Name</a></td>
<td class="jd-descrcol" width="100%">An object representation of the individual components of a person's name. </td>
</tr>
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/plus/model/people/Person.Organizations.html">Person.Organizations</a></td>
<td class="jd-descrcol" width="100%"> </td>
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/plus/model/people/Person.PlacesLived.html">Person.PlacesLived</a></td>
<td class="jd-descrcol" width="100%"> </td>
</tr>
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/plus/model/people/Person.Urls.html">Person.Urls</a></td>
<td class="jd-descrcol" width="100%"> </td>
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/Player.html">Player</a></td>
<td class="jd-descrcol" width="100%">Data interface for retrieving player information. </td>
</tr>
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/PlayerEntity.html">PlayerEntity</a></td>
<td class="jd-descrcol" width="100%">Data object representing a set of Player data. </td>
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/multiplayer/realtime/Room.html">Room</a></td>
<td class="jd-descrcol" width="100%">Data interface for room functionality. </td>
</tr>
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/multiplayer/realtime/RoomEntity.html">RoomEntity</a></td>
<td class="jd-descrcol" width="100%">Data object representing the data for a room. </td>
</tr>
+ <tr class=" api apilevel-" >
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html">TurnBasedMatch</a></td>
+ <td class="jd-descrcol" width="100%">Data interface for turn-based specific match functionality. </td>
+ </tr>
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatchEntity.html">TurnBasedMatchEntity</a></td>
+ <td class="jd-descrcol" width="100%">Data object representing the data for a turn-based match. </td>
+ </tr>
</table>
</div>
</div>
diff --git a/docs/html/reference/com/google/android/gms/common/data/package-summary.html b/docs/html/reference/com/google/android/gms/common/data/package-summary.html
index 43fec35..e66ae80 100644
--- a/docs/html/reference/com/google/android/gms/common/data/package-summary.html
+++ b/docs/html/reference/com/google/android/gms/common/data/package-summary.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -242,6 +243,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -280,7 +283,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -309,6 +312,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -348,7 +354,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -376,6 +382,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -518,29 +528,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
@@ -695,6 +708,10 @@
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/common/data/DataBufferUtils.html">DataBufferUtils</a></td>
<td class="jd-descrcol" width="100%">Utilities for working with <code>DataBuffer</code> objects. </td>
</tr>
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/common/data/FilteredDataBuffer.html">FilteredDataBuffer</a><T></td>
+ <td class="jd-descrcol" width="100%">Base class for filtered buffers of typed data. </td>
+ </tr>
</table>
</div>
diff --git a/docs/html/reference/com/google/android/gms/common/images/ImageManager.OnImageLoadedListener.html b/docs/html/reference/com/google/android/gms/common/images/ImageManager.OnImageLoadedListener.html
index 237a57c..ad01e86 100644
--- a/docs/html/reference/com/google/android/gms/common/images/ImageManager.OnImageLoadedListener.html
+++ b/docs/html/reference/com/google/android/gms/common/images/ImageManager.OnImageLoadedListener.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
@@ -770,7 +783,7 @@
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/common/images/ImageManager.OnImageLoadedListener.html#onImageLoaded(android.net.Uri, android.graphics.drawable.Drawable)">onImageLoaded</a></span>(Uri uri, Drawable drawable)</nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/common/images/ImageManager.OnImageLoadedListener.html#onImageLoaded(android.net.Uri, android.graphics.drawable.Drawable, boolean)">onImageLoaded</a></span>(Uri uri, Drawable drawable, boolean isRequestedDrawable)</nobr>
<div class="jd-descrdiv">Listener method invoked when an image has been loaded.</div>
@@ -825,7 +838,7 @@
-<A NAME="onImageLoaded(android.net.Uri, android.graphics.drawable.Drawable)"></A>
+<A NAME="onImageLoaded(android.net.Uri, android.graphics.drawable.Drawable, boolean)"></A>
<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
@@ -838,7 +851,7 @@
void
</span>
<span class="sympad">onImageLoaded</span>
- <span class="normal">(Uri uri, Drawable drawable)</span>
+ <span class="normal">(Uri uri, Drawable drawable, boolean isRequestedDrawable)</span>
</h4>
<div class="api-level">
<div></div>
@@ -854,11 +867,16 @@
<table class="jd-tagtable">
<tr>
<th>uri</td>
- <td>The URI of the loaded image.</td>
+ <td>The URI of the requested image.</td>
</tr>
<tr>
<th>drawable</td>
- <td>Drawable containing the image.
+ <td>Drawable containing the image.</td>
+ </tr>
+ <tr>
+ <th>isRequestedDrawable</td>
+ <td>True if this drawable was loaded from the provided URI,
+ or false if this drawable is a placeholder image instead.
</td>
</tr>
</table>
diff --git a/docs/html/reference/com/google/android/gms/common/images/ImageManager.html b/docs/html/reference/com/google/android/gms/common/images/ImageManager.html
index a1613a0..b1d772d 100644
--- a/docs/html/reference/com/google/android/gms/common/images/ImageManager.html
+++ b/docs/html/reference/com/google/android/gms/common/images/ImageManager.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/common/images/package-summary.html b/docs/html/reference/com/google/android/gms/common/images/package-summary.html
index 4d0498b..2c82278 100644
--- a/docs/html/reference/com/google/android/gms/common/images/package-summary.html
+++ b/docs/html/reference/com/google/android/gms/common/images/package-summary.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -242,6 +243,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -280,7 +283,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -309,6 +312,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -348,7 +354,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -376,6 +382,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -518,29 +528,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/common/package-summary.html b/docs/html/reference/com/google/android/gms/common/package-summary.html
index 851ba14..5e85147 100644
--- a/docs/html/reference/com/google/android/gms/common/package-summary.html
+++ b/docs/html/reference/com/google/android/gms/common/package-summary.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -242,6 +243,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -280,7 +283,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -309,6 +312,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -348,7 +354,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -376,6 +382,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -518,29 +528,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
@@ -661,7 +674,6 @@
<div class="jd-descr">
Contains utility classes for Google Play services.
-
</div>
@@ -687,6 +699,11 @@
<td class="jd-descrcol" width="100%">Provides callbacks for scenarios that result in a failed attempt to
connect the client to the service. </td>
</tr>
+ <tr class=" api apilevel-" >
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/common/OnStatusReceivedCallback.html">OnStatusReceivedCallback</a></td>
+ <td class="jd-descrcol" width="100%">For use with <code><a href="/">ERROR(/PendingResult)</a></code> for generic status callacks in
+ PendingResult<Status, OnStatusReceivedCallback>. </td>
+ </tr>
</table>
</div>
diff --git a/docs/html/reference/com/google/android/gms/auth/RecoveryDecision.html b/docs/html/reference/com/google/android/gms/drive/Contents.html
similarity index 75%
copy from docs/html/reference/com/google/android/gms/auth/RecoveryDecision.html
copy to docs/html/reference/com/google/android/gms/drive/Contents.html
index 59a1346..1cf542c 100644
--- a/docs/html/reference/com/google/android/gms/auth/RecoveryDecision.html
+++ b/docs/html/reference/com/google/android/gms/drive/Contents.html
@@ -83,7 +83,7 @@
<meta name="viewport" content="width=device-width" />
<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
-<title>RecoveryDecision | Android Developers</title>
+<title>Contents | Android Developers</title>
<!-- STYLESHEETS -->
<link rel="stylesheet"
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -128,7 +129,7 @@
<img src="/assets/images/dac_logo.png" width="123" height="25" alt="Android Developers" />
</a>
<div class="btn-quicknav" id="btn-quicknav">
- <a href="#" class="arrow-inactive">Quicknav</a>
+ <a href="#" class="arrow-inactive">Quicknav</a>
<a href="#" class="arrow-active">Quicknav</a>
</div>
</div>
@@ -140,7 +141,7 @@
ru-lang="Проектирование"
ko-lang="디자인"
ja-lang="設計"
- es-lang="Diseñar"
+ es-lang="Diseñar"
>Design</a></li>
<li class="develop"><a href="/develop/index.html"
zh-tw-lang="開發"
@@ -148,7 +149,7 @@
ru-lang="Разработка"
ko-lang="개발"
ja-lang="開発"
- es-lang="Desarrollar"
+ es-lang="Desarrollar"
>Develop</a></li>
<li class="distribute last"><a href="/distribute/index.html"
zh-tw-lang="發佈"
@@ -156,10 +157,10 @@
ru-lang="Распространение"
ko-lang="배포"
ja-lang="配布"
- es-lang="Distribuir"
+ es-lang="Distribuir"
>Distribute</a></li>
</ul>
-
+
<!-- New Search -->
<div class="menu-container">
<div class="moremenu">
@@ -180,9 +181,9 @@
<li class="active"><a>Android Developers</a></li>
<li><a href="http://source.android.com">Android Open Source Project</a></li>
</ul>
-
-
-
+
+
+
<div class="header">Language</div>
<div id="language" class="locales">
<select name="language" onChange="changeLangPref(this.value, true)">
@@ -200,8 +201,8 @@
loadLangPref();
//-->
</script>
-
-
+
+
<br class="clearfix" />
@@ -215,7 +216,7 @@
<form onsubmit="return submit_search()">
<input id="search_autocomplete" type="text" value="" autocomplete="off" name="q"
onfocus="search_focus_changed(this, true)" onblur="search_focus_changed(this, false)"
-onkeydown="return search_changed(event, true, '/')"
+onkeydown="return search_changed(event, true, '/')"
onkeyup="return search_changed(event, false, '/')" />
</form>
<div class="right"></div>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -254,8 +257,8 @@
</div>
<!-- /New Search>
-
-
+
+
<!-- Expanded quicknav -->
<div id="quicknav" class="col-9">
<ul>
@@ -277,15 +280,15 @@
ru-lang="Курсы"
ko-lang="교육"
ja-lang="トレーニング"
- es-lang="Capacitación"
+ es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
ko-lang="API 가이드"
ja-lang="API ガイド"
- es-lang="Guías de la API"
+ es-lang="Guías de la API"
>API Guides</a></li>
<li><a href="/reference/packages.html"
zh-tw-lang="參考資源"
@@ -293,7 +296,7 @@
ru-lang="Справочник"
ko-lang="참조문서"
ja-lang="リファレンス"
- es-lang="Referencia"
+ es-lang="Referencia"
>Reference</a></li>
<li><a href="/tools/index.html"
zh-tw-lang="相關工具"
@@ -301,13 +304,16 @@
ru-lang="Инструменты"
ko-lang="도구"
ja-lang="ツール"
- es-lang="Herramientas"
+ es-lang="Herramientas"
>Tools</a>
<ul><li><a href="/sdk/index.html">Get the SDK</a></li></ul>
</li>
<li><a href="/google/index.html">Google Services</a>
</li>
-
+
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -326,15 +332,15 @@
</div>
</div>
<!-- /Header -->
-
-
+
+
<div id="searchResults" class="wrap" style="display:none;">
<h2 id="searchTitle">Results</h2>
<div id="leftSearchControl" class="search-control">Loading...</div>
</div>
-
-
-
+
+
+
<!-- Secondary x-nav -->
<div id="nav-x">
<div class="wrap">
@@ -345,15 +351,15 @@
ru-lang="Курсы"
ko-lang="교육"
ja-lang="トレーニング"
- es-lang="Capacitación"
+ es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
ko-lang="API 가이드"
ja-lang="API ガイド"
- es-lang="Guías de la API"
+ es-lang="Guías de la API"
>API Guides</a></li>
<li class="reference"><a href="/reference/packages.html"
zh-tw-lang="參考資源"
@@ -361,7 +367,7 @@
ru-lang="Справочник"
ko-lang="참조문서"
ja-lang="リファレンス"
- es-lang="Referencia"
+ es-lang="Referencia"
>Reference</a></li>
<li class="tools"><a href="/tools/index.html"
zh-tw-lang="相關工具"
@@ -374,21 +380,25 @@
<li class="google"><a href="/google/index.html"
>Google Services</a>
</li>
-
+
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
-
+
</div>
<!-- /Sendondary x-nav -->
-
-
-
+
+
+
<div class="wrap clearfix" id="body-content">
<div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
<div id="devdoc-nav" class="scroll-pane">
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
@@ -618,12 +631,12 @@
</script>
-
+
</div>
<script type="text/javascript">
showGoogleRefTree();
-
+
</script>
</div> <!-- end side-nav -->
<script>
@@ -633,7 +646,7 @@
</script>
-
+
@@ -643,21 +656,21 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
<div class="sum-details-links">
@@ -670,21 +683,18 @@
<a href="#inhconstants">Inherited Constants</a>
-
+
| <a href="#lfields">Fields</a>
-
- | <a href="#pubctors">Ctors</a>
-
| <a href="#pubmethods">Methods</a>
-
+
@@ -694,9 +704,9 @@
</div><!-- end sum-details-links -->
<div class="api-level">
-
-
-
+
+
+
</div>
</div><!-- end api-info-block -->
@@ -706,28 +716,28 @@
<div id="jd-header">
public
-
-
-
+
+
+
class
-<h1 itemprop="name">RecoveryDecision</h1>
+<h1 itemprop="name">Contents</h1>
-
+
extends Object<br/>
-
-
-
-
-
- implements
-
- Parcelable
-
-
-
+
+
+
+
+
+ implements
+
+ Parcelable
+
+
+
</div><!-- end header -->
@@ -739,18 +749,18 @@
<tr>
-
+
<td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
</tr>
-
+
<tr>
-
+
<td class="jd-inheritance-space"> ↳</td>
-
- <td colspan="1" class="jd-inheritance-class-cell">com.google.android.gms.auth.RecoveryDecision</td>
+
+ <td colspan="1" class="jd-inheritance-class-cell">com.google.android.gms.drive.Contents</td>
</tr>
-
+
</table>
@@ -763,6 +773,24 @@
<div class="jd-descr">
+<h2>Class Overview</h2>
+<p class="caution">
+ <strong>Note:</strong> The Google Drive Android API is currently in <strong>developer
+ preview</strong>. Applications compiled using this version of the API will
+ continue to operate on devices using future versions of Google Play services;
+ however, changes to the API are expected in future releases.
+</p>
+<p itemprop="articleBody">A reference to a Drive file's contents. Any changes made to the FileDescriptor will be local to
+ the app until close or create is called. Once closed you may no longer access the contents via
+ this instance.
+
+ <p>
+ Specifically, if these contents refer to an existing file, call
+ <code><a href="/reference/com/google/android/gms/drive/DriveFile.html#commitAndCloseContents(com.google.android.gms.common.api.GoogleApiClient, com.google.android.gms.drive.Contents)">commitAndCloseContents(GoogleApiClient, Contents)</a></code>. If these are new contents, provide them to create a new
+ file programatically via <code><a href="/reference/com/google/android/gms/drive/DriveFolder.html#createFile(com.google.android.gms.common.api.GoogleApiClient, com.google.android.gms.drive.MetadataChangeSet, com.google.android.gms.drive.Contents)">createFile(GoogleApiClient, MetadataChangeSet, Contents)</a></code> or set them as the initial contents in
+ the create file dialog: <code><a href="/reference/com/google/android/gms/drive/DriveApi.html#newCreateFileActivityBuilder()">newCreateFileActivityBuilder()</a></code>.
+</p>
+
@@ -826,23 +854,23 @@
</div>
<div id="inherited-constants-android.os.Parcelable-summary" style="display: none;">
<table class="jd-sumtable-expando">
-
-
+
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol">CONTENTS_FILE_DESCRIPTOR</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
-
-
+
+
<tr class=" api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol">PARCELABLE_WRITE_RETURN_VALUE</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
-
-
+
+
</table>
</div>
</div>
@@ -858,102 +886,16 @@
<table id="lfields" class="jd-sumtable"><tr><th colspan="12">Fields</th></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
public
static
final
- <a href="/reference/com/google/android/gms/auth/RecoveryDecisionCreator.html">RecoveryDecisionCreator</a></nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#CREATOR">CREATOR</a></td>
+ Creator<<a href="/reference/com/google/android/gms/drive/Contents.html">Contents</a>></nobr></td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/drive/Contents.html#CREATOR">CREATOR</a></td>
<td class="jd-descrcol" width="100%"></td>
</tr>
-
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- boolean</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#isRecoveryInfoNeeded">isRecoveryInfoNeeded</a></td>
- <td class="jd-descrcol" width="100%">Is <code>true</code> if either the account has no recovery information or it
- was updated long time back (controlled by server, default 1 year).</td>
- </tr>
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- boolean</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#isRecoveryInterstitialAllowed">isRecoveryInterstitialAllowed</a></td>
- <td class="jd-descrcol" width="100%">Is <code>true</code> iff the user has permission to update the account.</td>
- </tr>
-
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- PendingIntent</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#recoveryIntent">recoveryIntent</a></td>
- <td class="jd-descrcol" width="100%">A PendingIntent to an activity that gathers recovery information for the given account.</td>
- </tr>
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- PendingIntent</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#recoveryIntentWithoutIntro">recoveryIntentWithoutIntro</a></td>
- <td class="jd-descrcol" width="100%">A PendingIntent to an activity that gathers recovery information for the given account.</td>
- </tr>
-
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- boolean</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#showRecoveryInterstitial">showRecoveryInterstitial</a></td>
- <td class="jd-descrcol" width="100%">Represents the decision and should be obeyed by the client.</td>
- </tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
-
-
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
-
-
-
-
-
- </nobr>
- </td>
- <td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#RecoveryDecision()">RecoveryDecision</a></span>()</nobr>
-
- </td></tr>
@@ -964,56 +906,135 @@
+
+
+
+
+
<!-- ========== METHOD SUMMARY =========== -->
<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
int</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#describeContents()">describeContents</a></span>()</nobr>
-
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/Contents.html#describeContents()">describeContents</a></span>()</nobr>
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
- int</nobr>
+
+
+
+
+
+ <a href="/reference/com/google/android/gms/drive/DriveId.html">DriveId</a></nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#getVersionCode()">getVersionCode</a></span>()</nobr>
-
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/Contents.html#getDriveId()">getDriveId</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Gets the <code><a href="/reference/com/google/android/gms/drive/DriveId.html">DriveId</a></code> for the file that owns these contents.</div>
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
+ InputStream</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/Contents.html#getInputStream()">getInputStream</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Gets an OutputStream that allows you to read this file's contents.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/Contents.html#getMode()">getMode</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Gets the mode the contents were opened in.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ OutputStream</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/Contents.html#getOutputStream()">getOutputStream</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Gets an OutputStream that allows you to write new contents.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ ParcelFileDescriptor</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/Contents.html#getParcelFileDescriptor()">getParcelFileDescriptor</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Gets a FileDescriptor that points to the Drive file's contents.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#writeToParcel(android.os.Parcel, int)">writeToParcel</a></span>(Parcel out, int flags)</nobr>
-
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/Contents.html#writeToParcel(android.os.Parcel, int)">writeToParcel</a></span>(Parcel dest, int flags)</nobr>
+
</td></tr>
@@ -1048,182 +1069,182 @@
</div>
<div id="inherited-methods-java.lang.Object-summary" style="display: none;">
<table class="jd-sumtable-expando">
-
-
+
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
Object</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">clone</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
boolean</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">equals</span>(Object arg0)</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">finalize</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
Class<?></nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">getClass</span>()</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
int</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">hashCode</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">notify</span>()</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">notifyAll</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
String</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">toString</span>()</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">wait</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">wait</span>(long arg0)</nobr>
-
+
</td></tr>
@@ -1250,38 +1271,38 @@
</div>
<div id="inherited-methods-android.os.Parcelable-summary" style="display: none;">
<table class="jd-sumtable-expando">
-
-
+
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
abstract
-
-
-
-
+
+
+
+
int</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">describeContents</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
abstract
-
-
-
-
+
+
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">writeToParcel</span>(Parcel arg0, int arg1)</nobr>
-
+
</td></tr>
@@ -1325,183 +1346,27 @@
<A NAME="CREATOR"></A>
-<div class="jd-details api apilevel-">
+<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
- public
- static
- final
- <a href="/reference/com/google/android/gms/auth/RecoveryDecisionCreator.html">RecoveryDecisionCreator</a>
+ public
+ static
+ final
+ Creator<<a href="/reference/com/google/android/gms/drive/Contents.html">Contents</a>>
</span>
CREATOR
</h4>
<div class="api-level">
-
-
-
+
+
+
</div>
<div class="jd-details-descr">
-
+
<div class="jd-tagdata jd-tagdescr"><p></p></div>
-
- </div>
-</div>
-
-
-<A NAME="isRecoveryInfoNeeded"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- boolean
- </span>
- isRecoveryInfoNeeded
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>Is <code>true</code> if either the account has no recovery information or it
- was updated long time back (controlled by server, default 1 year).
-</p></div>
-
-
- </div>
-</div>
-
-
-
-<A NAME="isRecoveryInterstitialAllowed"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- boolean
- </span>
- isRecoveryInterstitialAllowed
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>Is <code>true</code> iff the user has permission to update the account.
- Dasher accounts can have recovery information edit disabled by the administrator.
- Eg: @google.com
-</p></div>
-
-
- </div>
-</div>
-
-
-
-<A NAME="recoveryIntent"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- PendingIntent
- </span>
- recoveryIntent
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>A PendingIntent to an activity that gathers recovery information for the given account.
- This intent will be null iff isRecoveryInterstitialAllowed is <code>false</code>.
-</p></div>
-
-
- </div>
-</div>
-
-
-
-<A NAME="recoveryIntentWithoutIntro"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- PendingIntent
- </span>
- recoveryIntentWithoutIntro
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>A PendingIntent to an activity that gathers recovery information for the given account.
- This intent will be null iff isRecoveryInterstitialAllowed is <code>false</code>.
- This intent directly skips to the input activity without showing the intro message.
-</p></div>
-
-
- </div>
-</div>
-
-
-
-<A NAME="showRecoveryInterstitial"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- boolean
- </span>
- showRecoveryInterstitial
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>Represents the decision and should be obeyed by the client. The remaining
- two flags are provided as additional information for one off decisions. This value
- is <code>true</code> iff isRecoveryInfoNeeded is <code>true</code>, isRecoveryInterstitialAllowed is
- <code>true</code> and a specified period (controlled by server, default 2 months) has passed
- since the user was shown a prompt for recovery information on any google property
- (Android, Web, etc.)
-</p></div>
-
-
</div>
</div>
@@ -1511,42 +1376,6 @@
<!-- Public ctors -->
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<h2>Public Constructors</h2>
-
-
-
-<A NAME="RecoveryDecision()"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
-
-
-
- </span>
- <span class="sympad">RecoveryDecision</span>
- <span class="normal">()</span>
- </h4>
- <div class="api-level">
- <div></div>
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
- </div>
-</div>
-
-
-
-
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<!-- Protected ctors -->
@@ -1562,14 +1391,14 @@
<A NAME="describeContents()"></A>
-<div class="jd-details api apilevel-">
+<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
- public
-
-
-
-
+ public
+
+
+
+
int
</span>
<span class="sympad">describeContents</span>
@@ -1577,42 +1406,175 @@
</h4>
<div class="api-level">
<div></div>
-
-
+
+
</div>
<div class="jd-details-descr">
-
+
<div class="jd-tagdata jd-tagdescr"><p></p></div>
</div>
</div>
-<A NAME="getVersionCode()"></A>
+<A NAME="getDriveId()"></A>
-<div class="jd-details api apilevel-">
+<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
- public
-
-
-
-
- int
+ public
+
+
+
+
+ <a href="/reference/com/google/android/gms/drive/DriveId.html">DriveId</a>
</span>
- <span class="sympad">getVersionCode</span>
+ <span class="sympad">getDriveId</span>
<span class="normal">()</span>
</h4>
<div class="api-level">
<div></div>
-
-
+
+
</div>
<div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+ <div class="jd-tagdata jd-tagdescr"><p>Gets the <code><a href="/reference/com/google/android/gms/drive/DriveId.html">DriveId</a></code> for the file that owns these contents. Will be null if these are new
+ contents.
+</p></div>
+
+ </div>
+</div>
+
+
+<A NAME="getInputStream()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ InputStream
+ </span>
+ <span class="sympad">getInputStream</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Gets an OutputStream that allows you to read this file's contents. This method may only be
+ used with files opened with <code><a href="/reference/com/google/android/gms/drive/DriveFile.html#MODE_READ_ONLY">MODE_READ_ONLY</a></code>; to read/write from a file
+ opened with <code><a href="/reference/com/google/android/gms/drive/DriveFile.html#MODE_READ_WRITE">MODE_READ_WRITE</a></code>, use the file descriptor returned by
+ <code><a href="/reference/com/google/android/gms/drive/Contents.html#getParcelFileDescriptor()">getParcelFileDescriptor()</a></code>. This method may only be called once per <code><a href="/reference/com/google/android/gms/drive/Contents.html">Contents</a></code>
+ instance.
+</p></div>
+
+ </div>
+</div>
+
+
+<A NAME="getMode()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ int
+ </span>
+ <span class="sympad">getMode</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Gets the mode the contents were opened in.
+</p></div>
+
+ </div>
+</div>
+
+
+<A NAME="getOutputStream()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ OutputStream
+ </span>
+ <span class="sympad">getOutputStream</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Gets an OutputStream that allows you to write new contents. This method may only be used
+ with files opened with <code><a href="/reference/com/google/android/gms/drive/DriveFile.html#MODE_WRITE_ONLY">MODE_WRITE_ONLY</a></code>; to read/write from a file opened
+ with <code><a href="/reference/com/google/android/gms/drive/DriveFile.html#MODE_READ_WRITE">MODE_READ_WRITE</a></code>, use the file descriptor returned by
+ <code><a href="/reference/com/google/android/gms/drive/Contents.html#getParcelFileDescriptor()">getParcelFileDescriptor()</a></code>. This method may only be called once per <code><a href="/reference/com/google/android/gms/drive/Contents.html">Contents</a></code>
+ instance.
+</p></div>
+
+ </div>
+</div>
+
+
+<A NAME="getParcelFileDescriptor()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ ParcelFileDescriptor
+ </span>
+ <span class="sympad">getParcelFileDescriptor</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Gets a FileDescriptor that points to the Drive file's contents. If this file was opened with
+ <code><a href="/reference/com/google/android/gms/drive/DriveFile.html#MODE_READ_ONLY">MODE_READ_ONLY</a></code> or <code><a href="/reference/com/google/android/gms/drive/DriveFile.html#MODE_READ_WRITE">MODE_READ_WRITE</a></code>, the file referenced by
+ the FileDescriptor will contain the most recent version of the file. Otherwise, the file will
+ be empty.
+</p></div>
</div>
</div>
@@ -1620,27 +1582,27 @@
<A NAME="writeToParcel(android.os.Parcel, int)"></A>
-<div class="jd-details api apilevel-">
+<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
- public
-
-
-
-
+ public
+
+
+
+
void
</span>
<span class="sympad">writeToParcel</span>
- <span class="normal">(Parcel out, int flags)</span>
+ <span class="normal">(Parcel dest, int flags)</span>
</h4>
<div class="api-level">
<div></div>
-
-
+
+
</div>
<div class="jd-details-descr">
-
+
<div class="jd-tagdata jd-tagdescr"><p></p></div>
</div>
@@ -1658,17 +1620,17 @@
<A NAME="navbar_top"></A>
<div id="footer" class="wrap" >
-
+
<div id="copyright">
-
+
Except as noted, this content is licensed under <a
- href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.
+ href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.
For details and restrictions, see the <a href="/license.html">
Content License</a>.
</div>
<div id="build_info">
-
+
<script src="/timestamp.js" type="text/javascript"></script>
<script>document.write(BUILD_TIMESTAMP)</script>
@@ -1676,7 +1638,7 @@
<div id="footerlinks">
-
+
<p>
<a href="/about/index.html">About Android</a> |
<a href="/legal.html">Legal</a> |
@@ -1689,7 +1651,7 @@
</div><!-- end doc-content -->
-</div> <!-- end body-content -->
+</div> <!-- end body-content -->
diff --git a/docs/html/reference/com/google/android/gms/auth/RecoveryDecision.html b/docs/html/reference/com/google/android/gms/drive/CreateFileActivityBuilder.html
similarity index 65%
copy from docs/html/reference/com/google/android/gms/auth/RecoveryDecision.html
copy to docs/html/reference/com/google/android/gms/drive/CreateFileActivityBuilder.html
index 59a1346..9d247ef 100644
--- a/docs/html/reference/com/google/android/gms/auth/RecoveryDecision.html
+++ b/docs/html/reference/com/google/android/gms/drive/CreateFileActivityBuilder.html
@@ -83,7 +83,7 @@
<meta name="viewport" content="width=device-width" />
<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
-<title>RecoveryDecision | Android Developers</title>
+<title>CreateFileActivityBuilder | Android Developers</title>
<!-- STYLESHEETS -->
<link rel="stylesheet"
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -128,7 +129,7 @@
<img src="/assets/images/dac_logo.png" width="123" height="25" alt="Android Developers" />
</a>
<div class="btn-quicknav" id="btn-quicknav">
- <a href="#" class="arrow-inactive">Quicknav</a>
+ <a href="#" class="arrow-inactive">Quicknav</a>
<a href="#" class="arrow-active">Quicknav</a>
</div>
</div>
@@ -140,7 +141,7 @@
ru-lang="Проектирование"
ko-lang="디자인"
ja-lang="設計"
- es-lang="Diseñar"
+ es-lang="Diseñar"
>Design</a></li>
<li class="develop"><a href="/develop/index.html"
zh-tw-lang="開發"
@@ -148,7 +149,7 @@
ru-lang="Разработка"
ko-lang="개발"
ja-lang="開発"
- es-lang="Desarrollar"
+ es-lang="Desarrollar"
>Develop</a></li>
<li class="distribute last"><a href="/distribute/index.html"
zh-tw-lang="發佈"
@@ -156,10 +157,10 @@
ru-lang="Распространение"
ko-lang="배포"
ja-lang="配布"
- es-lang="Distribuir"
+ es-lang="Distribuir"
>Distribute</a></li>
</ul>
-
+
<!-- New Search -->
<div class="menu-container">
<div class="moremenu">
@@ -180,9 +181,9 @@
<li class="active"><a>Android Developers</a></li>
<li><a href="http://source.android.com">Android Open Source Project</a></li>
</ul>
-
-
-
+
+
+
<div class="header">Language</div>
<div id="language" class="locales">
<select name="language" onChange="changeLangPref(this.value, true)">
@@ -200,8 +201,8 @@
loadLangPref();
//-->
</script>
-
-
+
+
<br class="clearfix" />
@@ -215,7 +216,7 @@
<form onsubmit="return submit_search()">
<input id="search_autocomplete" type="text" value="" autocomplete="off" name="q"
onfocus="search_focus_changed(this, true)" onblur="search_focus_changed(this, false)"
-onkeydown="return search_changed(event, true, '/')"
+onkeydown="return search_changed(event, true, '/')"
onkeyup="return search_changed(event, false, '/')" />
</form>
<div class="right"></div>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -254,8 +257,8 @@
</div>
<!-- /New Search>
-
-
+
+
<!-- Expanded quicknav -->
<div id="quicknav" class="col-9">
<ul>
@@ -277,15 +280,15 @@
ru-lang="Курсы"
ko-lang="교육"
ja-lang="トレーニング"
- es-lang="Capacitación"
+ es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
ko-lang="API 가이드"
ja-lang="API ガイド"
- es-lang="Guías de la API"
+ es-lang="Guías de la API"
>API Guides</a></li>
<li><a href="/reference/packages.html"
zh-tw-lang="參考資源"
@@ -293,7 +296,7 @@
ru-lang="Справочник"
ko-lang="참조문서"
ja-lang="リファレンス"
- es-lang="Referencia"
+ es-lang="Referencia"
>Reference</a></li>
<li><a href="/tools/index.html"
zh-tw-lang="相關工具"
@@ -301,13 +304,16 @@
ru-lang="Инструменты"
ko-lang="도구"
ja-lang="ツール"
- es-lang="Herramientas"
+ es-lang="Herramientas"
>Tools</a>
<ul><li><a href="/sdk/index.html">Get the SDK</a></li></ul>
</li>
<li><a href="/google/index.html">Google Services</a>
</li>
-
+
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -326,15 +332,15 @@
</div>
</div>
<!-- /Header -->
-
-
+
+
<div id="searchResults" class="wrap" style="display:none;">
<h2 id="searchTitle">Results</h2>
<div id="leftSearchControl" class="search-control">Loading...</div>
</div>
-
-
-
+
+
+
<!-- Secondary x-nav -->
<div id="nav-x">
<div class="wrap">
@@ -345,15 +351,15 @@
ru-lang="Курсы"
ko-lang="교육"
ja-lang="トレーニング"
- es-lang="Capacitación"
+ es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
ko-lang="API 가이드"
ja-lang="API ガイド"
- es-lang="Guías de la API"
+ es-lang="Guías de la API"
>API Guides</a></li>
<li class="reference"><a href="/reference/packages.html"
zh-tw-lang="參考資源"
@@ -361,7 +367,7 @@
ru-lang="Справочник"
ko-lang="참조문서"
ja-lang="リファレンス"
- es-lang="Referencia"
+ es-lang="Referencia"
>Reference</a></li>
<li class="tools"><a href="/tools/index.html"
zh-tw-lang="相關工具"
@@ -374,21 +380,25 @@
<li class="google"><a href="/google/index.html"
>Google Services</a>
</li>
-
+
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
-
+
</div>
<!-- /Sendondary x-nav -->
-
-
-
+
+
+
<div class="wrap clearfix" id="body-content">
<div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
<div id="devdoc-nav" class="scroll-pane">
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
@@ -618,12 +631,12 @@
</script>
-
+
</div>
<script type="text/javascript">
showGoogleRefTree();
-
+
</script>
</div> <!-- end side-nav -->
<script>
@@ -633,7 +646,7 @@
</script>
-
+
@@ -643,21 +656,12 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
<div class="sum-details-links">
@@ -668,23 +672,17 @@
-
- <a href="#inhconstants">Inherited Constants</a>
-
-
-
- | <a href="#lfields">Fields</a>
-
+ <a href="#constants">Constants</a>
- | <a href="#pubctors">Ctors</a>
-
+
+
| <a href="#pubmethods">Methods</a>
-
+
@@ -694,9 +692,9 @@
</div><!-- end sum-details-links -->
<div class="api-level">
-
-
-
+
+
+
</div>
</div><!-- end api-info-block -->
@@ -706,28 +704,23 @@
<div id="jd-header">
public
-
-
-
+
+
+
class
-<h1 itemprop="name">RecoveryDecision</h1>
+<h1 itemprop="name">CreateFileActivityBuilder</h1>
-
+
extends Object<br/>
-
-
-
-
-
- implements
-
- Parcelable
-
-
-
+
+
+
+
+
+
</div><!-- end header -->
@@ -739,18 +732,18 @@
<tr>
-
+
<td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
</tr>
-
+
<tr>
-
+
<td class="jd-inheritance-space"> ↳</td>
-
- <td colspan="1" class="jd-inheritance-class-cell">com.google.android.gms.auth.RecoveryDecision</td>
+
+ <td colspan="1" class="jd-inheritance-class-cell">com.google.android.gms.drive.CreateFileActivityBuilder</td>
</tr>
-
+
</table>
@@ -763,6 +756,36 @@
<div class="jd-descr">
+<h2>Class Overview</h2>
+<p class="caution">
+ <strong>Note:</strong> The Google Drive Android API is currently in <strong>developer
+ preview</strong>. Applications compiled using this version of the API will
+ continue to operate on devices using future versions of Google Play services;
+ however, changes to the API are expected in future releases.
+</p>
+<p itemprop="articleBody">A builder that is used to configure and display the create file activity. This dialog creates a
+ new file in the user's drive with a destination and title selected by the user, and the initial
+ metadata and contents specified in this builder. If the device is currently offline, the file
+ will be created locally and committed to the server when connectivity is restored.
+ <p>
+ To create a new <code><a href="/reference/com/google/android/gms/drive/DriveFile.html">DriveFile</a></code>, create a <code><a href="/reference/com/google/android/gms/drive/Contents.html">Contents</a></code> object using
+ <code><a href="/reference/com/google/android/gms/drive/DriveApi.html#newContents(com.google.android.gms.common.api.GoogleApiClient)">newContents(GoogleApiClient)</a></code> and use it to write the file content and
+ <code><a href="/reference/com/google/android/gms/drive/MetadataChangeSet.Builder.html">MetadataChangeSet.Builder</a></code> to create the associated metadata and set them on the builder
+ using <code><a href="/reference/com/google/android/gms/drive/CreateFileActivityBuilder.html#setInitialContents(com.google.android.gms.drive.Contents)">setInitialContents(Contents)</a></code> and <code><a href="/reference/com/google/android/gms/drive/CreateFileActivityBuilder.html#setInitialMetadata(com.google.android.gms.drive.MetadataChangeSet)">setInitialMetadata(MetadataChangeSet)</a></code> before building.
+ <p>
+ To create a new <code><a href="/reference/com/google/android/gms/drive/DriveFolder.html">DriveFolder</a></code>, create a metadata change set using
+ <code><a href="/reference/com/google/android/gms/drive/MetadataChangeSet.Builder.html">MetadataChangeSet.Builder</a></code> and be sure to set the MIME type to
+ <code><a href="/reference/com/google/android/gms/drive/DriveFolder.html#MIME_TYPE">MIME_TYPE</a></code>. Store this metadata on the activity builder using
+ <code><a href="/reference/com/google/android/gms/drive/CreateFileActivityBuilder.html#setInitialMetadata(com.google.android.gms.drive.MetadataChangeSet)">setInitialMetadata(MetadataChangeSet)</a></code>. No <code><a href="/reference/com/google/android/gms/drive/Contents.html">Contents</a></code> should be set on the builder.
+ <p>
+ To display the activity, pass the result of <code><a href="/reference/com/google/android/gms/drive/CreateFileActivityBuilder.html#build(com.google.android.gms.common.api.GoogleApiClient)">build(GoogleApiClient)</a></code> to <code>#startActivityForResult()</code>.
+ When the activity completes, a successful response will include an extra
+ <code><a href="/reference/com/google/android/gms/drive/CreateFileActivityBuilder.html#EXTRA_RESPONSE_DRIVE_ID">EXTRA_RESPONSE_DRIVE_ID</a></code> with the selected <code><a href="/reference/com/google/android/gms/drive/DriveId.html">DriveId</a></code>.
+
+ <p>
+ Note: you cannot use <code>#startActivity</code> to invoke the activity. This will fail.
+</p>
+
@@ -801,159 +824,17 @@
-
-
-
<!-- =========== ENUM CONSTANT SUMMARY =========== -->
-<table id="inhconstants" class="jd-sumtable"><tr><th>
- <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
- <div style="clear:left;">Inherited Constants</div></th></tr>
+<table id="constants" class="jd-sumtable"><tr><th colspan="12">Constants</th></tr>
-
-<tr class="api apilevel-" >
-<td colspan="12">
-
- <a href="#" onclick="return toggleInherited(this, null)" id="inherited-constants-android.os.Parcelable" class="jd-expando-trigger closed"
- ><img id="inherited-constants-android.os.Parcelable-trigger"
- src="/assets/images/triangle-closed.png"
- class="jd-expando-trigger-img" /></a>From interface
-android.os.Parcelable
-<div id="inherited-constants-android.os.Parcelable">
- <div id="inherited-constants-android.os.Parcelable-list"
- class="jd-inheritedlinks">
- </div>
- <div id="inherited-constants-android.os.Parcelable-summary" style="display: none;">
- <table class="jd-sumtable-expando">
-
-
-
<tr class="alt-color api apilevel-" >
- <td class="jd-typecol">int</td>
- <td class="jd-linkcol">CONTENTS_FILE_DESCRIPTOR</td>
- <td class="jd-descrcol" width="100%"></td>
+ <td class="jd-typecol">String</td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/drive/CreateFileActivityBuilder.html#EXTRA_RESPONSE_DRIVE_ID">EXTRA_RESPONSE_DRIVE_ID</a></td>
+ <td class="jd-descrcol" width="100%">A successful result will return an extra by this name which will contain the <code><a href="/reference/com/google/android/gms/drive/DriveId.html">DriveId</a></code>
+ of the created file.</td>
</tr>
-
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol">int</td>
- <td class="jd-linkcol">PARCELABLE_WRITE_RETURN_VALUE</td>
- <td class="jd-descrcol" width="100%"></td>
- </tr>
-
-
-</table>
- </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-
-
-<!-- =========== FIELD SUMMARY =========== -->
-<table id="lfields" class="jd-sumtable"><tr><th colspan="12">Fields</th></tr>
-
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
- static
- final
- <a href="/reference/com/google/android/gms/auth/RecoveryDecisionCreator.html">RecoveryDecisionCreator</a></nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#CREATOR">CREATOR</a></td>
- <td class="jd-descrcol" width="100%"></td>
- </tr>
-
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- boolean</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#isRecoveryInfoNeeded">isRecoveryInfoNeeded</a></td>
- <td class="jd-descrcol" width="100%">Is <code>true</code> if either the account has no recovery information or it
- was updated long time back (controlled by server, default 1 year).</td>
- </tr>
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- boolean</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#isRecoveryInterstitialAllowed">isRecoveryInterstitialAllowed</a></td>
- <td class="jd-descrcol" width="100%">Is <code>true</code> iff the user has permission to update the account.</td>
- </tr>
-
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- PendingIntent</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#recoveryIntent">recoveryIntent</a></td>
- <td class="jd-descrcol" width="100%">A PendingIntent to an activity that gathers recovery information for the given account.</td>
- </tr>
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- PendingIntent</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#recoveryIntentWithoutIntro">recoveryIntentWithoutIntro</a></td>
- <td class="jd-descrcol" width="100%">A PendingIntent to an activity that gathers recovery information for the given account.</td>
- </tr>
-
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- boolean</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#showRecoveryInterstitial">showRecoveryInterstitial</a></td>
- <td class="jd-descrcol" width="100%">Represents the decision and should be obeyed by the client.</td>
- </tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
-
-
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
-
-
-
-
-
- </nobr>
- </td>
- <td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#RecoveryDecision()">RecoveryDecision</a></span>()</nobr>
-
- </td></tr>
@@ -964,56 +845,109 @@
+
+
+
+
+
+
+
+
+
+
<!-- ========== METHOD SUMMARY =========== -->
<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
- int</nobr>
+
+
+
+
+
+ IntentSender</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#describeContents()">describeContents</a></span>()</nobr>
-
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/CreateFileActivityBuilder.html#build(com.google.android.gms.common.api.GoogleApiClient)">build</a></span>(<a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html">GoogleApiClient</a> apiClient)</nobr>
+
+ <div class="jd-descrdiv">Gets an Intent that can be used to start the Create File activity.</div>
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
- int</nobr>
+
+
+
+
+
+ <a href="/reference/com/google/android/gms/drive/CreateFileActivityBuilder.html">CreateFileActivityBuilder</a></nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#getVersionCode()">getVersionCode</a></span>()</nobr>
-
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/CreateFileActivityBuilder.html#setActivityStartFolder(com.google.android.gms.drive.DriveId)">setActivityStartFolder</a></span>(<a href="/reference/com/google/android/gms/drive/DriveId.html">DriveId</a> folder)</nobr>
+
+ <div class="jd-descrdiv">Sets the default folder that will be presented at activity startup as the location for
+ file creation.</div>
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
- void</nobr>
+
+
+
+
+
+ <a href="/reference/com/google/android/gms/drive/CreateFileActivityBuilder.html">CreateFileActivityBuilder</a></nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#writeToParcel(android.os.Parcel, int)">writeToParcel</a></span>(Parcel out, int flags)</nobr>
-
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/CreateFileActivityBuilder.html#setActivityTitle(java.lang.String)">setActivityTitle</a></span>(String title)</nobr>
+
+ <div class="jd-descrdiv">Sets the title displayed in the activity.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ <a href="/reference/com/google/android/gms/drive/CreateFileActivityBuilder.html">CreateFileActivityBuilder</a></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/CreateFileActivityBuilder.html#setInitialContents(com.google.android.gms.drive.Contents)">setInitialContents</a></span>(<a href="/reference/com/google/android/gms/drive/Contents.html">Contents</a> contents)</nobr>
+
+ <div class="jd-descrdiv">Sets the initial contents for the new file.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ <a href="/reference/com/google/android/gms/drive/CreateFileActivityBuilder.html">CreateFileActivityBuilder</a></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/CreateFileActivityBuilder.html#setInitialMetadata(com.google.android.gms.drive.MetadataChangeSet)">setInitialMetadata</a></span>(<a href="/reference/com/google/android/gms/drive/MetadataChangeSet.html">MetadataChangeSet</a> metadataChangeSet)</nobr>
+
+ <div class="jd-descrdiv">Sets the default metadata for the new file.</div>
+
</td></tr>
@@ -1048,240 +982,182 @@
</div>
<div id="inherited-methods-java.lang.Object-summary" style="display: none;">
<table class="jd-sumtable-expando">
-
-
+
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
Object</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">clone</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
boolean</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">equals</span>(Object arg0)</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">finalize</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
Class<?></nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">getClass</span>()</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
int</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">hashCode</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">notify</span>()</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">notifyAll</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
String</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">toString</span>()</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">wait</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">wait</span>(long arg0)</nobr>
-
- </td></tr>
-
-</table>
- </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
- <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-android.os.Parcelable" class="jd-expando-trigger closed"
- ><img id="inherited-methods-android.os.Parcelable-trigger"
- src="/assets/images/triangle-closed.png"
- class="jd-expando-trigger-img" /></a>
-From interface
-
- android.os.Parcelable
-
-<div id="inherited-methods-android.os.Parcelable">
- <div id="inherited-methods-android.os.Parcelable-list"
- class="jd-inheritedlinks">
- </div>
- <div id="inherited-methods-android.os.Parcelable-summary" style="display: none;">
- <table class="jd-sumtable-expando">
-
-
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
- abstract
-
-
-
-
- int</nobr>
- </td>
- <td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad">describeContents</span>()</nobr>
-
- </td></tr>
-
-
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol"><nobr>
- abstract
-
-
-
-
- void</nobr>
- </td>
- <td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad">writeToParcel</span>(Parcel arg0, int arg1)</nobr>
-
</td></tr>
@@ -1314,239 +1190,58 @@
<!-- Constants -->
+<!-- ========= ENUM CONSTANTS DETAIL ======== -->
+<h2>Constants</h2>
+
+
+
+
+<A NAME="EXTRA_RESPONSE_DRIVE_ID"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+ static
+ final
+ String
+ </span>
+ EXTRA_RESPONSE_DRIVE_ID
+ </h4>
+ <div class="api-level">
+
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>A successful result will return an extra by this name which will contain the <code><a href="/reference/com/google/android/gms/drive/DriveId.html">DriveId</a></code>
+ of the created file.
+</p></div>
+
+
+ <div class="jd-tagdata">
+ <span class="jd-tagtitle">Constant Value: </span>
+ <span>
+
+ "response_drive_id"
+
+ </span>
+ </div>
+
+ </div>
+</div>
+
+
+
+
<!-- Fields -->
-<!-- ========= FIELD DETAIL ======== -->
-<h2>Fields</h2>
-
-
-
-
-<A NAME="CREATOR"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
- static
- final
- <a href="/reference/com/google/android/gms/auth/RecoveryDecisionCreator.html">RecoveryDecisionCreator</a>
- </span>
- CREATOR
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-
- </div>
-</div>
-
-
-
-<A NAME="isRecoveryInfoNeeded"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- boolean
- </span>
- isRecoveryInfoNeeded
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>Is <code>true</code> if either the account has no recovery information or it
- was updated long time back (controlled by server, default 1 year).
-</p></div>
-
-
- </div>
-</div>
-
-
-
-<A NAME="isRecoveryInterstitialAllowed"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- boolean
- </span>
- isRecoveryInterstitialAllowed
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>Is <code>true</code> iff the user has permission to update the account.
- Dasher accounts can have recovery information edit disabled by the administrator.
- Eg: @google.com
-</p></div>
-
-
- </div>
-</div>
-
-
-
-<A NAME="recoveryIntent"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- PendingIntent
- </span>
- recoveryIntent
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>A PendingIntent to an activity that gathers recovery information for the given account.
- This intent will be null iff isRecoveryInterstitialAllowed is <code>false</code>.
-</p></div>
-
-
- </div>
-</div>
-
-
-
-<A NAME="recoveryIntentWithoutIntro"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- PendingIntent
- </span>
- recoveryIntentWithoutIntro
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>A PendingIntent to an activity that gathers recovery information for the given account.
- This intent will be null iff isRecoveryInterstitialAllowed is <code>false</code>.
- This intent directly skips to the input activity without showing the intro message.
-</p></div>
-
-
- </div>
-</div>
-
-
-
-<A NAME="showRecoveryInterstitial"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- boolean
- </span>
- showRecoveryInterstitial
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>Represents the decision and should be obeyed by the client. The remaining
- two flags are provided as additional information for one off decisions. This value
- is <code>true</code> iff isRecoveryInfoNeeded is <code>true</code>, isRecoveryInterstitialAllowed is
- <code>true</code> and a specified period (controlled by server, default 2 months) has passed
- since the user was shown a prompt for recovery information on any google property
- (Android, Web, etc.)
-</p></div>
-
-
- </div>
-</div>
-
-
-
-
<!-- Public ctors -->
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<h2>Public Constructors</h2>
-
-
-
-<A NAME="RecoveryDecision()"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
-
-
-
- </span>
- <span class="sympad">RecoveryDecision</span>
- <span class="normal">()</span>
- </h4>
- <div class="api-level">
- <div></div>
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
- </div>
-</div>
-
-
-
-
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<!-- Protected ctors -->
@@ -1560,88 +1255,176 @@
-<A NAME="describeContents()"></A>
+<A NAME="build(com.google.android.gms.common.api.GoogleApiClient)"></A>
-<div class="jd-details api apilevel-">
+<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
- public
-
-
-
-
- int
+ public
+
+
+
+
+ IntentSender
</span>
- <span class="sympad">describeContents</span>
- <span class="normal">()</span>
+ <span class="sympad">build</span>
+ <span class="normal">(<a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html">GoogleApiClient</a> apiClient)</span>
</h4>
<div class="api-level">
<div></div>
-
-
+
+
</div>
<div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+ <div class="jd-tagdata jd-tagdescr"><p>Gets an Intent that can be used to start the Create File activity. Note that you must start
+ this activity with <code>startActivityForResult</code>, not <code>startActivity</code>. Once this is
+ invoked, the provided contents are finalized and cannot be edited. To make additional edits,
+ reopen the contents with the returned DriveId.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>apiClient</td>
+ <td>The <code><a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html">GoogleApiClient</a></code> to service the call. The client must be connected
+ before invoking this method.
+</td>
+ </tr>
+ </table>
+ </div>
</div>
</div>
-<A NAME="getVersionCode()"></A>
+<A NAME="setActivityStartFolder(com.google.android.gms.drive.DriveId)"></A>
-<div class="jd-details api apilevel-">
+<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
- public
-
-
-
-
- int
+ public
+
+
+
+
+ <a href="/reference/com/google/android/gms/drive/CreateFileActivityBuilder.html">CreateFileActivityBuilder</a>
</span>
- <span class="sympad">getVersionCode</span>
- <span class="normal">()</span>
+ <span class="sympad">setActivityStartFolder</span>
+ <span class="normal">(<a href="/reference/com/google/android/gms/drive/DriveId.html">DriveId</a> folder)</span>
</h4>
<div class="api-level">
<div></div>
-
-
+
+
</div>
<div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+ <div class="jd-tagdata jd-tagdescr"><p>Sets the default folder that will be presented at activity startup as the location for
+ file creation. The activity supports navigation from this point to other folders.
+</p></div>
</div>
</div>
-<A NAME="writeToParcel(android.os.Parcel, int)"></A>
+<A NAME="setActivityTitle(java.lang.String)"></A>
-<div class="jd-details api apilevel-">
+<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
- public
-
-
-
-
- void
+ public
+
+
+
+
+ <a href="/reference/com/google/android/gms/drive/CreateFileActivityBuilder.html">CreateFileActivityBuilder</a>
</span>
- <span class="sympad">writeToParcel</span>
- <span class="normal">(Parcel out, int flags)</span>
+ <span class="sympad">setActivityTitle</span>
+ <span class="normal">(String title)</span>
</h4>
<div class="api-level">
<div></div>
-
-
+
+
</div>
<div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+ <div class="jd-tagdata jd-tagdescr"><p>Sets the title displayed in the activity.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>title</td>
+ <td>the title to set on the activity (may not be null)
+</td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="setInitialContents(com.google.android.gms.drive.Contents)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ <a href="/reference/com/google/android/gms/drive/CreateFileActivityBuilder.html">CreateFileActivityBuilder</a>
+ </span>
+ <span class="sympad">setInitialContents</span>
+ <span class="normal">(<a href="/reference/com/google/android/gms/drive/Contents.html">Contents</a> contents)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Sets the initial contents for the new file. This will close the contents, and persist them
+ as the initial contents for the file. To continue editing the contents, reopen them
+ once the file has been created.
+</p></div>
+
+ </div>
+</div>
+
+
+<A NAME="setInitialMetadata(com.google.android.gms.drive.MetadataChangeSet)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ <a href="/reference/com/google/android/gms/drive/CreateFileActivityBuilder.html">CreateFileActivityBuilder</a>
+ </span>
+ <span class="sympad">setInitialMetadata</span>
+ <span class="normal">(<a href="/reference/com/google/android/gms/drive/MetadataChangeSet.html">MetadataChangeSet</a> metadataChangeSet)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Sets the default metadata for the new file.
+</p></div>
</div>
</div>
@@ -1658,17 +1441,17 @@
<A NAME="navbar_top"></A>
<div id="footer" class="wrap" >
-
+
<div id="copyright">
-
+
Except as noted, this content is licensed under <a
- href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.
+ href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.
For details and restrictions, see the <a href="/license.html">
Content License</a>.
</div>
<div id="build_info">
-
+
<script src="/timestamp.js" type="text/javascript"></script>
<script>document.write(BUILD_TIMESTAMP)</script>
@@ -1676,7 +1459,7 @@
<div id="footerlinks">
-
+
<p>
<a href="/about/index.html">About Android</a> |
<a href="/legal.html">Legal</a> |
@@ -1689,7 +1472,7 @@
</div><!-- end doc-content -->
-</div> <!-- end body-content -->
+</div> <!-- end body-content -->
diff --git a/docs/html/reference/com/google/android/gms/auth/RecoveryDecision.html b/docs/html/reference/com/google/android/gms/drive/Drive.html
similarity index 62%
copy from docs/html/reference/com/google/android/gms/auth/RecoveryDecision.html
copy to docs/html/reference/com/google/android/gms/drive/Drive.html
index 59a1346..3d3aa75 100644
--- a/docs/html/reference/com/google/android/gms/auth/RecoveryDecision.html
+++ b/docs/html/reference/com/google/android/gms/drive/Drive.html
@@ -83,7 +83,7 @@
<meta name="viewport" content="width=device-width" />
<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
-<title>RecoveryDecision | Android Developers</title>
+<title>Drive | Android Developers</title>
<!-- STYLESHEETS -->
<link rel="stylesheet"
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -128,7 +129,7 @@
<img src="/assets/images/dac_logo.png" width="123" height="25" alt="Android Developers" />
</a>
<div class="btn-quicknav" id="btn-quicknav">
- <a href="#" class="arrow-inactive">Quicknav</a>
+ <a href="#" class="arrow-inactive">Quicknav</a>
<a href="#" class="arrow-active">Quicknav</a>
</div>
</div>
@@ -140,7 +141,7 @@
ru-lang="Проектирование"
ko-lang="디자인"
ja-lang="設計"
- es-lang="Diseñar"
+ es-lang="Diseñar"
>Design</a></li>
<li class="develop"><a href="/develop/index.html"
zh-tw-lang="開發"
@@ -148,7 +149,7 @@
ru-lang="Разработка"
ko-lang="개발"
ja-lang="開発"
- es-lang="Desarrollar"
+ es-lang="Desarrollar"
>Develop</a></li>
<li class="distribute last"><a href="/distribute/index.html"
zh-tw-lang="發佈"
@@ -156,10 +157,10 @@
ru-lang="Распространение"
ko-lang="배포"
ja-lang="配布"
- es-lang="Distribuir"
+ es-lang="Distribuir"
>Distribute</a></li>
</ul>
-
+
<!-- New Search -->
<div class="menu-container">
<div class="moremenu">
@@ -180,9 +181,9 @@
<li class="active"><a>Android Developers</a></li>
<li><a href="http://source.android.com">Android Open Source Project</a></li>
</ul>
-
-
-
+
+
+
<div class="header">Language</div>
<div id="language" class="locales">
<select name="language" onChange="changeLangPref(this.value, true)">
@@ -200,8 +201,8 @@
loadLangPref();
//-->
</script>
-
-
+
+
<br class="clearfix" />
@@ -215,7 +216,7 @@
<form onsubmit="return submit_search()">
<input id="search_autocomplete" type="text" value="" autocomplete="off" name="q"
onfocus="search_focus_changed(this, true)" onblur="search_focus_changed(this, false)"
-onkeydown="return search_changed(event, true, '/')"
+onkeydown="return search_changed(event, true, '/')"
onkeyup="return search_changed(event, false, '/')" />
</form>
<div class="right"></div>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -254,8 +257,8 @@
</div>
<!-- /New Search>
-
-
+
+
<!-- Expanded quicknav -->
<div id="quicknav" class="col-9">
<ul>
@@ -277,15 +280,15 @@
ru-lang="Курсы"
ko-lang="교육"
ja-lang="トレーニング"
- es-lang="Capacitación"
+ es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
ko-lang="API 가이드"
ja-lang="API ガイド"
- es-lang="Guías de la API"
+ es-lang="Guías de la API"
>API Guides</a></li>
<li><a href="/reference/packages.html"
zh-tw-lang="參考資源"
@@ -293,7 +296,7 @@
ru-lang="Справочник"
ko-lang="참조문서"
ja-lang="リファレンス"
- es-lang="Referencia"
+ es-lang="Referencia"
>Reference</a></li>
<li><a href="/tools/index.html"
zh-tw-lang="相關工具"
@@ -301,13 +304,16 @@
ru-lang="Инструменты"
ko-lang="도구"
ja-lang="ツール"
- es-lang="Herramientas"
+ es-lang="Herramientas"
>Tools</a>
<ul><li><a href="/sdk/index.html">Get the SDK</a></li></ul>
</li>
<li><a href="/google/index.html">Google Services</a>
</li>
-
+
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -326,15 +332,15 @@
</div>
</div>
<!-- /Header -->
-
-
+
+
<div id="searchResults" class="wrap" style="display:none;">
<h2 id="searchTitle">Results</h2>
<div id="leftSearchControl" class="search-control">Loading...</div>
</div>
-
-
-
+
+
+
<!-- Secondary x-nav -->
<div id="nav-x">
<div class="wrap">
@@ -345,15 +351,15 @@
ru-lang="Курсы"
ko-lang="교육"
ja-lang="トレーニング"
- es-lang="Capacitación"
+ es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
ko-lang="API 가이드"
ja-lang="API ガイド"
- es-lang="Guías de la API"
+ es-lang="Guías de la API"
>API Guides</a></li>
<li class="reference"><a href="/reference/packages.html"
zh-tw-lang="參考資源"
@@ -361,7 +367,7 @@
ru-lang="Справочник"
ko-lang="참조문서"
ja-lang="リファレンス"
- es-lang="Referencia"
+ es-lang="Referencia"
>Reference</a></li>
<li class="tools"><a href="/tools/index.html"
zh-tw-lang="相關工具"
@@ -374,21 +380,25 @@
<li class="google"><a href="/google/index.html"
>Google Services</a>
</li>
-
+
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
-
+
</div>
<!-- /Sendondary x-nav -->
-
-
-
+
+
+
<div class="wrap clearfix" id="body-content">
<div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
<div id="devdoc-nav" class="scroll-pane">
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
@@ -618,12 +631,12 @@
</script>
-
+
</div>
<script type="text/javascript">
showGoogleRefTree();
-
+
</script>
</div> <!-- end side-nav -->
<script>
@@ -633,7 +646,7 @@
</script>
-
+
@@ -643,21 +656,12 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
<div class="sum-details-links">
@@ -669,23 +673,14 @@
- <a href="#inhconstants">Inherited Constants</a>
-
-
- | <a href="#lfields">Fields</a>
-
+ <a href="#lfields">Fields</a>
- | <a href="#pubctors">Ctors</a>
-
- | <a href="#pubmethods">Methods</a>
-
-
| <a href="#inhmethods">Inherited Methods</a>
@@ -694,9 +689,9 @@
</div><!-- end sum-details-links -->
<div class="api-level">
-
-
-
+
+
+
</div>
</div><!-- end api-info-block -->
@@ -706,28 +701,23 @@
<div id="jd-header">
public
-
-
-
+
+ final
+
class
-<h1 itemprop="name">RecoveryDecision</h1>
+<h1 itemprop="name">Drive</h1>
-
+
extends Object<br/>
-
-
-
-
-
- implements
-
- Parcelable
-
-
-
+
+
+
+
+
+
</div><!-- end header -->
@@ -739,18 +729,18 @@
<tr>
-
+
<td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
</tr>
-
+
<tr>
-
+
<td class="jd-inheritance-space"> ↳</td>
-
- <td colspan="1" class="jd-inheritance-class-cell">com.google.android.gms.auth.RecoveryDecision</td>
+
+ <td colspan="1" class="jd-inheritance-class-cell">com.google.android.gms.drive.Drive</td>
</tr>
-
+
</table>
@@ -763,6 +753,21 @@
<div class="jd-descr">
+<h2>Class Overview</h2>
+<p class="caution">
+ <strong>Note:</strong> The Google Drive Android API is currently in <strong>developer
+ preview</strong>. Applications compiled using this version of the API will
+ continue to operate on devices using future versions of Google Play services;
+ however, changes to the API are expected in future releases.
+</p>
+<p itemprop="articleBody">The Drive API provides easy access to users' Google Drive contents. This API includes Activities
+ to open or create files in users' Drives, as well as the ability to programmatically interact
+ with contents, metadata, and the folder hierarchy.
+
+ <p>To use Drive, enable the <code><a href="/reference/com/google/android/gms/drive/Drive.html#API">API</a></code> and <code><a href="/reference/com/google/android/gms/drive/Drive.html#SCOPE_FILE">SCOPE_FILE</a></code> in a <code><a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html">GoogleApiClient</a></code>.
+ <code><a href="/reference/com/google/android/gms/drive/DriveApi.html">DriveApi</a></code>, provides the entry point for interacting with Drive.
+</p>
+
@@ -804,156 +809,44 @@
-<!-- =========== ENUM CONSTANT SUMMARY =========== -->
-<table id="inhconstants" class="jd-sumtable"><tr><th>
- <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
- <div style="clear:left;">Inherited Constants</div></th></tr>
-
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-
- <a href="#" onclick="return toggleInherited(this, null)" id="inherited-constants-android.os.Parcelable" class="jd-expando-trigger closed"
- ><img id="inherited-constants-android.os.Parcelable-trigger"
- src="/assets/images/triangle-closed.png"
- class="jd-expando-trigger-img" /></a>From interface
-android.os.Parcelable
-<div id="inherited-constants-android.os.Parcelable">
- <div id="inherited-constants-android.os.Parcelable-list"
- class="jd-inheritedlinks">
- </div>
- <div id="inherited-constants-android.os.Parcelable-summary" style="display: none;">
- <table class="jd-sumtable-expando">
-
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol">int</td>
- <td class="jd-linkcol">CONTENTS_FILE_DESCRIPTOR</td>
- <td class="jd-descrcol" width="100%"></td>
- </tr>
-
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol">int</td>
- <td class="jd-linkcol">PARCELABLE_WRITE_RETURN_VALUE</td>
- <td class="jd-descrcol" width="100%"></td>
- </tr>
-
-
-</table>
- </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
<!-- =========== FIELD SUMMARY =========== -->
<table id="lfields" class="jd-sumtable"><tr><th colspan="12">Fields</th></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
public
static
final
- <a href="/reference/com/google/android/gms/auth/RecoveryDecisionCreator.html">RecoveryDecisionCreator</a></nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#CREATOR">CREATOR</a></td>
- <td class="jd-descrcol" width="100%"></td>
+ <a href="/reference/com/google/android/gms/common/api/Api.html">Api</a></nobr></td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/drive/Drive.html#API">API</a></td>
+ <td class="jd-descrcol" width="100%">The API necessary to use Drive.</td>
</tr>
-
-
+
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
public
-
-
- boolean</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#isRecoveryInfoNeeded">isRecoveryInfoNeeded</a></td>
- <td class="jd-descrcol" width="100%">Is <code>true</code> if either the account has no recovery information or it
- was updated long time back (controlled by server, default 1 year).</td>
+ static
+ final
+ <a href="/reference/com/google/android/gms/drive/DriveApi.html">DriveApi</a></nobr></td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/drive/Drive.html#DriveApi">DriveApi</a></td>
+ <td class="jd-descrcol" width="100%">The entry point for interacting with the Drive API.</td>
</tr>
-
-
+
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
public
-
-
- boolean</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#isRecoveryInterstitialAllowed">isRecoveryInterstitialAllowed</a></td>
- <td class="jd-descrcol" width="100%">Is <code>true</code> iff the user has permission to update the account.</td>
+ static
+ final
+ <a href="/reference/com/google/android/gms/common/api/Scope.html">Scope</a></nobr></td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/drive/Drive.html#SCOPE_FILE">SCOPE_FILE</a></td>
+ <td class="jd-descrcol" width="100%">A Scope that gives 'drive.file' access to user's drive.</td>
</tr>
-
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- PendingIntent</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#recoveryIntent">recoveryIntent</a></td>
- <td class="jd-descrcol" width="100%">A PendingIntent to an activity that gathers recovery information for the given account.</td>
- </tr>
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- PendingIntent</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#recoveryIntentWithoutIntro">recoveryIntentWithoutIntro</a></td>
- <td class="jd-descrcol" width="100%">A PendingIntent to an activity that gathers recovery information for the given account.</td>
- </tr>
-
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- boolean</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#showRecoveryInterstitial">showRecoveryInterstitial</a></td>
- <td class="jd-descrcol" width="100%">Represents the decision and should be obeyed by the client.</td>
- </tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
-
-
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
-
-
-
-
-
- </nobr>
- </td>
- <td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#RecoveryDecision()">RecoveryDecision</a></span>()</nobr>
-
- </td></tr>
@@ -964,61 +857,9 @@
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
-
-
-
-
-
- int</nobr>
- </td>
- <td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#describeContents()">describeContents</a></span>()</nobr>
-
- </td></tr>
-
-
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol"><nobr>
-
-
-
-
-
- int</nobr>
- </td>
- <td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#getVersionCode()">getVersionCode</a></span>()</nobr>
-
- </td></tr>
-
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
-
-
-
-
-
- void</nobr>
- </td>
- <td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#writeToParcel(android.os.Parcel, int)">writeToParcel</a></span>(Parcel out, int flags)</nobr>
-
- </td></tr>
-
-
-
-</table>
@@ -1048,240 +889,182 @@
</div>
<div id="inherited-methods-java.lang.Object-summary" style="display: none;">
<table class="jd-sumtable-expando">
-
-
+
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
Object</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">clone</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
boolean</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">equals</span>(Object arg0)</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">finalize</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
Class<?></nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">getClass</span>()</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
int</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">hashCode</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">notify</span>()</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">notifyAll</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
String</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">toString</span>()</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">wait</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">wait</span>(long arg0)</nobr>
-
- </td></tr>
-
-</table>
- </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
- <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-android.os.Parcelable" class="jd-expando-trigger closed"
- ><img id="inherited-methods-android.os.Parcelable-trigger"
- src="/assets/images/triangle-closed.png"
- class="jd-expando-trigger-img" /></a>
-From interface
-
- android.os.Parcelable
-
-<div id="inherited-methods-android.os.Parcelable">
- <div id="inherited-methods-android.os.Parcelable-list"
- class="jd-inheritedlinks">
- </div>
- <div id="inherited-methods-android.os.Parcelable-summary" style="display: none;">
- <table class="jd-sumtable-expando">
-
-
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
- abstract
-
-
-
-
- int</nobr>
- </td>
- <td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad">describeContents</span>()</nobr>
-
- </td></tr>
-
-
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol"><nobr>
- abstract
-
-
-
-
- void</nobr>
- </td>
- <td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad">writeToParcel</span>(Parcel arg0, int arg1)</nobr>
-
</td></tr>
@@ -1323,185 +1106,92 @@
-<A NAME="CREATOR"></A>
+<A NAME="API"></A>
-<div class="jd-details api apilevel-">
+<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
- public
- static
- final
- <a href="/reference/com/google/android/gms/auth/RecoveryDecisionCreator.html">RecoveryDecisionCreator</a>
+ public
+ static
+ final
+ <a href="/reference/com/google/android/gms/common/api/Api.html">Api</a>
</span>
- CREATOR
+ API
</h4>
<div class="api-level">
-
-
-
+
+
+
</div>
<div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
+ <div class="jd-tagdata jd-tagdescr"><p>The API necessary to use Drive. Provide this as an API
+ <code><a href="/reference/com/google/android/gms/common/api/GoogleApiClient.Builder.html#addApi(com.google.android.gms.common.api.Api)">addApi(Api)</a></code>.
+</p></div>
+
+
</div>
</div>
-<A NAME="isRecoveryInfoNeeded"></A>
+<A NAME="DriveApi"></A>
-<div class="jd-details api apilevel-">
+<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
- public
-
-
- boolean
+ public
+ static
+ final
+ <a href="/reference/com/google/android/gms/drive/DriveApi.html">DriveApi</a>
</span>
- isRecoveryInfoNeeded
+ DriveApi
</h4>
<div class="api-level">
-
-
-
+
+
+
</div>
<div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>Is <code>true</code> if either the account has no recovery information or it
- was updated long time back (controlled by server, default 1 year).
+
+ <div class="jd-tagdata jd-tagdescr"><p>The entry point for interacting with the Drive API.
</p></div>
-
+
</div>
</div>
-<A NAME="isRecoveryInterstitialAllowed"></A>
+<A NAME="SCOPE_FILE"></A>
-<div class="jd-details api apilevel-">
+<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
- public
-
-
- boolean
+ public
+ static
+ final
+ <a href="/reference/com/google/android/gms/common/api/Scope.html">Scope</a>
</span>
- isRecoveryInterstitialAllowed
+ SCOPE_FILE
</h4>
<div class="api-level">
-
-
-
+
+
+
</div>
<div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>Is <code>true</code> iff the user has permission to update the account.
- Dasher accounts can have recovery information edit disabled by the administrator.
- Eg: @google.com
+
+ <div class="jd-tagdata jd-tagdescr"><p>A Scope that gives 'drive.file' access to user's drive. This scope give per-file access to
+ files that have been created with, or specifically opened by the app.
+ <p> This scope can be provided in
+ <code><a href="/reference/com/google/android/gms/common/api/GoogleApiClient.Builder.html#addScope(com.google.android.gms.common.api.Scope)">addScope(Scope)</a></code>
</p></div>
-
- </div>
-</div>
-
-
-<A NAME="recoveryIntent"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- PendingIntent
- </span>
- recoveryIntent
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>A PendingIntent to an activity that gathers recovery information for the given account.
- This intent will be null iff isRecoveryInterstitialAllowed is <code>false</code>.
-</p></div>
-
-
- </div>
-</div>
-
-
-
-<A NAME="recoveryIntentWithoutIntro"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- PendingIntent
- </span>
- recoveryIntentWithoutIntro
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>A PendingIntent to an activity that gathers recovery information for the given account.
- This intent will be null iff isRecoveryInterstitialAllowed is <code>false</code>.
- This intent directly skips to the input activity without showing the intro message.
-</p></div>
-
-
- </div>
-</div>
-
-
-
-<A NAME="showRecoveryInterstitial"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- boolean
- </span>
- showRecoveryInterstitial
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>Represents the decision and should be obeyed by the client. The remaining
- two flags are provided as additional information for one off decisions. This value
- is <code>true</code> iff isRecoveryInfoNeeded is <code>true</code>, isRecoveryInterstitialAllowed is
- <code>true</code> and a specified period (controlled by server, default 2 months) has passed
- since the user was shown a prompt for recovery information on any google property
- (Android, Web, etc.)
-</p></div>
-
-
</div>
</div>
@@ -1511,42 +1201,6 @@
<!-- Public ctors -->
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<h2>Public Constructors</h2>
-
-
-
-<A NAME="RecoveryDecision()"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
-
-
-
- </span>
- <span class="sympad">RecoveryDecision</span>
- <span class="normal">()</span>
- </h4>
- <div class="api-level">
- <div></div>
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
- </div>
-</div>
-
-
-
-
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<!-- Protected ctors -->
@@ -1556,98 +1210,6 @@
<!-- ========= METHOD DETAIL ======== -->
<!-- Public methdos -->
-<h2>Public Methods</h2>
-
-
-
-<A NAME="describeContents()"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
-
-
- int
- </span>
- <span class="sympad">describeContents</span>
- <span class="normal">()</span>
- </h4>
- <div class="api-level">
- <div></div>
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
- </div>
-</div>
-
-
-<A NAME="getVersionCode()"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
-
-
- int
- </span>
- <span class="sympad">getVersionCode</span>
- <span class="normal">()</span>
- </h4>
- <div class="api-level">
- <div></div>
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
- </div>
-</div>
-
-
-<A NAME="writeToParcel(android.os.Parcel, int)"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
-
-
- void
- </span>
- <span class="sympad">writeToParcel</span>
- <span class="normal">(Parcel out, int flags)</span>
- </h4>
- <div class="api-level">
- <div></div>
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
- </div>
-</div>
-
-
-
<!-- ========= METHOD DETAIL ======== -->
@@ -1658,17 +1220,17 @@
<A NAME="navbar_top"></A>
<div id="footer" class="wrap" >
-
+
<div id="copyright">
-
+
Except as noted, this content is licensed under <a
- href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.
+ href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.
For details and restrictions, see the <a href="/license.html">
Content License</a>.
</div>
<div id="build_info">
-
+
<script src="/timestamp.js" type="text/javascript"></script>
<script>document.write(BUILD_TIMESTAMP)</script>
@@ -1676,7 +1238,7 @@
<div id="footerlinks">
-
+
<p>
<a href="/about/index.html">About Android</a> |
<a href="/legal.html">Legal</a> |
@@ -1689,7 +1251,7 @@
</div><!-- end doc-content -->
-</div> <!-- end body-content -->
+</div> <!-- end body-content -->
diff --git a/docs/html/reference/com/google/android/gms/drive/DriveApi.ContentsResult.html b/docs/html/reference/com/google/android/gms/drive/DriveApi.ContentsResult.html
new file mode 100644
index 0000000..2099c5d3
--- /dev/null
+++ b/docs/html/reference/com/google/android/gms/drive/DriveApi.ContentsResult.html
@@ -0,0 +1,1007 @@
+<!DOCTYPE html>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<html>
+<head>
+
+
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<meta name="viewport" content="width=device-width" />
+
+<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
+<title>DriveApi.ContentsResult | Android Developers</title>
+
+<!-- STYLESHEETS -->
+<link rel="stylesheet"
+href="//fonts.googleapis.com/css?family=Roboto:regular,medium,thin,italic,mediumitalic,bold" title="roboto">
+<link href="/assets/css/default.css" rel="stylesheet" type="text/css">
+
+
+
+<!-- JAVASCRIPT -->
+<script src="//www.google.com/jsapi" type="text/javascript"></script>
+<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
+<script type="text/javascript">
+ var toRoot = "/";
+ var metaTags = [];
+ var devsite = false;
+</script>
+<script src="/assets/js/docs.js" type="text/javascript"></script>
+
+<script type="text/javascript">
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-5831155-1']);
+ _gaq.push(['_trackPageview']);
+
+ (function() {
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+ })();
+</script>
+</head>
+<body class="gc-documentation google
+ develop" itemscope itemtype="http://schema.org/Article">
+ <div id="doc-api-level" class="" style="display:none"></div>
+ <a name="top"></a>
+
+<a name="top"></a>
+
+ <!-- Header -->
+ <div id="header">
+ <div class="wrap" id="header-wrap">
+ <div class="col-3 logo">
+ <a href="/index.html">
+ <img src="/assets/images/dac_logo.png" width="123" height="25" alt="Android Developers" />
+ </a>
+ <div class="btn-quicknav" id="btn-quicknav">
+ <a href="#" class="arrow-inactive">Quicknav</a>
+ <a href="#" class="arrow-active">Quicknav</a>
+ </div>
+ </div>
+ <ul class="nav-x col-9">
+ <li class="design">
+ <a href="/design/index.html"
+ zh-tw-lang="設計"
+ zh-cn-lang="设计"
+ ru-lang="Проектирование"
+ ko-lang="디자인"
+ ja-lang="設計"
+ es-lang="Diseñar"
+ >Design</a></li>
+ <li class="develop"><a href="/develop/index.html"
+ zh-tw-lang="開發"
+ zh-cn-lang="开发"
+ ru-lang="Разработка"
+ ko-lang="개발"
+ ja-lang="開発"
+ es-lang="Desarrollar"
+ >Develop</a></li>
+ <li class="distribute last"><a href="/distribute/index.html"
+ zh-tw-lang="發佈"
+ zh-cn-lang="分发"
+ ru-lang="Распространение"
+ ko-lang="배포"
+ ja-lang="配布"
+ es-lang="Distribuir"
+ >Distribute</a></li>
+ </ul>
+
+ <!-- New Search -->
+ <div class="menu-container">
+ <div class="moremenu">
+ <div id="more-btn"></div>
+ </div>
+ <div class="morehover" id="moremenu">
+ <div class="top"></div>
+ <div class="mid">
+ <div class="header">Links</div>
+ <ul>
+ <li><a href="https://play.google.com/apps/publish/">Google Play Developer Console</a></li>
+ <li><a href="http://android-developers.blogspot.com/">Android Developers Blog</a></li>
+ <li><a href="/about/index.html">About Android</a></li>
+ </ul>
+ <div class="header">Android Sites</div>
+ <ul>
+ <li><a href="http://www.android.com">Android.com</a></li>
+ <li class="active"><a>Android Developers</a></li>
+ <li><a href="http://source.android.com">Android Open Source Project</a></li>
+ </ul>
+
+
+
+ <div class="header">Language</div>
+ <div id="language" class="locales">
+ <select name="language" onChange="changeLangPref(this.value, true)">
+ <option value="en">English</option>
+ <option value="es">Español</option>
+ <option value="ja">日本語</option>
+ <option value="ko">한국어</option>
+ <option value="ru">Русский</option>
+ <option value="zh-cn">中文 (中国)</option>
+ <option value="zh-tw">中文 (台灣)</option>
+ </select>
+ </div>
+ <script type="text/javascript">
+ <!--
+ loadLangPref();
+ //-->
+ </script>
+
+
+
+
+ <br class="clearfix" />
+ </div>
+ <div class="bottom"></div>
+ </div>
+ <div class="search" id="search-container">
+ <div class="search-inner">
+ <div id="search-btn"></div>
+ <div class="left"></div>
+ <form onsubmit="return submit_search()">
+ <input id="search_autocomplete" type="text" value="" autocomplete="off" name="q"
+onfocus="search_focus_changed(this, true)" onblur="search_focus_changed(this, false)"
+onkeydown="return search_changed(event, true, '/')"
+onkeyup="return search_changed(event, false, '/')" />
+ </form>
+ <div class="right"></div>
+ <a class="close hide">close</a>
+ <div class="left"></div>
+ <div class="right"></div>
+ </div>
+ </div>
+
+ <div class="search_filtered_wrapper reference">
+ <div class="suggest-card reference no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ </div>
+
+ <div class="search_filtered_wrapper docs">
+ <div class="suggest-card dummy no-display"> </div>
+ <div class="suggest-card develop no-display">
+ <ul class="search_filtered">
+ </ul>
+ <div class="child-card guides no-display">
+ </div>
+ <div class="child-card training no-display">
+ </div>
+ <div class="child-card samples no-display">
+ </div>
+ </div>
+ <div class="suggest-card design no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ <div class="suggest-card distribute no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ </div>
+
+ </div>
+ <!-- /New Search>
+
+
+ <!-- Expanded quicknav -->
+ <div id="quicknav" class="col-9">
+ <ul>
+ <li class="design">
+ <ul>
+ <li><a href="/design/index.html">Get Started</a></li>
+ <li><a href="/design/style/index.html">Style</a></li>
+ <li><a href="/design/patterns/index.html">Patterns</a></li>
+ <li><a href="/design/building-blocks/index.html">Building Blocks</a></li>
+ <li><a href="/design/downloads/index.html">Downloads</a></li>
+ <li><a href="/design/videos/index.html">Videos</a></li>
+ </ul>
+ </li>
+ <li class="develop">
+ <ul>
+ <li><a href="/training/index.html"
+ zh-tw-lang="訓練課程"
+ zh-cn-lang="培训"
+ ru-lang="Курсы"
+ ko-lang="교육"
+ ja-lang="トレーニング"
+ es-lang="Capacitación"
+ >Training</a></li>
+ <li><a href="/guide/index.html"
+ zh-tw-lang="API 指南"
+ zh-cn-lang="API 指南"
+ ru-lang="Руководства по API"
+ ko-lang="API 가이드"
+ ja-lang="API ガイド"
+ es-lang="Guías de la API"
+ >API Guides</a></li>
+ <li><a href="/reference/packages.html"
+ zh-tw-lang="參考資源"
+ zh-cn-lang="参考"
+ ru-lang="Справочник"
+ ko-lang="참조문서"
+ ja-lang="リファレンス"
+ es-lang="Referencia"
+ >Reference</a></li>
+ <li><a href="/tools/index.html"
+ zh-tw-lang="相關工具"
+ zh-cn-lang="工具"
+ ru-lang="Инструменты"
+ ko-lang="도구"
+ ja-lang="ツール"
+ es-lang="Herramientas"
+ >Tools</a>
+ <ul><li><a href="/sdk/index.html">Get the SDK</a></li></ul>
+ </li>
+ <li><a href="/google/index.html">Google Services</a>
+ </li>
+
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
+ </ul>
+ </li>
+ <li class="distribute last">
+ <ul>
+ <li><a href="/distribute/index.html">Google Play</a></li>
+ <li><a href="/distribute/googleplay/publish/index.html">Publishing</a></li>
+ <li><a href="/distribute/googleplay/promote/index.html">Promoting</a></li>
+ <li><a href="/distribute/googleplay/quality/index.html">App Quality</a></li>
+ <li><a href="/distribute/googleplay/spotlight/index.html">Spotlight</a></li>
+ <li><a href="/distribute/open.html">Open Distribution</a></li>
+ </ul>
+ </li>
+ </ul>
+ </div>
+ <!-- /Expanded quicknav -->
+ </div>
+ </div>
+ <!-- /Header -->
+
+
+ <div id="searchResults" class="wrap" style="display:none;">
+ <h2 id="searchTitle">Results</h2>
+ <div id="leftSearchControl" class="search-control">Loading...</div>
+ </div>
+
+
+
+ <!-- Secondary x-nav -->
+ <div id="nav-x">
+ <div class="wrap">
+ <ul class="nav-x col-9 develop" style="width:100%">
+ <li class="training"><a href="/training/index.html"
+ zh-tw-lang="訓練課程"
+ zh-cn-lang="培训"
+ ru-lang="Курсы"
+ ko-lang="교육"
+ ja-lang="トレーニング"
+ es-lang="Capacitación"
+ >Training</a></li>
+ <li class="guide"><a href="/guide/index.html"
+ zh-tw-lang="API 指南"
+ zh-cn-lang="API 指南"
+ ru-lang="Руководства по API"
+ ko-lang="API 가이드"
+ ja-lang="API ガイド"
+ es-lang="Guías de la API"
+ >API Guides</a></li>
+ <li class="reference"><a href="/reference/packages.html"
+ zh-tw-lang="參考資源"
+ zh-cn-lang="参考"
+ ru-lang="Справочник"
+ ko-lang="참조문서"
+ ja-lang="リファレンス"
+ es-lang="Referencia"
+ >Reference</a></li>
+ <li class="tools"><a href="/tools/index.html"
+ zh-tw-lang="相關工具"
+ zh-cn-lang="工具"
+ ru-lang="Инструменты"
+ ko-lang="도구"
+ ja-lang="ツール"
+ es-lang="Herramientas"
+ >Tools</a></li>
+ <li class="google"><a href="/google/index.html"
+ >Google Services</a>
+ </li>
+
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
+ </ul>
+ </div>
+
+ </div>
+ <!-- /Sendondary x-nav -->
+
+
+
+
+
+
+
+
+
+ <div class="wrap clearfix" id="body-content">
+ <div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
+ <div id="devdoc-nav" class="scroll-pane">
+<a class="totop" href="#top" data-g-event="left-nav-top">to top</a>
+
+
+
+<ul id="nav">
+
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/index.html">
+ <span class="en">Overview</span>
+ </a></div>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/games.html">
+ <span class="en">Games</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/location.html">
+ <span class="en">Location</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/plus.html">
+ <span class="en">Google+</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/maps.html">
+ <span class="en">Maps</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play-services/ads.html">
+ <span class="en">Ads</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play-services/id.html">
+ <span class="en">Advertising ID</span></a>
+ </li>
+ </ul>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/wallet.html">
+ <span class="en">Wallet</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/auth.html">
+ <span class="en">Authorization</span>
+ </a></div>
+ </li>
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play-services/index.html">
+ <span class="en">Google Play Services</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play-services/setup.html">
+ <span class="en">Setup</span></a>
+ </li>
+ <li id="gms-tree-list" class="nav-section">
+ <div class="nav-section-header">
+ <a href="/reference/gms-packages.html">
+ <span class="en">Reference</span>
+ </a>
+ <div>
+ </li>
+ </ul>
+ </li>
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/billing/index.html">
+ <span class="en">Google Play In-app Billing</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/billing/billing_overview.html">
+ <span class="en">Overview</span></a>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/api.html">
+ <span class="en">Version 3 API</span></a></div>
+ <ul>
+ <li><a href="/google/play/billing/billing_integrate.html">
+ <span class="en">Implementing the API</span></a></li>
+ <li><a href="/google/play/billing/billing_reference.html">
+ <span class="en">Reference</span></a></li>
+ </ul>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/v2/api.html">
+ <span class="en">Version 2 API</span></a></div>
+ <ul>
+ <li><a href="/google/play/billing/v2/billing_integrate.html">
+ <span class="en">Implementing the API</span></a></li>
+ <li><a href="/google/play/billing/v2/billing_subscriptions.html">
+ <span class="en">Subscriptions</span></a></li>
+ <li><a href="/google/play/billing/v2/billing_reference.html">
+ <span class="en">Reference</span></a></li>
+ </ul>
+ </li>
+ <li><a href="/google/play/billing/billing_subscriptions.html">
+ <span class="en">Subscriptions</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_best_practices.html">
+ <span class="en">Security and Design</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_testing.html">
+ <span class="en">Testing In-app Billing</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_admin.html">
+ <span class="en">Administering In-app Billing</span></a>
+ </li>
+ <li><a href="/google/play/billing/gp-purchase-status-api.html">
+ <span class="en">Purchase Status API</span></a>
+ </li>
+ <li><a href="/google/play/billing/versions.html">
+ <span class="en">Version Notes</span></a>
+ </li>
+ </ul>
+ </li>
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/gcm/index.html">
+ <span class="en">Google Cloud Messaging</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
+ <li><a href="/google/gcm/gs.html">
+ <span class="en">Getting Started</span></a>
+ </li>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
+ </li>
+ <li><a href="/google/gcm/notifications.html">
+ <span class="en">User Notifications</span></a>
+ </li>
+ <li><a href="/google/gcm/adv.html">
+ <span class="en">Advanced Topics</span></a>
+ </li>
+ <li><a href="/google/gcm/c2dm.html">
+ <span class="en">Migration</span></a>
+ </li>
+ <li id="gcm-tree-list" class="nav-section">
+ <div class="nav-section-header">
+ <a href="/reference/gcm-packages.html">
+ <span class="en">Reference</span>
+ </a>
+ <div>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/dist.html">
+ <span class="en">Google Play Distribution</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/filters.html">
+ <span class="en">Filters on Google Play</span></a>
+ </li>
+
+ <li><a href="/google/play/publishing/multiple-apks.html">
+ <span class="en">Multiple APK Support</span></a>
+ </li>
+ <li><a href="/google/play/expansion-files.html">
+ <span class="en">APK Expansion Files</span></a>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/licensing/index.html">
+ <span class="en">Application Licensing</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/licensing/overview.html">
+ <span class="en">Licensing Overview</span></a>
+ </li>
+ <li><a href="/google/play/licensing/setting-up.html">
+ <span class="en">Setting Up for Licensing</span></a>
+ </li>
+ <li><a href="/google/play/licensing/adding-licensing.html">
+ <span class="en">Adding Licensing to Your App</span></a>
+ </li>
+ <li><a href="/google/play/licensing/licensing-reference.html">
+ <span class="en">Licensing Reference</span></a>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/backup/index.html">
+ Android Backup Service</a>
+ </div>
+ <ul>
+ <li><a href="/google/backup/signup.html">
+ Register</a>
+ </li>
+ </ul>
+ </li>
+
+ </ul>
+
+</li>
+
+
+
+</ul>
+
+<script type="text/javascript">
+<!--
+ buildToggleLists();
+ changeNavLang(getLangPref());
+//-->
+</script>
+
+
+
+
+ </div>
+ <script type="text/javascript">
+ showGoogleRefTree();
+
+ </script>
+ </div> <!-- end side-nav -->
+ <script>
+ $(document).ready(function() {
+ scrollIntoView("devdoc-nav");
+ });
+ </script>
+
+
+
+
+
+
+<div class="col-12" id="doc-col">
+
+<div id="api-info-block">
+
+
+
+
+
+
+
+
+
+
+
+<div class="sum-details-links">
+
+Summary:
+
+
+
+
+
+
+
+
+
+
+
+ <a href="#pubmethods">Methods</a>
+
+
+
+
+ | <a href="#inhmethods">Inherited Methods</a>
+
+| <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
+
+</div><!-- end sum-details-links -->
+<div class="api-level">
+
+
+
+
+</div>
+</div><!-- end api-info-block -->
+
+
+<!-- ======== START OF CLASS DATA ======== -->
+
+<div id="jd-header">
+ public
+ static
+
+
+ interface
+<h1 itemprop="name">DriveApi.ContentsResult</h1>
+
+
+
+
+
+ implements
+
+ <a href="/reference/com/google/android/gms/common/api/Result.html">Result</a>
+
+
+
+
+
+</div><!-- end header -->
+
+<div id="naMessage"></div>
+
+<div id="jd-content" class="api apilevel-">
+<table class="jd-inheritance-table">
+
+
+ <tr>
+
+ <td colspan="1" class="jd-inheritance-class-cell">com.google.android.gms.drive.DriveApi.ContentsResult</td>
+ </tr>
+
+
+</table>
+
+
+
+
+
+
+
+<div class="jd-descr">
+
+
+<h2>Class Overview</h2>
+<p class="caution">
+ <strong>Note:</strong> The Google Drive Android API is currently in <strong>developer
+ preview</strong>. Applications compiled using this version of the API will
+ continue to operate on devices using future versions of Google Play services;
+ however, changes to the API are expected in future releases.
+</p>
+<p itemprop="articleBody">Result that contains a Contents reference.
+</p>
+
+
+
+
+
+</div><!-- jd-descr -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<div class="jd-descr">
+
+
+<h2>Summary</h2>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
+
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ <a href="/reference/com/google/android/gms/drive/Contents.html">Contents</a></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/DriveApi.ContentsResult.html#getContents()">getContents</a></span>()</nobr>
+
+ </td></tr>
+
+
+
+</table>
+
+
+
+
+
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+<table id="inhmethods" class="jd-sumtable"><tr><th>
+ <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
+ <div style="clear:left;">Inherited Methods</div></th></tr>
+
+
+<tr class="api apilevel-" >
+<td colspan="12">
+ <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.android.gms.common.api.Result" class="jd-expando-trigger closed"
+ ><img id="inherited-methods-com.google.android.gms.common.api.Result-trigger"
+ src="/assets/images/triangle-closed.png"
+ class="jd-expando-trigger-img" /></a>
+From interface
+
+ <a href="/reference/com/google/android/gms/common/api/Result.html">com.google.android.gms.common.api.Result</a>
+
+<div id="inherited-methods-com.google.android.gms.common.api.Result">
+ <div id="inherited-methods-com.google.android.gms.common.api.Result-list"
+ class="jd-inheritedlinks">
+ </div>
+ <div id="inherited-methods-com.google.android.gms.common.api.Result-summary" style="display: none;">
+ <table class="jd-sumtable-expando">
+
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ <a href="/reference/com/google/android/gms/common/api/Status.html">Status</a></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/common/api/Result.html#getStatus()">getStatus</a></span>()</nobr>
+
+ </td></tr>
+
+
+</table>
+ </div>
+</div>
+</td></tr>
+
+
+</table>
+
+
+</div><!-- jd-descr (summary) -->
+
+<!-- Details -->
+
+
+
+
+
+
+
+
+<!-- XML Attributes -->
+
+
+<!-- Enum Values -->
+
+
+<!-- Constants -->
+
+
+<!-- Fields -->
+
+
+<!-- Public ctors -->
+
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<!-- Protected ctors -->
+
+
+
+<!-- ========= METHOD DETAIL ======== -->
+<!-- Public methdos -->
+
+<h2>Public Methods</h2>
+
+
+
+<A NAME="getContents()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+ abstract
+
+ <a href="/reference/com/google/android/gms/drive/Contents.html">Contents</a>
+ </span>
+ <span class="sympad">getContents</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+ </div>
+</div>
+
+
+
+
+
+<!-- ========= METHOD DETAIL ======== -->
+
+
+
+<!-- ========= END OF CLASS DATA ========= -->
+<A NAME="navbar_top"></A>
+
+<div id="footer" class="wrap" >
+
+
+ <div id="copyright">
+
+ Except as noted, this content is licensed under <a
+ href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.
+ For details and restrictions, see the <a href="/license.html">
+ Content License</a>.
+ </div>
+ <div id="build_info">
+
+<script src="/timestamp.js" type="text/javascript"></script>
+<script>document.write(BUILD_TIMESTAMP)</script>
+
+ </div>
+
+
+ <div id="footerlinks">
+
+ <p>
+ <a href="/about/index.html">About Android</a> |
+ <a href="/legal.html">Legal</a> |
+ <a href="/support.html">Support</a>
+ </p>
+ </div>
+
+</div> <!-- end footer -->
+</div> <!-- jd-content -->
+
+</div><!-- end doc-content -->
+
+</div> <!-- end body-content -->
+
+
+
+
+
+
+</body>
+</html>
diff --git a/docs/html/reference/com/google/android/gms/drive/DriveApi.IntentSenderResult.html b/docs/html/reference/com/google/android/gms/drive/DriveApi.IntentSenderResult.html
new file mode 100644
index 0000000..aa90257
--- /dev/null
+++ b/docs/html/reference/com/google/android/gms/drive/DriveApi.IntentSenderResult.html
@@ -0,0 +1,1007 @@
+<!DOCTYPE html>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<html>
+<head>
+
+
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<meta name="viewport" content="width=device-width" />
+
+<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
+<title>DriveApi.IntentSenderResult | Android Developers</title>
+
+<!-- STYLESHEETS -->
+<link rel="stylesheet"
+href="//fonts.googleapis.com/css?family=Roboto:regular,medium,thin,italic,mediumitalic,bold" title="roboto">
+<link href="/assets/css/default.css" rel="stylesheet" type="text/css">
+
+
+
+<!-- JAVASCRIPT -->
+<script src="//www.google.com/jsapi" type="text/javascript"></script>
+<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
+<script type="text/javascript">
+ var toRoot = "/";
+ var metaTags = [];
+ var devsite = false;
+</script>
+<script src="/assets/js/docs.js" type="text/javascript"></script>
+
+<script type="text/javascript">
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-5831155-1']);
+ _gaq.push(['_trackPageview']);
+
+ (function() {
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+ })();
+</script>
+</head>
+<body class="gc-documentation google
+ develop" itemscope itemtype="http://schema.org/Article">
+ <div id="doc-api-level" class="" style="display:none"></div>
+ <a name="top"></a>
+
+<a name="top"></a>
+
+ <!-- Header -->
+ <div id="header">
+ <div class="wrap" id="header-wrap">
+ <div class="col-3 logo">
+ <a href="/index.html">
+ <img src="/assets/images/dac_logo.png" width="123" height="25" alt="Android Developers" />
+ </a>
+ <div class="btn-quicknav" id="btn-quicknav">
+ <a href="#" class="arrow-inactive">Quicknav</a>
+ <a href="#" class="arrow-active">Quicknav</a>
+ </div>
+ </div>
+ <ul class="nav-x col-9">
+ <li class="design">
+ <a href="/design/index.html"
+ zh-tw-lang="設計"
+ zh-cn-lang="设计"
+ ru-lang="Проектирование"
+ ko-lang="디자인"
+ ja-lang="設計"
+ es-lang="Diseñar"
+ >Design</a></li>
+ <li class="develop"><a href="/develop/index.html"
+ zh-tw-lang="開發"
+ zh-cn-lang="开发"
+ ru-lang="Разработка"
+ ko-lang="개발"
+ ja-lang="開発"
+ es-lang="Desarrollar"
+ >Develop</a></li>
+ <li class="distribute last"><a href="/distribute/index.html"
+ zh-tw-lang="發佈"
+ zh-cn-lang="分发"
+ ru-lang="Распространение"
+ ko-lang="배포"
+ ja-lang="配布"
+ es-lang="Distribuir"
+ >Distribute</a></li>
+ </ul>
+
+ <!-- New Search -->
+ <div class="menu-container">
+ <div class="moremenu">
+ <div id="more-btn"></div>
+ </div>
+ <div class="morehover" id="moremenu">
+ <div class="top"></div>
+ <div class="mid">
+ <div class="header">Links</div>
+ <ul>
+ <li><a href="https://play.google.com/apps/publish/">Google Play Developer Console</a></li>
+ <li><a href="http://android-developers.blogspot.com/">Android Developers Blog</a></li>
+ <li><a href="/about/index.html">About Android</a></li>
+ </ul>
+ <div class="header">Android Sites</div>
+ <ul>
+ <li><a href="http://www.android.com">Android.com</a></li>
+ <li class="active"><a>Android Developers</a></li>
+ <li><a href="http://source.android.com">Android Open Source Project</a></li>
+ </ul>
+
+
+
+ <div class="header">Language</div>
+ <div id="language" class="locales">
+ <select name="language" onChange="changeLangPref(this.value, true)">
+ <option value="en">English</option>
+ <option value="es">Español</option>
+ <option value="ja">日本語</option>
+ <option value="ko">한국어</option>
+ <option value="ru">Русский</option>
+ <option value="zh-cn">中文 (中国)</option>
+ <option value="zh-tw">中文 (台灣)</option>
+ </select>
+ </div>
+ <script type="text/javascript">
+ <!--
+ loadLangPref();
+ //-->
+ </script>
+
+
+
+
+ <br class="clearfix" />
+ </div>
+ <div class="bottom"></div>
+ </div>
+ <div class="search" id="search-container">
+ <div class="search-inner">
+ <div id="search-btn"></div>
+ <div class="left"></div>
+ <form onsubmit="return submit_search()">
+ <input id="search_autocomplete" type="text" value="" autocomplete="off" name="q"
+onfocus="search_focus_changed(this, true)" onblur="search_focus_changed(this, false)"
+onkeydown="return search_changed(event, true, '/')"
+onkeyup="return search_changed(event, false, '/')" />
+ </form>
+ <div class="right"></div>
+ <a class="close hide">close</a>
+ <div class="left"></div>
+ <div class="right"></div>
+ </div>
+ </div>
+
+ <div class="search_filtered_wrapper reference">
+ <div class="suggest-card reference no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ </div>
+
+ <div class="search_filtered_wrapper docs">
+ <div class="suggest-card dummy no-display"> </div>
+ <div class="suggest-card develop no-display">
+ <ul class="search_filtered">
+ </ul>
+ <div class="child-card guides no-display">
+ </div>
+ <div class="child-card training no-display">
+ </div>
+ <div class="child-card samples no-display">
+ </div>
+ </div>
+ <div class="suggest-card design no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ <div class="suggest-card distribute no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ </div>
+
+ </div>
+ <!-- /New Search>
+
+
+ <!-- Expanded quicknav -->
+ <div id="quicknav" class="col-9">
+ <ul>
+ <li class="design">
+ <ul>
+ <li><a href="/design/index.html">Get Started</a></li>
+ <li><a href="/design/style/index.html">Style</a></li>
+ <li><a href="/design/patterns/index.html">Patterns</a></li>
+ <li><a href="/design/building-blocks/index.html">Building Blocks</a></li>
+ <li><a href="/design/downloads/index.html">Downloads</a></li>
+ <li><a href="/design/videos/index.html">Videos</a></li>
+ </ul>
+ </li>
+ <li class="develop">
+ <ul>
+ <li><a href="/training/index.html"
+ zh-tw-lang="訓練課程"
+ zh-cn-lang="培训"
+ ru-lang="Курсы"
+ ko-lang="교육"
+ ja-lang="トレーニング"
+ es-lang="Capacitación"
+ >Training</a></li>
+ <li><a href="/guide/index.html"
+ zh-tw-lang="API 指南"
+ zh-cn-lang="API 指南"
+ ru-lang="Руководства по API"
+ ko-lang="API 가이드"
+ ja-lang="API ガイド"
+ es-lang="Guías de la API"
+ >API Guides</a></li>
+ <li><a href="/reference/packages.html"
+ zh-tw-lang="參考資源"
+ zh-cn-lang="参考"
+ ru-lang="Справочник"
+ ko-lang="참조문서"
+ ja-lang="リファレンス"
+ es-lang="Referencia"
+ >Reference</a></li>
+ <li><a href="/tools/index.html"
+ zh-tw-lang="相關工具"
+ zh-cn-lang="工具"
+ ru-lang="Инструменты"
+ ko-lang="도구"
+ ja-lang="ツール"
+ es-lang="Herramientas"
+ >Tools</a>
+ <ul><li><a href="/sdk/index.html">Get the SDK</a></li></ul>
+ </li>
+ <li><a href="/google/index.html">Google Services</a>
+ </li>
+
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
+ </ul>
+ </li>
+ <li class="distribute last">
+ <ul>
+ <li><a href="/distribute/index.html">Google Play</a></li>
+ <li><a href="/distribute/googleplay/publish/index.html">Publishing</a></li>
+ <li><a href="/distribute/googleplay/promote/index.html">Promoting</a></li>
+ <li><a href="/distribute/googleplay/quality/index.html">App Quality</a></li>
+ <li><a href="/distribute/googleplay/spotlight/index.html">Spotlight</a></li>
+ <li><a href="/distribute/open.html">Open Distribution</a></li>
+ </ul>
+ </li>
+ </ul>
+ </div>
+ <!-- /Expanded quicknav -->
+ </div>
+ </div>
+ <!-- /Header -->
+
+
+ <div id="searchResults" class="wrap" style="display:none;">
+ <h2 id="searchTitle">Results</h2>
+ <div id="leftSearchControl" class="search-control">Loading...</div>
+ </div>
+
+
+
+ <!-- Secondary x-nav -->
+ <div id="nav-x">
+ <div class="wrap">
+ <ul class="nav-x col-9 develop" style="width:100%">
+ <li class="training"><a href="/training/index.html"
+ zh-tw-lang="訓練課程"
+ zh-cn-lang="培训"
+ ru-lang="Курсы"
+ ko-lang="교육"
+ ja-lang="トレーニング"
+ es-lang="Capacitación"
+ >Training</a></li>
+ <li class="guide"><a href="/guide/index.html"
+ zh-tw-lang="API 指南"
+ zh-cn-lang="API 指南"
+ ru-lang="Руководства по API"
+ ko-lang="API 가이드"
+ ja-lang="API ガイド"
+ es-lang="Guías de la API"
+ >API Guides</a></li>
+ <li class="reference"><a href="/reference/packages.html"
+ zh-tw-lang="參考資源"
+ zh-cn-lang="参考"
+ ru-lang="Справочник"
+ ko-lang="참조문서"
+ ja-lang="リファレンス"
+ es-lang="Referencia"
+ >Reference</a></li>
+ <li class="tools"><a href="/tools/index.html"
+ zh-tw-lang="相關工具"
+ zh-cn-lang="工具"
+ ru-lang="Инструменты"
+ ko-lang="도구"
+ ja-lang="ツール"
+ es-lang="Herramientas"
+ >Tools</a></li>
+ <li class="google"><a href="/google/index.html"
+ >Google Services</a>
+ </li>
+
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
+ </ul>
+ </div>
+
+ </div>
+ <!-- /Sendondary x-nav -->
+
+
+
+
+
+
+
+
+
+ <div class="wrap clearfix" id="body-content">
+ <div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
+ <div id="devdoc-nav" class="scroll-pane">
+<a class="totop" href="#top" data-g-event="left-nav-top">to top</a>
+
+
+
+<ul id="nav">
+
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/index.html">
+ <span class="en">Overview</span>
+ </a></div>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/games.html">
+ <span class="en">Games</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/location.html">
+ <span class="en">Location</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/plus.html">
+ <span class="en">Google+</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/maps.html">
+ <span class="en">Maps</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play-services/ads.html">
+ <span class="en">Ads</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play-services/id.html">
+ <span class="en">Advertising ID</span></a>
+ </li>
+ </ul>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/wallet.html">
+ <span class="en">Wallet</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/auth.html">
+ <span class="en">Authorization</span>
+ </a></div>
+ </li>
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play-services/index.html">
+ <span class="en">Google Play Services</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play-services/setup.html">
+ <span class="en">Setup</span></a>
+ </li>
+ <li id="gms-tree-list" class="nav-section">
+ <div class="nav-section-header">
+ <a href="/reference/gms-packages.html">
+ <span class="en">Reference</span>
+ </a>
+ <div>
+ </li>
+ </ul>
+ </li>
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/billing/index.html">
+ <span class="en">Google Play In-app Billing</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/billing/billing_overview.html">
+ <span class="en">Overview</span></a>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/api.html">
+ <span class="en">Version 3 API</span></a></div>
+ <ul>
+ <li><a href="/google/play/billing/billing_integrate.html">
+ <span class="en">Implementing the API</span></a></li>
+ <li><a href="/google/play/billing/billing_reference.html">
+ <span class="en">Reference</span></a></li>
+ </ul>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/v2/api.html">
+ <span class="en">Version 2 API</span></a></div>
+ <ul>
+ <li><a href="/google/play/billing/v2/billing_integrate.html">
+ <span class="en">Implementing the API</span></a></li>
+ <li><a href="/google/play/billing/v2/billing_subscriptions.html">
+ <span class="en">Subscriptions</span></a></li>
+ <li><a href="/google/play/billing/v2/billing_reference.html">
+ <span class="en">Reference</span></a></li>
+ </ul>
+ </li>
+ <li><a href="/google/play/billing/billing_subscriptions.html">
+ <span class="en">Subscriptions</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_best_practices.html">
+ <span class="en">Security and Design</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_testing.html">
+ <span class="en">Testing In-app Billing</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_admin.html">
+ <span class="en">Administering In-app Billing</span></a>
+ </li>
+ <li><a href="/google/play/billing/gp-purchase-status-api.html">
+ <span class="en">Purchase Status API</span></a>
+ </li>
+ <li><a href="/google/play/billing/versions.html">
+ <span class="en">Version Notes</span></a>
+ </li>
+ </ul>
+ </li>
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/gcm/index.html">
+ <span class="en">Google Cloud Messaging</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
+ <li><a href="/google/gcm/gs.html">
+ <span class="en">Getting Started</span></a>
+ </li>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
+ </li>
+ <li><a href="/google/gcm/notifications.html">
+ <span class="en">User Notifications</span></a>
+ </li>
+ <li><a href="/google/gcm/adv.html">
+ <span class="en">Advanced Topics</span></a>
+ </li>
+ <li><a href="/google/gcm/c2dm.html">
+ <span class="en">Migration</span></a>
+ </li>
+ <li id="gcm-tree-list" class="nav-section">
+ <div class="nav-section-header">
+ <a href="/reference/gcm-packages.html">
+ <span class="en">Reference</span>
+ </a>
+ <div>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/dist.html">
+ <span class="en">Google Play Distribution</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/filters.html">
+ <span class="en">Filters on Google Play</span></a>
+ </li>
+
+ <li><a href="/google/play/publishing/multiple-apks.html">
+ <span class="en">Multiple APK Support</span></a>
+ </li>
+ <li><a href="/google/play/expansion-files.html">
+ <span class="en">APK Expansion Files</span></a>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/licensing/index.html">
+ <span class="en">Application Licensing</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/licensing/overview.html">
+ <span class="en">Licensing Overview</span></a>
+ </li>
+ <li><a href="/google/play/licensing/setting-up.html">
+ <span class="en">Setting Up for Licensing</span></a>
+ </li>
+ <li><a href="/google/play/licensing/adding-licensing.html">
+ <span class="en">Adding Licensing to Your App</span></a>
+ </li>
+ <li><a href="/google/play/licensing/licensing-reference.html">
+ <span class="en">Licensing Reference</span></a>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/backup/index.html">
+ Android Backup Service</a>
+ </div>
+ <ul>
+ <li><a href="/google/backup/signup.html">
+ Register</a>
+ </li>
+ </ul>
+ </li>
+
+ </ul>
+
+</li>
+
+
+
+</ul>
+
+<script type="text/javascript">
+<!--
+ buildToggleLists();
+ changeNavLang(getLangPref());
+//-->
+</script>
+
+
+
+
+ </div>
+ <script type="text/javascript">
+ showGoogleRefTree();
+
+ </script>
+ </div> <!-- end side-nav -->
+ <script>
+ $(document).ready(function() {
+ scrollIntoView("devdoc-nav");
+ });
+ </script>
+
+
+
+
+
+
+<div class="col-12" id="doc-col">
+
+<div id="api-info-block">
+
+
+
+
+
+
+
+
+
+
+
+<div class="sum-details-links">
+
+Summary:
+
+
+
+
+
+
+
+
+
+
+
+ <a href="#pubmethods">Methods</a>
+
+
+
+
+ | <a href="#inhmethods">Inherited Methods</a>
+
+| <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
+
+</div><!-- end sum-details-links -->
+<div class="api-level">
+
+
+
+
+</div>
+</div><!-- end api-info-block -->
+
+
+<!-- ======== START OF CLASS DATA ======== -->
+
+<div id="jd-header">
+ public
+ static
+
+
+ interface
+<h1 itemprop="name">DriveApi.IntentSenderResult</h1>
+
+
+
+
+
+ implements
+
+ <a href="/reference/com/google/android/gms/common/api/Result.html">Result</a>
+
+
+
+
+
+</div><!-- end header -->
+
+<div id="naMessage"></div>
+
+<div id="jd-content" class="api apilevel-">
+<table class="jd-inheritance-table">
+
+
+ <tr>
+
+ <td colspan="1" class="jd-inheritance-class-cell">com.google.android.gms.drive.DriveApi.IntentSenderResult</td>
+ </tr>
+
+
+</table>
+
+
+
+
+
+
+
+<div class="jd-descr">
+
+
+<h2>Class Overview</h2>
+<p class="caution">
+ <strong>Note:</strong> The Google Drive Android API is currently in <strong>developer
+ preview</strong>. Applications compiled using this version of the API will
+ continue to operate on devices using future versions of Google Play services;
+ however, changes to the API are expected in future releases.
+</p>
+<p itemprop="articleBody">Result that contains an IntentSender reference.
+</p>
+
+
+
+
+
+</div><!-- jd-descr -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<div class="jd-descr">
+
+
+<h2>Summary</h2>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
+
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ IntentSender</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/DriveApi.IntentSenderResult.html#getIntentSender()">getIntentSender</a></span>()</nobr>
+
+ </td></tr>
+
+
+
+</table>
+
+
+
+
+
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+<table id="inhmethods" class="jd-sumtable"><tr><th>
+ <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
+ <div style="clear:left;">Inherited Methods</div></th></tr>
+
+
+<tr class="api apilevel-" >
+<td colspan="12">
+ <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.android.gms.common.api.Result" class="jd-expando-trigger closed"
+ ><img id="inherited-methods-com.google.android.gms.common.api.Result-trigger"
+ src="/assets/images/triangle-closed.png"
+ class="jd-expando-trigger-img" /></a>
+From interface
+
+ <a href="/reference/com/google/android/gms/common/api/Result.html">com.google.android.gms.common.api.Result</a>
+
+<div id="inherited-methods-com.google.android.gms.common.api.Result">
+ <div id="inherited-methods-com.google.android.gms.common.api.Result-list"
+ class="jd-inheritedlinks">
+ </div>
+ <div id="inherited-methods-com.google.android.gms.common.api.Result-summary" style="display: none;">
+ <table class="jd-sumtable-expando">
+
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ <a href="/reference/com/google/android/gms/common/api/Status.html">Status</a></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/common/api/Result.html#getStatus()">getStatus</a></span>()</nobr>
+
+ </td></tr>
+
+
+</table>
+ </div>
+</div>
+</td></tr>
+
+
+</table>
+
+
+</div><!-- jd-descr (summary) -->
+
+<!-- Details -->
+
+
+
+
+
+
+
+
+<!-- XML Attributes -->
+
+
+<!-- Enum Values -->
+
+
+<!-- Constants -->
+
+
+<!-- Fields -->
+
+
+<!-- Public ctors -->
+
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<!-- Protected ctors -->
+
+
+
+<!-- ========= METHOD DETAIL ======== -->
+<!-- Public methdos -->
+
+<h2>Public Methods</h2>
+
+
+
+<A NAME="getIntentSender()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+ abstract
+
+ IntentSender
+ </span>
+ <span class="sympad">getIntentSender</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+ </div>
+</div>
+
+
+
+
+
+<!-- ========= METHOD DETAIL ======== -->
+
+
+
+<!-- ========= END OF CLASS DATA ========= -->
+<A NAME="navbar_top"></A>
+
+<div id="footer" class="wrap" >
+
+
+ <div id="copyright">
+
+ Except as noted, this content is licensed under <a
+ href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.
+ For details and restrictions, see the <a href="/license.html">
+ Content License</a>.
+ </div>
+ <div id="build_info">
+
+<script src="/timestamp.js" type="text/javascript"></script>
+<script>document.write(BUILD_TIMESTAMP)</script>
+
+ </div>
+
+
+ <div id="footerlinks">
+
+ <p>
+ <a href="/about/index.html">About Android</a> |
+ <a href="/legal.html">Legal</a> |
+ <a href="/support.html">Support</a>
+ </p>
+ </div>
+
+</div> <!-- end footer -->
+</div> <!-- jd-content -->
+
+</div><!-- end doc-content -->
+
+</div> <!-- end body-content -->
+
+
+
+
+
+
+</body>
+</html>
diff --git a/docs/html/reference/com/google/android/gms/drive/DriveApi.MetadataBufferResult.html b/docs/html/reference/com/google/android/gms/drive/DriveApi.MetadataBufferResult.html
new file mode 100644
index 0000000..4185e5b
--- /dev/null
+++ b/docs/html/reference/com/google/android/gms/drive/DriveApi.MetadataBufferResult.html
@@ -0,0 +1,1007 @@
+<!DOCTYPE html>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<html>
+<head>
+
+
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<meta name="viewport" content="width=device-width" />
+
+<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
+<title>DriveApi.MetadataBufferResult | Android Developers</title>
+
+<!-- STYLESHEETS -->
+<link rel="stylesheet"
+href="//fonts.googleapis.com/css?family=Roboto:regular,medium,thin,italic,mediumitalic,bold" title="roboto">
+<link href="/assets/css/default.css" rel="stylesheet" type="text/css">
+
+
+
+<!-- JAVASCRIPT -->
+<script src="//www.google.com/jsapi" type="text/javascript"></script>
+<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
+<script type="text/javascript">
+ var toRoot = "/";
+ var metaTags = [];
+ var devsite = false;
+</script>
+<script src="/assets/js/docs.js" type="text/javascript"></script>
+
+<script type="text/javascript">
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-5831155-1']);
+ _gaq.push(['_trackPageview']);
+
+ (function() {
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+ })();
+</script>
+</head>
+<body class="gc-documentation google
+ develop" itemscope itemtype="http://schema.org/Article">
+ <div id="doc-api-level" class="" style="display:none"></div>
+ <a name="top"></a>
+
+<a name="top"></a>
+
+ <!-- Header -->
+ <div id="header">
+ <div class="wrap" id="header-wrap">
+ <div class="col-3 logo">
+ <a href="/index.html">
+ <img src="/assets/images/dac_logo.png" width="123" height="25" alt="Android Developers" />
+ </a>
+ <div class="btn-quicknav" id="btn-quicknav">
+ <a href="#" class="arrow-inactive">Quicknav</a>
+ <a href="#" class="arrow-active">Quicknav</a>
+ </div>
+ </div>
+ <ul class="nav-x col-9">
+ <li class="design">
+ <a href="/design/index.html"
+ zh-tw-lang="設計"
+ zh-cn-lang="设计"
+ ru-lang="Проектирование"
+ ko-lang="디자인"
+ ja-lang="設計"
+ es-lang="Diseñar"
+ >Design</a></li>
+ <li class="develop"><a href="/develop/index.html"
+ zh-tw-lang="開發"
+ zh-cn-lang="开发"
+ ru-lang="Разработка"
+ ko-lang="개발"
+ ja-lang="開発"
+ es-lang="Desarrollar"
+ >Develop</a></li>
+ <li class="distribute last"><a href="/distribute/index.html"
+ zh-tw-lang="發佈"
+ zh-cn-lang="分发"
+ ru-lang="Распространение"
+ ko-lang="배포"
+ ja-lang="配布"
+ es-lang="Distribuir"
+ >Distribute</a></li>
+ </ul>
+
+ <!-- New Search -->
+ <div class="menu-container">
+ <div class="moremenu">
+ <div id="more-btn"></div>
+ </div>
+ <div class="morehover" id="moremenu">
+ <div class="top"></div>
+ <div class="mid">
+ <div class="header">Links</div>
+ <ul>
+ <li><a href="https://play.google.com/apps/publish/">Google Play Developer Console</a></li>
+ <li><a href="http://android-developers.blogspot.com/">Android Developers Blog</a></li>
+ <li><a href="/about/index.html">About Android</a></li>
+ </ul>
+ <div class="header">Android Sites</div>
+ <ul>
+ <li><a href="http://www.android.com">Android.com</a></li>
+ <li class="active"><a>Android Developers</a></li>
+ <li><a href="http://source.android.com">Android Open Source Project</a></li>
+ </ul>
+
+
+
+ <div class="header">Language</div>
+ <div id="language" class="locales">
+ <select name="language" onChange="changeLangPref(this.value, true)">
+ <option value="en">English</option>
+ <option value="es">Español</option>
+ <option value="ja">日本語</option>
+ <option value="ko">한국어</option>
+ <option value="ru">Русский</option>
+ <option value="zh-cn">中文 (中国)</option>
+ <option value="zh-tw">中文 (台灣)</option>
+ </select>
+ </div>
+ <script type="text/javascript">
+ <!--
+ loadLangPref();
+ //-->
+ </script>
+
+
+
+
+ <br class="clearfix" />
+ </div>
+ <div class="bottom"></div>
+ </div>
+ <div class="search" id="search-container">
+ <div class="search-inner">
+ <div id="search-btn"></div>
+ <div class="left"></div>
+ <form onsubmit="return submit_search()">
+ <input id="search_autocomplete" type="text" value="" autocomplete="off" name="q"
+onfocus="search_focus_changed(this, true)" onblur="search_focus_changed(this, false)"
+onkeydown="return search_changed(event, true, '/')"
+onkeyup="return search_changed(event, false, '/')" />
+ </form>
+ <div class="right"></div>
+ <a class="close hide">close</a>
+ <div class="left"></div>
+ <div class="right"></div>
+ </div>
+ </div>
+
+ <div class="search_filtered_wrapper reference">
+ <div class="suggest-card reference no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ </div>
+
+ <div class="search_filtered_wrapper docs">
+ <div class="suggest-card dummy no-display"> </div>
+ <div class="suggest-card develop no-display">
+ <ul class="search_filtered">
+ </ul>
+ <div class="child-card guides no-display">
+ </div>
+ <div class="child-card training no-display">
+ </div>
+ <div class="child-card samples no-display">
+ </div>
+ </div>
+ <div class="suggest-card design no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ <div class="suggest-card distribute no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ </div>
+
+ </div>
+ <!-- /New Search>
+
+
+ <!-- Expanded quicknav -->
+ <div id="quicknav" class="col-9">
+ <ul>
+ <li class="design">
+ <ul>
+ <li><a href="/design/index.html">Get Started</a></li>
+ <li><a href="/design/style/index.html">Style</a></li>
+ <li><a href="/design/patterns/index.html">Patterns</a></li>
+ <li><a href="/design/building-blocks/index.html">Building Blocks</a></li>
+ <li><a href="/design/downloads/index.html">Downloads</a></li>
+ <li><a href="/design/videos/index.html">Videos</a></li>
+ </ul>
+ </li>
+ <li class="develop">
+ <ul>
+ <li><a href="/training/index.html"
+ zh-tw-lang="訓練課程"
+ zh-cn-lang="培训"
+ ru-lang="Курсы"
+ ko-lang="교육"
+ ja-lang="トレーニング"
+ es-lang="Capacitación"
+ >Training</a></li>
+ <li><a href="/guide/index.html"
+ zh-tw-lang="API 指南"
+ zh-cn-lang="API 指南"
+ ru-lang="Руководства по API"
+ ko-lang="API 가이드"
+ ja-lang="API ガイド"
+ es-lang="Guías de la API"
+ >API Guides</a></li>
+ <li><a href="/reference/packages.html"
+ zh-tw-lang="參考資源"
+ zh-cn-lang="参考"
+ ru-lang="Справочник"
+ ko-lang="참조문서"
+ ja-lang="リファレンス"
+ es-lang="Referencia"
+ >Reference</a></li>
+ <li><a href="/tools/index.html"
+ zh-tw-lang="相關工具"
+ zh-cn-lang="工具"
+ ru-lang="Инструменты"
+ ko-lang="도구"
+ ja-lang="ツール"
+ es-lang="Herramientas"
+ >Tools</a>
+ <ul><li><a href="/sdk/index.html">Get the SDK</a></li></ul>
+ </li>
+ <li><a href="/google/index.html">Google Services</a>
+ </li>
+
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
+ </ul>
+ </li>
+ <li class="distribute last">
+ <ul>
+ <li><a href="/distribute/index.html">Google Play</a></li>
+ <li><a href="/distribute/googleplay/publish/index.html">Publishing</a></li>
+ <li><a href="/distribute/googleplay/promote/index.html">Promoting</a></li>
+ <li><a href="/distribute/googleplay/quality/index.html">App Quality</a></li>
+ <li><a href="/distribute/googleplay/spotlight/index.html">Spotlight</a></li>
+ <li><a href="/distribute/open.html">Open Distribution</a></li>
+ </ul>
+ </li>
+ </ul>
+ </div>
+ <!-- /Expanded quicknav -->
+ </div>
+ </div>
+ <!-- /Header -->
+
+
+ <div id="searchResults" class="wrap" style="display:none;">
+ <h2 id="searchTitle">Results</h2>
+ <div id="leftSearchControl" class="search-control">Loading...</div>
+ </div>
+
+
+
+ <!-- Secondary x-nav -->
+ <div id="nav-x">
+ <div class="wrap">
+ <ul class="nav-x col-9 develop" style="width:100%">
+ <li class="training"><a href="/training/index.html"
+ zh-tw-lang="訓練課程"
+ zh-cn-lang="培训"
+ ru-lang="Курсы"
+ ko-lang="교육"
+ ja-lang="トレーニング"
+ es-lang="Capacitación"
+ >Training</a></li>
+ <li class="guide"><a href="/guide/index.html"
+ zh-tw-lang="API 指南"
+ zh-cn-lang="API 指南"
+ ru-lang="Руководства по API"
+ ko-lang="API 가이드"
+ ja-lang="API ガイド"
+ es-lang="Guías de la API"
+ >API Guides</a></li>
+ <li class="reference"><a href="/reference/packages.html"
+ zh-tw-lang="參考資源"
+ zh-cn-lang="参考"
+ ru-lang="Справочник"
+ ko-lang="참조문서"
+ ja-lang="リファレンス"
+ es-lang="Referencia"
+ >Reference</a></li>
+ <li class="tools"><a href="/tools/index.html"
+ zh-tw-lang="相關工具"
+ zh-cn-lang="工具"
+ ru-lang="Инструменты"
+ ko-lang="도구"
+ ja-lang="ツール"
+ es-lang="Herramientas"
+ >Tools</a></li>
+ <li class="google"><a href="/google/index.html"
+ >Google Services</a>
+ </li>
+
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
+ </ul>
+ </div>
+
+ </div>
+ <!-- /Sendondary x-nav -->
+
+
+
+
+
+
+
+
+
+ <div class="wrap clearfix" id="body-content">
+ <div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
+ <div id="devdoc-nav" class="scroll-pane">
+<a class="totop" href="#top" data-g-event="left-nav-top">to top</a>
+
+
+
+<ul id="nav">
+
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/index.html">
+ <span class="en">Overview</span>
+ </a></div>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/games.html">
+ <span class="en">Games</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/location.html">
+ <span class="en">Location</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/plus.html">
+ <span class="en">Google+</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/maps.html">
+ <span class="en">Maps</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play-services/ads.html">
+ <span class="en">Ads</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play-services/id.html">
+ <span class="en">Advertising ID</span></a>
+ </li>
+ </ul>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/wallet.html">
+ <span class="en">Wallet</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/auth.html">
+ <span class="en">Authorization</span>
+ </a></div>
+ </li>
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play-services/index.html">
+ <span class="en">Google Play Services</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play-services/setup.html">
+ <span class="en">Setup</span></a>
+ </li>
+ <li id="gms-tree-list" class="nav-section">
+ <div class="nav-section-header">
+ <a href="/reference/gms-packages.html">
+ <span class="en">Reference</span>
+ </a>
+ <div>
+ </li>
+ </ul>
+ </li>
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/billing/index.html">
+ <span class="en">Google Play In-app Billing</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/billing/billing_overview.html">
+ <span class="en">Overview</span></a>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/api.html">
+ <span class="en">Version 3 API</span></a></div>
+ <ul>
+ <li><a href="/google/play/billing/billing_integrate.html">
+ <span class="en">Implementing the API</span></a></li>
+ <li><a href="/google/play/billing/billing_reference.html">
+ <span class="en">Reference</span></a></li>
+ </ul>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/v2/api.html">
+ <span class="en">Version 2 API</span></a></div>
+ <ul>
+ <li><a href="/google/play/billing/v2/billing_integrate.html">
+ <span class="en">Implementing the API</span></a></li>
+ <li><a href="/google/play/billing/v2/billing_subscriptions.html">
+ <span class="en">Subscriptions</span></a></li>
+ <li><a href="/google/play/billing/v2/billing_reference.html">
+ <span class="en">Reference</span></a></li>
+ </ul>
+ </li>
+ <li><a href="/google/play/billing/billing_subscriptions.html">
+ <span class="en">Subscriptions</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_best_practices.html">
+ <span class="en">Security and Design</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_testing.html">
+ <span class="en">Testing In-app Billing</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_admin.html">
+ <span class="en">Administering In-app Billing</span></a>
+ </li>
+ <li><a href="/google/play/billing/gp-purchase-status-api.html">
+ <span class="en">Purchase Status API</span></a>
+ </li>
+ <li><a href="/google/play/billing/versions.html">
+ <span class="en">Version Notes</span></a>
+ </li>
+ </ul>
+ </li>
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/gcm/index.html">
+ <span class="en">Google Cloud Messaging</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
+ <li><a href="/google/gcm/gs.html">
+ <span class="en">Getting Started</span></a>
+ </li>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
+ </li>
+ <li><a href="/google/gcm/notifications.html">
+ <span class="en">User Notifications</span></a>
+ </li>
+ <li><a href="/google/gcm/adv.html">
+ <span class="en">Advanced Topics</span></a>
+ </li>
+ <li><a href="/google/gcm/c2dm.html">
+ <span class="en">Migration</span></a>
+ </li>
+ <li id="gcm-tree-list" class="nav-section">
+ <div class="nav-section-header">
+ <a href="/reference/gcm-packages.html">
+ <span class="en">Reference</span>
+ </a>
+ <div>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/dist.html">
+ <span class="en">Google Play Distribution</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/filters.html">
+ <span class="en">Filters on Google Play</span></a>
+ </li>
+
+ <li><a href="/google/play/publishing/multiple-apks.html">
+ <span class="en">Multiple APK Support</span></a>
+ </li>
+ <li><a href="/google/play/expansion-files.html">
+ <span class="en">APK Expansion Files</span></a>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/licensing/index.html">
+ <span class="en">Application Licensing</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/licensing/overview.html">
+ <span class="en">Licensing Overview</span></a>
+ </li>
+ <li><a href="/google/play/licensing/setting-up.html">
+ <span class="en">Setting Up for Licensing</span></a>
+ </li>
+ <li><a href="/google/play/licensing/adding-licensing.html">
+ <span class="en">Adding Licensing to Your App</span></a>
+ </li>
+ <li><a href="/google/play/licensing/licensing-reference.html">
+ <span class="en">Licensing Reference</span></a>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/backup/index.html">
+ Android Backup Service</a>
+ </div>
+ <ul>
+ <li><a href="/google/backup/signup.html">
+ Register</a>
+ </li>
+ </ul>
+ </li>
+
+ </ul>
+
+</li>
+
+
+
+</ul>
+
+<script type="text/javascript">
+<!--
+ buildToggleLists();
+ changeNavLang(getLangPref());
+//-->
+</script>
+
+
+
+
+ </div>
+ <script type="text/javascript">
+ showGoogleRefTree();
+
+ </script>
+ </div> <!-- end side-nav -->
+ <script>
+ $(document).ready(function() {
+ scrollIntoView("devdoc-nav");
+ });
+ </script>
+
+
+
+
+
+
+<div class="col-12" id="doc-col">
+
+<div id="api-info-block">
+
+
+
+
+
+
+
+
+
+
+
+<div class="sum-details-links">
+
+Summary:
+
+
+
+
+
+
+
+
+
+
+
+ <a href="#pubmethods">Methods</a>
+
+
+
+
+ | <a href="#inhmethods">Inherited Methods</a>
+
+| <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
+
+</div><!-- end sum-details-links -->
+<div class="api-level">
+
+
+
+
+</div>
+</div><!-- end api-info-block -->
+
+
+<!-- ======== START OF CLASS DATA ======== -->
+
+<div id="jd-header">
+ public
+ static
+
+
+ interface
+<h1 itemprop="name">DriveApi.MetadataBufferResult</h1>
+
+
+
+
+
+ implements
+
+ <a href="/reference/com/google/android/gms/common/api/Result.html">Result</a>
+
+
+
+
+
+</div><!-- end header -->
+
+<div id="naMessage"></div>
+
+<div id="jd-content" class="api apilevel-">
+<table class="jd-inheritance-table">
+
+
+ <tr>
+
+ <td colspan="1" class="jd-inheritance-class-cell">com.google.android.gms.drive.DriveApi.MetadataBufferResult</td>
+ </tr>
+
+
+</table>
+
+
+
+
+
+
+
+<div class="jd-descr">
+
+
+<h2>Class Overview</h2>
+<p class="caution">
+ <strong>Note:</strong> The Google Drive Android API is currently in <strong>developer
+ preview</strong>. Applications compiled using this version of the API will
+ continue to operate on devices using future versions of Google Play services;
+ however, changes to the API are expected in future releases.
+</p>
+<p itemprop="articleBody">Result that contains a MetadataBuffer.
+</p>
+
+
+
+
+
+</div><!-- jd-descr -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<div class="jd-descr">
+
+
+<h2>Summary</h2>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
+
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ <a href="/reference/com/google/android/gms/drive/MetadataBuffer.html">MetadataBuffer</a></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/DriveApi.MetadataBufferResult.html#getMetadataBuffer()">getMetadataBuffer</a></span>()</nobr>
+
+ </td></tr>
+
+
+
+</table>
+
+
+
+
+
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+<table id="inhmethods" class="jd-sumtable"><tr><th>
+ <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
+ <div style="clear:left;">Inherited Methods</div></th></tr>
+
+
+<tr class="api apilevel-" >
+<td colspan="12">
+ <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.android.gms.common.api.Result" class="jd-expando-trigger closed"
+ ><img id="inherited-methods-com.google.android.gms.common.api.Result-trigger"
+ src="/assets/images/triangle-closed.png"
+ class="jd-expando-trigger-img" /></a>
+From interface
+
+ <a href="/reference/com/google/android/gms/common/api/Result.html">com.google.android.gms.common.api.Result</a>
+
+<div id="inherited-methods-com.google.android.gms.common.api.Result">
+ <div id="inherited-methods-com.google.android.gms.common.api.Result-list"
+ class="jd-inheritedlinks">
+ </div>
+ <div id="inherited-methods-com.google.android.gms.common.api.Result-summary" style="display: none;">
+ <table class="jd-sumtable-expando">
+
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ <a href="/reference/com/google/android/gms/common/api/Status.html">Status</a></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/common/api/Result.html#getStatus()">getStatus</a></span>()</nobr>
+
+ </td></tr>
+
+
+</table>
+ </div>
+</div>
+</td></tr>
+
+
+</table>
+
+
+</div><!-- jd-descr (summary) -->
+
+<!-- Details -->
+
+
+
+
+
+
+
+
+<!-- XML Attributes -->
+
+
+<!-- Enum Values -->
+
+
+<!-- Constants -->
+
+
+<!-- Fields -->
+
+
+<!-- Public ctors -->
+
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<!-- Protected ctors -->
+
+
+
+<!-- ========= METHOD DETAIL ======== -->
+<!-- Public methdos -->
+
+<h2>Public Methods</h2>
+
+
+
+<A NAME="getMetadataBuffer()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+ abstract
+
+ <a href="/reference/com/google/android/gms/drive/MetadataBuffer.html">MetadataBuffer</a>
+ </span>
+ <span class="sympad">getMetadataBuffer</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+ </div>
+</div>
+
+
+
+
+
+<!-- ========= METHOD DETAIL ======== -->
+
+
+
+<!-- ========= END OF CLASS DATA ========= -->
+<A NAME="navbar_top"></A>
+
+<div id="footer" class="wrap" >
+
+
+ <div id="copyright">
+
+ Except as noted, this content is licensed under <a
+ href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.
+ For details and restrictions, see the <a href="/license.html">
+ Content License</a>.
+ </div>
+ <div id="build_info">
+
+<script src="/timestamp.js" type="text/javascript"></script>
+<script>document.write(BUILD_TIMESTAMP)</script>
+
+ </div>
+
+
+ <div id="footerlinks">
+
+ <p>
+ <a href="/about/index.html">About Android</a> |
+ <a href="/legal.html">Legal</a> |
+ <a href="/support.html">Support</a>
+ </p>
+ </div>
+
+</div> <!-- end footer -->
+</div> <!-- jd-content -->
+
+</div><!-- end doc-content -->
+
+</div> <!-- end body-content -->
+
+
+
+
+
+
+</body>
+</html>
diff --git a/docs/html/reference/com/google/android/gms/drive/DriveApi.OnContentsDiscardedCallback.html b/docs/html/reference/com/google/android/gms/drive/DriveApi.OnContentsDiscardedCallback.html
new file mode 100644
index 0000000..9d92a04
--- /dev/null
+++ b/docs/html/reference/com/google/android/gms/drive/DriveApi.OnContentsDiscardedCallback.html
@@ -0,0 +1,924 @@
+<!DOCTYPE html>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<html>
+<head>
+
+
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<meta name="viewport" content="width=device-width" />
+
+<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
+<title>DriveApi.OnContentsDiscardedCallback | Android Developers</title>
+
+<!-- STYLESHEETS -->
+<link rel="stylesheet"
+href="//fonts.googleapis.com/css?family=Roboto:regular,medium,thin,italic,mediumitalic,bold" title="roboto">
+<link href="/assets/css/default.css" rel="stylesheet" type="text/css">
+
+
+
+<!-- JAVASCRIPT -->
+<script src="//www.google.com/jsapi" type="text/javascript"></script>
+<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
+<script type="text/javascript">
+ var toRoot = "/";
+ var metaTags = [];
+ var devsite = false;
+</script>
+<script src="/assets/js/docs.js" type="text/javascript"></script>
+
+<script type="text/javascript">
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-5831155-1']);
+ _gaq.push(['_trackPageview']);
+
+ (function() {
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+ })();
+</script>
+</head>
+<body class="gc-documentation google
+ develop" itemscope itemtype="http://schema.org/Article">
+ <div id="doc-api-level" class="" style="display:none"></div>
+ <a name="top"></a>
+
+<a name="top"></a>
+
+ <!-- Header -->
+ <div id="header">
+ <div class="wrap" id="header-wrap">
+ <div class="col-3 logo">
+ <a href="/index.html">
+ <img src="/assets/images/dac_logo.png" width="123" height="25" alt="Android Developers" />
+ </a>
+ <div class="btn-quicknav" id="btn-quicknav">
+ <a href="#" class="arrow-inactive">Quicknav</a>
+ <a href="#" class="arrow-active">Quicknav</a>
+ </div>
+ </div>
+ <ul class="nav-x col-9">
+ <li class="design">
+ <a href="/design/index.html"
+ zh-tw-lang="設計"
+ zh-cn-lang="设计"
+ ru-lang="Проектирование"
+ ko-lang="디자인"
+ ja-lang="設計"
+ es-lang="Diseñar"
+ >Design</a></li>
+ <li class="develop"><a href="/develop/index.html"
+ zh-tw-lang="開發"
+ zh-cn-lang="开发"
+ ru-lang="Разработка"
+ ko-lang="개발"
+ ja-lang="開発"
+ es-lang="Desarrollar"
+ >Develop</a></li>
+ <li class="distribute last"><a href="/distribute/index.html"
+ zh-tw-lang="發佈"
+ zh-cn-lang="分发"
+ ru-lang="Распространение"
+ ko-lang="배포"
+ ja-lang="配布"
+ es-lang="Distribuir"
+ >Distribute</a></li>
+ </ul>
+
+ <!-- New Search -->
+ <div class="menu-container">
+ <div class="moremenu">
+ <div id="more-btn"></div>
+ </div>
+ <div class="morehover" id="moremenu">
+ <div class="top"></div>
+ <div class="mid">
+ <div class="header">Links</div>
+ <ul>
+ <li><a href="https://play.google.com/apps/publish/">Google Play Developer Console</a></li>
+ <li><a href="http://android-developers.blogspot.com/">Android Developers Blog</a></li>
+ <li><a href="/about/index.html">About Android</a></li>
+ </ul>
+ <div class="header">Android Sites</div>
+ <ul>
+ <li><a href="http://www.android.com">Android.com</a></li>
+ <li class="active"><a>Android Developers</a></li>
+ <li><a href="http://source.android.com">Android Open Source Project</a></li>
+ </ul>
+
+
+
+ <div class="header">Language</div>
+ <div id="language" class="locales">
+ <select name="language" onChange="changeLangPref(this.value, true)">
+ <option value="en">English</option>
+ <option value="es">Español</option>
+ <option value="ja">日本語</option>
+ <option value="ko">한국어</option>
+ <option value="ru">Русский</option>
+ <option value="zh-cn">中文 (中国)</option>
+ <option value="zh-tw">中文 (台灣)</option>
+ </select>
+ </div>
+ <script type="text/javascript">
+ <!--
+ loadLangPref();
+ //-->
+ </script>
+
+
+
+
+ <br class="clearfix" />
+ </div>
+ <div class="bottom"></div>
+ </div>
+ <div class="search" id="search-container">
+ <div class="search-inner">
+ <div id="search-btn"></div>
+ <div class="left"></div>
+ <form onsubmit="return submit_search()">
+ <input id="search_autocomplete" type="text" value="" autocomplete="off" name="q"
+onfocus="search_focus_changed(this, true)" onblur="search_focus_changed(this, false)"
+onkeydown="return search_changed(event, true, '/')"
+onkeyup="return search_changed(event, false, '/')" />
+ </form>
+ <div class="right"></div>
+ <a class="close hide">close</a>
+ <div class="left"></div>
+ <div class="right"></div>
+ </div>
+ </div>
+
+ <div class="search_filtered_wrapper reference">
+ <div class="suggest-card reference no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ </div>
+
+ <div class="search_filtered_wrapper docs">
+ <div class="suggest-card dummy no-display"> </div>
+ <div class="suggest-card develop no-display">
+ <ul class="search_filtered">
+ </ul>
+ <div class="child-card guides no-display">
+ </div>
+ <div class="child-card training no-display">
+ </div>
+ <div class="child-card samples no-display">
+ </div>
+ </div>
+ <div class="suggest-card design no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ <div class="suggest-card distribute no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ </div>
+
+ </div>
+ <!-- /New Search>
+
+
+ <!-- Expanded quicknav -->
+ <div id="quicknav" class="col-9">
+ <ul>
+ <li class="design">
+ <ul>
+ <li><a href="/design/index.html">Get Started</a></li>
+ <li><a href="/design/style/index.html">Style</a></li>
+ <li><a href="/design/patterns/index.html">Patterns</a></li>
+ <li><a href="/design/building-blocks/index.html">Building Blocks</a></li>
+ <li><a href="/design/downloads/index.html">Downloads</a></li>
+ <li><a href="/design/videos/index.html">Videos</a></li>
+ </ul>
+ </li>
+ <li class="develop">
+ <ul>
+ <li><a href="/training/index.html"
+ zh-tw-lang="訓練課程"
+ zh-cn-lang="培训"
+ ru-lang="Курсы"
+ ko-lang="교육"
+ ja-lang="トレーニング"
+ es-lang="Capacitación"
+ >Training</a></li>
+ <li><a href="/guide/index.html"
+ zh-tw-lang="API 指南"
+ zh-cn-lang="API 指南"
+ ru-lang="Руководства по API"
+ ko-lang="API 가이드"
+ ja-lang="API ガイド"
+ es-lang="Guías de la API"
+ >API Guides</a></li>
+ <li><a href="/reference/packages.html"
+ zh-tw-lang="參考資源"
+ zh-cn-lang="参考"
+ ru-lang="Справочник"
+ ko-lang="참조문서"
+ ja-lang="リファレンス"
+ es-lang="Referencia"
+ >Reference</a></li>
+ <li><a href="/tools/index.html"
+ zh-tw-lang="相關工具"
+ zh-cn-lang="工具"
+ ru-lang="Инструменты"
+ ko-lang="도구"
+ ja-lang="ツール"
+ es-lang="Herramientas"
+ >Tools</a>
+ <ul><li><a href="/sdk/index.html">Get the SDK</a></li></ul>
+ </li>
+ <li><a href="/google/index.html">Google Services</a>
+ </li>
+
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
+ </ul>
+ </li>
+ <li class="distribute last">
+ <ul>
+ <li><a href="/distribute/index.html">Google Play</a></li>
+ <li><a href="/distribute/googleplay/publish/index.html">Publishing</a></li>
+ <li><a href="/distribute/googleplay/promote/index.html">Promoting</a></li>
+ <li><a href="/distribute/googleplay/quality/index.html">App Quality</a></li>
+ <li><a href="/distribute/googleplay/spotlight/index.html">Spotlight</a></li>
+ <li><a href="/distribute/open.html">Open Distribution</a></li>
+ </ul>
+ </li>
+ </ul>
+ </div>
+ <!-- /Expanded quicknav -->
+ </div>
+ </div>
+ <!-- /Header -->
+
+
+ <div id="searchResults" class="wrap" style="display:none;">
+ <h2 id="searchTitle">Results</h2>
+ <div id="leftSearchControl" class="search-control">Loading...</div>
+ </div>
+
+
+
+ <!-- Secondary x-nav -->
+ <div id="nav-x">
+ <div class="wrap">
+ <ul class="nav-x col-9 develop" style="width:100%">
+ <li class="training"><a href="/training/index.html"
+ zh-tw-lang="訓練課程"
+ zh-cn-lang="培训"
+ ru-lang="Курсы"
+ ko-lang="교육"
+ ja-lang="トレーニング"
+ es-lang="Capacitación"
+ >Training</a></li>
+ <li class="guide"><a href="/guide/index.html"
+ zh-tw-lang="API 指南"
+ zh-cn-lang="API 指南"
+ ru-lang="Руководства по API"
+ ko-lang="API 가이드"
+ ja-lang="API ガイド"
+ es-lang="Guías de la API"
+ >API Guides</a></li>
+ <li class="reference"><a href="/reference/packages.html"
+ zh-tw-lang="參考資源"
+ zh-cn-lang="参考"
+ ru-lang="Справочник"
+ ko-lang="참조문서"
+ ja-lang="リファレンス"
+ es-lang="Referencia"
+ >Reference</a></li>
+ <li class="tools"><a href="/tools/index.html"
+ zh-tw-lang="相關工具"
+ zh-cn-lang="工具"
+ ru-lang="Инструменты"
+ ko-lang="도구"
+ ja-lang="ツール"
+ es-lang="Herramientas"
+ >Tools</a></li>
+ <li class="google"><a href="/google/index.html"
+ >Google Services</a>
+ </li>
+
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
+ </ul>
+ </div>
+
+ </div>
+ <!-- /Sendondary x-nav -->
+
+
+
+
+
+
+
+
+
+ <div class="wrap clearfix" id="body-content">
+ <div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
+ <div id="devdoc-nav" class="scroll-pane">
+<a class="totop" href="#top" data-g-event="left-nav-top">to top</a>
+
+
+
+<ul id="nav">
+
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/index.html">
+ <span class="en">Overview</span>
+ </a></div>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/games.html">
+ <span class="en">Games</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/location.html">
+ <span class="en">Location</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/plus.html">
+ <span class="en">Google+</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/maps.html">
+ <span class="en">Maps</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play-services/ads.html">
+ <span class="en">Ads</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play-services/id.html">
+ <span class="en">Advertising ID</span></a>
+ </li>
+ </ul>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/wallet.html">
+ <span class="en">Wallet</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/auth.html">
+ <span class="en">Authorization</span>
+ </a></div>
+ </li>
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play-services/index.html">
+ <span class="en">Google Play Services</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play-services/setup.html">
+ <span class="en">Setup</span></a>
+ </li>
+ <li id="gms-tree-list" class="nav-section">
+ <div class="nav-section-header">
+ <a href="/reference/gms-packages.html">
+ <span class="en">Reference</span>
+ </a>
+ <div>
+ </li>
+ </ul>
+ </li>
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/billing/index.html">
+ <span class="en">Google Play In-app Billing</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/billing/billing_overview.html">
+ <span class="en">Overview</span></a>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/api.html">
+ <span class="en">Version 3 API</span></a></div>
+ <ul>
+ <li><a href="/google/play/billing/billing_integrate.html">
+ <span class="en">Implementing the API</span></a></li>
+ <li><a href="/google/play/billing/billing_reference.html">
+ <span class="en">Reference</span></a></li>
+ </ul>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/v2/api.html">
+ <span class="en">Version 2 API</span></a></div>
+ <ul>
+ <li><a href="/google/play/billing/v2/billing_integrate.html">
+ <span class="en">Implementing the API</span></a></li>
+ <li><a href="/google/play/billing/v2/billing_subscriptions.html">
+ <span class="en">Subscriptions</span></a></li>
+ <li><a href="/google/play/billing/v2/billing_reference.html">
+ <span class="en">Reference</span></a></li>
+ </ul>
+ </li>
+ <li><a href="/google/play/billing/billing_subscriptions.html">
+ <span class="en">Subscriptions</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_best_practices.html">
+ <span class="en">Security and Design</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_testing.html">
+ <span class="en">Testing In-app Billing</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_admin.html">
+ <span class="en">Administering In-app Billing</span></a>
+ </li>
+ <li><a href="/google/play/billing/gp-purchase-status-api.html">
+ <span class="en">Purchase Status API</span></a>
+ </li>
+ <li><a href="/google/play/billing/versions.html">
+ <span class="en">Version Notes</span></a>
+ </li>
+ </ul>
+ </li>
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/gcm/index.html">
+ <span class="en">Google Cloud Messaging</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
+ <li><a href="/google/gcm/gs.html">
+ <span class="en">Getting Started</span></a>
+ </li>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
+ </li>
+ <li><a href="/google/gcm/notifications.html">
+ <span class="en">User Notifications</span></a>
+ </li>
+ <li><a href="/google/gcm/adv.html">
+ <span class="en">Advanced Topics</span></a>
+ </li>
+ <li><a href="/google/gcm/c2dm.html">
+ <span class="en">Migration</span></a>
+ </li>
+ <li id="gcm-tree-list" class="nav-section">
+ <div class="nav-section-header">
+ <a href="/reference/gcm-packages.html">
+ <span class="en">Reference</span>
+ </a>
+ <div>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/dist.html">
+ <span class="en">Google Play Distribution</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/filters.html">
+ <span class="en">Filters on Google Play</span></a>
+ </li>
+
+ <li><a href="/google/play/publishing/multiple-apks.html">
+ <span class="en">Multiple APK Support</span></a>
+ </li>
+ <li><a href="/google/play/expansion-files.html">
+ <span class="en">APK Expansion Files</span></a>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/licensing/index.html">
+ <span class="en">Application Licensing</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/licensing/overview.html">
+ <span class="en">Licensing Overview</span></a>
+ </li>
+ <li><a href="/google/play/licensing/setting-up.html">
+ <span class="en">Setting Up for Licensing</span></a>
+ </li>
+ <li><a href="/google/play/licensing/adding-licensing.html">
+ <span class="en">Adding Licensing to Your App</span></a>
+ </li>
+ <li><a href="/google/play/licensing/licensing-reference.html">
+ <span class="en">Licensing Reference</span></a>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/backup/index.html">
+ Android Backup Service</a>
+ </div>
+ <ul>
+ <li><a href="/google/backup/signup.html">
+ Register</a>
+ </li>
+ </ul>
+ </li>
+
+ </ul>
+
+</li>
+
+
+
+</ul>
+
+<script type="text/javascript">
+<!--
+ buildToggleLists();
+ changeNavLang(getLangPref());
+//-->
+</script>
+
+
+
+
+ </div>
+ <script type="text/javascript">
+ showGoogleRefTree();
+
+ </script>
+ </div> <!-- end side-nav -->
+ <script>
+ $(document).ready(function() {
+ scrollIntoView("devdoc-nav");
+ });
+ </script>
+
+
+
+
+
+
+<div class="col-12" id="doc-col">
+
+<div id="api-info-block">
+
+
+
+
+<div class="sum-details-links">
+
+</div><!-- end sum-details-links -->
+<div class="api-level">
+
+
+
+
+</div>
+</div><!-- end api-info-block -->
+
+
+<!-- ======== START OF CLASS DATA ======== -->
+
+<div id="jd-header">
+ public
+ static
+
+
+ interface
+<h1 itemprop="name">DriveApi.OnContentsDiscardedCallback</h1>
+
+
+
+
+
+
+
+
+</div><!-- end header -->
+
+<div id="naMessage"></div>
+
+<div id="jd-content" class="api apilevel-">
+<table class="jd-inheritance-table">
+
+
+ <tr>
+
+ <td colspan="1" class="jd-inheritance-class-cell">com.google.android.gms.drive.DriveApi.OnContentsDiscardedCallback</td>
+ </tr>
+
+
+</table>
+
+
+
+
+
+
+
+<div class="jd-descr">
+
+
+<h2>Class Overview</h2>
+<p class="caution">
+ <strong>Note:</strong> The Google Drive Android API is currently in <strong>developer
+ preview</strong>. Applications compiled using this version of the API will
+ continue to operate on devices using future versions of Google Play services;
+ however, changes to the API are expected in future releases.
+</p>
+<p itemprop="articleBody">A callback that provides the result for a <code><a href="/reference/com/google/android/gms/drive/DriveApi.html#discardContents(com.google.android.gms.common.api.GoogleApiClient, com.google.android.gms.drive.Contents)">discardContents(GoogleApiClient, Contents)</a></code> request.
+</p>
+
+
+
+
+
+</div><!-- jd-descr -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<div class="jd-descr">
+
+
+<h2>Summary</h2>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
+
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/DriveApi.OnContentsDiscardedCallback.html#onContentsDiscarded(com.google.android.gms.common.api.Status)">onContentsDiscarded</a></span>(<a href="/reference/com/google/android/gms/common/api/Status.html">Status</a> result)</nobr>
+
+ </td></tr>
+
+
+
+</table>
+
+
+
+
+
+
+
+</div><!-- jd-descr (summary) -->
+
+<!-- Details -->
+
+
+
+
+
+
+
+
+<!-- XML Attributes -->
+
+
+<!-- Enum Values -->
+
+
+<!-- Constants -->
+
+
+<!-- Fields -->
+
+
+<!-- Public ctors -->
+
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<!-- Protected ctors -->
+
+
+
+<!-- ========= METHOD DETAIL ======== -->
+<!-- Public methdos -->
+
+<h2>Public Methods</h2>
+
+
+
+<A NAME="onContentsDiscarded(com.google.android.gms.common.api.Status)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+ abstract
+
+ void
+ </span>
+ <span class="sympad">onContentsDiscarded</span>
+ <span class="normal">(<a href="/reference/com/google/android/gms/common/api/Status.html">Status</a> result)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+ </div>
+</div>
+
+
+
+
+
+<!-- ========= METHOD DETAIL ======== -->
+
+
+
+<!-- ========= END OF CLASS DATA ========= -->
+<A NAME="navbar_top"></A>
+
+<div id="footer" class="wrap" >
+
+
+ <div id="copyright">
+
+ Except as noted, this content is licensed under <a
+ href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.
+ For details and restrictions, see the <a href="/license.html">
+ Content License</a>.
+ </div>
+ <div id="build_info">
+
+<script src="/timestamp.js" type="text/javascript"></script>
+<script>document.write(BUILD_TIMESTAMP)</script>
+
+ </div>
+
+
+ <div id="footerlinks">
+
+ <p>
+ <a href="/about/index.html">About Android</a> |
+ <a href="/legal.html">Legal</a> |
+ <a href="/support.html">Support</a>
+ </p>
+ </div>
+
+</div> <!-- end footer -->
+</div> <!-- jd-content -->
+
+</div><!-- end doc-content -->
+
+</div> <!-- end body-content -->
+
+
+
+
+
+
+</body>
+</html>
diff --git a/docs/html/reference/com/google/android/gms/drive/DriveApi.OnNewContentsCallback.html b/docs/html/reference/com/google/android/gms/drive/DriveApi.OnNewContentsCallback.html
new file mode 100644
index 0000000..5d62931
--- /dev/null
+++ b/docs/html/reference/com/google/android/gms/drive/DriveApi.OnNewContentsCallback.html
@@ -0,0 +1,924 @@
+<!DOCTYPE html>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<html>
+<head>
+
+
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<meta name="viewport" content="width=device-width" />
+
+<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
+<title>DriveApi.OnNewContentsCallback | Android Developers</title>
+
+<!-- STYLESHEETS -->
+<link rel="stylesheet"
+href="//fonts.googleapis.com/css?family=Roboto:regular,medium,thin,italic,mediumitalic,bold" title="roboto">
+<link href="/assets/css/default.css" rel="stylesheet" type="text/css">
+
+
+
+<!-- JAVASCRIPT -->
+<script src="//www.google.com/jsapi" type="text/javascript"></script>
+<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
+<script type="text/javascript">
+ var toRoot = "/";
+ var metaTags = [];
+ var devsite = false;
+</script>
+<script src="/assets/js/docs.js" type="text/javascript"></script>
+
+<script type="text/javascript">
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-5831155-1']);
+ _gaq.push(['_trackPageview']);
+
+ (function() {
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+ })();
+</script>
+</head>
+<body class="gc-documentation google
+ develop" itemscope itemtype="http://schema.org/Article">
+ <div id="doc-api-level" class="" style="display:none"></div>
+ <a name="top"></a>
+
+<a name="top"></a>
+
+ <!-- Header -->
+ <div id="header">
+ <div class="wrap" id="header-wrap">
+ <div class="col-3 logo">
+ <a href="/index.html">
+ <img src="/assets/images/dac_logo.png" width="123" height="25" alt="Android Developers" />
+ </a>
+ <div class="btn-quicknav" id="btn-quicknav">
+ <a href="#" class="arrow-inactive">Quicknav</a>
+ <a href="#" class="arrow-active">Quicknav</a>
+ </div>
+ </div>
+ <ul class="nav-x col-9">
+ <li class="design">
+ <a href="/design/index.html"
+ zh-tw-lang="設計"
+ zh-cn-lang="设计"
+ ru-lang="Проектирование"
+ ko-lang="디자인"
+ ja-lang="設計"
+ es-lang="Diseñar"
+ >Design</a></li>
+ <li class="develop"><a href="/develop/index.html"
+ zh-tw-lang="開發"
+ zh-cn-lang="开发"
+ ru-lang="Разработка"
+ ko-lang="개발"
+ ja-lang="開発"
+ es-lang="Desarrollar"
+ >Develop</a></li>
+ <li class="distribute last"><a href="/distribute/index.html"
+ zh-tw-lang="發佈"
+ zh-cn-lang="分发"
+ ru-lang="Распространение"
+ ko-lang="배포"
+ ja-lang="配布"
+ es-lang="Distribuir"
+ >Distribute</a></li>
+ </ul>
+
+ <!-- New Search -->
+ <div class="menu-container">
+ <div class="moremenu">
+ <div id="more-btn"></div>
+ </div>
+ <div class="morehover" id="moremenu">
+ <div class="top"></div>
+ <div class="mid">
+ <div class="header">Links</div>
+ <ul>
+ <li><a href="https://play.google.com/apps/publish/">Google Play Developer Console</a></li>
+ <li><a href="http://android-developers.blogspot.com/">Android Developers Blog</a></li>
+ <li><a href="/about/index.html">About Android</a></li>
+ </ul>
+ <div class="header">Android Sites</div>
+ <ul>
+ <li><a href="http://www.android.com">Android.com</a></li>
+ <li class="active"><a>Android Developers</a></li>
+ <li><a href="http://source.android.com">Android Open Source Project</a></li>
+ </ul>
+
+
+
+ <div class="header">Language</div>
+ <div id="language" class="locales">
+ <select name="language" onChange="changeLangPref(this.value, true)">
+ <option value="en">English</option>
+ <option value="es">Español</option>
+ <option value="ja">日本語</option>
+ <option value="ko">한국어</option>
+ <option value="ru">Русский</option>
+ <option value="zh-cn">中文 (中国)</option>
+ <option value="zh-tw">中文 (台灣)</option>
+ </select>
+ </div>
+ <script type="text/javascript">
+ <!--
+ loadLangPref();
+ //-->
+ </script>
+
+
+
+
+ <br class="clearfix" />
+ </div>
+ <div class="bottom"></div>
+ </div>
+ <div class="search" id="search-container">
+ <div class="search-inner">
+ <div id="search-btn"></div>
+ <div class="left"></div>
+ <form onsubmit="return submit_search()">
+ <input id="search_autocomplete" type="text" value="" autocomplete="off" name="q"
+onfocus="search_focus_changed(this, true)" onblur="search_focus_changed(this, false)"
+onkeydown="return search_changed(event, true, '/')"
+onkeyup="return search_changed(event, false, '/')" />
+ </form>
+ <div class="right"></div>
+ <a class="close hide">close</a>
+ <div class="left"></div>
+ <div class="right"></div>
+ </div>
+ </div>
+
+ <div class="search_filtered_wrapper reference">
+ <div class="suggest-card reference no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ </div>
+
+ <div class="search_filtered_wrapper docs">
+ <div class="suggest-card dummy no-display"> </div>
+ <div class="suggest-card develop no-display">
+ <ul class="search_filtered">
+ </ul>
+ <div class="child-card guides no-display">
+ </div>
+ <div class="child-card training no-display">
+ </div>
+ <div class="child-card samples no-display">
+ </div>
+ </div>
+ <div class="suggest-card design no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ <div class="suggest-card distribute no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ </div>
+
+ </div>
+ <!-- /New Search>
+
+
+ <!-- Expanded quicknav -->
+ <div id="quicknav" class="col-9">
+ <ul>
+ <li class="design">
+ <ul>
+ <li><a href="/design/index.html">Get Started</a></li>
+ <li><a href="/design/style/index.html">Style</a></li>
+ <li><a href="/design/patterns/index.html">Patterns</a></li>
+ <li><a href="/design/building-blocks/index.html">Building Blocks</a></li>
+ <li><a href="/design/downloads/index.html">Downloads</a></li>
+ <li><a href="/design/videos/index.html">Videos</a></li>
+ </ul>
+ </li>
+ <li class="develop">
+ <ul>
+ <li><a href="/training/index.html"
+ zh-tw-lang="訓練課程"
+ zh-cn-lang="培训"
+ ru-lang="Курсы"
+ ko-lang="교육"
+ ja-lang="トレーニング"
+ es-lang="Capacitación"
+ >Training</a></li>
+ <li><a href="/guide/index.html"
+ zh-tw-lang="API 指南"
+ zh-cn-lang="API 指南"
+ ru-lang="Руководства по API"
+ ko-lang="API 가이드"
+ ja-lang="API ガイド"
+ es-lang="Guías de la API"
+ >API Guides</a></li>
+ <li><a href="/reference/packages.html"
+ zh-tw-lang="參考資源"
+ zh-cn-lang="参考"
+ ru-lang="Справочник"
+ ko-lang="참조문서"
+ ja-lang="リファレンス"
+ es-lang="Referencia"
+ >Reference</a></li>
+ <li><a href="/tools/index.html"
+ zh-tw-lang="相關工具"
+ zh-cn-lang="工具"
+ ru-lang="Инструменты"
+ ko-lang="도구"
+ ja-lang="ツール"
+ es-lang="Herramientas"
+ >Tools</a>
+ <ul><li><a href="/sdk/index.html">Get the SDK</a></li></ul>
+ </li>
+ <li><a href="/google/index.html">Google Services</a>
+ </li>
+
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
+ </ul>
+ </li>
+ <li class="distribute last">
+ <ul>
+ <li><a href="/distribute/index.html">Google Play</a></li>
+ <li><a href="/distribute/googleplay/publish/index.html">Publishing</a></li>
+ <li><a href="/distribute/googleplay/promote/index.html">Promoting</a></li>
+ <li><a href="/distribute/googleplay/quality/index.html">App Quality</a></li>
+ <li><a href="/distribute/googleplay/spotlight/index.html">Spotlight</a></li>
+ <li><a href="/distribute/open.html">Open Distribution</a></li>
+ </ul>
+ </li>
+ </ul>
+ </div>
+ <!-- /Expanded quicknav -->
+ </div>
+ </div>
+ <!-- /Header -->
+
+
+ <div id="searchResults" class="wrap" style="display:none;">
+ <h2 id="searchTitle">Results</h2>
+ <div id="leftSearchControl" class="search-control">Loading...</div>
+ </div>
+
+
+
+ <!-- Secondary x-nav -->
+ <div id="nav-x">
+ <div class="wrap">
+ <ul class="nav-x col-9 develop" style="width:100%">
+ <li class="training"><a href="/training/index.html"
+ zh-tw-lang="訓練課程"
+ zh-cn-lang="培训"
+ ru-lang="Курсы"
+ ko-lang="교육"
+ ja-lang="トレーニング"
+ es-lang="Capacitación"
+ >Training</a></li>
+ <li class="guide"><a href="/guide/index.html"
+ zh-tw-lang="API 指南"
+ zh-cn-lang="API 指南"
+ ru-lang="Руководства по API"
+ ko-lang="API 가이드"
+ ja-lang="API ガイド"
+ es-lang="Guías de la API"
+ >API Guides</a></li>
+ <li class="reference"><a href="/reference/packages.html"
+ zh-tw-lang="參考資源"
+ zh-cn-lang="参考"
+ ru-lang="Справочник"
+ ko-lang="참조문서"
+ ja-lang="リファレンス"
+ es-lang="Referencia"
+ >Reference</a></li>
+ <li class="tools"><a href="/tools/index.html"
+ zh-tw-lang="相關工具"
+ zh-cn-lang="工具"
+ ru-lang="Инструменты"
+ ko-lang="도구"
+ ja-lang="ツール"
+ es-lang="Herramientas"
+ >Tools</a></li>
+ <li class="google"><a href="/google/index.html"
+ >Google Services</a>
+ </li>
+
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
+ </ul>
+ </div>
+
+ </div>
+ <!-- /Sendondary x-nav -->
+
+
+
+
+
+
+
+
+
+ <div class="wrap clearfix" id="body-content">
+ <div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
+ <div id="devdoc-nav" class="scroll-pane">
+<a class="totop" href="#top" data-g-event="left-nav-top">to top</a>
+
+
+
+<ul id="nav">
+
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/index.html">
+ <span class="en">Overview</span>
+ </a></div>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/games.html">
+ <span class="en">Games</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/location.html">
+ <span class="en">Location</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/plus.html">
+ <span class="en">Google+</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/maps.html">
+ <span class="en">Maps</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play-services/ads.html">
+ <span class="en">Ads</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play-services/id.html">
+ <span class="en">Advertising ID</span></a>
+ </li>
+ </ul>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/wallet.html">
+ <span class="en">Wallet</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/auth.html">
+ <span class="en">Authorization</span>
+ </a></div>
+ </li>
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play-services/index.html">
+ <span class="en">Google Play Services</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play-services/setup.html">
+ <span class="en">Setup</span></a>
+ </li>
+ <li id="gms-tree-list" class="nav-section">
+ <div class="nav-section-header">
+ <a href="/reference/gms-packages.html">
+ <span class="en">Reference</span>
+ </a>
+ <div>
+ </li>
+ </ul>
+ </li>
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/billing/index.html">
+ <span class="en">Google Play In-app Billing</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/billing/billing_overview.html">
+ <span class="en">Overview</span></a>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/api.html">
+ <span class="en">Version 3 API</span></a></div>
+ <ul>
+ <li><a href="/google/play/billing/billing_integrate.html">
+ <span class="en">Implementing the API</span></a></li>
+ <li><a href="/google/play/billing/billing_reference.html">
+ <span class="en">Reference</span></a></li>
+ </ul>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/v2/api.html">
+ <span class="en">Version 2 API</span></a></div>
+ <ul>
+ <li><a href="/google/play/billing/v2/billing_integrate.html">
+ <span class="en">Implementing the API</span></a></li>
+ <li><a href="/google/play/billing/v2/billing_subscriptions.html">
+ <span class="en">Subscriptions</span></a></li>
+ <li><a href="/google/play/billing/v2/billing_reference.html">
+ <span class="en">Reference</span></a></li>
+ </ul>
+ </li>
+ <li><a href="/google/play/billing/billing_subscriptions.html">
+ <span class="en">Subscriptions</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_best_practices.html">
+ <span class="en">Security and Design</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_testing.html">
+ <span class="en">Testing In-app Billing</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_admin.html">
+ <span class="en">Administering In-app Billing</span></a>
+ </li>
+ <li><a href="/google/play/billing/gp-purchase-status-api.html">
+ <span class="en">Purchase Status API</span></a>
+ </li>
+ <li><a href="/google/play/billing/versions.html">
+ <span class="en">Version Notes</span></a>
+ </li>
+ </ul>
+ </li>
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/gcm/index.html">
+ <span class="en">Google Cloud Messaging</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
+ <li><a href="/google/gcm/gs.html">
+ <span class="en">Getting Started</span></a>
+ </li>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
+ </li>
+ <li><a href="/google/gcm/notifications.html">
+ <span class="en">User Notifications</span></a>
+ </li>
+ <li><a href="/google/gcm/adv.html">
+ <span class="en">Advanced Topics</span></a>
+ </li>
+ <li><a href="/google/gcm/c2dm.html">
+ <span class="en">Migration</span></a>
+ </li>
+ <li id="gcm-tree-list" class="nav-section">
+ <div class="nav-section-header">
+ <a href="/reference/gcm-packages.html">
+ <span class="en">Reference</span>
+ </a>
+ <div>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/dist.html">
+ <span class="en">Google Play Distribution</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/filters.html">
+ <span class="en">Filters on Google Play</span></a>
+ </li>
+
+ <li><a href="/google/play/publishing/multiple-apks.html">
+ <span class="en">Multiple APK Support</span></a>
+ </li>
+ <li><a href="/google/play/expansion-files.html">
+ <span class="en">APK Expansion Files</span></a>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/licensing/index.html">
+ <span class="en">Application Licensing</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/licensing/overview.html">
+ <span class="en">Licensing Overview</span></a>
+ </li>
+ <li><a href="/google/play/licensing/setting-up.html">
+ <span class="en">Setting Up for Licensing</span></a>
+ </li>
+ <li><a href="/google/play/licensing/adding-licensing.html">
+ <span class="en">Adding Licensing to Your App</span></a>
+ </li>
+ <li><a href="/google/play/licensing/licensing-reference.html">
+ <span class="en">Licensing Reference</span></a>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/backup/index.html">
+ Android Backup Service</a>
+ </div>
+ <ul>
+ <li><a href="/google/backup/signup.html">
+ Register</a>
+ </li>
+ </ul>
+ </li>
+
+ </ul>
+
+</li>
+
+
+
+</ul>
+
+<script type="text/javascript">
+<!--
+ buildToggleLists();
+ changeNavLang(getLangPref());
+//-->
+</script>
+
+
+
+
+ </div>
+ <script type="text/javascript">
+ showGoogleRefTree();
+
+ </script>
+ </div> <!-- end side-nav -->
+ <script>
+ $(document).ready(function() {
+ scrollIntoView("devdoc-nav");
+ });
+ </script>
+
+
+
+
+
+
+<div class="col-12" id="doc-col">
+
+<div id="api-info-block">
+
+
+
+
+<div class="sum-details-links">
+
+</div><!-- end sum-details-links -->
+<div class="api-level">
+
+
+
+
+</div>
+</div><!-- end api-info-block -->
+
+
+<!-- ======== START OF CLASS DATA ======== -->
+
+<div id="jd-header">
+ public
+ static
+
+
+ interface
+<h1 itemprop="name">DriveApi.OnNewContentsCallback</h1>
+
+
+
+
+
+
+
+
+</div><!-- end header -->
+
+<div id="naMessage"></div>
+
+<div id="jd-content" class="api apilevel-">
+<table class="jd-inheritance-table">
+
+
+ <tr>
+
+ <td colspan="1" class="jd-inheritance-class-cell">com.google.android.gms.drive.DriveApi.OnNewContentsCallback</td>
+ </tr>
+
+
+</table>
+
+
+
+
+
+
+
+<div class="jd-descr">
+
+
+<h2>Class Overview</h2>
+<p class="caution">
+ <strong>Note:</strong> The Google Drive Android API is currently in <strong>developer
+ preview</strong>. Applications compiled using this version of the API will
+ continue to operate on devices using future versions of Google Play services;
+ however, changes to the API are expected in future releases.
+</p>
+<p itemprop="articleBody">A callback that provides the result for a OpenContents request.
+</p>
+
+
+
+
+
+</div><!-- jd-descr -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<div class="jd-descr">
+
+
+<h2>Summary</h2>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
+
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/DriveApi.OnNewContentsCallback.html#onNewContents(com.google.android.gms.drive.DriveApi.ContentsResult)">onNewContents</a></span>(<a href="/reference/com/google/android/gms/drive/DriveApi.ContentsResult.html">DriveApi.ContentsResult</a> result)</nobr>
+
+ </td></tr>
+
+
+
+</table>
+
+
+
+
+
+
+
+</div><!-- jd-descr (summary) -->
+
+<!-- Details -->
+
+
+
+
+
+
+
+
+<!-- XML Attributes -->
+
+
+<!-- Enum Values -->
+
+
+<!-- Constants -->
+
+
+<!-- Fields -->
+
+
+<!-- Public ctors -->
+
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<!-- Protected ctors -->
+
+
+
+<!-- ========= METHOD DETAIL ======== -->
+<!-- Public methdos -->
+
+<h2>Public Methods</h2>
+
+
+
+<A NAME="onNewContents(com.google.android.gms.drive.DriveApi.ContentsResult)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+ abstract
+
+ void
+ </span>
+ <span class="sympad">onNewContents</span>
+ <span class="normal">(<a href="/reference/com/google/android/gms/drive/DriveApi.ContentsResult.html">DriveApi.ContentsResult</a> result)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+ </div>
+</div>
+
+
+
+
+
+<!-- ========= METHOD DETAIL ======== -->
+
+
+
+<!-- ========= END OF CLASS DATA ========= -->
+<A NAME="navbar_top"></A>
+
+<div id="footer" class="wrap" >
+
+
+ <div id="copyright">
+
+ Except as noted, this content is licensed under <a
+ href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.
+ For details and restrictions, see the <a href="/license.html">
+ Content License</a>.
+ </div>
+ <div id="build_info">
+
+<script src="/timestamp.js" type="text/javascript"></script>
+<script>document.write(BUILD_TIMESTAMP)</script>
+
+ </div>
+
+
+ <div id="footerlinks">
+
+ <p>
+ <a href="/about/index.html">About Android</a> |
+ <a href="/legal.html">Legal</a> |
+ <a href="/support.html">Support</a>
+ </p>
+ </div>
+
+</div> <!-- end footer -->
+</div> <!-- jd-content -->
+
+</div><!-- end doc-content -->
+
+</div> <!-- end body-content -->
+
+
+
+
+
+
+</body>
+</html>
diff --git a/docs/html/reference/com/google/android/gms/drive/DriveApi.OnSyncFinishCallback.html b/docs/html/reference/com/google/android/gms/drive/DriveApi.OnSyncFinishCallback.html
new file mode 100644
index 0000000..1029860
--- /dev/null
+++ b/docs/html/reference/com/google/android/gms/drive/DriveApi.OnSyncFinishCallback.html
@@ -0,0 +1,924 @@
+<!DOCTYPE html>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<html>
+<head>
+
+
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<meta name="viewport" content="width=device-width" />
+
+<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
+<title>DriveApi.OnSyncFinishCallback | Android Developers</title>
+
+<!-- STYLESHEETS -->
+<link rel="stylesheet"
+href="//fonts.googleapis.com/css?family=Roboto:regular,medium,thin,italic,mediumitalic,bold" title="roboto">
+<link href="/assets/css/default.css" rel="stylesheet" type="text/css">
+
+
+
+<!-- JAVASCRIPT -->
+<script src="//www.google.com/jsapi" type="text/javascript"></script>
+<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
+<script type="text/javascript">
+ var toRoot = "/";
+ var metaTags = [];
+ var devsite = false;
+</script>
+<script src="/assets/js/docs.js" type="text/javascript"></script>
+
+<script type="text/javascript">
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-5831155-1']);
+ _gaq.push(['_trackPageview']);
+
+ (function() {
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+ })();
+</script>
+</head>
+<body class="gc-documentation google
+ develop" itemscope itemtype="http://schema.org/Article">
+ <div id="doc-api-level" class="" style="display:none"></div>
+ <a name="top"></a>
+
+<a name="top"></a>
+
+ <!-- Header -->
+ <div id="header">
+ <div class="wrap" id="header-wrap">
+ <div class="col-3 logo">
+ <a href="/index.html">
+ <img src="/assets/images/dac_logo.png" width="123" height="25" alt="Android Developers" />
+ </a>
+ <div class="btn-quicknav" id="btn-quicknav">
+ <a href="#" class="arrow-inactive">Quicknav</a>
+ <a href="#" class="arrow-active">Quicknav</a>
+ </div>
+ </div>
+ <ul class="nav-x col-9">
+ <li class="design">
+ <a href="/design/index.html"
+ zh-tw-lang="設計"
+ zh-cn-lang="设计"
+ ru-lang="Проектирование"
+ ko-lang="디자인"
+ ja-lang="設計"
+ es-lang="Diseñar"
+ >Design</a></li>
+ <li class="develop"><a href="/develop/index.html"
+ zh-tw-lang="開發"
+ zh-cn-lang="开发"
+ ru-lang="Разработка"
+ ko-lang="개발"
+ ja-lang="開発"
+ es-lang="Desarrollar"
+ >Develop</a></li>
+ <li class="distribute last"><a href="/distribute/index.html"
+ zh-tw-lang="發佈"
+ zh-cn-lang="分发"
+ ru-lang="Распространение"
+ ko-lang="배포"
+ ja-lang="配布"
+ es-lang="Distribuir"
+ >Distribute</a></li>
+ </ul>
+
+ <!-- New Search -->
+ <div class="menu-container">
+ <div class="moremenu">
+ <div id="more-btn"></div>
+ </div>
+ <div class="morehover" id="moremenu">
+ <div class="top"></div>
+ <div class="mid">
+ <div class="header">Links</div>
+ <ul>
+ <li><a href="https://play.google.com/apps/publish/">Google Play Developer Console</a></li>
+ <li><a href="http://android-developers.blogspot.com/">Android Developers Blog</a></li>
+ <li><a href="/about/index.html">About Android</a></li>
+ </ul>
+ <div class="header">Android Sites</div>
+ <ul>
+ <li><a href="http://www.android.com">Android.com</a></li>
+ <li class="active"><a>Android Developers</a></li>
+ <li><a href="http://source.android.com">Android Open Source Project</a></li>
+ </ul>
+
+
+
+ <div class="header">Language</div>
+ <div id="language" class="locales">
+ <select name="language" onChange="changeLangPref(this.value, true)">
+ <option value="en">English</option>
+ <option value="es">Español</option>
+ <option value="ja">日本語</option>
+ <option value="ko">한국어</option>
+ <option value="ru">Русский</option>
+ <option value="zh-cn">中文 (中国)</option>
+ <option value="zh-tw">中文 (台灣)</option>
+ </select>
+ </div>
+ <script type="text/javascript">
+ <!--
+ loadLangPref();
+ //-->
+ </script>
+
+
+
+
+ <br class="clearfix" />
+ </div>
+ <div class="bottom"></div>
+ </div>
+ <div class="search" id="search-container">
+ <div class="search-inner">
+ <div id="search-btn"></div>
+ <div class="left"></div>
+ <form onsubmit="return submit_search()">
+ <input id="search_autocomplete" type="text" value="" autocomplete="off" name="q"
+onfocus="search_focus_changed(this, true)" onblur="search_focus_changed(this, false)"
+onkeydown="return search_changed(event, true, '/')"
+onkeyup="return search_changed(event, false, '/')" />
+ </form>
+ <div class="right"></div>
+ <a class="close hide">close</a>
+ <div class="left"></div>
+ <div class="right"></div>
+ </div>
+ </div>
+
+ <div class="search_filtered_wrapper reference">
+ <div class="suggest-card reference no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ </div>
+
+ <div class="search_filtered_wrapper docs">
+ <div class="suggest-card dummy no-display"> </div>
+ <div class="suggest-card develop no-display">
+ <ul class="search_filtered">
+ </ul>
+ <div class="child-card guides no-display">
+ </div>
+ <div class="child-card training no-display">
+ </div>
+ <div class="child-card samples no-display">
+ </div>
+ </div>
+ <div class="suggest-card design no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ <div class="suggest-card distribute no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ </div>
+
+ </div>
+ <!-- /New Search>
+
+
+ <!-- Expanded quicknav -->
+ <div id="quicknav" class="col-9">
+ <ul>
+ <li class="design">
+ <ul>
+ <li><a href="/design/index.html">Get Started</a></li>
+ <li><a href="/design/style/index.html">Style</a></li>
+ <li><a href="/design/patterns/index.html">Patterns</a></li>
+ <li><a href="/design/building-blocks/index.html">Building Blocks</a></li>
+ <li><a href="/design/downloads/index.html">Downloads</a></li>
+ <li><a href="/design/videos/index.html">Videos</a></li>
+ </ul>
+ </li>
+ <li class="develop">
+ <ul>
+ <li><a href="/training/index.html"
+ zh-tw-lang="訓練課程"
+ zh-cn-lang="培训"
+ ru-lang="Курсы"
+ ko-lang="교육"
+ ja-lang="トレーニング"
+ es-lang="Capacitación"
+ >Training</a></li>
+ <li><a href="/guide/index.html"
+ zh-tw-lang="API 指南"
+ zh-cn-lang="API 指南"
+ ru-lang="Руководства по API"
+ ko-lang="API 가이드"
+ ja-lang="API ガイド"
+ es-lang="Guías de la API"
+ >API Guides</a></li>
+ <li><a href="/reference/packages.html"
+ zh-tw-lang="參考資源"
+ zh-cn-lang="参考"
+ ru-lang="Справочник"
+ ko-lang="참조문서"
+ ja-lang="リファレンス"
+ es-lang="Referencia"
+ >Reference</a></li>
+ <li><a href="/tools/index.html"
+ zh-tw-lang="相關工具"
+ zh-cn-lang="工具"
+ ru-lang="Инструменты"
+ ko-lang="도구"
+ ja-lang="ツール"
+ es-lang="Herramientas"
+ >Tools</a>
+ <ul><li><a href="/sdk/index.html">Get the SDK</a></li></ul>
+ </li>
+ <li><a href="/google/index.html">Google Services</a>
+ </li>
+
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
+ </ul>
+ </li>
+ <li class="distribute last">
+ <ul>
+ <li><a href="/distribute/index.html">Google Play</a></li>
+ <li><a href="/distribute/googleplay/publish/index.html">Publishing</a></li>
+ <li><a href="/distribute/googleplay/promote/index.html">Promoting</a></li>
+ <li><a href="/distribute/googleplay/quality/index.html">App Quality</a></li>
+ <li><a href="/distribute/googleplay/spotlight/index.html">Spotlight</a></li>
+ <li><a href="/distribute/open.html">Open Distribution</a></li>
+ </ul>
+ </li>
+ </ul>
+ </div>
+ <!-- /Expanded quicknav -->
+ </div>
+ </div>
+ <!-- /Header -->
+
+
+ <div id="searchResults" class="wrap" style="display:none;">
+ <h2 id="searchTitle">Results</h2>
+ <div id="leftSearchControl" class="search-control">Loading...</div>
+ </div>
+
+
+
+ <!-- Secondary x-nav -->
+ <div id="nav-x">
+ <div class="wrap">
+ <ul class="nav-x col-9 develop" style="width:100%">
+ <li class="training"><a href="/training/index.html"
+ zh-tw-lang="訓練課程"
+ zh-cn-lang="培训"
+ ru-lang="Курсы"
+ ko-lang="교육"
+ ja-lang="トレーニング"
+ es-lang="Capacitación"
+ >Training</a></li>
+ <li class="guide"><a href="/guide/index.html"
+ zh-tw-lang="API 指南"
+ zh-cn-lang="API 指南"
+ ru-lang="Руководства по API"
+ ko-lang="API 가이드"
+ ja-lang="API ガイド"
+ es-lang="Guías de la API"
+ >API Guides</a></li>
+ <li class="reference"><a href="/reference/packages.html"
+ zh-tw-lang="參考資源"
+ zh-cn-lang="参考"
+ ru-lang="Справочник"
+ ko-lang="참조문서"
+ ja-lang="リファレンス"
+ es-lang="Referencia"
+ >Reference</a></li>
+ <li class="tools"><a href="/tools/index.html"
+ zh-tw-lang="相關工具"
+ zh-cn-lang="工具"
+ ru-lang="Инструменты"
+ ko-lang="도구"
+ ja-lang="ツール"
+ es-lang="Herramientas"
+ >Tools</a></li>
+ <li class="google"><a href="/google/index.html"
+ >Google Services</a>
+ </li>
+
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
+ </ul>
+ </div>
+
+ </div>
+ <!-- /Sendondary x-nav -->
+
+
+
+
+
+
+
+
+
+ <div class="wrap clearfix" id="body-content">
+ <div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
+ <div id="devdoc-nav" class="scroll-pane">
+<a class="totop" href="#top" data-g-event="left-nav-top">to top</a>
+
+
+
+<ul id="nav">
+
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/index.html">
+ <span class="en">Overview</span>
+ </a></div>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/games.html">
+ <span class="en">Games</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/location.html">
+ <span class="en">Location</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/plus.html">
+ <span class="en">Google+</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/maps.html">
+ <span class="en">Maps</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play-services/ads.html">
+ <span class="en">Ads</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play-services/id.html">
+ <span class="en">Advertising ID</span></a>
+ </li>
+ </ul>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/wallet.html">
+ <span class="en">Wallet</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/auth.html">
+ <span class="en">Authorization</span>
+ </a></div>
+ </li>
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play-services/index.html">
+ <span class="en">Google Play Services</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play-services/setup.html">
+ <span class="en">Setup</span></a>
+ </li>
+ <li id="gms-tree-list" class="nav-section">
+ <div class="nav-section-header">
+ <a href="/reference/gms-packages.html">
+ <span class="en">Reference</span>
+ </a>
+ <div>
+ </li>
+ </ul>
+ </li>
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/billing/index.html">
+ <span class="en">Google Play In-app Billing</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/billing/billing_overview.html">
+ <span class="en">Overview</span></a>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/api.html">
+ <span class="en">Version 3 API</span></a></div>
+ <ul>
+ <li><a href="/google/play/billing/billing_integrate.html">
+ <span class="en">Implementing the API</span></a></li>
+ <li><a href="/google/play/billing/billing_reference.html">
+ <span class="en">Reference</span></a></li>
+ </ul>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/v2/api.html">
+ <span class="en">Version 2 API</span></a></div>
+ <ul>
+ <li><a href="/google/play/billing/v2/billing_integrate.html">
+ <span class="en">Implementing the API</span></a></li>
+ <li><a href="/google/play/billing/v2/billing_subscriptions.html">
+ <span class="en">Subscriptions</span></a></li>
+ <li><a href="/google/play/billing/v2/billing_reference.html">
+ <span class="en">Reference</span></a></li>
+ </ul>
+ </li>
+ <li><a href="/google/play/billing/billing_subscriptions.html">
+ <span class="en">Subscriptions</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_best_practices.html">
+ <span class="en">Security and Design</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_testing.html">
+ <span class="en">Testing In-app Billing</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_admin.html">
+ <span class="en">Administering In-app Billing</span></a>
+ </li>
+ <li><a href="/google/play/billing/gp-purchase-status-api.html">
+ <span class="en">Purchase Status API</span></a>
+ </li>
+ <li><a href="/google/play/billing/versions.html">
+ <span class="en">Version Notes</span></a>
+ </li>
+ </ul>
+ </li>
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/gcm/index.html">
+ <span class="en">Google Cloud Messaging</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
+ <li><a href="/google/gcm/gs.html">
+ <span class="en">Getting Started</span></a>
+ </li>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
+ </li>
+ <li><a href="/google/gcm/notifications.html">
+ <span class="en">User Notifications</span></a>
+ </li>
+ <li><a href="/google/gcm/adv.html">
+ <span class="en">Advanced Topics</span></a>
+ </li>
+ <li><a href="/google/gcm/c2dm.html">
+ <span class="en">Migration</span></a>
+ </li>
+ <li id="gcm-tree-list" class="nav-section">
+ <div class="nav-section-header">
+ <a href="/reference/gcm-packages.html">
+ <span class="en">Reference</span>
+ </a>
+ <div>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/dist.html">
+ <span class="en">Google Play Distribution</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/filters.html">
+ <span class="en">Filters on Google Play</span></a>
+ </li>
+
+ <li><a href="/google/play/publishing/multiple-apks.html">
+ <span class="en">Multiple APK Support</span></a>
+ </li>
+ <li><a href="/google/play/expansion-files.html">
+ <span class="en">APK Expansion Files</span></a>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/licensing/index.html">
+ <span class="en">Application Licensing</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/licensing/overview.html">
+ <span class="en">Licensing Overview</span></a>
+ </li>
+ <li><a href="/google/play/licensing/setting-up.html">
+ <span class="en">Setting Up for Licensing</span></a>
+ </li>
+ <li><a href="/google/play/licensing/adding-licensing.html">
+ <span class="en">Adding Licensing to Your App</span></a>
+ </li>
+ <li><a href="/google/play/licensing/licensing-reference.html">
+ <span class="en">Licensing Reference</span></a>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/backup/index.html">
+ Android Backup Service</a>
+ </div>
+ <ul>
+ <li><a href="/google/backup/signup.html">
+ Register</a>
+ </li>
+ </ul>
+ </li>
+
+ </ul>
+
+</li>
+
+
+
+</ul>
+
+<script type="text/javascript">
+<!--
+ buildToggleLists();
+ changeNavLang(getLangPref());
+//-->
+</script>
+
+
+
+
+ </div>
+ <script type="text/javascript">
+ showGoogleRefTree();
+
+ </script>
+ </div> <!-- end side-nav -->
+ <script>
+ $(document).ready(function() {
+ scrollIntoView("devdoc-nav");
+ });
+ </script>
+
+
+
+
+
+
+<div class="col-12" id="doc-col">
+
+<div id="api-info-block">
+
+
+
+
+<div class="sum-details-links">
+
+</div><!-- end sum-details-links -->
+<div class="api-level">
+
+
+
+
+</div>
+</div><!-- end api-info-block -->
+
+
+<!-- ======== START OF CLASS DATA ======== -->
+
+<div id="jd-header">
+ public
+ static
+
+
+ interface
+<h1 itemprop="name">DriveApi.OnSyncFinishCallback</h1>
+
+
+
+
+
+
+
+
+</div><!-- end header -->
+
+<div id="naMessage"></div>
+
+<div id="jd-content" class="api apilevel-">
+<table class="jd-inheritance-table">
+
+
+ <tr>
+
+ <td colspan="1" class="jd-inheritance-class-cell">com.google.android.gms.drive.DriveApi.OnSyncFinishCallback</td>
+ </tr>
+
+
+</table>
+
+
+
+
+
+
+
+<div class="jd-descr">
+
+
+<h2>Class Overview</h2>
+<p class="caution">
+ <strong>Note:</strong> The Google Drive Android API is currently in <strong>developer
+ preview</strong>. Applications compiled using this version of the API will
+ continue to operate on devices using future versions of Google Play services;
+ however, changes to the API are expected in future releases.
+</p>
+<p itemprop="articleBody">A callback that provides the result for a <code><a href="/reference/com/google/android/gms/drive/DriveApi.html#requestSync(com.google.android.gms.common.api.GoogleApiClient)">requestSync(GoogleApiClient)</a></code> request.
+</p>
+
+
+
+
+
+</div><!-- jd-descr -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<div class="jd-descr">
+
+
+<h2>Summary</h2>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
+
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/DriveApi.OnSyncFinishCallback.html#onSyncFinish(com.google.android.gms.common.api.Status)">onSyncFinish</a></span>(<a href="/reference/com/google/android/gms/common/api/Status.html">Status</a> result)</nobr>
+
+ </td></tr>
+
+
+
+</table>
+
+
+
+
+
+
+
+</div><!-- jd-descr (summary) -->
+
+<!-- Details -->
+
+
+
+
+
+
+
+
+<!-- XML Attributes -->
+
+
+<!-- Enum Values -->
+
+
+<!-- Constants -->
+
+
+<!-- Fields -->
+
+
+<!-- Public ctors -->
+
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<!-- Protected ctors -->
+
+
+
+<!-- ========= METHOD DETAIL ======== -->
+<!-- Public methdos -->
+
+<h2>Public Methods</h2>
+
+
+
+<A NAME="onSyncFinish(com.google.android.gms.common.api.Status)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+ abstract
+
+ void
+ </span>
+ <span class="sympad">onSyncFinish</span>
+ <span class="normal">(<a href="/reference/com/google/android/gms/common/api/Status.html">Status</a> result)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+ </div>
+</div>
+
+
+
+
+
+<!-- ========= METHOD DETAIL ======== -->
+
+
+
+<!-- ========= END OF CLASS DATA ========= -->
+<A NAME="navbar_top"></A>
+
+<div id="footer" class="wrap" >
+
+
+ <div id="copyright">
+
+ Except as noted, this content is licensed under <a
+ href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.
+ For details and restrictions, see the <a href="/license.html">
+ Content License</a>.
+ </div>
+ <div id="build_info">
+
+<script src="/timestamp.js" type="text/javascript"></script>
+<script>document.write(BUILD_TIMESTAMP)</script>
+
+ </div>
+
+
+ <div id="footerlinks">
+
+ <p>
+ <a href="/about/index.html">About Android</a> |
+ <a href="/legal.html">Legal</a> |
+ <a href="/support.html">Support</a>
+ </p>
+ </div>
+
+</div> <!-- end footer -->
+</div> <!-- jd-content -->
+
+</div><!-- end doc-content -->
+
+</div> <!-- end body-content -->
+
+
+
+
+
+
+</body>
+</html>
diff --git a/docs/html/reference/com/google/android/gms/drive/DriveApi.html b/docs/html/reference/com/google/android/gms/drive/DriveApi.html
new file mode 100644
index 0000000..2301758
--- /dev/null
+++ b/docs/html/reference/com/google/android/gms/drive/DriveApi.html
@@ -0,0 +1,1504 @@
+<!DOCTYPE html>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<html>
+<head>
+
+
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<meta name="viewport" content="width=device-width" />
+
+<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
+<title>DriveApi | Android Developers</title>
+
+<!-- STYLESHEETS -->
+<link rel="stylesheet"
+href="//fonts.googleapis.com/css?family=Roboto:regular,medium,thin,italic,mediumitalic,bold" title="roboto">
+<link href="/assets/css/default.css" rel="stylesheet" type="text/css">
+
+
+
+<!-- JAVASCRIPT -->
+<script src="//www.google.com/jsapi" type="text/javascript"></script>
+<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
+<script type="text/javascript">
+ var toRoot = "/";
+ var metaTags = [];
+ var devsite = false;
+</script>
+<script src="/assets/js/docs.js" type="text/javascript"></script>
+
+<script type="text/javascript">
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-5831155-1']);
+ _gaq.push(['_trackPageview']);
+
+ (function() {
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+ })();
+</script>
+</head>
+<body class="gc-documentation google
+ develop" itemscope itemtype="http://schema.org/Article">
+ <div id="doc-api-level" class="" style="display:none"></div>
+ <a name="top"></a>
+
+<a name="top"></a>
+
+ <!-- Header -->
+ <div id="header">
+ <div class="wrap" id="header-wrap">
+ <div class="col-3 logo">
+ <a href="/index.html">
+ <img src="/assets/images/dac_logo.png" width="123" height="25" alt="Android Developers" />
+ </a>
+ <div class="btn-quicknav" id="btn-quicknav">
+ <a href="#" class="arrow-inactive">Quicknav</a>
+ <a href="#" class="arrow-active">Quicknav</a>
+ </div>
+ </div>
+ <ul class="nav-x col-9">
+ <li class="design">
+ <a href="/design/index.html"
+ zh-tw-lang="設計"
+ zh-cn-lang="设计"
+ ru-lang="Проектирование"
+ ko-lang="디자인"
+ ja-lang="設計"
+ es-lang="Diseñar"
+ >Design</a></li>
+ <li class="develop"><a href="/develop/index.html"
+ zh-tw-lang="開發"
+ zh-cn-lang="开发"
+ ru-lang="Разработка"
+ ko-lang="개발"
+ ja-lang="開発"
+ es-lang="Desarrollar"
+ >Develop</a></li>
+ <li class="distribute last"><a href="/distribute/index.html"
+ zh-tw-lang="發佈"
+ zh-cn-lang="分发"
+ ru-lang="Распространение"
+ ko-lang="배포"
+ ja-lang="配布"
+ es-lang="Distribuir"
+ >Distribute</a></li>
+ </ul>
+
+ <!-- New Search -->
+ <div class="menu-container">
+ <div class="moremenu">
+ <div id="more-btn"></div>
+ </div>
+ <div class="morehover" id="moremenu">
+ <div class="top"></div>
+ <div class="mid">
+ <div class="header">Links</div>
+ <ul>
+ <li><a href="https://play.google.com/apps/publish/">Google Play Developer Console</a></li>
+ <li><a href="http://android-developers.blogspot.com/">Android Developers Blog</a></li>
+ <li><a href="/about/index.html">About Android</a></li>
+ </ul>
+ <div class="header">Android Sites</div>
+ <ul>
+ <li><a href="http://www.android.com">Android.com</a></li>
+ <li class="active"><a>Android Developers</a></li>
+ <li><a href="http://source.android.com">Android Open Source Project</a></li>
+ </ul>
+
+
+
+ <div class="header">Language</div>
+ <div id="language" class="locales">
+ <select name="language" onChange="changeLangPref(this.value, true)">
+ <option value="en">English</option>
+ <option value="es">Español</option>
+ <option value="ja">日本語</option>
+ <option value="ko">한국어</option>
+ <option value="ru">Русский</option>
+ <option value="zh-cn">中文 (中国)</option>
+ <option value="zh-tw">中文 (台灣)</option>
+ </select>
+ </div>
+ <script type="text/javascript">
+ <!--
+ loadLangPref();
+ //-->
+ </script>
+
+
+
+
+ <br class="clearfix" />
+ </div>
+ <div class="bottom"></div>
+ </div>
+ <div class="search" id="search-container">
+ <div class="search-inner">
+ <div id="search-btn"></div>
+ <div class="left"></div>
+ <form onsubmit="return submit_search()">
+ <input id="search_autocomplete" type="text" value="" autocomplete="off" name="q"
+onfocus="search_focus_changed(this, true)" onblur="search_focus_changed(this, false)"
+onkeydown="return search_changed(event, true, '/')"
+onkeyup="return search_changed(event, false, '/')" />
+ </form>
+ <div class="right"></div>
+ <a class="close hide">close</a>
+ <div class="left"></div>
+ <div class="right"></div>
+ </div>
+ </div>
+
+ <div class="search_filtered_wrapper reference">
+ <div class="suggest-card reference no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ </div>
+
+ <div class="search_filtered_wrapper docs">
+ <div class="suggest-card dummy no-display"> </div>
+ <div class="suggest-card develop no-display">
+ <ul class="search_filtered">
+ </ul>
+ <div class="child-card guides no-display">
+ </div>
+ <div class="child-card training no-display">
+ </div>
+ <div class="child-card samples no-display">
+ </div>
+ </div>
+ <div class="suggest-card design no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ <div class="suggest-card distribute no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ </div>
+
+ </div>
+ <!-- /New Search>
+
+
+ <!-- Expanded quicknav -->
+ <div id="quicknav" class="col-9">
+ <ul>
+ <li class="design">
+ <ul>
+ <li><a href="/design/index.html">Get Started</a></li>
+ <li><a href="/design/style/index.html">Style</a></li>
+ <li><a href="/design/patterns/index.html">Patterns</a></li>
+ <li><a href="/design/building-blocks/index.html">Building Blocks</a></li>
+ <li><a href="/design/downloads/index.html">Downloads</a></li>
+ <li><a href="/design/videos/index.html">Videos</a></li>
+ </ul>
+ </li>
+ <li class="develop">
+ <ul>
+ <li><a href="/training/index.html"
+ zh-tw-lang="訓練課程"
+ zh-cn-lang="培训"
+ ru-lang="Курсы"
+ ko-lang="교육"
+ ja-lang="トレーニング"
+ es-lang="Capacitación"
+ >Training</a></li>
+ <li><a href="/guide/index.html"
+ zh-tw-lang="API 指南"
+ zh-cn-lang="API 指南"
+ ru-lang="Руководства по API"
+ ko-lang="API 가이드"
+ ja-lang="API ガイド"
+ es-lang="Guías de la API"
+ >API Guides</a></li>
+ <li><a href="/reference/packages.html"
+ zh-tw-lang="參考資源"
+ zh-cn-lang="参考"
+ ru-lang="Справочник"
+ ko-lang="참조문서"
+ ja-lang="リファレンス"
+ es-lang="Referencia"
+ >Reference</a></li>
+ <li><a href="/tools/index.html"
+ zh-tw-lang="相關工具"
+ zh-cn-lang="工具"
+ ru-lang="Инструменты"
+ ko-lang="도구"
+ ja-lang="ツール"
+ es-lang="Herramientas"
+ >Tools</a>
+ <ul><li><a href="/sdk/index.html">Get the SDK</a></li></ul>
+ </li>
+ <li><a href="/google/index.html">Google Services</a>
+ </li>
+
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
+ </ul>
+ </li>
+ <li class="distribute last">
+ <ul>
+ <li><a href="/distribute/index.html">Google Play</a></li>
+ <li><a href="/distribute/googleplay/publish/index.html">Publishing</a></li>
+ <li><a href="/distribute/googleplay/promote/index.html">Promoting</a></li>
+ <li><a href="/distribute/googleplay/quality/index.html">App Quality</a></li>
+ <li><a href="/distribute/googleplay/spotlight/index.html">Spotlight</a></li>
+ <li><a href="/distribute/open.html">Open Distribution</a></li>
+ </ul>
+ </li>
+ </ul>
+ </div>
+ <!-- /Expanded quicknav -->
+ </div>
+ </div>
+ <!-- /Header -->
+
+
+ <div id="searchResults" class="wrap" style="display:none;">
+ <h2 id="searchTitle">Results</h2>
+ <div id="leftSearchControl" class="search-control">Loading...</div>
+ </div>
+
+
+
+ <!-- Secondary x-nav -->
+ <div id="nav-x">
+ <div class="wrap">
+ <ul class="nav-x col-9 develop" style="width:100%">
+ <li class="training"><a href="/training/index.html"
+ zh-tw-lang="訓練課程"
+ zh-cn-lang="培训"
+ ru-lang="Курсы"
+ ko-lang="교육"
+ ja-lang="トレーニング"
+ es-lang="Capacitación"
+ >Training</a></li>
+ <li class="guide"><a href="/guide/index.html"
+ zh-tw-lang="API 指南"
+ zh-cn-lang="API 指南"
+ ru-lang="Руководства по API"
+ ko-lang="API 가이드"
+ ja-lang="API ガイド"
+ es-lang="Guías de la API"
+ >API Guides</a></li>
+ <li class="reference"><a href="/reference/packages.html"
+ zh-tw-lang="參考資源"
+ zh-cn-lang="参考"
+ ru-lang="Справочник"
+ ko-lang="참조문서"
+ ja-lang="リファレンス"
+ es-lang="Referencia"
+ >Reference</a></li>
+ <li class="tools"><a href="/tools/index.html"
+ zh-tw-lang="相關工具"
+ zh-cn-lang="工具"
+ ru-lang="Инструменты"
+ ko-lang="도구"
+ ja-lang="ツール"
+ es-lang="Herramientas"
+ >Tools</a></li>
+ <li class="google"><a href="/google/index.html"
+ >Google Services</a>
+ </li>
+
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
+ </ul>
+ </div>
+
+ </div>
+ <!-- /Sendondary x-nav -->
+
+
+
+
+
+
+
+
+
+ <div class="wrap clearfix" id="body-content">
+ <div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
+ <div id="devdoc-nav" class="scroll-pane">
+<a class="totop" href="#top" data-g-event="left-nav-top">to top</a>
+
+
+
+<ul id="nav">
+
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/index.html">
+ <span class="en">Overview</span>
+ </a></div>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/games.html">
+ <span class="en">Games</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/location.html">
+ <span class="en">Location</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/plus.html">
+ <span class="en">Google+</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/maps.html">
+ <span class="en">Maps</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play-services/ads.html">
+ <span class="en">Ads</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play-services/id.html">
+ <span class="en">Advertising ID</span></a>
+ </li>
+ </ul>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/wallet.html">
+ <span class="en">Wallet</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/auth.html">
+ <span class="en">Authorization</span>
+ </a></div>
+ </li>
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play-services/index.html">
+ <span class="en">Google Play Services</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play-services/setup.html">
+ <span class="en">Setup</span></a>
+ </li>
+ <li id="gms-tree-list" class="nav-section">
+ <div class="nav-section-header">
+ <a href="/reference/gms-packages.html">
+ <span class="en">Reference</span>
+ </a>
+ <div>
+ </li>
+ </ul>
+ </li>
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/billing/index.html">
+ <span class="en">Google Play In-app Billing</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/billing/billing_overview.html">
+ <span class="en">Overview</span></a>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/api.html">
+ <span class="en">Version 3 API</span></a></div>
+ <ul>
+ <li><a href="/google/play/billing/billing_integrate.html">
+ <span class="en">Implementing the API</span></a></li>
+ <li><a href="/google/play/billing/billing_reference.html">
+ <span class="en">Reference</span></a></li>
+ </ul>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/v2/api.html">
+ <span class="en">Version 2 API</span></a></div>
+ <ul>
+ <li><a href="/google/play/billing/v2/billing_integrate.html">
+ <span class="en">Implementing the API</span></a></li>
+ <li><a href="/google/play/billing/v2/billing_subscriptions.html">
+ <span class="en">Subscriptions</span></a></li>
+ <li><a href="/google/play/billing/v2/billing_reference.html">
+ <span class="en">Reference</span></a></li>
+ </ul>
+ </li>
+ <li><a href="/google/play/billing/billing_subscriptions.html">
+ <span class="en">Subscriptions</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_best_practices.html">
+ <span class="en">Security and Design</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_testing.html">
+ <span class="en">Testing In-app Billing</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_admin.html">
+ <span class="en">Administering In-app Billing</span></a>
+ </li>
+ <li><a href="/google/play/billing/gp-purchase-status-api.html">
+ <span class="en">Purchase Status API</span></a>
+ </li>
+ <li><a href="/google/play/billing/versions.html">
+ <span class="en">Version Notes</span></a>
+ </li>
+ </ul>
+ </li>
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/gcm/index.html">
+ <span class="en">Google Cloud Messaging</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
+ <li><a href="/google/gcm/gs.html">
+ <span class="en">Getting Started</span></a>
+ </li>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
+ </li>
+ <li><a href="/google/gcm/notifications.html">
+ <span class="en">User Notifications</span></a>
+ </li>
+ <li><a href="/google/gcm/adv.html">
+ <span class="en">Advanced Topics</span></a>
+ </li>
+ <li><a href="/google/gcm/c2dm.html">
+ <span class="en">Migration</span></a>
+ </li>
+ <li id="gcm-tree-list" class="nav-section">
+ <div class="nav-section-header">
+ <a href="/reference/gcm-packages.html">
+ <span class="en">Reference</span>
+ </a>
+ <div>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/dist.html">
+ <span class="en">Google Play Distribution</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/filters.html">
+ <span class="en">Filters on Google Play</span></a>
+ </li>
+
+ <li><a href="/google/play/publishing/multiple-apks.html">
+ <span class="en">Multiple APK Support</span></a>
+ </li>
+ <li><a href="/google/play/expansion-files.html">
+ <span class="en">APK Expansion Files</span></a>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/licensing/index.html">
+ <span class="en">Application Licensing</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/licensing/overview.html">
+ <span class="en">Licensing Overview</span></a>
+ </li>
+ <li><a href="/google/play/licensing/setting-up.html">
+ <span class="en">Setting Up for Licensing</span></a>
+ </li>
+ <li><a href="/google/play/licensing/adding-licensing.html">
+ <span class="en">Adding Licensing to Your App</span></a>
+ </li>
+ <li><a href="/google/play/licensing/licensing-reference.html">
+ <span class="en">Licensing Reference</span></a>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/backup/index.html">
+ Android Backup Service</a>
+ </div>
+ <ul>
+ <li><a href="/google/backup/signup.html">
+ Register</a>
+ </li>
+ </ul>
+ </li>
+
+ </ul>
+
+</li>
+
+
+
+</ul>
+
+<script type="text/javascript">
+<!--
+ buildToggleLists();
+ changeNavLang(getLangPref());
+//-->
+</script>
+
+
+
+
+ </div>
+ <script type="text/javascript">
+ showGoogleRefTree();
+
+ </script>
+ </div> <!-- end side-nav -->
+ <script>
+ $(document).ready(function() {
+ scrollIntoView("devdoc-nav");
+ });
+ </script>
+
+
+
+
+
+
+<div class="col-12" id="doc-col">
+
+<div id="api-info-block">
+
+
+
+
+<div class="sum-details-links">
+
+</div><!-- end sum-details-links -->
+<div class="api-level">
+
+
+
+
+</div>
+</div><!-- end api-info-block -->
+
+
+<!-- ======== START OF CLASS DATA ======== -->
+
+<div id="jd-header">
+ public
+
+
+
+ interface
+<h1 itemprop="name">DriveApi</h1>
+
+
+
+
+
+
+
+
+</div><!-- end header -->
+
+<div id="naMessage"></div>
+
+<div id="jd-content" class="api apilevel-">
+<table class="jd-inheritance-table">
+
+
+ <tr>
+
+ <td colspan="1" class="jd-inheritance-class-cell">com.google.android.gms.drive.DriveApi</td>
+ </tr>
+
+
+</table>
+
+
+
+
+
+
+
+<div class="jd-descr">
+
+
+<h2>Class Overview</h2>
+<p class="caution">
+ <strong>Note:</strong> The Google Drive Android API is currently in <strong>developer
+ preview</strong>. Applications compiled using this version of the API will
+ continue to operate on devices using future versions of Google Play services;
+ however, changes to the API are expected in future releases.
+</p>
+<p itemprop="articleBody">The main entry point for interacting with Drive. This class provides methods for obtaining
+ a reference to a file or folder, or querying across the entire Drive.
+</p>
+
+
+
+
+
+
+</div><!-- jd-descr -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<div class="jd-descr">
+
+
+<h2>Summary</h2>
+
+
+
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<table id="nestedclasses" class="jd-sumtable"><tr><th colspan="12">Nested Classes</th></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+ interface</nobr></td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/drive/DriveApi.ContentsResult.html">DriveApi.ContentsResult</a></td>
+ <td class="jd-descrcol" width="100%">Result that contains a Contents reference. </td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+ interface</nobr></td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/drive/DriveApi.IntentSenderResult.html">DriveApi.IntentSenderResult</a></td>
+ <td class="jd-descrcol" width="100%">Result that contains an IntentSender reference. </td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+ interface</nobr></td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/drive/DriveApi.MetadataBufferResult.html">DriveApi.MetadataBufferResult</a></td>
+ <td class="jd-descrcol" width="100%">Result that contains a MetadataBuffer. </td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+ interface</nobr></td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/drive/DriveApi.OnContentsDiscardedCallback.html">DriveApi.OnContentsDiscardedCallback</a></td>
+ <td class="jd-descrcol" width="100%">A callback that provides the result for a <code><a href="/reference/com/google/android/gms/drive/DriveApi.html#discardContents(com.google.android.gms.common.api.GoogleApiClient, com.google.android.gms.drive.Contents)">discardContents(GoogleApiClient, Contents)</a></code> request. </td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+ interface</nobr></td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/drive/DriveApi.OnNewContentsCallback.html">DriveApi.OnNewContentsCallback</a></td>
+ <td class="jd-descrcol" width="100%">A callback that provides the result for a OpenContents request. </td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+ interface</nobr></td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/drive/DriveApi.OnSyncFinishCallback.html">DriveApi.OnSyncFinishCallback</a></td>
+ <td class="jd-descrcol" width="100%">A callback that provides the result for a <code><a href="/reference/com/google/android/gms/drive/DriveApi.html#requestSync(com.google.android.gms.common.api.GoogleApiClient)">requestSync(GoogleApiClient)</a></code> request. </td>
+ </tr>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
+
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ <a href="/reference/com/google/android/gms/common/api/PendingResult.html">PendingResult</a><<a href="/reference/com/google/android/gms/common/api/Status.html">Status</a>, <a href="/reference/com/google/android/gms/drive/DriveApi.OnContentsDiscardedCallback.html">DriveApi.OnContentsDiscardedCallback</a>></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/DriveApi.html#discardContents(com.google.android.gms.common.api.GoogleApiClient, com.google.android.gms.drive.Contents)">discardContents</a></span>(<a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html">GoogleApiClient</a> apiClient, <a href="/reference/com/google/android/gms/drive/Contents.html">Contents</a> contents)</nobr>
+
+ <div class="jd-descrdiv">Closes the provided contents without saving the results.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ <a href="/reference/com/google/android/gms/drive/DriveFile.html">DriveFile</a></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/DriveApi.html#getFile(com.google.android.gms.common.api.GoogleApiClient, com.google.android.gms.drive.DriveId)">getFile</a></span>(<a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html">GoogleApiClient</a> apiClient, <a href="/reference/com/google/android/gms/drive/DriveId.html">DriveId</a> id)</nobr>
+
+ <div class="jd-descrdiv">Retrieves a <code><a href="/reference/com/google/android/gms/drive/DriveFile.html">DriveFile</a></code> object that can be used to interact with the file specified by
+ the provided DriveId.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ <a href="/reference/com/google/android/gms/drive/DriveFolder.html">DriveFolder</a></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/DriveApi.html#getFolder(com.google.android.gms.common.api.GoogleApiClient, com.google.android.gms.drive.DriveId)">getFolder</a></span>(<a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html">GoogleApiClient</a> apiClient, <a href="/reference/com/google/android/gms/drive/DriveId.html">DriveId</a> id)</nobr>
+
+ <div class="jd-descrdiv">Retrieves a <code><a href="/reference/com/google/android/gms/drive/DriveFolder.html">DriveFolder</a></code> object that can be used to interact with the folder specified
+ by the provided DriveId.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ <a href="/reference/com/google/android/gms/drive/DriveFolder.html">DriveFolder</a></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/DriveApi.html#getRootFolder(com.google.android.gms.common.api.GoogleApiClient)">getRootFolder</a></span>(<a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html">GoogleApiClient</a> apiClient)</nobr>
+
+ <div class="jd-descrdiv">Retrieves a <code><a href="/reference/com/google/android/gms/drive/DriveFolder.html">DriveFolder</a></code> object that can be used to interact with the root folder.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ <a href="/reference/com/google/android/gms/common/api/PendingResult.html">PendingResult</a><<a href="/reference/com/google/android/gms/drive/DriveApi.ContentsResult.html">DriveApi.ContentsResult</a>, <a href="/reference/com/google/android/gms/drive/DriveApi.OnNewContentsCallback.html">DriveApi.OnNewContentsCallback</a>></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/DriveApi.html#newContents(com.google.android.gms.common.api.GoogleApiClient)">newContents</a></span>(<a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html">GoogleApiClient</a> apiClient)</nobr>
+
+ <div class="jd-descrdiv">Retrieves a new contents instance that can be used to provide initial contents for a new
+ file.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ <a href="/reference/com/google/android/gms/drive/CreateFileActivityBuilder.html">CreateFileActivityBuilder</a></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/DriveApi.html#newCreateFileActivityBuilder()">newCreateFileActivityBuilder</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Creates a builder for a Create File activity where a user can select a file name and
+ destination for a new file in their Drive with the contents and additional metadata provided
+ in the builder.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ <a href="/reference/com/google/android/gms/drive/OpenFileActivityBuilder.html">OpenFileActivityBuilder</a></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/DriveApi.html#newOpenFileActivityBuilder()">newOpenFileActivityBuilder</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Creates a builder for an Open File activity that allows user selection of a Drive file.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ <a href="/reference/com/google/android/gms/common/api/PendingResult.html">PendingResult</a><<a href="/reference/com/google/android/gms/drive/DriveApi.MetadataBufferResult.html">DriveApi.MetadataBufferResult</a>, <a href="/reference/com/google/android/gms/drive/DriveFolder.OnChildrenRetrievedCallback.html">DriveFolder.OnChildrenRetrievedCallback</a>></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/DriveApi.html#query(com.google.android.gms.common.api.GoogleApiClient, com.google.android.gms.drive.query.Query)">query</a></span>(<a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html">GoogleApiClient</a> apiClient, <a href="/reference/com/google/android/gms/drive/query/Query.html">Query</a> query)</nobr>
+
+ <div class="jd-descrdiv">Retrieves a collection of metadata for the files and folders that match the specified query.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ <a href="/reference/com/google/android/gms/common/api/PendingResult.html">PendingResult</a><<a href="/reference/com/google/android/gms/common/api/Status.html">Status</a>, <a href="/reference/com/google/android/gms/drive/DriveApi.OnSyncFinishCallback.html">DriveApi.OnSyncFinishCallback</a>></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/DriveApi.html#requestSync(com.google.android.gms.common.api.GoogleApiClient)">requestSync</a></span>(<a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html">GoogleApiClient</a> apiClient)</nobr>
+
+ <div class="jd-descrdiv">Requests synchronization a <code>PendingResult</code> that is ready when synchronization has
+ completed.</div>
+
+ </td></tr>
+
+
+
+</table>
+
+
+
+
+
+
+
+</div><!-- jd-descr (summary) -->
+
+<!-- Details -->
+
+
+
+
+
+
+
+
+<!-- XML Attributes -->
+
+
+<!-- Enum Values -->
+
+
+<!-- Constants -->
+
+
+<!-- Fields -->
+
+
+<!-- Public ctors -->
+
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<!-- Protected ctors -->
+
+
+
+<!-- ========= METHOD DETAIL ======== -->
+<!-- Public methdos -->
+
+<h2>Public Methods</h2>
+
+
+
+<A NAME="discardContents(com.google.android.gms.common.api.GoogleApiClient, com.google.android.gms.drive.Contents)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+ abstract
+
+ <a href="/reference/com/google/android/gms/common/api/PendingResult.html">PendingResult</a><<a href="/reference/com/google/android/gms/common/api/Status.html">Status</a>, <a href="/reference/com/google/android/gms/drive/DriveApi.OnContentsDiscardedCallback.html">DriveApi.OnContentsDiscardedCallback</a>>
+ </span>
+ <span class="sympad">discardContents</span>
+ <span class="normal">(<a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html">GoogleApiClient</a> apiClient, <a href="/reference/com/google/android/gms/drive/Contents.html">Contents</a> contents)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Closes the provided contents without saving the results.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>apiClient</td>
+ <td>The <code><a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html">GoogleApiClient</a></code> to service the call. The client must be
+ connected before invoking this method.</td>
+ </tr>
+ <tr>
+ <th>contents</td>
+ <td>The contents to discard.</td>
+ </tr>
+ </table>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>a PendingResult which can be used to verify the success of the operation.
+</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="getFile(com.google.android.gms.common.api.GoogleApiClient, com.google.android.gms.drive.DriveId)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+ abstract
+
+ <a href="/reference/com/google/android/gms/drive/DriveFile.html">DriveFile</a>
+ </span>
+ <span class="sympad">getFile</span>
+ <span class="normal">(<a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html">GoogleApiClient</a> apiClient, <a href="/reference/com/google/android/gms/drive/DriveId.html">DriveId</a> id)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Retrieves a <code><a href="/reference/com/google/android/gms/drive/DriveFile.html">DriveFile</a></code> object that can be used to interact with the file specified by
+ the provided DriveId.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>apiClient</td>
+ <td>The <code><a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html">GoogleApiClient</a></code> to service the call. The client must be
+ connected using <code><a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html#connect()">connect()</a></code> before invoking this method.
+</td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="getFolder(com.google.android.gms.common.api.GoogleApiClient, com.google.android.gms.drive.DriveId)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+ abstract
+
+ <a href="/reference/com/google/android/gms/drive/DriveFolder.html">DriveFolder</a>
+ </span>
+ <span class="sympad">getFolder</span>
+ <span class="normal">(<a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html">GoogleApiClient</a> apiClient, <a href="/reference/com/google/android/gms/drive/DriveId.html">DriveId</a> id)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Retrieves a <code><a href="/reference/com/google/android/gms/drive/DriveFolder.html">DriveFolder</a></code> object that can be used to interact with the folder specified
+ by the provided DriveId.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>apiClient</td>
+ <td>The <code><a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html">GoogleApiClient</a></code> to service the call. The client must be
+ connected using <code><a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html#connect()">connect()</a></code> before invoking this method.
+</td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="getRootFolder(com.google.android.gms.common.api.GoogleApiClient)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+ abstract
+
+ <a href="/reference/com/google/android/gms/drive/DriveFolder.html">DriveFolder</a>
+ </span>
+ <span class="sympad">getRootFolder</span>
+ <span class="normal">(<a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html">GoogleApiClient</a> apiClient)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Retrieves a <code><a href="/reference/com/google/android/gms/drive/DriveFolder.html">DriveFolder</a></code> object that can be used to interact with the root folder.
+ This method will return synchronously, and is safe to invoke from the UI thread.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>apiClient</td>
+ <td>The <code><a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html">GoogleApiClient</a></code> to service the call. The client must be
+ connected using <code><a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html#connect()">connect()</a></code> before invoking this method.
+</td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="newContents(com.google.android.gms.common.api.GoogleApiClient)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+ abstract
+
+ <a href="/reference/com/google/android/gms/common/api/PendingResult.html">PendingResult</a><<a href="/reference/com/google/android/gms/drive/DriveApi.ContentsResult.html">DriveApi.ContentsResult</a>, <a href="/reference/com/google/android/gms/drive/DriveApi.OnNewContentsCallback.html">DriveApi.OnNewContentsCallback</a>>
+ </span>
+ <span class="sympad">newContents</span>
+ <span class="normal">(<a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html">GoogleApiClient</a> apiClient)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Retrieves a new contents instance that can be used to provide initial contents for a new
+ file. Write the initial contents to the Contents object returned by this request
+ using the file APIs provided in <code><a href="/reference/com/google/android/gms/drive/Contents.html">Contents</a></code>.
+ <p> To be persisted, the contents must be saved by being passed as initial contents to
+ <code><a href="/reference/com/google/android/gms/drive/DriveFolder.html#createFile(com.google.android.gms.common.api.GoogleApiClient, com.google.android.gms.drive.MetadataChangeSet, com.google.android.gms.drive.Contents)">createFile(GoogleApiClient, MetadataChangeSet, Contents)</a></code> or
+ <code><a href="/reference/com/google/android/gms/drive/CreateFileActivityBuilder.html#setInitialContents(com.google.android.gms.drive.Contents)">setInitialContents(Contents)</a></code>.
+ <p> To discard the contents without saving them, invoke
+ <code><a href="/reference/com/google/android/gms/drive/DriveApi.html#discardContents(com.google.android.gms.common.api.GoogleApiClient, com.google.android.gms.drive.Contents)">discardContents(GoogleApiClient, Contents)</a></code>.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>apiClient</td>
+ <td>The <code><a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html">GoogleApiClient</a></code> to service the call. The client must be
+ connected using <code><a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html#connect()">connect()</a></code> before invoking this method.</td>
+ </tr>
+ </table>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>a PendingResult which can be used to retrieve the Contents object.
+</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="newCreateFileActivityBuilder()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+ abstract
+
+ <a href="/reference/com/google/android/gms/drive/CreateFileActivityBuilder.html">CreateFileActivityBuilder</a>
+ </span>
+ <span class="sympad">newCreateFileActivityBuilder</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Creates a builder for a Create File activity where a user can select a file name and
+ destination for a new file in their Drive with the contents and additional metadata provided
+ in the builder.
+</p></div>
+
+ </div>
+</div>
+
+
+<A NAME="newOpenFileActivityBuilder()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+ abstract
+
+ <a href="/reference/com/google/android/gms/drive/OpenFileActivityBuilder.html">OpenFileActivityBuilder</a>
+ </span>
+ <span class="sympad">newOpenFileActivityBuilder</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Creates a builder for an Open File activity that allows user selection of a Drive file.
+ Upon completion, the result Intent will contain the <code><a href="/reference/com/google/android/gms/drive/DriveId.html">DriveId</a></code> for the selected file.
+ This activity will authorize the requesting app to interact with the selected file.
+</p></div>
+
+ </div>
+</div>
+
+
+<A NAME="query(com.google.android.gms.common.api.GoogleApiClient, com.google.android.gms.drive.query.Query)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+ abstract
+
+ <a href="/reference/com/google/android/gms/common/api/PendingResult.html">PendingResult</a><<a href="/reference/com/google/android/gms/drive/DriveApi.MetadataBufferResult.html">DriveApi.MetadataBufferResult</a>, <a href="/reference/com/google/android/gms/drive/DriveFolder.OnChildrenRetrievedCallback.html">DriveFolder.OnChildrenRetrievedCallback</a>>
+ </span>
+ <span class="sympad">query</span>
+ <span class="normal">(<a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html">GoogleApiClient</a> apiClient, <a href="/reference/com/google/android/gms/drive/query/Query.html">Query</a> query)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Retrieves a collection of metadata for the files and folders that match the specified query.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>apiClient</td>
+ <td>The <code><a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html">GoogleApiClient</a></code> to service the call. The client must be
+ connected using <code><a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html#connect()">connect()</a></code> before invoking this method.</td>
+ </tr>
+ <tr>
+ <th>query</td>
+ <td>The query that will restrict the contents of the result set.</td>
+ </tr>
+ </table>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>a PendingResult which can be used to retrieve the children list.
+</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="requestSync(com.google.android.gms.common.api.GoogleApiClient)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+ abstract
+
+ <a href="/reference/com/google/android/gms/common/api/PendingResult.html">PendingResult</a><<a href="/reference/com/google/android/gms/common/api/Status.html">Status</a>, <a href="/reference/com/google/android/gms/drive/DriveApi.OnSyncFinishCallback.html">DriveApi.OnSyncFinishCallback</a>>
+ </span>
+ <span class="sympad">requestSync</span>
+ <span class="normal">(<a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html">GoogleApiClient</a> apiClient)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Requests synchronization a <code>PendingResult</code> that is ready when synchronization has
+ completed.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>apiClient</td>
+ <td>The <code><a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html">GoogleApiClient</a></code> to service the call. The client must be
+ connected before invoking this method.
+</td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
+
+
+
+<!-- ========= METHOD DETAIL ======== -->
+
+
+
+<!-- ========= END OF CLASS DATA ========= -->
+<A NAME="navbar_top"></A>
+
+<div id="footer" class="wrap" >
+
+
+ <div id="copyright">
+
+ Except as noted, this content is licensed under <a
+ href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.
+ For details and restrictions, see the <a href="/license.html">
+ Content License</a>.
+ </div>
+ <div id="build_info">
+
+<script src="/timestamp.js" type="text/javascript"></script>
+<script>document.write(BUILD_TIMESTAMP)</script>
+
+ </div>
+
+
+ <div id="footerlinks">
+
+ <p>
+ <a href="/about/index.html">About Android</a> |
+ <a href="/legal.html">Legal</a> |
+ <a href="/support.html">Support</a>
+ </p>
+ </div>
+
+</div> <!-- end footer -->
+</div> <!-- jd-content -->
+
+</div><!-- end doc-content -->
+
+</div> <!-- end body-content -->
+
+
+
+
+
+
+</body>
+</html>
diff --git a/docs/html/reference/com/google/android/gms/drive/DriveFile.DownloadProgressListener.html b/docs/html/reference/com/google/android/gms/drive/DriveFile.DownloadProgressListener.html
new file mode 100644
index 0000000..bdd4a86
--- /dev/null
+++ b/docs/html/reference/com/google/android/gms/drive/DriveFile.DownloadProgressListener.html
@@ -0,0 +1,924 @@
+<!DOCTYPE html>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<html>
+<head>
+
+
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<meta name="viewport" content="width=device-width" />
+
+<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
+<title>DriveFile.DownloadProgressListener | Android Developers</title>
+
+<!-- STYLESHEETS -->
+<link rel="stylesheet"
+href="//fonts.googleapis.com/css?family=Roboto:regular,medium,thin,italic,mediumitalic,bold" title="roboto">
+<link href="/assets/css/default.css" rel="stylesheet" type="text/css">
+
+
+
+<!-- JAVASCRIPT -->
+<script src="//www.google.com/jsapi" type="text/javascript"></script>
+<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
+<script type="text/javascript">
+ var toRoot = "/";
+ var metaTags = [];
+ var devsite = false;
+</script>
+<script src="/assets/js/docs.js" type="text/javascript"></script>
+
+<script type="text/javascript">
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-5831155-1']);
+ _gaq.push(['_trackPageview']);
+
+ (function() {
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+ })();
+</script>
+</head>
+<body class="gc-documentation google
+ develop" itemscope itemtype="http://schema.org/Article">
+ <div id="doc-api-level" class="" style="display:none"></div>
+ <a name="top"></a>
+
+<a name="top"></a>
+
+ <!-- Header -->
+ <div id="header">
+ <div class="wrap" id="header-wrap">
+ <div class="col-3 logo">
+ <a href="/index.html">
+ <img src="/assets/images/dac_logo.png" width="123" height="25" alt="Android Developers" />
+ </a>
+ <div class="btn-quicknav" id="btn-quicknav">
+ <a href="#" class="arrow-inactive">Quicknav</a>
+ <a href="#" class="arrow-active">Quicknav</a>
+ </div>
+ </div>
+ <ul class="nav-x col-9">
+ <li class="design">
+ <a href="/design/index.html"
+ zh-tw-lang="設計"
+ zh-cn-lang="设计"
+ ru-lang="Проектирование"
+ ko-lang="디자인"
+ ja-lang="設計"
+ es-lang="Diseñar"
+ >Design</a></li>
+ <li class="develop"><a href="/develop/index.html"
+ zh-tw-lang="開發"
+ zh-cn-lang="开发"
+ ru-lang="Разработка"
+ ko-lang="개발"
+ ja-lang="開発"
+ es-lang="Desarrollar"
+ >Develop</a></li>
+ <li class="distribute last"><a href="/distribute/index.html"
+ zh-tw-lang="發佈"
+ zh-cn-lang="分发"
+ ru-lang="Распространение"
+ ko-lang="배포"
+ ja-lang="配布"
+ es-lang="Distribuir"
+ >Distribute</a></li>
+ </ul>
+
+ <!-- New Search -->
+ <div class="menu-container">
+ <div class="moremenu">
+ <div id="more-btn"></div>
+ </div>
+ <div class="morehover" id="moremenu">
+ <div class="top"></div>
+ <div class="mid">
+ <div class="header">Links</div>
+ <ul>
+ <li><a href="https://play.google.com/apps/publish/">Google Play Developer Console</a></li>
+ <li><a href="http://android-developers.blogspot.com/">Android Developers Blog</a></li>
+ <li><a href="/about/index.html">About Android</a></li>
+ </ul>
+ <div class="header">Android Sites</div>
+ <ul>
+ <li><a href="http://www.android.com">Android.com</a></li>
+ <li class="active"><a>Android Developers</a></li>
+ <li><a href="http://source.android.com">Android Open Source Project</a></li>
+ </ul>
+
+
+
+ <div class="header">Language</div>
+ <div id="language" class="locales">
+ <select name="language" onChange="changeLangPref(this.value, true)">
+ <option value="en">English</option>
+ <option value="es">Español</option>
+ <option value="ja">日本語</option>
+ <option value="ko">한국어</option>
+ <option value="ru">Русский</option>
+ <option value="zh-cn">中文 (中国)</option>
+ <option value="zh-tw">中文 (台灣)</option>
+ </select>
+ </div>
+ <script type="text/javascript">
+ <!--
+ loadLangPref();
+ //-->
+ </script>
+
+
+
+
+ <br class="clearfix" />
+ </div>
+ <div class="bottom"></div>
+ </div>
+ <div class="search" id="search-container">
+ <div class="search-inner">
+ <div id="search-btn"></div>
+ <div class="left"></div>
+ <form onsubmit="return submit_search()">
+ <input id="search_autocomplete" type="text" value="" autocomplete="off" name="q"
+onfocus="search_focus_changed(this, true)" onblur="search_focus_changed(this, false)"
+onkeydown="return search_changed(event, true, '/')"
+onkeyup="return search_changed(event, false, '/')" />
+ </form>
+ <div class="right"></div>
+ <a class="close hide">close</a>
+ <div class="left"></div>
+ <div class="right"></div>
+ </div>
+ </div>
+
+ <div class="search_filtered_wrapper reference">
+ <div class="suggest-card reference no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ </div>
+
+ <div class="search_filtered_wrapper docs">
+ <div class="suggest-card dummy no-display"> </div>
+ <div class="suggest-card develop no-display">
+ <ul class="search_filtered">
+ </ul>
+ <div class="child-card guides no-display">
+ </div>
+ <div class="child-card training no-display">
+ </div>
+ <div class="child-card samples no-display">
+ </div>
+ </div>
+ <div class="suggest-card design no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ <div class="suggest-card distribute no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ </div>
+
+ </div>
+ <!-- /New Search>
+
+
+ <!-- Expanded quicknav -->
+ <div id="quicknav" class="col-9">
+ <ul>
+ <li class="design">
+ <ul>
+ <li><a href="/design/index.html">Get Started</a></li>
+ <li><a href="/design/style/index.html">Style</a></li>
+ <li><a href="/design/patterns/index.html">Patterns</a></li>
+ <li><a href="/design/building-blocks/index.html">Building Blocks</a></li>
+ <li><a href="/design/downloads/index.html">Downloads</a></li>
+ <li><a href="/design/videos/index.html">Videos</a></li>
+ </ul>
+ </li>
+ <li class="develop">
+ <ul>
+ <li><a href="/training/index.html"
+ zh-tw-lang="訓練課程"
+ zh-cn-lang="培训"
+ ru-lang="Курсы"
+ ko-lang="교육"
+ ja-lang="トレーニング"
+ es-lang="Capacitación"
+ >Training</a></li>
+ <li><a href="/guide/index.html"
+ zh-tw-lang="API 指南"
+ zh-cn-lang="API 指南"
+ ru-lang="Руководства по API"
+ ko-lang="API 가이드"
+ ja-lang="API ガイド"
+ es-lang="Guías de la API"
+ >API Guides</a></li>
+ <li><a href="/reference/packages.html"
+ zh-tw-lang="參考資源"
+ zh-cn-lang="参考"
+ ru-lang="Справочник"
+ ko-lang="참조문서"
+ ja-lang="リファレンス"
+ es-lang="Referencia"
+ >Reference</a></li>
+ <li><a href="/tools/index.html"
+ zh-tw-lang="相關工具"
+ zh-cn-lang="工具"
+ ru-lang="Инструменты"
+ ko-lang="도구"
+ ja-lang="ツール"
+ es-lang="Herramientas"
+ >Tools</a>
+ <ul><li><a href="/sdk/index.html">Get the SDK</a></li></ul>
+ </li>
+ <li><a href="/google/index.html">Google Services</a>
+ </li>
+
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
+ </ul>
+ </li>
+ <li class="distribute last">
+ <ul>
+ <li><a href="/distribute/index.html">Google Play</a></li>
+ <li><a href="/distribute/googleplay/publish/index.html">Publishing</a></li>
+ <li><a href="/distribute/googleplay/promote/index.html">Promoting</a></li>
+ <li><a href="/distribute/googleplay/quality/index.html">App Quality</a></li>
+ <li><a href="/distribute/googleplay/spotlight/index.html">Spotlight</a></li>
+ <li><a href="/distribute/open.html">Open Distribution</a></li>
+ </ul>
+ </li>
+ </ul>
+ </div>
+ <!-- /Expanded quicknav -->
+ </div>
+ </div>
+ <!-- /Header -->
+
+
+ <div id="searchResults" class="wrap" style="display:none;">
+ <h2 id="searchTitle">Results</h2>
+ <div id="leftSearchControl" class="search-control">Loading...</div>
+ </div>
+
+
+
+ <!-- Secondary x-nav -->
+ <div id="nav-x">
+ <div class="wrap">
+ <ul class="nav-x col-9 develop" style="width:100%">
+ <li class="training"><a href="/training/index.html"
+ zh-tw-lang="訓練課程"
+ zh-cn-lang="培训"
+ ru-lang="Курсы"
+ ko-lang="교육"
+ ja-lang="トレーニング"
+ es-lang="Capacitación"
+ >Training</a></li>
+ <li class="guide"><a href="/guide/index.html"
+ zh-tw-lang="API 指南"
+ zh-cn-lang="API 指南"
+ ru-lang="Руководства по API"
+ ko-lang="API 가이드"
+ ja-lang="API ガイド"
+ es-lang="Guías de la API"
+ >API Guides</a></li>
+ <li class="reference"><a href="/reference/packages.html"
+ zh-tw-lang="參考資源"
+ zh-cn-lang="参考"
+ ru-lang="Справочник"
+ ko-lang="참조문서"
+ ja-lang="リファレンス"
+ es-lang="Referencia"
+ >Reference</a></li>
+ <li class="tools"><a href="/tools/index.html"
+ zh-tw-lang="相關工具"
+ zh-cn-lang="工具"
+ ru-lang="Инструменты"
+ ko-lang="도구"
+ ja-lang="ツール"
+ es-lang="Herramientas"
+ >Tools</a></li>
+ <li class="google"><a href="/google/index.html"
+ >Google Services</a>
+ </li>
+
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
+ </ul>
+ </div>
+
+ </div>
+ <!-- /Sendondary x-nav -->
+
+
+
+
+
+
+
+
+
+ <div class="wrap clearfix" id="body-content">
+ <div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
+ <div id="devdoc-nav" class="scroll-pane">
+<a class="totop" href="#top" data-g-event="left-nav-top">to top</a>
+
+
+
+<ul id="nav">
+
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/index.html">
+ <span class="en">Overview</span>
+ </a></div>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/games.html">
+ <span class="en">Games</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/location.html">
+ <span class="en">Location</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/plus.html">
+ <span class="en">Google+</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/maps.html">
+ <span class="en">Maps</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play-services/ads.html">
+ <span class="en">Ads</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play-services/id.html">
+ <span class="en">Advertising ID</span></a>
+ </li>
+ </ul>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/wallet.html">
+ <span class="en">Wallet</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/auth.html">
+ <span class="en">Authorization</span>
+ </a></div>
+ </li>
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play-services/index.html">
+ <span class="en">Google Play Services</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play-services/setup.html">
+ <span class="en">Setup</span></a>
+ </li>
+ <li id="gms-tree-list" class="nav-section">
+ <div class="nav-section-header">
+ <a href="/reference/gms-packages.html">
+ <span class="en">Reference</span>
+ </a>
+ <div>
+ </li>
+ </ul>
+ </li>
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/billing/index.html">
+ <span class="en">Google Play In-app Billing</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/billing/billing_overview.html">
+ <span class="en">Overview</span></a>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/api.html">
+ <span class="en">Version 3 API</span></a></div>
+ <ul>
+ <li><a href="/google/play/billing/billing_integrate.html">
+ <span class="en">Implementing the API</span></a></li>
+ <li><a href="/google/play/billing/billing_reference.html">
+ <span class="en">Reference</span></a></li>
+ </ul>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/v2/api.html">
+ <span class="en">Version 2 API</span></a></div>
+ <ul>
+ <li><a href="/google/play/billing/v2/billing_integrate.html">
+ <span class="en">Implementing the API</span></a></li>
+ <li><a href="/google/play/billing/v2/billing_subscriptions.html">
+ <span class="en">Subscriptions</span></a></li>
+ <li><a href="/google/play/billing/v2/billing_reference.html">
+ <span class="en">Reference</span></a></li>
+ </ul>
+ </li>
+ <li><a href="/google/play/billing/billing_subscriptions.html">
+ <span class="en">Subscriptions</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_best_practices.html">
+ <span class="en">Security and Design</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_testing.html">
+ <span class="en">Testing In-app Billing</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_admin.html">
+ <span class="en">Administering In-app Billing</span></a>
+ </li>
+ <li><a href="/google/play/billing/gp-purchase-status-api.html">
+ <span class="en">Purchase Status API</span></a>
+ </li>
+ <li><a href="/google/play/billing/versions.html">
+ <span class="en">Version Notes</span></a>
+ </li>
+ </ul>
+ </li>
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/gcm/index.html">
+ <span class="en">Google Cloud Messaging</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
+ <li><a href="/google/gcm/gs.html">
+ <span class="en">Getting Started</span></a>
+ </li>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
+ </li>
+ <li><a href="/google/gcm/notifications.html">
+ <span class="en">User Notifications</span></a>
+ </li>
+ <li><a href="/google/gcm/adv.html">
+ <span class="en">Advanced Topics</span></a>
+ </li>
+ <li><a href="/google/gcm/c2dm.html">
+ <span class="en">Migration</span></a>
+ </li>
+ <li id="gcm-tree-list" class="nav-section">
+ <div class="nav-section-header">
+ <a href="/reference/gcm-packages.html">
+ <span class="en">Reference</span>
+ </a>
+ <div>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/dist.html">
+ <span class="en">Google Play Distribution</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/filters.html">
+ <span class="en">Filters on Google Play</span></a>
+ </li>
+
+ <li><a href="/google/play/publishing/multiple-apks.html">
+ <span class="en">Multiple APK Support</span></a>
+ </li>
+ <li><a href="/google/play/expansion-files.html">
+ <span class="en">APK Expansion Files</span></a>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/licensing/index.html">
+ <span class="en">Application Licensing</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/licensing/overview.html">
+ <span class="en">Licensing Overview</span></a>
+ </li>
+ <li><a href="/google/play/licensing/setting-up.html">
+ <span class="en">Setting Up for Licensing</span></a>
+ </li>
+ <li><a href="/google/play/licensing/adding-licensing.html">
+ <span class="en">Adding Licensing to Your App</span></a>
+ </li>
+ <li><a href="/google/play/licensing/licensing-reference.html">
+ <span class="en">Licensing Reference</span></a>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/backup/index.html">
+ Android Backup Service</a>
+ </div>
+ <ul>
+ <li><a href="/google/backup/signup.html">
+ Register</a>
+ </li>
+ </ul>
+ </li>
+
+ </ul>
+
+</li>
+
+
+
+</ul>
+
+<script type="text/javascript">
+<!--
+ buildToggleLists();
+ changeNavLang(getLangPref());
+//-->
+</script>
+
+
+
+
+ </div>
+ <script type="text/javascript">
+ showGoogleRefTree();
+
+ </script>
+ </div> <!-- end side-nav -->
+ <script>
+ $(document).ready(function() {
+ scrollIntoView("devdoc-nav");
+ });
+ </script>
+
+
+
+
+
+
+<div class="col-12" id="doc-col">
+
+<div id="api-info-block">
+
+
+
+
+<div class="sum-details-links">
+
+</div><!-- end sum-details-links -->
+<div class="api-level">
+
+
+
+
+</div>
+</div><!-- end api-info-block -->
+
+
+<!-- ======== START OF CLASS DATA ======== -->
+
+<div id="jd-header">
+ public
+ static
+
+
+ interface
+<h1 itemprop="name">DriveFile.DownloadProgressListener</h1>
+
+
+
+
+
+
+
+
+</div><!-- end header -->
+
+<div id="naMessage"></div>
+
+<div id="jd-content" class="api apilevel-">
+<table class="jd-inheritance-table">
+
+
+ <tr>
+
+ <td colspan="1" class="jd-inheritance-class-cell">com.google.android.gms.drive.DriveFile.DownloadProgressListener</td>
+ </tr>
+
+
+</table>
+
+
+
+
+
+
+
+<div class="jd-descr">
+
+
+<h2>Class Overview</h2>
+<p class="caution">
+ <strong>Note:</strong> The Google Drive Android API is currently in <strong>developer
+ preview</strong>. Applications compiled using this version of the API will
+ continue to operate on devices using future versions of Google Play services;
+ however, changes to the API are expected in future releases.
+</p>
+<p itemprop="articleBody">A listener that listens for progress events on an active contents download.
+</p>
+
+
+
+
+
+</div><!-- jd-descr -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<div class="jd-descr">
+
+
+<h2>Summary</h2>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
+
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/DriveFile.DownloadProgressListener.html#onProgress(long, long)">onProgress</a></span>(long bytesDownloaded, long bytesExpected)</nobr>
+
+ </td></tr>
+
+
+
+</table>
+
+
+
+
+
+
+
+</div><!-- jd-descr (summary) -->
+
+<!-- Details -->
+
+
+
+
+
+
+
+
+<!-- XML Attributes -->
+
+
+<!-- Enum Values -->
+
+
+<!-- Constants -->
+
+
+<!-- Fields -->
+
+
+<!-- Public ctors -->
+
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<!-- Protected ctors -->
+
+
+
+<!-- ========= METHOD DETAIL ======== -->
+<!-- Public methdos -->
+
+<h2>Public Methods</h2>
+
+
+
+<A NAME="onProgress(long, long)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+ abstract
+
+ void
+ </span>
+ <span class="sympad">onProgress</span>
+ <span class="normal">(long bytesDownloaded, long bytesExpected)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+ </div>
+</div>
+
+
+
+
+
+<!-- ========= METHOD DETAIL ======== -->
+
+
+
+<!-- ========= END OF CLASS DATA ========= -->
+<A NAME="navbar_top"></A>
+
+<div id="footer" class="wrap" >
+
+
+ <div id="copyright">
+
+ Except as noted, this content is licensed under <a
+ href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.
+ For details and restrictions, see the <a href="/license.html">
+ Content License</a>.
+ </div>
+ <div id="build_info">
+
+<script src="/timestamp.js" type="text/javascript"></script>
+<script>document.write(BUILD_TIMESTAMP)</script>
+
+ </div>
+
+
+ <div id="footerlinks">
+
+ <p>
+ <a href="/about/index.html">About Android</a> |
+ <a href="/legal.html">Legal</a> |
+ <a href="/support.html">Support</a>
+ </p>
+ </div>
+
+</div> <!-- end footer -->
+</div> <!-- jd-content -->
+
+</div><!-- end doc-content -->
+
+</div> <!-- end body-content -->
+
+
+
+
+
+
+</body>
+</html>
diff --git a/docs/html/reference/com/google/android/gms/drive/DriveFile.OnContentsClosedCallback.html b/docs/html/reference/com/google/android/gms/drive/DriveFile.OnContentsClosedCallback.html
new file mode 100644
index 0000000..1da9909
--- /dev/null
+++ b/docs/html/reference/com/google/android/gms/drive/DriveFile.OnContentsClosedCallback.html
@@ -0,0 +1,924 @@
+<!DOCTYPE html>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<html>
+<head>
+
+
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<meta name="viewport" content="width=device-width" />
+
+<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
+<title>DriveFile.OnContentsClosedCallback | Android Developers</title>
+
+<!-- STYLESHEETS -->
+<link rel="stylesheet"
+href="//fonts.googleapis.com/css?family=Roboto:regular,medium,thin,italic,mediumitalic,bold" title="roboto">
+<link href="/assets/css/default.css" rel="stylesheet" type="text/css">
+
+
+
+<!-- JAVASCRIPT -->
+<script src="//www.google.com/jsapi" type="text/javascript"></script>
+<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
+<script type="text/javascript">
+ var toRoot = "/";
+ var metaTags = [];
+ var devsite = false;
+</script>
+<script src="/assets/js/docs.js" type="text/javascript"></script>
+
+<script type="text/javascript">
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-5831155-1']);
+ _gaq.push(['_trackPageview']);
+
+ (function() {
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+ })();
+</script>
+</head>
+<body class="gc-documentation google
+ develop" itemscope itemtype="http://schema.org/Article">
+ <div id="doc-api-level" class="" style="display:none"></div>
+ <a name="top"></a>
+
+<a name="top"></a>
+
+ <!-- Header -->
+ <div id="header">
+ <div class="wrap" id="header-wrap">
+ <div class="col-3 logo">
+ <a href="/index.html">
+ <img src="/assets/images/dac_logo.png" width="123" height="25" alt="Android Developers" />
+ </a>
+ <div class="btn-quicknav" id="btn-quicknav">
+ <a href="#" class="arrow-inactive">Quicknav</a>
+ <a href="#" class="arrow-active">Quicknav</a>
+ </div>
+ </div>
+ <ul class="nav-x col-9">
+ <li class="design">
+ <a href="/design/index.html"
+ zh-tw-lang="設計"
+ zh-cn-lang="设计"
+ ru-lang="Проектирование"
+ ko-lang="디자인"
+ ja-lang="設計"
+ es-lang="Diseñar"
+ >Design</a></li>
+ <li class="develop"><a href="/develop/index.html"
+ zh-tw-lang="開發"
+ zh-cn-lang="开发"
+ ru-lang="Разработка"
+ ko-lang="개발"
+ ja-lang="開発"
+ es-lang="Desarrollar"
+ >Develop</a></li>
+ <li class="distribute last"><a href="/distribute/index.html"
+ zh-tw-lang="發佈"
+ zh-cn-lang="分发"
+ ru-lang="Распространение"
+ ko-lang="배포"
+ ja-lang="配布"
+ es-lang="Distribuir"
+ >Distribute</a></li>
+ </ul>
+
+ <!-- New Search -->
+ <div class="menu-container">
+ <div class="moremenu">
+ <div id="more-btn"></div>
+ </div>
+ <div class="morehover" id="moremenu">
+ <div class="top"></div>
+ <div class="mid">
+ <div class="header">Links</div>
+ <ul>
+ <li><a href="https://play.google.com/apps/publish/">Google Play Developer Console</a></li>
+ <li><a href="http://android-developers.blogspot.com/">Android Developers Blog</a></li>
+ <li><a href="/about/index.html">About Android</a></li>
+ </ul>
+ <div class="header">Android Sites</div>
+ <ul>
+ <li><a href="http://www.android.com">Android.com</a></li>
+ <li class="active"><a>Android Developers</a></li>
+ <li><a href="http://source.android.com">Android Open Source Project</a></li>
+ </ul>
+
+
+
+ <div class="header">Language</div>
+ <div id="language" class="locales">
+ <select name="language" onChange="changeLangPref(this.value, true)">
+ <option value="en">English</option>
+ <option value="es">Español</option>
+ <option value="ja">日本語</option>
+ <option value="ko">한국어</option>
+ <option value="ru">Русский</option>
+ <option value="zh-cn">中文 (中国)</option>
+ <option value="zh-tw">中文 (台灣)</option>
+ </select>
+ </div>
+ <script type="text/javascript">
+ <!--
+ loadLangPref();
+ //-->
+ </script>
+
+
+
+
+ <br class="clearfix" />
+ </div>
+ <div class="bottom"></div>
+ </div>
+ <div class="search" id="search-container">
+ <div class="search-inner">
+ <div id="search-btn"></div>
+ <div class="left"></div>
+ <form onsubmit="return submit_search()">
+ <input id="search_autocomplete" type="text" value="" autocomplete="off" name="q"
+onfocus="search_focus_changed(this, true)" onblur="search_focus_changed(this, false)"
+onkeydown="return search_changed(event, true, '/')"
+onkeyup="return search_changed(event, false, '/')" />
+ </form>
+ <div class="right"></div>
+ <a class="close hide">close</a>
+ <div class="left"></div>
+ <div class="right"></div>
+ </div>
+ </div>
+
+ <div class="search_filtered_wrapper reference">
+ <div class="suggest-card reference no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ </div>
+
+ <div class="search_filtered_wrapper docs">
+ <div class="suggest-card dummy no-display"> </div>
+ <div class="suggest-card develop no-display">
+ <ul class="search_filtered">
+ </ul>
+ <div class="child-card guides no-display">
+ </div>
+ <div class="child-card training no-display">
+ </div>
+ <div class="child-card samples no-display">
+ </div>
+ </div>
+ <div class="suggest-card design no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ <div class="suggest-card distribute no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ </div>
+
+ </div>
+ <!-- /New Search>
+
+
+ <!-- Expanded quicknav -->
+ <div id="quicknav" class="col-9">
+ <ul>
+ <li class="design">
+ <ul>
+ <li><a href="/design/index.html">Get Started</a></li>
+ <li><a href="/design/style/index.html">Style</a></li>
+ <li><a href="/design/patterns/index.html">Patterns</a></li>
+ <li><a href="/design/building-blocks/index.html">Building Blocks</a></li>
+ <li><a href="/design/downloads/index.html">Downloads</a></li>
+ <li><a href="/design/videos/index.html">Videos</a></li>
+ </ul>
+ </li>
+ <li class="develop">
+ <ul>
+ <li><a href="/training/index.html"
+ zh-tw-lang="訓練課程"
+ zh-cn-lang="培训"
+ ru-lang="Курсы"
+ ko-lang="교육"
+ ja-lang="トレーニング"
+ es-lang="Capacitación"
+ >Training</a></li>
+ <li><a href="/guide/index.html"
+ zh-tw-lang="API 指南"
+ zh-cn-lang="API 指南"
+ ru-lang="Руководства по API"
+ ko-lang="API 가이드"
+ ja-lang="API ガイド"
+ es-lang="Guías de la API"
+ >API Guides</a></li>
+ <li><a href="/reference/packages.html"
+ zh-tw-lang="參考資源"
+ zh-cn-lang="参考"
+ ru-lang="Справочник"
+ ko-lang="참조문서"
+ ja-lang="リファレンス"
+ es-lang="Referencia"
+ >Reference</a></li>
+ <li><a href="/tools/index.html"
+ zh-tw-lang="相關工具"
+ zh-cn-lang="工具"
+ ru-lang="Инструменты"
+ ko-lang="도구"
+ ja-lang="ツール"
+ es-lang="Herramientas"
+ >Tools</a>
+ <ul><li><a href="/sdk/index.html">Get the SDK</a></li></ul>
+ </li>
+ <li><a href="/google/index.html">Google Services</a>
+ </li>
+
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
+ </ul>
+ </li>
+ <li class="distribute last">
+ <ul>
+ <li><a href="/distribute/index.html">Google Play</a></li>
+ <li><a href="/distribute/googleplay/publish/index.html">Publishing</a></li>
+ <li><a href="/distribute/googleplay/promote/index.html">Promoting</a></li>
+ <li><a href="/distribute/googleplay/quality/index.html">App Quality</a></li>
+ <li><a href="/distribute/googleplay/spotlight/index.html">Spotlight</a></li>
+ <li><a href="/distribute/open.html">Open Distribution</a></li>
+ </ul>
+ </li>
+ </ul>
+ </div>
+ <!-- /Expanded quicknav -->
+ </div>
+ </div>
+ <!-- /Header -->
+
+
+ <div id="searchResults" class="wrap" style="display:none;">
+ <h2 id="searchTitle">Results</h2>
+ <div id="leftSearchControl" class="search-control">Loading...</div>
+ </div>
+
+
+
+ <!-- Secondary x-nav -->
+ <div id="nav-x">
+ <div class="wrap">
+ <ul class="nav-x col-9 develop" style="width:100%">
+ <li class="training"><a href="/training/index.html"
+ zh-tw-lang="訓練課程"
+ zh-cn-lang="培训"
+ ru-lang="Курсы"
+ ko-lang="교육"
+ ja-lang="トレーニング"
+ es-lang="Capacitación"
+ >Training</a></li>
+ <li class="guide"><a href="/guide/index.html"
+ zh-tw-lang="API 指南"
+ zh-cn-lang="API 指南"
+ ru-lang="Руководства по API"
+ ko-lang="API 가이드"
+ ja-lang="API ガイド"
+ es-lang="Guías de la API"
+ >API Guides</a></li>
+ <li class="reference"><a href="/reference/packages.html"
+ zh-tw-lang="參考資源"
+ zh-cn-lang="参考"
+ ru-lang="Справочник"
+ ko-lang="참조문서"
+ ja-lang="リファレンス"
+ es-lang="Referencia"
+ >Reference</a></li>
+ <li class="tools"><a href="/tools/index.html"
+ zh-tw-lang="相關工具"
+ zh-cn-lang="工具"
+ ru-lang="Инструменты"
+ ko-lang="도구"
+ ja-lang="ツール"
+ es-lang="Herramientas"
+ >Tools</a></li>
+ <li class="google"><a href="/google/index.html"
+ >Google Services</a>
+ </li>
+
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
+ </ul>
+ </div>
+
+ </div>
+ <!-- /Sendondary x-nav -->
+
+
+
+
+
+
+
+
+
+ <div class="wrap clearfix" id="body-content">
+ <div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
+ <div id="devdoc-nav" class="scroll-pane">
+<a class="totop" href="#top" data-g-event="left-nav-top">to top</a>
+
+
+
+<ul id="nav">
+
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/index.html">
+ <span class="en">Overview</span>
+ </a></div>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/games.html">
+ <span class="en">Games</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/location.html">
+ <span class="en">Location</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/plus.html">
+ <span class="en">Google+</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/maps.html">
+ <span class="en">Maps</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play-services/ads.html">
+ <span class="en">Ads</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play-services/id.html">
+ <span class="en">Advertising ID</span></a>
+ </li>
+ </ul>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/wallet.html">
+ <span class="en">Wallet</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/auth.html">
+ <span class="en">Authorization</span>
+ </a></div>
+ </li>
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play-services/index.html">
+ <span class="en">Google Play Services</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play-services/setup.html">
+ <span class="en">Setup</span></a>
+ </li>
+ <li id="gms-tree-list" class="nav-section">
+ <div class="nav-section-header">
+ <a href="/reference/gms-packages.html">
+ <span class="en">Reference</span>
+ </a>
+ <div>
+ </li>
+ </ul>
+ </li>
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/billing/index.html">
+ <span class="en">Google Play In-app Billing</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/billing/billing_overview.html">
+ <span class="en">Overview</span></a>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/api.html">
+ <span class="en">Version 3 API</span></a></div>
+ <ul>
+ <li><a href="/google/play/billing/billing_integrate.html">
+ <span class="en">Implementing the API</span></a></li>
+ <li><a href="/google/play/billing/billing_reference.html">
+ <span class="en">Reference</span></a></li>
+ </ul>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/v2/api.html">
+ <span class="en">Version 2 API</span></a></div>
+ <ul>
+ <li><a href="/google/play/billing/v2/billing_integrate.html">
+ <span class="en">Implementing the API</span></a></li>
+ <li><a href="/google/play/billing/v2/billing_subscriptions.html">
+ <span class="en">Subscriptions</span></a></li>
+ <li><a href="/google/play/billing/v2/billing_reference.html">
+ <span class="en">Reference</span></a></li>
+ </ul>
+ </li>
+ <li><a href="/google/play/billing/billing_subscriptions.html">
+ <span class="en">Subscriptions</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_best_practices.html">
+ <span class="en">Security and Design</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_testing.html">
+ <span class="en">Testing In-app Billing</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_admin.html">
+ <span class="en">Administering In-app Billing</span></a>
+ </li>
+ <li><a href="/google/play/billing/gp-purchase-status-api.html">
+ <span class="en">Purchase Status API</span></a>
+ </li>
+ <li><a href="/google/play/billing/versions.html">
+ <span class="en">Version Notes</span></a>
+ </li>
+ </ul>
+ </li>
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/gcm/index.html">
+ <span class="en">Google Cloud Messaging</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
+ <li><a href="/google/gcm/gs.html">
+ <span class="en">Getting Started</span></a>
+ </li>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
+ </li>
+ <li><a href="/google/gcm/notifications.html">
+ <span class="en">User Notifications</span></a>
+ </li>
+ <li><a href="/google/gcm/adv.html">
+ <span class="en">Advanced Topics</span></a>
+ </li>
+ <li><a href="/google/gcm/c2dm.html">
+ <span class="en">Migration</span></a>
+ </li>
+ <li id="gcm-tree-list" class="nav-section">
+ <div class="nav-section-header">
+ <a href="/reference/gcm-packages.html">
+ <span class="en">Reference</span>
+ </a>
+ <div>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/dist.html">
+ <span class="en">Google Play Distribution</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/filters.html">
+ <span class="en">Filters on Google Play</span></a>
+ </li>
+
+ <li><a href="/google/play/publishing/multiple-apks.html">
+ <span class="en">Multiple APK Support</span></a>
+ </li>
+ <li><a href="/google/play/expansion-files.html">
+ <span class="en">APK Expansion Files</span></a>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/licensing/index.html">
+ <span class="en">Application Licensing</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/licensing/overview.html">
+ <span class="en">Licensing Overview</span></a>
+ </li>
+ <li><a href="/google/play/licensing/setting-up.html">
+ <span class="en">Setting Up for Licensing</span></a>
+ </li>
+ <li><a href="/google/play/licensing/adding-licensing.html">
+ <span class="en">Adding Licensing to Your App</span></a>
+ </li>
+ <li><a href="/google/play/licensing/licensing-reference.html">
+ <span class="en">Licensing Reference</span></a>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/backup/index.html">
+ Android Backup Service</a>
+ </div>
+ <ul>
+ <li><a href="/google/backup/signup.html">
+ Register</a>
+ </li>
+ </ul>
+ </li>
+
+ </ul>
+
+</li>
+
+
+
+</ul>
+
+<script type="text/javascript">
+<!--
+ buildToggleLists();
+ changeNavLang(getLangPref());
+//-->
+</script>
+
+
+
+
+ </div>
+ <script type="text/javascript">
+ showGoogleRefTree();
+
+ </script>
+ </div> <!-- end side-nav -->
+ <script>
+ $(document).ready(function() {
+ scrollIntoView("devdoc-nav");
+ });
+ </script>
+
+
+
+
+
+
+<div class="col-12" id="doc-col">
+
+<div id="api-info-block">
+
+
+
+
+<div class="sum-details-links">
+
+</div><!-- end sum-details-links -->
+<div class="api-level">
+
+
+
+
+</div>
+</div><!-- end api-info-block -->
+
+
+<!-- ======== START OF CLASS DATA ======== -->
+
+<div id="jd-header">
+ public
+ static
+
+
+ interface
+<h1 itemprop="name">DriveFile.OnContentsClosedCallback</h1>
+
+
+
+
+
+
+
+
+</div><!-- end header -->
+
+<div id="naMessage"></div>
+
+<div id="jd-content" class="api apilevel-">
+<table class="jd-inheritance-table">
+
+
+ <tr>
+
+ <td colspan="1" class="jd-inheritance-class-cell">com.google.android.gms.drive.DriveFile.OnContentsClosedCallback</td>
+ </tr>
+
+
+</table>
+
+
+
+
+
+
+
+<div class="jd-descr">
+
+
+<h2>Class Overview</h2>
+<p class="caution">
+ <strong>Note:</strong> The Google Drive Android API is currently in <strong>developer
+ preview</strong>. Applications compiled using this version of the API will
+ continue to operate on devices using future versions of Google Play services;
+ however, changes to the API are expected in future releases.
+</p>
+<p itemprop="articleBody">A callback that provides the result for a <code><a href="/reference/com/google/android/gms/drive/DriveFile.html#commitAndCloseContents(com.google.android.gms.common.api.GoogleApiClient, com.google.android.gms.drive.Contents)">commitAndCloseContents(GoogleApiClient, Contents)</a></code> request.
+</p>
+
+
+
+
+
+</div><!-- jd-descr -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<div class="jd-descr">
+
+
+<h2>Summary</h2>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
+
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/DriveFile.OnContentsClosedCallback.html#onClose(com.google.android.gms.common.api.Status)">onClose</a></span>(<a href="/reference/com/google/android/gms/common/api/Status.html">Status</a> result)</nobr>
+
+ </td></tr>
+
+
+
+</table>
+
+
+
+
+
+
+
+</div><!-- jd-descr (summary) -->
+
+<!-- Details -->
+
+
+
+
+
+
+
+
+<!-- XML Attributes -->
+
+
+<!-- Enum Values -->
+
+
+<!-- Constants -->
+
+
+<!-- Fields -->
+
+
+<!-- Public ctors -->
+
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<!-- Protected ctors -->
+
+
+
+<!-- ========= METHOD DETAIL ======== -->
+<!-- Public methdos -->
+
+<h2>Public Methods</h2>
+
+
+
+<A NAME="onClose(com.google.android.gms.common.api.Status)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+ abstract
+
+ void
+ </span>
+ <span class="sympad">onClose</span>
+ <span class="normal">(<a href="/reference/com/google/android/gms/common/api/Status.html">Status</a> result)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+ </div>
+</div>
+
+
+
+
+
+<!-- ========= METHOD DETAIL ======== -->
+
+
+
+<!-- ========= END OF CLASS DATA ========= -->
+<A NAME="navbar_top"></A>
+
+<div id="footer" class="wrap" >
+
+
+ <div id="copyright">
+
+ Except as noted, this content is licensed under <a
+ href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.
+ For details and restrictions, see the <a href="/license.html">
+ Content License</a>.
+ </div>
+ <div id="build_info">
+
+<script src="/timestamp.js" type="text/javascript"></script>
+<script>document.write(BUILD_TIMESTAMP)</script>
+
+ </div>
+
+
+ <div id="footerlinks">
+
+ <p>
+ <a href="/about/index.html">About Android</a> |
+ <a href="/legal.html">Legal</a> |
+ <a href="/support.html">Support</a>
+ </p>
+ </div>
+
+</div> <!-- end footer -->
+</div> <!-- jd-content -->
+
+</div><!-- end doc-content -->
+
+</div> <!-- end body-content -->
+
+
+
+
+
+
+</body>
+</html>
diff --git a/docs/html/reference/com/google/android/gms/drive/DriveFile.OnContentsOpenedCallback.html b/docs/html/reference/com/google/android/gms/drive/DriveFile.OnContentsOpenedCallback.html
new file mode 100644
index 0000000..f5fd009
--- /dev/null
+++ b/docs/html/reference/com/google/android/gms/drive/DriveFile.OnContentsOpenedCallback.html
@@ -0,0 +1,924 @@
+<!DOCTYPE html>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<html>
+<head>
+
+
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<meta name="viewport" content="width=device-width" />
+
+<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
+<title>DriveFile.OnContentsOpenedCallback | Android Developers</title>
+
+<!-- STYLESHEETS -->
+<link rel="stylesheet"
+href="//fonts.googleapis.com/css?family=Roboto:regular,medium,thin,italic,mediumitalic,bold" title="roboto">
+<link href="/assets/css/default.css" rel="stylesheet" type="text/css">
+
+
+
+<!-- JAVASCRIPT -->
+<script src="//www.google.com/jsapi" type="text/javascript"></script>
+<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
+<script type="text/javascript">
+ var toRoot = "/";
+ var metaTags = [];
+ var devsite = false;
+</script>
+<script src="/assets/js/docs.js" type="text/javascript"></script>
+
+<script type="text/javascript">
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-5831155-1']);
+ _gaq.push(['_trackPageview']);
+
+ (function() {
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+ })();
+</script>
+</head>
+<body class="gc-documentation google
+ develop" itemscope itemtype="http://schema.org/Article">
+ <div id="doc-api-level" class="" style="display:none"></div>
+ <a name="top"></a>
+
+<a name="top"></a>
+
+ <!-- Header -->
+ <div id="header">
+ <div class="wrap" id="header-wrap">
+ <div class="col-3 logo">
+ <a href="/index.html">
+ <img src="/assets/images/dac_logo.png" width="123" height="25" alt="Android Developers" />
+ </a>
+ <div class="btn-quicknav" id="btn-quicknav">
+ <a href="#" class="arrow-inactive">Quicknav</a>
+ <a href="#" class="arrow-active">Quicknav</a>
+ </div>
+ </div>
+ <ul class="nav-x col-9">
+ <li class="design">
+ <a href="/design/index.html"
+ zh-tw-lang="設計"
+ zh-cn-lang="设计"
+ ru-lang="Проектирование"
+ ko-lang="디자인"
+ ja-lang="設計"
+ es-lang="Diseñar"
+ >Design</a></li>
+ <li class="develop"><a href="/develop/index.html"
+ zh-tw-lang="開發"
+ zh-cn-lang="开发"
+ ru-lang="Разработка"
+ ko-lang="개발"
+ ja-lang="開発"
+ es-lang="Desarrollar"
+ >Develop</a></li>
+ <li class="distribute last"><a href="/distribute/index.html"
+ zh-tw-lang="發佈"
+ zh-cn-lang="分发"
+ ru-lang="Распространение"
+ ko-lang="배포"
+ ja-lang="配布"
+ es-lang="Distribuir"
+ >Distribute</a></li>
+ </ul>
+
+ <!-- New Search -->
+ <div class="menu-container">
+ <div class="moremenu">
+ <div id="more-btn"></div>
+ </div>
+ <div class="morehover" id="moremenu">
+ <div class="top"></div>
+ <div class="mid">
+ <div class="header">Links</div>
+ <ul>
+ <li><a href="https://play.google.com/apps/publish/">Google Play Developer Console</a></li>
+ <li><a href="http://android-developers.blogspot.com/">Android Developers Blog</a></li>
+ <li><a href="/about/index.html">About Android</a></li>
+ </ul>
+ <div class="header">Android Sites</div>
+ <ul>
+ <li><a href="http://www.android.com">Android.com</a></li>
+ <li class="active"><a>Android Developers</a></li>
+ <li><a href="http://source.android.com">Android Open Source Project</a></li>
+ </ul>
+
+
+
+ <div class="header">Language</div>
+ <div id="language" class="locales">
+ <select name="language" onChange="changeLangPref(this.value, true)">
+ <option value="en">English</option>
+ <option value="es">Español</option>
+ <option value="ja">日本語</option>
+ <option value="ko">한국어</option>
+ <option value="ru">Русский</option>
+ <option value="zh-cn">中文 (中国)</option>
+ <option value="zh-tw">中文 (台灣)</option>
+ </select>
+ </div>
+ <script type="text/javascript">
+ <!--
+ loadLangPref();
+ //-->
+ </script>
+
+
+
+
+ <br class="clearfix" />
+ </div>
+ <div class="bottom"></div>
+ </div>
+ <div class="search" id="search-container">
+ <div class="search-inner">
+ <div id="search-btn"></div>
+ <div class="left"></div>
+ <form onsubmit="return submit_search()">
+ <input id="search_autocomplete" type="text" value="" autocomplete="off" name="q"
+onfocus="search_focus_changed(this, true)" onblur="search_focus_changed(this, false)"
+onkeydown="return search_changed(event, true, '/')"
+onkeyup="return search_changed(event, false, '/')" />
+ </form>
+ <div class="right"></div>
+ <a class="close hide">close</a>
+ <div class="left"></div>
+ <div class="right"></div>
+ </div>
+ </div>
+
+ <div class="search_filtered_wrapper reference">
+ <div class="suggest-card reference no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ </div>
+
+ <div class="search_filtered_wrapper docs">
+ <div class="suggest-card dummy no-display"> </div>
+ <div class="suggest-card develop no-display">
+ <ul class="search_filtered">
+ </ul>
+ <div class="child-card guides no-display">
+ </div>
+ <div class="child-card training no-display">
+ </div>
+ <div class="child-card samples no-display">
+ </div>
+ </div>
+ <div class="suggest-card design no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ <div class="suggest-card distribute no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ </div>
+
+ </div>
+ <!-- /New Search>
+
+
+ <!-- Expanded quicknav -->
+ <div id="quicknav" class="col-9">
+ <ul>
+ <li class="design">
+ <ul>
+ <li><a href="/design/index.html">Get Started</a></li>
+ <li><a href="/design/style/index.html">Style</a></li>
+ <li><a href="/design/patterns/index.html">Patterns</a></li>
+ <li><a href="/design/building-blocks/index.html">Building Blocks</a></li>
+ <li><a href="/design/downloads/index.html">Downloads</a></li>
+ <li><a href="/design/videos/index.html">Videos</a></li>
+ </ul>
+ </li>
+ <li class="develop">
+ <ul>
+ <li><a href="/training/index.html"
+ zh-tw-lang="訓練課程"
+ zh-cn-lang="培训"
+ ru-lang="Курсы"
+ ko-lang="교육"
+ ja-lang="トレーニング"
+ es-lang="Capacitación"
+ >Training</a></li>
+ <li><a href="/guide/index.html"
+ zh-tw-lang="API 指南"
+ zh-cn-lang="API 指南"
+ ru-lang="Руководства по API"
+ ko-lang="API 가이드"
+ ja-lang="API ガイド"
+ es-lang="Guías de la API"
+ >API Guides</a></li>
+ <li><a href="/reference/packages.html"
+ zh-tw-lang="參考資源"
+ zh-cn-lang="参考"
+ ru-lang="Справочник"
+ ko-lang="참조문서"
+ ja-lang="リファレンス"
+ es-lang="Referencia"
+ >Reference</a></li>
+ <li><a href="/tools/index.html"
+ zh-tw-lang="相關工具"
+ zh-cn-lang="工具"
+ ru-lang="Инструменты"
+ ko-lang="도구"
+ ja-lang="ツール"
+ es-lang="Herramientas"
+ >Tools</a>
+ <ul><li><a href="/sdk/index.html">Get the SDK</a></li></ul>
+ </li>
+ <li><a href="/google/index.html">Google Services</a>
+ </li>
+
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
+ </ul>
+ </li>
+ <li class="distribute last">
+ <ul>
+ <li><a href="/distribute/index.html">Google Play</a></li>
+ <li><a href="/distribute/googleplay/publish/index.html">Publishing</a></li>
+ <li><a href="/distribute/googleplay/promote/index.html">Promoting</a></li>
+ <li><a href="/distribute/googleplay/quality/index.html">App Quality</a></li>
+ <li><a href="/distribute/googleplay/spotlight/index.html">Spotlight</a></li>
+ <li><a href="/distribute/open.html">Open Distribution</a></li>
+ </ul>
+ </li>
+ </ul>
+ </div>
+ <!-- /Expanded quicknav -->
+ </div>
+ </div>
+ <!-- /Header -->
+
+
+ <div id="searchResults" class="wrap" style="display:none;">
+ <h2 id="searchTitle">Results</h2>
+ <div id="leftSearchControl" class="search-control">Loading...</div>
+ </div>
+
+
+
+ <!-- Secondary x-nav -->
+ <div id="nav-x">
+ <div class="wrap">
+ <ul class="nav-x col-9 develop" style="width:100%">
+ <li class="training"><a href="/training/index.html"
+ zh-tw-lang="訓練課程"
+ zh-cn-lang="培训"
+ ru-lang="Курсы"
+ ko-lang="교육"
+ ja-lang="トレーニング"
+ es-lang="Capacitación"
+ >Training</a></li>
+ <li class="guide"><a href="/guide/index.html"
+ zh-tw-lang="API 指南"
+ zh-cn-lang="API 指南"
+ ru-lang="Руководства по API"
+ ko-lang="API 가이드"
+ ja-lang="API ガイド"
+ es-lang="Guías de la API"
+ >API Guides</a></li>
+ <li class="reference"><a href="/reference/packages.html"
+ zh-tw-lang="參考資源"
+ zh-cn-lang="参考"
+ ru-lang="Справочник"
+ ko-lang="참조문서"
+ ja-lang="リファレンス"
+ es-lang="Referencia"
+ >Reference</a></li>
+ <li class="tools"><a href="/tools/index.html"
+ zh-tw-lang="相關工具"
+ zh-cn-lang="工具"
+ ru-lang="Инструменты"
+ ko-lang="도구"
+ ja-lang="ツール"
+ es-lang="Herramientas"
+ >Tools</a></li>
+ <li class="google"><a href="/google/index.html"
+ >Google Services</a>
+ </li>
+
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
+ </ul>
+ </div>
+
+ </div>
+ <!-- /Sendondary x-nav -->
+
+
+
+
+
+
+
+
+
+ <div class="wrap clearfix" id="body-content">
+ <div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
+ <div id="devdoc-nav" class="scroll-pane">
+<a class="totop" href="#top" data-g-event="left-nav-top">to top</a>
+
+
+
+<ul id="nav">
+
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/index.html">
+ <span class="en">Overview</span>
+ </a></div>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/games.html">
+ <span class="en">Games</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/location.html">
+ <span class="en">Location</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/plus.html">
+ <span class="en">Google+</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/maps.html">
+ <span class="en">Maps</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play-services/ads.html">
+ <span class="en">Ads</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play-services/id.html">
+ <span class="en">Advertising ID</span></a>
+ </li>
+ </ul>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/wallet.html">
+ <span class="en">Wallet</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/auth.html">
+ <span class="en">Authorization</span>
+ </a></div>
+ </li>
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play-services/index.html">
+ <span class="en">Google Play Services</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play-services/setup.html">
+ <span class="en">Setup</span></a>
+ </li>
+ <li id="gms-tree-list" class="nav-section">
+ <div class="nav-section-header">
+ <a href="/reference/gms-packages.html">
+ <span class="en">Reference</span>
+ </a>
+ <div>
+ </li>
+ </ul>
+ </li>
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/billing/index.html">
+ <span class="en">Google Play In-app Billing</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/billing/billing_overview.html">
+ <span class="en">Overview</span></a>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/api.html">
+ <span class="en">Version 3 API</span></a></div>
+ <ul>
+ <li><a href="/google/play/billing/billing_integrate.html">
+ <span class="en">Implementing the API</span></a></li>
+ <li><a href="/google/play/billing/billing_reference.html">
+ <span class="en">Reference</span></a></li>
+ </ul>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/v2/api.html">
+ <span class="en">Version 2 API</span></a></div>
+ <ul>
+ <li><a href="/google/play/billing/v2/billing_integrate.html">
+ <span class="en">Implementing the API</span></a></li>
+ <li><a href="/google/play/billing/v2/billing_subscriptions.html">
+ <span class="en">Subscriptions</span></a></li>
+ <li><a href="/google/play/billing/v2/billing_reference.html">
+ <span class="en">Reference</span></a></li>
+ </ul>
+ </li>
+ <li><a href="/google/play/billing/billing_subscriptions.html">
+ <span class="en">Subscriptions</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_best_practices.html">
+ <span class="en">Security and Design</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_testing.html">
+ <span class="en">Testing In-app Billing</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_admin.html">
+ <span class="en">Administering In-app Billing</span></a>
+ </li>
+ <li><a href="/google/play/billing/gp-purchase-status-api.html">
+ <span class="en">Purchase Status API</span></a>
+ </li>
+ <li><a href="/google/play/billing/versions.html">
+ <span class="en">Version Notes</span></a>
+ </li>
+ </ul>
+ </li>
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/gcm/index.html">
+ <span class="en">Google Cloud Messaging</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
+ <li><a href="/google/gcm/gs.html">
+ <span class="en">Getting Started</span></a>
+ </li>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
+ </li>
+ <li><a href="/google/gcm/notifications.html">
+ <span class="en">User Notifications</span></a>
+ </li>
+ <li><a href="/google/gcm/adv.html">
+ <span class="en">Advanced Topics</span></a>
+ </li>
+ <li><a href="/google/gcm/c2dm.html">
+ <span class="en">Migration</span></a>
+ </li>
+ <li id="gcm-tree-list" class="nav-section">
+ <div class="nav-section-header">
+ <a href="/reference/gcm-packages.html">
+ <span class="en">Reference</span>
+ </a>
+ <div>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/dist.html">
+ <span class="en">Google Play Distribution</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/filters.html">
+ <span class="en">Filters on Google Play</span></a>
+ </li>
+
+ <li><a href="/google/play/publishing/multiple-apks.html">
+ <span class="en">Multiple APK Support</span></a>
+ </li>
+ <li><a href="/google/play/expansion-files.html">
+ <span class="en">APK Expansion Files</span></a>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/licensing/index.html">
+ <span class="en">Application Licensing</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/licensing/overview.html">
+ <span class="en">Licensing Overview</span></a>
+ </li>
+ <li><a href="/google/play/licensing/setting-up.html">
+ <span class="en">Setting Up for Licensing</span></a>
+ </li>
+ <li><a href="/google/play/licensing/adding-licensing.html">
+ <span class="en">Adding Licensing to Your App</span></a>
+ </li>
+ <li><a href="/google/play/licensing/licensing-reference.html">
+ <span class="en">Licensing Reference</span></a>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/backup/index.html">
+ Android Backup Service</a>
+ </div>
+ <ul>
+ <li><a href="/google/backup/signup.html">
+ Register</a>
+ </li>
+ </ul>
+ </li>
+
+ </ul>
+
+</li>
+
+
+
+</ul>
+
+<script type="text/javascript">
+<!--
+ buildToggleLists();
+ changeNavLang(getLangPref());
+//-->
+</script>
+
+
+
+
+ </div>
+ <script type="text/javascript">
+ showGoogleRefTree();
+
+ </script>
+ </div> <!-- end side-nav -->
+ <script>
+ $(document).ready(function() {
+ scrollIntoView("devdoc-nav");
+ });
+ </script>
+
+
+
+
+
+
+<div class="col-12" id="doc-col">
+
+<div id="api-info-block">
+
+
+
+
+<div class="sum-details-links">
+
+</div><!-- end sum-details-links -->
+<div class="api-level">
+
+
+
+
+</div>
+</div><!-- end api-info-block -->
+
+
+<!-- ======== START OF CLASS DATA ======== -->
+
+<div id="jd-header">
+ public
+ static
+
+
+ interface
+<h1 itemprop="name">DriveFile.OnContentsOpenedCallback</h1>
+
+
+
+
+
+
+
+
+</div><!-- end header -->
+
+<div id="naMessage"></div>
+
+<div id="jd-content" class="api apilevel-">
+<table class="jd-inheritance-table">
+
+
+ <tr>
+
+ <td colspan="1" class="jd-inheritance-class-cell">com.google.android.gms.drive.DriveFile.OnContentsOpenedCallback</td>
+ </tr>
+
+
+</table>
+
+
+
+
+
+
+
+<div class="jd-descr">
+
+
+<h2>Class Overview</h2>
+<p class="caution">
+ <strong>Note:</strong> The Google Drive Android API is currently in <strong>developer
+ preview</strong>. Applications compiled using this version of the API will
+ continue to operate on devices using future versions of Google Play services;
+ however, changes to the API are expected in future releases.
+</p>
+<p itemprop="articleBody">A callback that provides the result for a OpenContents request.
+</p>
+
+
+
+
+
+</div><!-- jd-descr -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<div class="jd-descr">
+
+
+<h2>Summary</h2>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
+
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/DriveFile.OnContentsOpenedCallback.html#onOpen(com.google.android.gms.drive.DriveApi.ContentsResult)">onOpen</a></span>(<a href="/reference/com/google/android/gms/drive/DriveApi.ContentsResult.html">DriveApi.ContentsResult</a> result)</nobr>
+
+ </td></tr>
+
+
+
+</table>
+
+
+
+
+
+
+
+</div><!-- jd-descr (summary) -->
+
+<!-- Details -->
+
+
+
+
+
+
+
+
+<!-- XML Attributes -->
+
+
+<!-- Enum Values -->
+
+
+<!-- Constants -->
+
+
+<!-- Fields -->
+
+
+<!-- Public ctors -->
+
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<!-- Protected ctors -->
+
+
+
+<!-- ========= METHOD DETAIL ======== -->
+<!-- Public methdos -->
+
+<h2>Public Methods</h2>
+
+
+
+<A NAME="onOpen(com.google.android.gms.drive.DriveApi.ContentsResult)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+ abstract
+
+ void
+ </span>
+ <span class="sympad">onOpen</span>
+ <span class="normal">(<a href="/reference/com/google/android/gms/drive/DriveApi.ContentsResult.html">DriveApi.ContentsResult</a> result)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+ </div>
+</div>
+
+
+
+
+
+<!-- ========= METHOD DETAIL ======== -->
+
+
+
+<!-- ========= END OF CLASS DATA ========= -->
+<A NAME="navbar_top"></A>
+
+<div id="footer" class="wrap" >
+
+
+ <div id="copyright">
+
+ Except as noted, this content is licensed under <a
+ href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.
+ For details and restrictions, see the <a href="/license.html">
+ Content License</a>.
+ </div>
+ <div id="build_info">
+
+<script src="/timestamp.js" type="text/javascript"></script>
+<script>document.write(BUILD_TIMESTAMP)</script>
+
+ </div>
+
+
+ <div id="footerlinks">
+
+ <p>
+ <a href="/about/index.html">About Android</a> |
+ <a href="/legal.html">Legal</a> |
+ <a href="/support.html">Support</a>
+ </p>
+ </div>
+
+</div> <!-- end footer -->
+</div> <!-- jd-content -->
+
+</div><!-- end doc-content -->
+
+</div> <!-- end body-content -->
+
+
+
+
+
+
+</body>
+</html>
diff --git a/docs/html/reference/com/google/android/gms/drive/DriveFile.html b/docs/html/reference/com/google/android/gms/drive/DriveFile.html
new file mode 100644
index 0000000..451d413
--- /dev/null
+++ b/docs/html/reference/com/google/android/gms/drive/DriveFile.html
@@ -0,0 +1,1421 @@
+<!DOCTYPE html>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<html>
+<head>
+
+
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<meta name="viewport" content="width=device-width" />
+
+<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
+<title>DriveFile | Android Developers</title>
+
+<!-- STYLESHEETS -->
+<link rel="stylesheet"
+href="//fonts.googleapis.com/css?family=Roboto:regular,medium,thin,italic,mediumitalic,bold" title="roboto">
+<link href="/assets/css/default.css" rel="stylesheet" type="text/css">
+
+
+
+<!-- JAVASCRIPT -->
+<script src="//www.google.com/jsapi" type="text/javascript"></script>
+<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
+<script type="text/javascript">
+ var toRoot = "/";
+ var metaTags = [];
+ var devsite = false;
+</script>
+<script src="/assets/js/docs.js" type="text/javascript"></script>
+
+<script type="text/javascript">
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-5831155-1']);
+ _gaq.push(['_trackPageview']);
+
+ (function() {
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+ })();
+</script>
+</head>
+<body class="gc-documentation google
+ develop" itemscope itemtype="http://schema.org/Article">
+ <div id="doc-api-level" class="" style="display:none"></div>
+ <a name="top"></a>
+
+<a name="top"></a>
+
+ <!-- Header -->
+ <div id="header">
+ <div class="wrap" id="header-wrap">
+ <div class="col-3 logo">
+ <a href="/index.html">
+ <img src="/assets/images/dac_logo.png" width="123" height="25" alt="Android Developers" />
+ </a>
+ <div class="btn-quicknav" id="btn-quicknav">
+ <a href="#" class="arrow-inactive">Quicknav</a>
+ <a href="#" class="arrow-active">Quicknav</a>
+ </div>
+ </div>
+ <ul class="nav-x col-9">
+ <li class="design">
+ <a href="/design/index.html"
+ zh-tw-lang="設計"
+ zh-cn-lang="设计"
+ ru-lang="Проектирование"
+ ko-lang="디자인"
+ ja-lang="設計"
+ es-lang="Diseñar"
+ >Design</a></li>
+ <li class="develop"><a href="/develop/index.html"
+ zh-tw-lang="開發"
+ zh-cn-lang="开发"
+ ru-lang="Разработка"
+ ko-lang="개발"
+ ja-lang="開発"
+ es-lang="Desarrollar"
+ >Develop</a></li>
+ <li class="distribute last"><a href="/distribute/index.html"
+ zh-tw-lang="發佈"
+ zh-cn-lang="分发"
+ ru-lang="Распространение"
+ ko-lang="배포"
+ ja-lang="配布"
+ es-lang="Distribuir"
+ >Distribute</a></li>
+ </ul>
+
+ <!-- New Search -->
+ <div class="menu-container">
+ <div class="moremenu">
+ <div id="more-btn"></div>
+ </div>
+ <div class="morehover" id="moremenu">
+ <div class="top"></div>
+ <div class="mid">
+ <div class="header">Links</div>
+ <ul>
+ <li><a href="https://play.google.com/apps/publish/">Google Play Developer Console</a></li>
+ <li><a href="http://android-developers.blogspot.com/">Android Developers Blog</a></li>
+ <li><a href="/about/index.html">About Android</a></li>
+ </ul>
+ <div class="header">Android Sites</div>
+ <ul>
+ <li><a href="http://www.android.com">Android.com</a></li>
+ <li class="active"><a>Android Developers</a></li>
+ <li><a href="http://source.android.com">Android Open Source Project</a></li>
+ </ul>
+
+
+
+ <div class="header">Language</div>
+ <div id="language" class="locales">
+ <select name="language" onChange="changeLangPref(this.value, true)">
+ <option value="en">English</option>
+ <option value="es">Español</option>
+ <option value="ja">日本語</option>
+ <option value="ko">한국어</option>
+ <option value="ru">Русский</option>
+ <option value="zh-cn">中文 (中国)</option>
+ <option value="zh-tw">中文 (台灣)</option>
+ </select>
+ </div>
+ <script type="text/javascript">
+ <!--
+ loadLangPref();
+ //-->
+ </script>
+
+
+
+
+ <br class="clearfix" />
+ </div>
+ <div class="bottom"></div>
+ </div>
+ <div class="search" id="search-container">
+ <div class="search-inner">
+ <div id="search-btn"></div>
+ <div class="left"></div>
+ <form onsubmit="return submit_search()">
+ <input id="search_autocomplete" type="text" value="" autocomplete="off" name="q"
+onfocus="search_focus_changed(this, true)" onblur="search_focus_changed(this, false)"
+onkeydown="return search_changed(event, true, '/')"
+onkeyup="return search_changed(event, false, '/')" />
+ </form>
+ <div class="right"></div>
+ <a class="close hide">close</a>
+ <div class="left"></div>
+ <div class="right"></div>
+ </div>
+ </div>
+
+ <div class="search_filtered_wrapper reference">
+ <div class="suggest-card reference no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ </div>
+
+ <div class="search_filtered_wrapper docs">
+ <div class="suggest-card dummy no-display"> </div>
+ <div class="suggest-card develop no-display">
+ <ul class="search_filtered">
+ </ul>
+ <div class="child-card guides no-display">
+ </div>
+ <div class="child-card training no-display">
+ </div>
+ <div class="child-card samples no-display">
+ </div>
+ </div>
+ <div class="suggest-card design no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ <div class="suggest-card distribute no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ </div>
+
+ </div>
+ <!-- /New Search>
+
+
+ <!-- Expanded quicknav -->
+ <div id="quicknav" class="col-9">
+ <ul>
+ <li class="design">
+ <ul>
+ <li><a href="/design/index.html">Get Started</a></li>
+ <li><a href="/design/style/index.html">Style</a></li>
+ <li><a href="/design/patterns/index.html">Patterns</a></li>
+ <li><a href="/design/building-blocks/index.html">Building Blocks</a></li>
+ <li><a href="/design/downloads/index.html">Downloads</a></li>
+ <li><a href="/design/videos/index.html">Videos</a></li>
+ </ul>
+ </li>
+ <li class="develop">
+ <ul>
+ <li><a href="/training/index.html"
+ zh-tw-lang="訓練課程"
+ zh-cn-lang="培训"
+ ru-lang="Курсы"
+ ko-lang="교육"
+ ja-lang="トレーニング"
+ es-lang="Capacitación"
+ >Training</a></li>
+ <li><a href="/guide/index.html"
+ zh-tw-lang="API 指南"
+ zh-cn-lang="API 指南"
+ ru-lang="Руководства по API"
+ ko-lang="API 가이드"
+ ja-lang="API ガイド"
+ es-lang="Guías de la API"
+ >API Guides</a></li>
+ <li><a href="/reference/packages.html"
+ zh-tw-lang="參考資源"
+ zh-cn-lang="参考"
+ ru-lang="Справочник"
+ ko-lang="참조문서"
+ ja-lang="リファレンス"
+ es-lang="Referencia"
+ >Reference</a></li>
+ <li><a href="/tools/index.html"
+ zh-tw-lang="相關工具"
+ zh-cn-lang="工具"
+ ru-lang="Инструменты"
+ ko-lang="도구"
+ ja-lang="ツール"
+ es-lang="Herramientas"
+ >Tools</a>
+ <ul><li><a href="/sdk/index.html">Get the SDK</a></li></ul>
+ </li>
+ <li><a href="/google/index.html">Google Services</a>
+ </li>
+
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
+ </ul>
+ </li>
+ <li class="distribute last">
+ <ul>
+ <li><a href="/distribute/index.html">Google Play</a></li>
+ <li><a href="/distribute/googleplay/publish/index.html">Publishing</a></li>
+ <li><a href="/distribute/googleplay/promote/index.html">Promoting</a></li>
+ <li><a href="/distribute/googleplay/quality/index.html">App Quality</a></li>
+ <li><a href="/distribute/googleplay/spotlight/index.html">Spotlight</a></li>
+ <li><a href="/distribute/open.html">Open Distribution</a></li>
+ </ul>
+ </li>
+ </ul>
+ </div>
+ <!-- /Expanded quicknav -->
+ </div>
+ </div>
+ <!-- /Header -->
+
+
+ <div id="searchResults" class="wrap" style="display:none;">
+ <h2 id="searchTitle">Results</h2>
+ <div id="leftSearchControl" class="search-control">Loading...</div>
+ </div>
+
+
+
+ <!-- Secondary x-nav -->
+ <div id="nav-x">
+ <div class="wrap">
+ <ul class="nav-x col-9 develop" style="width:100%">
+ <li class="training"><a href="/training/index.html"
+ zh-tw-lang="訓練課程"
+ zh-cn-lang="培训"
+ ru-lang="Курсы"
+ ko-lang="교육"
+ ja-lang="トレーニング"
+ es-lang="Capacitación"
+ >Training</a></li>
+ <li class="guide"><a href="/guide/index.html"
+ zh-tw-lang="API 指南"
+ zh-cn-lang="API 指南"
+ ru-lang="Руководства по API"
+ ko-lang="API 가이드"
+ ja-lang="API ガイド"
+ es-lang="Guías de la API"
+ >API Guides</a></li>
+ <li class="reference"><a href="/reference/packages.html"
+ zh-tw-lang="參考資源"
+ zh-cn-lang="参考"
+ ru-lang="Справочник"
+ ko-lang="참조문서"
+ ja-lang="リファレンス"
+ es-lang="Referencia"
+ >Reference</a></li>
+ <li class="tools"><a href="/tools/index.html"
+ zh-tw-lang="相關工具"
+ zh-cn-lang="工具"
+ ru-lang="Инструменты"
+ ko-lang="도구"
+ ja-lang="ツール"
+ es-lang="Herramientas"
+ >Tools</a></li>
+ <li class="google"><a href="/google/index.html"
+ >Google Services</a>
+ </li>
+
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
+ </ul>
+ </div>
+
+ </div>
+ <!-- /Sendondary x-nav -->
+
+
+
+
+
+
+
+
+
+ <div class="wrap clearfix" id="body-content">
+ <div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
+ <div id="devdoc-nav" class="scroll-pane">
+<a class="totop" href="#top" data-g-event="left-nav-top">to top</a>
+
+
+
+<ul id="nav">
+
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/index.html">
+ <span class="en">Overview</span>
+ </a></div>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/games.html">
+ <span class="en">Games</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/location.html">
+ <span class="en">Location</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/plus.html">
+ <span class="en">Google+</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/maps.html">
+ <span class="en">Maps</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play-services/ads.html">
+ <span class="en">Ads</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play-services/id.html">
+ <span class="en">Advertising ID</span></a>
+ </li>
+ </ul>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/wallet.html">
+ <span class="en">Wallet</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/auth.html">
+ <span class="en">Authorization</span>
+ </a></div>
+ </li>
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play-services/index.html">
+ <span class="en">Google Play Services</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play-services/setup.html">
+ <span class="en">Setup</span></a>
+ </li>
+ <li id="gms-tree-list" class="nav-section">
+ <div class="nav-section-header">
+ <a href="/reference/gms-packages.html">
+ <span class="en">Reference</span>
+ </a>
+ <div>
+ </li>
+ </ul>
+ </li>
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/billing/index.html">
+ <span class="en">Google Play In-app Billing</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/billing/billing_overview.html">
+ <span class="en">Overview</span></a>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/api.html">
+ <span class="en">Version 3 API</span></a></div>
+ <ul>
+ <li><a href="/google/play/billing/billing_integrate.html">
+ <span class="en">Implementing the API</span></a></li>
+ <li><a href="/google/play/billing/billing_reference.html">
+ <span class="en">Reference</span></a></li>
+ </ul>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/v2/api.html">
+ <span class="en">Version 2 API</span></a></div>
+ <ul>
+ <li><a href="/google/play/billing/v2/billing_integrate.html">
+ <span class="en">Implementing the API</span></a></li>
+ <li><a href="/google/play/billing/v2/billing_subscriptions.html">
+ <span class="en">Subscriptions</span></a></li>
+ <li><a href="/google/play/billing/v2/billing_reference.html">
+ <span class="en">Reference</span></a></li>
+ </ul>
+ </li>
+ <li><a href="/google/play/billing/billing_subscriptions.html">
+ <span class="en">Subscriptions</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_best_practices.html">
+ <span class="en">Security and Design</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_testing.html">
+ <span class="en">Testing In-app Billing</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_admin.html">
+ <span class="en">Administering In-app Billing</span></a>
+ </li>
+ <li><a href="/google/play/billing/gp-purchase-status-api.html">
+ <span class="en">Purchase Status API</span></a>
+ </li>
+ <li><a href="/google/play/billing/versions.html">
+ <span class="en">Version Notes</span></a>
+ </li>
+ </ul>
+ </li>
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/gcm/index.html">
+ <span class="en">Google Cloud Messaging</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
+ <li><a href="/google/gcm/gs.html">
+ <span class="en">Getting Started</span></a>
+ </li>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
+ </li>
+ <li><a href="/google/gcm/notifications.html">
+ <span class="en">User Notifications</span></a>
+ </li>
+ <li><a href="/google/gcm/adv.html">
+ <span class="en">Advanced Topics</span></a>
+ </li>
+ <li><a href="/google/gcm/c2dm.html">
+ <span class="en">Migration</span></a>
+ </li>
+ <li id="gcm-tree-list" class="nav-section">
+ <div class="nav-section-header">
+ <a href="/reference/gcm-packages.html">
+ <span class="en">Reference</span>
+ </a>
+ <div>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/dist.html">
+ <span class="en">Google Play Distribution</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/filters.html">
+ <span class="en">Filters on Google Play</span></a>
+ </li>
+
+ <li><a href="/google/play/publishing/multiple-apks.html">
+ <span class="en">Multiple APK Support</span></a>
+ </li>
+ <li><a href="/google/play/expansion-files.html">
+ <span class="en">APK Expansion Files</span></a>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/licensing/index.html">
+ <span class="en">Application Licensing</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/licensing/overview.html">
+ <span class="en">Licensing Overview</span></a>
+ </li>
+ <li><a href="/google/play/licensing/setting-up.html">
+ <span class="en">Setting Up for Licensing</span></a>
+ </li>
+ <li><a href="/google/play/licensing/adding-licensing.html">
+ <span class="en">Adding Licensing to Your App</span></a>
+ </li>
+ <li><a href="/google/play/licensing/licensing-reference.html">
+ <span class="en">Licensing Reference</span></a>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/backup/index.html">
+ Android Backup Service</a>
+ </div>
+ <ul>
+ <li><a href="/google/backup/signup.html">
+ Register</a>
+ </li>
+ </ul>
+ </li>
+
+ </ul>
+
+</li>
+
+
+
+</ul>
+
+<script type="text/javascript">
+<!--
+ buildToggleLists();
+ changeNavLang(getLangPref());
+//-->
+</script>
+
+
+
+
+ </div>
+ <script type="text/javascript">
+ showGoogleRefTree();
+
+ </script>
+ </div> <!-- end side-nav -->
+ <script>
+ $(document).ready(function() {
+ scrollIntoView("devdoc-nav");
+ });
+ </script>
+
+
+
+
+
+
+<div class="col-12" id="doc-col">
+
+<div id="api-info-block">
+
+
+
+
+
+
+
+
+
+
+
+<div class="sum-details-links">
+
+Summary:
+
+ <a href="#nestedclasses">Nested Classes</a>
+
+
+
+
+
+
+ | <a href="#constants">Constants</a>
+
+
+
+
+
+
+
+
+ | <a href="#pubmethods">Methods</a>
+
+
+
+
+ | <a href="#inhmethods">Inherited Methods</a>
+
+| <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
+
+</div><!-- end sum-details-links -->
+<div class="api-level">
+
+
+
+
+</div>
+</div><!-- end api-info-block -->
+
+
+<!-- ======== START OF CLASS DATA ======== -->
+
+<div id="jd-header">
+ public
+
+
+
+ interface
+<h1 itemprop="name">DriveFile</h1>
+
+
+
+
+
+ implements
+
+ <a href="/reference/com/google/android/gms/drive/DriveResource.html">DriveResource</a>
+
+
+
+
+
+</div><!-- end header -->
+
+<div id="naMessage"></div>
+
+<div id="jd-content" class="api apilevel-">
+<table class="jd-inheritance-table">
+
+
+ <tr>
+
+ <td colspan="1" class="jd-inheritance-class-cell">com.google.android.gms.drive.DriveFile</td>
+ </tr>
+
+
+</table>
+
+
+
+
+
+
+
+<div class="jd-descr">
+
+
+<h2>Class Overview</h2>
+<p class="caution">
+ <strong>Note:</strong> The Google Drive Android API is currently in <strong>developer
+ preview</strong>. Applications compiled using this version of the API will
+ continue to operate on devices using future versions of Google Play services;
+ however, changes to the API are expected in future releases.
+</p>
+<p itemprop="articleBody">A file in Drive. This class provides access to the contents and metadata of the specified file.
+ To retrieve a DriveFile from a known drive id, use <code><a href="/">ERROR(/DriveApi#getFile(DriveId))</a></code>.
+</p>
+
+
+
+
+
+</div><!-- jd-descr -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<div class="jd-descr">
+
+
+<h2>Summary</h2>
+
+
+
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<table id="nestedclasses" class="jd-sumtable"><tr><th colspan="12">Nested Classes</th></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+ interface</nobr></td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/drive/DriveFile.DownloadProgressListener.html">DriveFile.DownloadProgressListener</a></td>
+ <td class="jd-descrcol" width="100%">A listener that listens for progress events on an active contents download. </td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+ interface</nobr></td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/drive/DriveFile.OnContentsClosedCallback.html">DriveFile.OnContentsClosedCallback</a></td>
+ <td class="jd-descrcol" width="100%">A callback that provides the result for a <code><a href="/reference/com/google/android/gms/drive/DriveFile.html#commitAndCloseContents(com.google.android.gms.common.api.GoogleApiClient, com.google.android.gms.drive.Contents)">commitAndCloseContents(GoogleApiClient, Contents)</a></code> request. </td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+ interface</nobr></td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/drive/DriveFile.OnContentsOpenedCallback.html">DriveFile.OnContentsOpenedCallback</a></td>
+ <td class="jd-descrcol" width="100%">A callback that provides the result for a OpenContents request. </td>
+ </tr>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<!-- =========== ENUM CONSTANT SUMMARY =========== -->
+<table id="constants" class="jd-sumtable"><tr><th colspan="12">Constants</th></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/drive/DriveFile.html#MODE_READ_ONLY">MODE_READ_ONLY</a></td>
+ <td class="jd-descrcol" width="100%">A mode that opens the contents only for reading.</td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/drive/DriveFile.html#MODE_READ_WRITE">MODE_READ_WRITE</a></td>
+ <td class="jd-descrcol" width="100%">A mode that opens the contents only for writing.</td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/drive/DriveFile.html#MODE_WRITE_ONLY">MODE_WRITE_ONLY</a></td>
+ <td class="jd-descrcol" width="100%">A mode that opens the contents for reading and writing.</td>
+ </tr>
+
+
+
+</table>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
+
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ <a href="/reference/com/google/android/gms/common/api/PendingResult.html">PendingResult</a><<a href="/reference/com/google/android/gms/common/api/Status.html">Status</a>, <a href="/reference/com/google/android/gms/drive/DriveFile.OnContentsClosedCallback.html">DriveFile.OnContentsClosedCallback</a>></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/DriveFile.html#commitAndCloseContents(com.google.android.gms.common.api.GoogleApiClient, com.google.android.gms.drive.Contents)">commitAndCloseContents</a></span>(<a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html">GoogleApiClient</a> apiClient, <a href="/reference/com/google/android/gms/drive/Contents.html">Contents</a> contents)</nobr>
+
+ <div class="jd-descrdiv">Closes the previously opened contents, and commits any changes if the contents were open
+ for write.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ <a href="/reference/com/google/android/gms/common/api/PendingResult.html">PendingResult</a><<a href="/reference/com/google/android/gms/common/api/Status.html">Status</a>, <a href="/reference/com/google/android/gms/drive/DriveApi.OnContentsDiscardedCallback.html">DriveApi.OnContentsDiscardedCallback</a>></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/DriveFile.html#discardContents(com.google.android.gms.common.api.GoogleApiClient, com.google.android.gms.drive.Contents)">discardContents</a></span>(<a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html">GoogleApiClient</a> apiClient, <a href="/reference/com/google/android/gms/drive/Contents.html">Contents</a> contents)</nobr>
+
+ <div class="jd-descrdiv">Closes the provided contents without saving the results.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ <a href="/reference/com/google/android/gms/common/api/PendingResult.html">PendingResult</a><<a href="/reference/com/google/android/gms/drive/DriveApi.ContentsResult.html">DriveApi.ContentsResult</a>, <a href="/reference/com/google/android/gms/drive/DriveFile.OnContentsOpenedCallback.html">DriveFile.OnContentsOpenedCallback</a>></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/DriveFile.html#openContents(com.google.android.gms.common.api.GoogleApiClient, int, com.google.android.gms.drive.DriveFile.DownloadProgressListener)">openContents</a></span>(<a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html">GoogleApiClient</a> apiClient, int mode, <a href="/reference/com/google/android/gms/drive/DriveFile.DownloadProgressListener.html">DriveFile.DownloadProgressListener</a> listener)</nobr>
+
+ <div class="jd-descrdiv">Opens the contents that are associated with this file for read and/or write.</div>
+
+ </td></tr>
+
+
+
+</table>
+
+
+
+
+
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+<table id="inhmethods" class="jd-sumtable"><tr><th>
+ <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
+ <div style="clear:left;">Inherited Methods</div></th></tr>
+
+
+<tr class="api apilevel-" >
+<td colspan="12">
+ <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.android.gms.drive.DriveResource" class="jd-expando-trigger closed"
+ ><img id="inherited-methods-com.google.android.gms.drive.DriveResource-trigger"
+ src="/assets/images/triangle-closed.png"
+ class="jd-expando-trigger-img" /></a>
+From interface
+
+ <a href="/reference/com/google/android/gms/drive/DriveResource.html">com.google.android.gms.drive.DriveResource</a>
+
+<div id="inherited-methods-com.google.android.gms.drive.DriveResource">
+ <div id="inherited-methods-com.google.android.gms.drive.DriveResource-list"
+ class="jd-inheritedlinks">
+ </div>
+ <div id="inherited-methods-com.google.android.gms.drive.DriveResource-summary" style="display: none;">
+ <table class="jd-sumtable-expando">
+
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ <a href="/reference/com/google/android/gms/drive/DriveId.html">DriveId</a></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/DriveResource.html#getDriveId()">getDriveId</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Returns the DriveId that uniquely identifies this resource.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ <a href="/reference/com/google/android/gms/common/api/PendingResult.html">PendingResult</a><<a href="/reference/com/google/android/gms/drive/DriveResource.MetadataResult.html">DriveResource.MetadataResult</a>, <a href="/reference/com/google/android/gms/drive/DriveResource.OnMetadataRetrievedCallback.html">DriveResource.OnMetadataRetrievedCallback</a>></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/DriveResource.html#getMetadata(com.google.android.gms.common.api.GoogleApiClient)">getMetadata</a></span>(<a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html">GoogleApiClient</a> apiClient)</nobr>
+
+ <div class="jd-descrdiv">Retrieves the Metadata that is associated with this resource.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ <a href="/reference/com/google/android/gms/common/api/PendingResult.html">PendingResult</a><<a href="/reference/com/google/android/gms/drive/DriveResource.MetadataResult.html">DriveResource.MetadataResult</a>, <a href="/reference/com/google/android/gms/drive/DriveResource.OnMetadataUpdatedCallback.html">DriveResource.OnMetadataUpdatedCallback</a>></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/DriveResource.html#updateMetadata(com.google.android.gms.common.api.GoogleApiClient, com.google.android.gms.drive.MetadataChangeSet)">updateMetadata</a></span>(<a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html">GoogleApiClient</a> apiClient, <a href="/reference/com/google/android/gms/drive/MetadataChangeSet.html">MetadataChangeSet</a> changeSet)</nobr>
+
+ <div class="jd-descrdiv">Updates the Metadata that is associated with this resource with the changes described
+ in the <code><a href="/reference/com/google/android/gms/drive/MetadataChangeSet.html">MetadataChangeSet</a></code>.</div>
+
+ </td></tr>
+
+
+</table>
+ </div>
+</div>
+</td></tr>
+
+
+</table>
+
+
+</div><!-- jd-descr (summary) -->
+
+<!-- Details -->
+
+
+
+
+
+
+
+
+<!-- XML Attributes -->
+
+
+<!-- Enum Values -->
+
+
+<!-- Constants -->
+
+
+<!-- ========= ENUM CONSTANTS DETAIL ======== -->
+<h2>Constants</h2>
+
+
+
+
+<A NAME="MODE_READ_ONLY"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+ static
+ final
+ int
+ </span>
+ MODE_READ_ONLY
+ </h4>
+ <div class="api-level">
+
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>A mode that opens the contents only for reading.
+</p></div>
+
+
+ <div class="jd-tagdata">
+ <span class="jd-tagtitle">Constant Value: </span>
+ <span>
+
+ 268435456
+ (0x10000000)
+
+ </span>
+ </div>
+
+ </div>
+</div>
+
+
+
+<A NAME="MODE_READ_WRITE"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+ static
+ final
+ int
+ </span>
+ MODE_READ_WRITE
+ </h4>
+ <div class="api-level">
+
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>A mode that opens the contents only for writing.
+</p></div>
+
+
+ <div class="jd-tagdata">
+ <span class="jd-tagtitle">Constant Value: </span>
+ <span>
+
+ 805306368
+ (0x30000000)
+
+ </span>
+ </div>
+
+ </div>
+</div>
+
+
+
+<A NAME="MODE_WRITE_ONLY"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+ static
+ final
+ int
+ </span>
+ MODE_WRITE_ONLY
+ </h4>
+ <div class="api-level">
+
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>A mode that opens the contents for reading and writing.
+</p></div>
+
+
+ <div class="jd-tagdata">
+ <span class="jd-tagtitle">Constant Value: </span>
+ <span>
+
+ 536870912
+ (0x20000000)
+
+ </span>
+ </div>
+
+ </div>
+</div>
+
+
+
+
+<!-- Fields -->
+
+
+<!-- Public ctors -->
+
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<!-- Protected ctors -->
+
+
+
+<!-- ========= METHOD DETAIL ======== -->
+<!-- Public methdos -->
+
+<h2>Public Methods</h2>
+
+
+
+<A NAME="commitAndCloseContents(com.google.android.gms.common.api.GoogleApiClient, com.google.android.gms.drive.Contents)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+ abstract
+
+ <a href="/reference/com/google/android/gms/common/api/PendingResult.html">PendingResult</a><<a href="/reference/com/google/android/gms/common/api/Status.html">Status</a>, <a href="/reference/com/google/android/gms/drive/DriveFile.OnContentsClosedCallback.html">DriveFile.OnContentsClosedCallback</a>>
+ </span>
+ <span class="sympad">commitAndCloseContents</span>
+ <span class="normal">(<a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html">GoogleApiClient</a> apiClient, <a href="/reference/com/google/android/gms/drive/Contents.html">Contents</a> contents)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Closes the previously opened contents, and commits any changes if the contents were open
+ for write. After invoking this method, the contents are no longer valid. New contents
+ should not be closed via this method. Instead, use them to create a new file via
+ <code><a href="/reference/com/google/android/gms/drive/DriveFolder.html#createFile(com.google.android.gms.common.api.GoogleApiClient, com.google.android.gms.drive.MetadataChangeSet, com.google.android.gms.drive.Contents)">createFile(GoogleApiClient, MetadataChangeSet, Contents)</a></code> or
+ <code><a href="/">ERROR(/DriveApi#newCreateFileActivityBuilder(GoogleApiClient))</a></code>.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>apiClient</td>
+ <td>The <code><a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html">GoogleApiClient</a></code> to service the call. The client must be
+ connected before invoking this method.</td>
+ </tr>
+ <tr>
+ <th>contents</td>
+ <td>The contents that will be saved and closed.</td>
+ </tr>
+ </table>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>a PendingResult which can be used to verify the success of the operation.
+</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="discardContents(com.google.android.gms.common.api.GoogleApiClient, com.google.android.gms.drive.Contents)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+ abstract
+
+ <a href="/reference/com/google/android/gms/common/api/PendingResult.html">PendingResult</a><<a href="/reference/com/google/android/gms/common/api/Status.html">Status</a>, <a href="/reference/com/google/android/gms/drive/DriveApi.OnContentsDiscardedCallback.html">DriveApi.OnContentsDiscardedCallback</a>>
+ </span>
+ <span class="sympad">discardContents</span>
+ <span class="normal">(<a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html">GoogleApiClient</a> apiClient, <a href="/reference/com/google/android/gms/drive/Contents.html">Contents</a> contents)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Closes the provided contents without saving the results.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>apiClient</td>
+ <td>The <code><a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html">GoogleApiClient</a></code> to service the call. The client must be
+ connected before invoking this method.</td>
+ </tr>
+ <tr>
+ <th>contents</td>
+ <td>The contents to discard.</td>
+ </tr>
+ </table>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>a PendingResult which can be used to verify the success of the operation.
+</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="openContents(com.google.android.gms.common.api.GoogleApiClient, int, com.google.android.gms.drive.DriveFile.DownloadProgressListener)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+ abstract
+
+ <a href="/reference/com/google/android/gms/common/api/PendingResult.html">PendingResult</a><<a href="/reference/com/google/android/gms/drive/DriveApi.ContentsResult.html">DriveApi.ContentsResult</a>, <a href="/reference/com/google/android/gms/drive/DriveFile.OnContentsOpenedCallback.html">DriveFile.OnContentsOpenedCallback</a>>
+ </span>
+ <span class="sympad">openContents</span>
+ <span class="normal">(<a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html">GoogleApiClient</a> apiClient, int mode, <a href="/reference/com/google/android/gms/drive/DriveFile.DownloadProgressListener.html">DriveFile.DownloadProgressListener</a> listener)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Opens the contents that are associated with this file for read and/or write. The returned
+ file is a temporary copy available only to this app. The contents are returned when they are
+ available on the device in their entirety. To listen for progress, provide a
+ <code><a href="/reference/com/google/android/gms/drive/DriveFile.DownloadProgressListener.html">DriveFile.DownloadProgressListener</a></code>.
+
+ <p>The contents must be closed via <code><a href="/reference/com/google/android/gms/drive/DriveFile.html#commitAndCloseContents(com.google.android.gms.common.api.GoogleApiClient, com.google.android.gms.drive.Contents)">commitAndCloseContents(GoogleApiClient, Contents)</a></code>. If the contents are
+ opened for write, invoking close will save the updates. Every open must be matched with a
+ corresponding <code><a href="/reference/com/google/android/gms/drive/DriveFile.html#commitAndCloseContents(com.google.android.gms.common.api.GoogleApiClient, com.google.android.gms.drive.Contents)">commitAndCloseContents(GoogleApiClient, Contents)</a></code>.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>apiClient</td>
+ <td>The <code><a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html">GoogleApiClient</a></code> to service the call.</td>
+ </tr>
+ <tr>
+ <th>mode</td>
+ <td>Describes the mode in which to open the file. Possible values are
+ <code><a href="/reference/com/google/android/gms/drive/DriveFile.html#MODE_READ_ONLY">MODE_READ_ONLY</a></code>, <code><a href="/reference/com/google/android/gms/drive/DriveFile.html#MODE_READ_WRITE">MODE_READ_WRITE</a></code> and <code><a href="/reference/com/google/android/gms/drive/DriveFile.html#MODE_WRITE_ONLY">MODE_WRITE_ONLY</a></code>.</td>
+ </tr>
+ <tr>
+ <th>listener</td>
+ <td>An optional listener that will announce progress as the file is downloaded.
+ If you don't care about progress, provide <code>null</code>.</td>
+ </tr>
+ </table>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>a PendingResult which can be used to retrieve the Contents when they are available.
+</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+
+
+
+<!-- ========= METHOD DETAIL ======== -->
+
+
+
+<!-- ========= END OF CLASS DATA ========= -->
+<A NAME="navbar_top"></A>
+
+<div id="footer" class="wrap" >
+
+
+ <div id="copyright">
+
+ Except as noted, this content is licensed under <a
+ href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.
+ For details and restrictions, see the <a href="/license.html">
+ Content License</a>.
+ </div>
+ <div id="build_info">
+
+<script src="/timestamp.js" type="text/javascript"></script>
+<script>document.write(BUILD_TIMESTAMP)</script>
+
+ </div>
+
+
+ <div id="footerlinks">
+
+ <p>
+ <a href="/about/index.html">About Android</a> |
+ <a href="/legal.html">Legal</a> |
+ <a href="/support.html">Support</a>
+ </p>
+ </div>
+
+</div> <!-- end footer -->
+</div> <!-- jd-content -->
+
+</div><!-- end doc-content -->
+
+</div> <!-- end body-content -->
+
+
+
+
+
+
+</body>
+</html>
diff --git a/docs/html/reference/com/google/android/gms/drive/DriveFolder.DriveFileResult.html b/docs/html/reference/com/google/android/gms/drive/DriveFolder.DriveFileResult.html
new file mode 100644
index 0000000..8cee05a
--- /dev/null
+++ b/docs/html/reference/com/google/android/gms/drive/DriveFolder.DriveFileResult.html
@@ -0,0 +1,1007 @@
+<!DOCTYPE html>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<html>
+<head>
+
+
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<meta name="viewport" content="width=device-width" />
+
+<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
+<title>DriveFolder.DriveFileResult | Android Developers</title>
+
+<!-- STYLESHEETS -->
+<link rel="stylesheet"
+href="//fonts.googleapis.com/css?family=Roboto:regular,medium,thin,italic,mediumitalic,bold" title="roboto">
+<link href="/assets/css/default.css" rel="stylesheet" type="text/css">
+
+
+
+<!-- JAVASCRIPT -->
+<script src="//www.google.com/jsapi" type="text/javascript"></script>
+<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
+<script type="text/javascript">
+ var toRoot = "/";
+ var metaTags = [];
+ var devsite = false;
+</script>
+<script src="/assets/js/docs.js" type="text/javascript"></script>
+
+<script type="text/javascript">
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-5831155-1']);
+ _gaq.push(['_trackPageview']);
+
+ (function() {
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+ })();
+</script>
+</head>
+<body class="gc-documentation google
+ develop" itemscope itemtype="http://schema.org/Article">
+ <div id="doc-api-level" class="" style="display:none"></div>
+ <a name="top"></a>
+
+<a name="top"></a>
+
+ <!-- Header -->
+ <div id="header">
+ <div class="wrap" id="header-wrap">
+ <div class="col-3 logo">
+ <a href="/index.html">
+ <img src="/assets/images/dac_logo.png" width="123" height="25" alt="Android Developers" />
+ </a>
+ <div class="btn-quicknav" id="btn-quicknav">
+ <a href="#" class="arrow-inactive">Quicknav</a>
+ <a href="#" class="arrow-active">Quicknav</a>
+ </div>
+ </div>
+ <ul class="nav-x col-9">
+ <li class="design">
+ <a href="/design/index.html"
+ zh-tw-lang="設計"
+ zh-cn-lang="设计"
+ ru-lang="Проектирование"
+ ko-lang="디자인"
+ ja-lang="設計"
+ es-lang="Diseñar"
+ >Design</a></li>
+ <li class="develop"><a href="/develop/index.html"
+ zh-tw-lang="開發"
+ zh-cn-lang="开发"
+ ru-lang="Разработка"
+ ko-lang="개발"
+ ja-lang="開発"
+ es-lang="Desarrollar"
+ >Develop</a></li>
+ <li class="distribute last"><a href="/distribute/index.html"
+ zh-tw-lang="發佈"
+ zh-cn-lang="分发"
+ ru-lang="Распространение"
+ ko-lang="배포"
+ ja-lang="配布"
+ es-lang="Distribuir"
+ >Distribute</a></li>
+ </ul>
+
+ <!-- New Search -->
+ <div class="menu-container">
+ <div class="moremenu">
+ <div id="more-btn"></div>
+ </div>
+ <div class="morehover" id="moremenu">
+ <div class="top"></div>
+ <div class="mid">
+ <div class="header">Links</div>
+ <ul>
+ <li><a href="https://play.google.com/apps/publish/">Google Play Developer Console</a></li>
+ <li><a href="http://android-developers.blogspot.com/">Android Developers Blog</a></li>
+ <li><a href="/about/index.html">About Android</a></li>
+ </ul>
+ <div class="header">Android Sites</div>
+ <ul>
+ <li><a href="http://www.android.com">Android.com</a></li>
+ <li class="active"><a>Android Developers</a></li>
+ <li><a href="http://source.android.com">Android Open Source Project</a></li>
+ </ul>
+
+
+
+ <div class="header">Language</div>
+ <div id="language" class="locales">
+ <select name="language" onChange="changeLangPref(this.value, true)">
+ <option value="en">English</option>
+ <option value="es">Español</option>
+ <option value="ja">日本語</option>
+ <option value="ko">한국어</option>
+ <option value="ru">Русский</option>
+ <option value="zh-cn">中文 (中国)</option>
+ <option value="zh-tw">中文 (台灣)</option>
+ </select>
+ </div>
+ <script type="text/javascript">
+ <!--
+ loadLangPref();
+ //-->
+ </script>
+
+
+
+
+ <br class="clearfix" />
+ </div>
+ <div class="bottom"></div>
+ </div>
+ <div class="search" id="search-container">
+ <div class="search-inner">
+ <div id="search-btn"></div>
+ <div class="left"></div>
+ <form onsubmit="return submit_search()">
+ <input id="search_autocomplete" type="text" value="" autocomplete="off" name="q"
+onfocus="search_focus_changed(this, true)" onblur="search_focus_changed(this, false)"
+onkeydown="return search_changed(event, true, '/')"
+onkeyup="return search_changed(event, false, '/')" />
+ </form>
+ <div class="right"></div>
+ <a class="close hide">close</a>
+ <div class="left"></div>
+ <div class="right"></div>
+ </div>
+ </div>
+
+ <div class="search_filtered_wrapper reference">
+ <div class="suggest-card reference no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ </div>
+
+ <div class="search_filtered_wrapper docs">
+ <div class="suggest-card dummy no-display"> </div>
+ <div class="suggest-card develop no-display">
+ <ul class="search_filtered">
+ </ul>
+ <div class="child-card guides no-display">
+ </div>
+ <div class="child-card training no-display">
+ </div>
+ <div class="child-card samples no-display">
+ </div>
+ </div>
+ <div class="suggest-card design no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ <div class="suggest-card distribute no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ </div>
+
+ </div>
+ <!-- /New Search>
+
+
+ <!-- Expanded quicknav -->
+ <div id="quicknav" class="col-9">
+ <ul>
+ <li class="design">
+ <ul>
+ <li><a href="/design/index.html">Get Started</a></li>
+ <li><a href="/design/style/index.html">Style</a></li>
+ <li><a href="/design/patterns/index.html">Patterns</a></li>
+ <li><a href="/design/building-blocks/index.html">Building Blocks</a></li>
+ <li><a href="/design/downloads/index.html">Downloads</a></li>
+ <li><a href="/design/videos/index.html">Videos</a></li>
+ </ul>
+ </li>
+ <li class="develop">
+ <ul>
+ <li><a href="/training/index.html"
+ zh-tw-lang="訓練課程"
+ zh-cn-lang="培训"
+ ru-lang="Курсы"
+ ko-lang="교육"
+ ja-lang="トレーニング"
+ es-lang="Capacitación"
+ >Training</a></li>
+ <li><a href="/guide/index.html"
+ zh-tw-lang="API 指南"
+ zh-cn-lang="API 指南"
+ ru-lang="Руководства по API"
+ ko-lang="API 가이드"
+ ja-lang="API ガイド"
+ es-lang="Guías de la API"
+ >API Guides</a></li>
+ <li><a href="/reference/packages.html"
+ zh-tw-lang="參考資源"
+ zh-cn-lang="参考"
+ ru-lang="Справочник"
+ ko-lang="참조문서"
+ ja-lang="リファレンス"
+ es-lang="Referencia"
+ >Reference</a></li>
+ <li><a href="/tools/index.html"
+ zh-tw-lang="相關工具"
+ zh-cn-lang="工具"
+ ru-lang="Инструменты"
+ ko-lang="도구"
+ ja-lang="ツール"
+ es-lang="Herramientas"
+ >Tools</a>
+ <ul><li><a href="/sdk/index.html">Get the SDK</a></li></ul>
+ </li>
+ <li><a href="/google/index.html">Google Services</a>
+ </li>
+
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
+ </ul>
+ </li>
+ <li class="distribute last">
+ <ul>
+ <li><a href="/distribute/index.html">Google Play</a></li>
+ <li><a href="/distribute/googleplay/publish/index.html">Publishing</a></li>
+ <li><a href="/distribute/googleplay/promote/index.html">Promoting</a></li>
+ <li><a href="/distribute/googleplay/quality/index.html">App Quality</a></li>
+ <li><a href="/distribute/googleplay/spotlight/index.html">Spotlight</a></li>
+ <li><a href="/distribute/open.html">Open Distribution</a></li>
+ </ul>
+ </li>
+ </ul>
+ </div>
+ <!-- /Expanded quicknav -->
+ </div>
+ </div>
+ <!-- /Header -->
+
+
+ <div id="searchResults" class="wrap" style="display:none;">
+ <h2 id="searchTitle">Results</h2>
+ <div id="leftSearchControl" class="search-control">Loading...</div>
+ </div>
+
+
+
+ <!-- Secondary x-nav -->
+ <div id="nav-x">
+ <div class="wrap">
+ <ul class="nav-x col-9 develop" style="width:100%">
+ <li class="training"><a href="/training/index.html"
+ zh-tw-lang="訓練課程"
+ zh-cn-lang="培训"
+ ru-lang="Курсы"
+ ko-lang="교육"
+ ja-lang="トレーニング"
+ es-lang="Capacitación"
+ >Training</a></li>
+ <li class="guide"><a href="/guide/index.html"
+ zh-tw-lang="API 指南"
+ zh-cn-lang="API 指南"
+ ru-lang="Руководства по API"
+ ko-lang="API 가이드"
+ ja-lang="API ガイド"
+ es-lang="Guías de la API"
+ >API Guides</a></li>
+ <li class="reference"><a href="/reference/packages.html"
+ zh-tw-lang="參考資源"
+ zh-cn-lang="参考"
+ ru-lang="Справочник"
+ ko-lang="참조문서"
+ ja-lang="リファレンス"
+ es-lang="Referencia"
+ >Reference</a></li>
+ <li class="tools"><a href="/tools/index.html"
+ zh-tw-lang="相關工具"
+ zh-cn-lang="工具"
+ ru-lang="Инструменты"
+ ko-lang="도구"
+ ja-lang="ツール"
+ es-lang="Herramientas"
+ >Tools</a></li>
+ <li class="google"><a href="/google/index.html"
+ >Google Services</a>
+ </li>
+
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
+ </ul>
+ </div>
+
+ </div>
+ <!-- /Sendondary x-nav -->
+
+
+
+
+
+
+
+
+
+ <div class="wrap clearfix" id="body-content">
+ <div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
+ <div id="devdoc-nav" class="scroll-pane">
+<a class="totop" href="#top" data-g-event="left-nav-top">to top</a>
+
+
+
+<ul id="nav">
+
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/index.html">
+ <span class="en">Overview</span>
+ </a></div>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/games.html">
+ <span class="en">Games</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/location.html">
+ <span class="en">Location</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/plus.html">
+ <span class="en">Google+</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/maps.html">
+ <span class="en">Maps</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play-services/ads.html">
+ <span class="en">Ads</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play-services/id.html">
+ <span class="en">Advertising ID</span></a>
+ </li>
+ </ul>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/wallet.html">
+ <span class="en">Wallet</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/auth.html">
+ <span class="en">Authorization</span>
+ </a></div>
+ </li>
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play-services/index.html">
+ <span class="en">Google Play Services</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play-services/setup.html">
+ <span class="en">Setup</span></a>
+ </li>
+ <li id="gms-tree-list" class="nav-section">
+ <div class="nav-section-header">
+ <a href="/reference/gms-packages.html">
+ <span class="en">Reference</span>
+ </a>
+ <div>
+ </li>
+ </ul>
+ </li>
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/billing/index.html">
+ <span class="en">Google Play In-app Billing</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/billing/billing_overview.html">
+ <span class="en">Overview</span></a>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/api.html">
+ <span class="en">Version 3 API</span></a></div>
+ <ul>
+ <li><a href="/google/play/billing/billing_integrate.html">
+ <span class="en">Implementing the API</span></a></li>
+ <li><a href="/google/play/billing/billing_reference.html">
+ <span class="en">Reference</span></a></li>
+ </ul>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/v2/api.html">
+ <span class="en">Version 2 API</span></a></div>
+ <ul>
+ <li><a href="/google/play/billing/v2/billing_integrate.html">
+ <span class="en">Implementing the API</span></a></li>
+ <li><a href="/google/play/billing/v2/billing_subscriptions.html">
+ <span class="en">Subscriptions</span></a></li>
+ <li><a href="/google/play/billing/v2/billing_reference.html">
+ <span class="en">Reference</span></a></li>
+ </ul>
+ </li>
+ <li><a href="/google/play/billing/billing_subscriptions.html">
+ <span class="en">Subscriptions</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_best_practices.html">
+ <span class="en">Security and Design</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_testing.html">
+ <span class="en">Testing In-app Billing</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_admin.html">
+ <span class="en">Administering In-app Billing</span></a>
+ </li>
+ <li><a href="/google/play/billing/gp-purchase-status-api.html">
+ <span class="en">Purchase Status API</span></a>
+ </li>
+ <li><a href="/google/play/billing/versions.html">
+ <span class="en">Version Notes</span></a>
+ </li>
+ </ul>
+ </li>
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/gcm/index.html">
+ <span class="en">Google Cloud Messaging</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
+ <li><a href="/google/gcm/gs.html">
+ <span class="en">Getting Started</span></a>
+ </li>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
+ </li>
+ <li><a href="/google/gcm/notifications.html">
+ <span class="en">User Notifications</span></a>
+ </li>
+ <li><a href="/google/gcm/adv.html">
+ <span class="en">Advanced Topics</span></a>
+ </li>
+ <li><a href="/google/gcm/c2dm.html">
+ <span class="en">Migration</span></a>
+ </li>
+ <li id="gcm-tree-list" class="nav-section">
+ <div class="nav-section-header">
+ <a href="/reference/gcm-packages.html">
+ <span class="en">Reference</span>
+ </a>
+ <div>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/dist.html">
+ <span class="en">Google Play Distribution</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/filters.html">
+ <span class="en">Filters on Google Play</span></a>
+ </li>
+
+ <li><a href="/google/play/publishing/multiple-apks.html">
+ <span class="en">Multiple APK Support</span></a>
+ </li>
+ <li><a href="/google/play/expansion-files.html">
+ <span class="en">APK Expansion Files</span></a>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/licensing/index.html">
+ <span class="en">Application Licensing</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/licensing/overview.html">
+ <span class="en">Licensing Overview</span></a>
+ </li>
+ <li><a href="/google/play/licensing/setting-up.html">
+ <span class="en">Setting Up for Licensing</span></a>
+ </li>
+ <li><a href="/google/play/licensing/adding-licensing.html">
+ <span class="en">Adding Licensing to Your App</span></a>
+ </li>
+ <li><a href="/google/play/licensing/licensing-reference.html">
+ <span class="en">Licensing Reference</span></a>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/backup/index.html">
+ Android Backup Service</a>
+ </div>
+ <ul>
+ <li><a href="/google/backup/signup.html">
+ Register</a>
+ </li>
+ </ul>
+ </li>
+
+ </ul>
+
+</li>
+
+
+
+</ul>
+
+<script type="text/javascript">
+<!--
+ buildToggleLists();
+ changeNavLang(getLangPref());
+//-->
+</script>
+
+
+
+
+ </div>
+ <script type="text/javascript">
+ showGoogleRefTree();
+
+ </script>
+ </div> <!-- end side-nav -->
+ <script>
+ $(document).ready(function() {
+ scrollIntoView("devdoc-nav");
+ });
+ </script>
+
+
+
+
+
+
+<div class="col-12" id="doc-col">
+
+<div id="api-info-block">
+
+
+
+
+
+
+
+
+
+
+
+<div class="sum-details-links">
+
+Summary:
+
+
+
+
+
+
+
+
+
+
+
+ <a href="#pubmethods">Methods</a>
+
+
+
+
+ | <a href="#inhmethods">Inherited Methods</a>
+
+| <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
+
+</div><!-- end sum-details-links -->
+<div class="api-level">
+
+
+
+
+</div>
+</div><!-- end api-info-block -->
+
+
+<!-- ======== START OF CLASS DATA ======== -->
+
+<div id="jd-header">
+ public
+ static
+
+
+ interface
+<h1 itemprop="name">DriveFolder.DriveFileResult</h1>
+
+
+
+
+
+ implements
+
+ <a href="/reference/com/google/android/gms/common/api/Result.html">Result</a>
+
+
+
+
+
+</div><!-- end header -->
+
+<div id="naMessage"></div>
+
+<div id="jd-content" class="api apilevel-">
+<table class="jd-inheritance-table">
+
+
+ <tr>
+
+ <td colspan="1" class="jd-inheritance-class-cell">com.google.android.gms.drive.DriveFolder.DriveFileResult</td>
+ </tr>
+
+
+</table>
+
+
+
+
+
+
+
+<div class="jd-descr">
+
+
+<h2>Class Overview</h2>
+<p class="caution">
+ <strong>Note:</strong> The Google Drive Android API is currently in <strong>developer
+ preview</strong>. Applications compiled using this version of the API will
+ continue to operate on devices using future versions of Google Play services;
+ however, changes to the API are expected in future releases.
+</p>
+<p itemprop="articleBody">A result that contains a DriveFile.
+</p>
+
+
+
+
+
+</div><!-- jd-descr -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<div class="jd-descr">
+
+
+<h2>Summary</h2>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
+
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ <a href="/reference/com/google/android/gms/drive/DriveFile.html">DriveFile</a></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/DriveFolder.DriveFileResult.html#getDriveFile()">getDriveFile</a></span>()</nobr>
+
+ </td></tr>
+
+
+
+</table>
+
+
+
+
+
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+<table id="inhmethods" class="jd-sumtable"><tr><th>
+ <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
+ <div style="clear:left;">Inherited Methods</div></th></tr>
+
+
+<tr class="api apilevel-" >
+<td colspan="12">
+ <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.android.gms.common.api.Result" class="jd-expando-trigger closed"
+ ><img id="inherited-methods-com.google.android.gms.common.api.Result-trigger"
+ src="/assets/images/triangle-closed.png"
+ class="jd-expando-trigger-img" /></a>
+From interface
+
+ <a href="/reference/com/google/android/gms/common/api/Result.html">com.google.android.gms.common.api.Result</a>
+
+<div id="inherited-methods-com.google.android.gms.common.api.Result">
+ <div id="inherited-methods-com.google.android.gms.common.api.Result-list"
+ class="jd-inheritedlinks">
+ </div>
+ <div id="inherited-methods-com.google.android.gms.common.api.Result-summary" style="display: none;">
+ <table class="jd-sumtable-expando">
+
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ <a href="/reference/com/google/android/gms/common/api/Status.html">Status</a></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/common/api/Result.html#getStatus()">getStatus</a></span>()</nobr>
+
+ </td></tr>
+
+
+</table>
+ </div>
+</div>
+</td></tr>
+
+
+</table>
+
+
+</div><!-- jd-descr (summary) -->
+
+<!-- Details -->
+
+
+
+
+
+
+
+
+<!-- XML Attributes -->
+
+
+<!-- Enum Values -->
+
+
+<!-- Constants -->
+
+
+<!-- Fields -->
+
+
+<!-- Public ctors -->
+
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<!-- Protected ctors -->
+
+
+
+<!-- ========= METHOD DETAIL ======== -->
+<!-- Public methdos -->
+
+<h2>Public Methods</h2>
+
+
+
+<A NAME="getDriveFile()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+ abstract
+
+ <a href="/reference/com/google/android/gms/drive/DriveFile.html">DriveFile</a>
+ </span>
+ <span class="sympad">getDriveFile</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+ </div>
+</div>
+
+
+
+
+
+<!-- ========= METHOD DETAIL ======== -->
+
+
+
+<!-- ========= END OF CLASS DATA ========= -->
+<A NAME="navbar_top"></A>
+
+<div id="footer" class="wrap" >
+
+
+ <div id="copyright">
+
+ Except as noted, this content is licensed under <a
+ href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.
+ For details and restrictions, see the <a href="/license.html">
+ Content License</a>.
+ </div>
+ <div id="build_info">
+
+<script src="/timestamp.js" type="text/javascript"></script>
+<script>document.write(BUILD_TIMESTAMP)</script>
+
+ </div>
+
+
+ <div id="footerlinks">
+
+ <p>
+ <a href="/about/index.html">About Android</a> |
+ <a href="/legal.html">Legal</a> |
+ <a href="/support.html">Support</a>
+ </p>
+ </div>
+
+</div> <!-- end footer -->
+</div> <!-- jd-content -->
+
+</div><!-- end doc-content -->
+
+</div> <!-- end body-content -->
+
+
+
+
+
+
+</body>
+</html>
diff --git a/docs/html/reference/com/google/android/gms/drive/DriveFolder.DriveFolderResult.html b/docs/html/reference/com/google/android/gms/drive/DriveFolder.DriveFolderResult.html
new file mode 100644
index 0000000..8aaa436
--- /dev/null
+++ b/docs/html/reference/com/google/android/gms/drive/DriveFolder.DriveFolderResult.html
@@ -0,0 +1,1007 @@
+<!DOCTYPE html>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<html>
+<head>
+
+
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<meta name="viewport" content="width=device-width" />
+
+<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
+<title>DriveFolder.DriveFolderResult | Android Developers</title>
+
+<!-- STYLESHEETS -->
+<link rel="stylesheet"
+href="//fonts.googleapis.com/css?family=Roboto:regular,medium,thin,italic,mediumitalic,bold" title="roboto">
+<link href="/assets/css/default.css" rel="stylesheet" type="text/css">
+
+
+
+<!-- JAVASCRIPT -->
+<script src="//www.google.com/jsapi" type="text/javascript"></script>
+<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
+<script type="text/javascript">
+ var toRoot = "/";
+ var metaTags = [];
+ var devsite = false;
+</script>
+<script src="/assets/js/docs.js" type="text/javascript"></script>
+
+<script type="text/javascript">
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-5831155-1']);
+ _gaq.push(['_trackPageview']);
+
+ (function() {
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+ })();
+</script>
+</head>
+<body class="gc-documentation google
+ develop" itemscope itemtype="http://schema.org/Article">
+ <div id="doc-api-level" class="" style="display:none"></div>
+ <a name="top"></a>
+
+<a name="top"></a>
+
+ <!-- Header -->
+ <div id="header">
+ <div class="wrap" id="header-wrap">
+ <div class="col-3 logo">
+ <a href="/index.html">
+ <img src="/assets/images/dac_logo.png" width="123" height="25" alt="Android Developers" />
+ </a>
+ <div class="btn-quicknav" id="btn-quicknav">
+ <a href="#" class="arrow-inactive">Quicknav</a>
+ <a href="#" class="arrow-active">Quicknav</a>
+ </div>
+ </div>
+ <ul class="nav-x col-9">
+ <li class="design">
+ <a href="/design/index.html"
+ zh-tw-lang="設計"
+ zh-cn-lang="设计"
+ ru-lang="Проектирование"
+ ko-lang="디자인"
+ ja-lang="設計"
+ es-lang="Diseñar"
+ >Design</a></li>
+ <li class="develop"><a href="/develop/index.html"
+ zh-tw-lang="開發"
+ zh-cn-lang="开发"
+ ru-lang="Разработка"
+ ko-lang="개발"
+ ja-lang="開発"
+ es-lang="Desarrollar"
+ >Develop</a></li>
+ <li class="distribute last"><a href="/distribute/index.html"
+ zh-tw-lang="發佈"
+ zh-cn-lang="分发"
+ ru-lang="Распространение"
+ ko-lang="배포"
+ ja-lang="配布"
+ es-lang="Distribuir"
+ >Distribute</a></li>
+ </ul>
+
+ <!-- New Search -->
+ <div class="menu-container">
+ <div class="moremenu">
+ <div id="more-btn"></div>
+ </div>
+ <div class="morehover" id="moremenu">
+ <div class="top"></div>
+ <div class="mid">
+ <div class="header">Links</div>
+ <ul>
+ <li><a href="https://play.google.com/apps/publish/">Google Play Developer Console</a></li>
+ <li><a href="http://android-developers.blogspot.com/">Android Developers Blog</a></li>
+ <li><a href="/about/index.html">About Android</a></li>
+ </ul>
+ <div class="header">Android Sites</div>
+ <ul>
+ <li><a href="http://www.android.com">Android.com</a></li>
+ <li class="active"><a>Android Developers</a></li>
+ <li><a href="http://source.android.com">Android Open Source Project</a></li>
+ </ul>
+
+
+
+ <div class="header">Language</div>
+ <div id="language" class="locales">
+ <select name="language" onChange="changeLangPref(this.value, true)">
+ <option value="en">English</option>
+ <option value="es">Español</option>
+ <option value="ja">日本語</option>
+ <option value="ko">한국어</option>
+ <option value="ru">Русский</option>
+ <option value="zh-cn">中文 (中国)</option>
+ <option value="zh-tw">中文 (台灣)</option>
+ </select>
+ </div>
+ <script type="text/javascript">
+ <!--
+ loadLangPref();
+ //-->
+ </script>
+
+
+
+
+ <br class="clearfix" />
+ </div>
+ <div class="bottom"></div>
+ </div>
+ <div class="search" id="search-container">
+ <div class="search-inner">
+ <div id="search-btn"></div>
+ <div class="left"></div>
+ <form onsubmit="return submit_search()">
+ <input id="search_autocomplete" type="text" value="" autocomplete="off" name="q"
+onfocus="search_focus_changed(this, true)" onblur="search_focus_changed(this, false)"
+onkeydown="return search_changed(event, true, '/')"
+onkeyup="return search_changed(event, false, '/')" />
+ </form>
+ <div class="right"></div>
+ <a class="close hide">close</a>
+ <div class="left"></div>
+ <div class="right"></div>
+ </div>
+ </div>
+
+ <div class="search_filtered_wrapper reference">
+ <div class="suggest-card reference no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ </div>
+
+ <div class="search_filtered_wrapper docs">
+ <div class="suggest-card dummy no-display"> </div>
+ <div class="suggest-card develop no-display">
+ <ul class="search_filtered">
+ </ul>
+ <div class="child-card guides no-display">
+ </div>
+ <div class="child-card training no-display">
+ </div>
+ <div class="child-card samples no-display">
+ </div>
+ </div>
+ <div class="suggest-card design no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ <div class="suggest-card distribute no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ </div>
+
+ </div>
+ <!-- /New Search>
+
+
+ <!-- Expanded quicknav -->
+ <div id="quicknav" class="col-9">
+ <ul>
+ <li class="design">
+ <ul>
+ <li><a href="/design/index.html">Get Started</a></li>
+ <li><a href="/design/style/index.html">Style</a></li>
+ <li><a href="/design/patterns/index.html">Patterns</a></li>
+ <li><a href="/design/building-blocks/index.html">Building Blocks</a></li>
+ <li><a href="/design/downloads/index.html">Downloads</a></li>
+ <li><a href="/design/videos/index.html">Videos</a></li>
+ </ul>
+ </li>
+ <li class="develop">
+ <ul>
+ <li><a href="/training/index.html"
+ zh-tw-lang="訓練課程"
+ zh-cn-lang="培训"
+ ru-lang="Курсы"
+ ko-lang="교육"
+ ja-lang="トレーニング"
+ es-lang="Capacitación"
+ >Training</a></li>
+ <li><a href="/guide/index.html"
+ zh-tw-lang="API 指南"
+ zh-cn-lang="API 指南"
+ ru-lang="Руководства по API"
+ ko-lang="API 가이드"
+ ja-lang="API ガイド"
+ es-lang="Guías de la API"
+ >API Guides</a></li>
+ <li><a href="/reference/packages.html"
+ zh-tw-lang="參考資源"
+ zh-cn-lang="参考"
+ ru-lang="Справочник"
+ ko-lang="참조문서"
+ ja-lang="リファレンス"
+ es-lang="Referencia"
+ >Reference</a></li>
+ <li><a href="/tools/index.html"
+ zh-tw-lang="相關工具"
+ zh-cn-lang="工具"
+ ru-lang="Инструменты"
+ ko-lang="도구"
+ ja-lang="ツール"
+ es-lang="Herramientas"
+ >Tools</a>
+ <ul><li><a href="/sdk/index.html">Get the SDK</a></li></ul>
+ </li>
+ <li><a href="/google/index.html">Google Services</a>
+ </li>
+
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
+ </ul>
+ </li>
+ <li class="distribute last">
+ <ul>
+ <li><a href="/distribute/index.html">Google Play</a></li>
+ <li><a href="/distribute/googleplay/publish/index.html">Publishing</a></li>
+ <li><a href="/distribute/googleplay/promote/index.html">Promoting</a></li>
+ <li><a href="/distribute/googleplay/quality/index.html">App Quality</a></li>
+ <li><a href="/distribute/googleplay/spotlight/index.html">Spotlight</a></li>
+ <li><a href="/distribute/open.html">Open Distribution</a></li>
+ </ul>
+ </li>
+ </ul>
+ </div>
+ <!-- /Expanded quicknav -->
+ </div>
+ </div>
+ <!-- /Header -->
+
+
+ <div id="searchResults" class="wrap" style="display:none;">
+ <h2 id="searchTitle">Results</h2>
+ <div id="leftSearchControl" class="search-control">Loading...</div>
+ </div>
+
+
+
+ <!-- Secondary x-nav -->
+ <div id="nav-x">
+ <div class="wrap">
+ <ul class="nav-x col-9 develop" style="width:100%">
+ <li class="training"><a href="/training/index.html"
+ zh-tw-lang="訓練課程"
+ zh-cn-lang="培训"
+ ru-lang="Курсы"
+ ko-lang="교육"
+ ja-lang="トレーニング"
+ es-lang="Capacitación"
+ >Training</a></li>
+ <li class="guide"><a href="/guide/index.html"
+ zh-tw-lang="API 指南"
+ zh-cn-lang="API 指南"
+ ru-lang="Руководства по API"
+ ko-lang="API 가이드"
+ ja-lang="API ガイド"
+ es-lang="Guías de la API"
+ >API Guides</a></li>
+ <li class="reference"><a href="/reference/packages.html"
+ zh-tw-lang="參考資源"
+ zh-cn-lang="参考"
+ ru-lang="Справочник"
+ ko-lang="참조문서"
+ ja-lang="リファレンス"
+ es-lang="Referencia"
+ >Reference</a></li>
+ <li class="tools"><a href="/tools/index.html"
+ zh-tw-lang="相關工具"
+ zh-cn-lang="工具"
+ ru-lang="Инструменты"
+ ko-lang="도구"
+ ja-lang="ツール"
+ es-lang="Herramientas"
+ >Tools</a></li>
+ <li class="google"><a href="/google/index.html"
+ >Google Services</a>
+ </li>
+
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
+ </ul>
+ </div>
+
+ </div>
+ <!-- /Sendondary x-nav -->
+
+
+
+
+
+
+
+
+
+ <div class="wrap clearfix" id="body-content">
+ <div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
+ <div id="devdoc-nav" class="scroll-pane">
+<a class="totop" href="#top" data-g-event="left-nav-top">to top</a>
+
+
+
+<ul id="nav">
+
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/index.html">
+ <span class="en">Overview</span>
+ </a></div>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/games.html">
+ <span class="en">Games</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/location.html">
+ <span class="en">Location</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/plus.html">
+ <span class="en">Google+</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/maps.html">
+ <span class="en">Maps</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play-services/ads.html">
+ <span class="en">Ads</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play-services/id.html">
+ <span class="en">Advertising ID</span></a>
+ </li>
+ </ul>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/wallet.html">
+ <span class="en">Wallet</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/auth.html">
+ <span class="en">Authorization</span>
+ </a></div>
+ </li>
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play-services/index.html">
+ <span class="en">Google Play Services</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play-services/setup.html">
+ <span class="en">Setup</span></a>
+ </li>
+ <li id="gms-tree-list" class="nav-section">
+ <div class="nav-section-header">
+ <a href="/reference/gms-packages.html">
+ <span class="en">Reference</span>
+ </a>
+ <div>
+ </li>
+ </ul>
+ </li>
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/billing/index.html">
+ <span class="en">Google Play In-app Billing</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/billing/billing_overview.html">
+ <span class="en">Overview</span></a>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/api.html">
+ <span class="en">Version 3 API</span></a></div>
+ <ul>
+ <li><a href="/google/play/billing/billing_integrate.html">
+ <span class="en">Implementing the API</span></a></li>
+ <li><a href="/google/play/billing/billing_reference.html">
+ <span class="en">Reference</span></a></li>
+ </ul>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/v2/api.html">
+ <span class="en">Version 2 API</span></a></div>
+ <ul>
+ <li><a href="/google/play/billing/v2/billing_integrate.html">
+ <span class="en">Implementing the API</span></a></li>
+ <li><a href="/google/play/billing/v2/billing_subscriptions.html">
+ <span class="en">Subscriptions</span></a></li>
+ <li><a href="/google/play/billing/v2/billing_reference.html">
+ <span class="en">Reference</span></a></li>
+ </ul>
+ </li>
+ <li><a href="/google/play/billing/billing_subscriptions.html">
+ <span class="en">Subscriptions</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_best_practices.html">
+ <span class="en">Security and Design</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_testing.html">
+ <span class="en">Testing In-app Billing</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_admin.html">
+ <span class="en">Administering In-app Billing</span></a>
+ </li>
+ <li><a href="/google/play/billing/gp-purchase-status-api.html">
+ <span class="en">Purchase Status API</span></a>
+ </li>
+ <li><a href="/google/play/billing/versions.html">
+ <span class="en">Version Notes</span></a>
+ </li>
+ </ul>
+ </li>
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/gcm/index.html">
+ <span class="en">Google Cloud Messaging</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
+ <li><a href="/google/gcm/gs.html">
+ <span class="en">Getting Started</span></a>
+ </li>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
+ </li>
+ <li><a href="/google/gcm/notifications.html">
+ <span class="en">User Notifications</span></a>
+ </li>
+ <li><a href="/google/gcm/adv.html">
+ <span class="en">Advanced Topics</span></a>
+ </li>
+ <li><a href="/google/gcm/c2dm.html">
+ <span class="en">Migration</span></a>
+ </li>
+ <li id="gcm-tree-list" class="nav-section">
+ <div class="nav-section-header">
+ <a href="/reference/gcm-packages.html">
+ <span class="en">Reference</span>
+ </a>
+ <div>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/dist.html">
+ <span class="en">Google Play Distribution</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/filters.html">
+ <span class="en">Filters on Google Play</span></a>
+ </li>
+
+ <li><a href="/google/play/publishing/multiple-apks.html">
+ <span class="en">Multiple APK Support</span></a>
+ </li>
+ <li><a href="/google/play/expansion-files.html">
+ <span class="en">APK Expansion Files</span></a>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/licensing/index.html">
+ <span class="en">Application Licensing</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/licensing/overview.html">
+ <span class="en">Licensing Overview</span></a>
+ </li>
+ <li><a href="/google/play/licensing/setting-up.html">
+ <span class="en">Setting Up for Licensing</span></a>
+ </li>
+ <li><a href="/google/play/licensing/adding-licensing.html">
+ <span class="en">Adding Licensing to Your App</span></a>
+ </li>
+ <li><a href="/google/play/licensing/licensing-reference.html">
+ <span class="en">Licensing Reference</span></a>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/backup/index.html">
+ Android Backup Service</a>
+ </div>
+ <ul>
+ <li><a href="/google/backup/signup.html">
+ Register</a>
+ </li>
+ </ul>
+ </li>
+
+ </ul>
+
+</li>
+
+
+
+</ul>
+
+<script type="text/javascript">
+<!--
+ buildToggleLists();
+ changeNavLang(getLangPref());
+//-->
+</script>
+
+
+
+
+ </div>
+ <script type="text/javascript">
+ showGoogleRefTree();
+
+ </script>
+ </div> <!-- end side-nav -->
+ <script>
+ $(document).ready(function() {
+ scrollIntoView("devdoc-nav");
+ });
+ </script>
+
+
+
+
+
+
+<div class="col-12" id="doc-col">
+
+<div id="api-info-block">
+
+
+
+
+
+
+
+
+
+
+
+<div class="sum-details-links">
+
+Summary:
+
+
+
+
+
+
+
+
+
+
+
+ <a href="#pubmethods">Methods</a>
+
+
+
+
+ | <a href="#inhmethods">Inherited Methods</a>
+
+| <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
+
+</div><!-- end sum-details-links -->
+<div class="api-level">
+
+
+
+
+</div>
+</div><!-- end api-info-block -->
+
+
+<!-- ======== START OF CLASS DATA ======== -->
+
+<div id="jd-header">
+ public
+ static
+
+
+ interface
+<h1 itemprop="name">DriveFolder.DriveFolderResult</h1>
+
+
+
+
+
+ implements
+
+ <a href="/reference/com/google/android/gms/common/api/Result.html">Result</a>
+
+
+
+
+
+</div><!-- end header -->
+
+<div id="naMessage"></div>
+
+<div id="jd-content" class="api apilevel-">
+<table class="jd-inheritance-table">
+
+
+ <tr>
+
+ <td colspan="1" class="jd-inheritance-class-cell">com.google.android.gms.drive.DriveFolder.DriveFolderResult</td>
+ </tr>
+
+
+</table>
+
+
+
+
+
+
+
+<div class="jd-descr">
+
+
+<h2>Class Overview</h2>
+<p class="caution">
+ <strong>Note:</strong> The Google Drive Android API is currently in <strong>developer
+ preview</strong>. Applications compiled using this version of the API will
+ continue to operate on devices using future versions of Google Play services;
+ however, changes to the API are expected in future releases.
+</p>
+<p itemprop="articleBody">A result that contains a DriveFolder.
+</p>
+
+
+
+
+
+</div><!-- jd-descr -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<div class="jd-descr">
+
+
+<h2>Summary</h2>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
+
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ <a href="/reference/com/google/android/gms/drive/DriveFolder.html">DriveFolder</a></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/DriveFolder.DriveFolderResult.html#getDriveFolder()">getDriveFolder</a></span>()</nobr>
+
+ </td></tr>
+
+
+
+</table>
+
+
+
+
+
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+<table id="inhmethods" class="jd-sumtable"><tr><th>
+ <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
+ <div style="clear:left;">Inherited Methods</div></th></tr>
+
+
+<tr class="api apilevel-" >
+<td colspan="12">
+ <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.android.gms.common.api.Result" class="jd-expando-trigger closed"
+ ><img id="inherited-methods-com.google.android.gms.common.api.Result-trigger"
+ src="/assets/images/triangle-closed.png"
+ class="jd-expando-trigger-img" /></a>
+From interface
+
+ <a href="/reference/com/google/android/gms/common/api/Result.html">com.google.android.gms.common.api.Result</a>
+
+<div id="inherited-methods-com.google.android.gms.common.api.Result">
+ <div id="inherited-methods-com.google.android.gms.common.api.Result-list"
+ class="jd-inheritedlinks">
+ </div>
+ <div id="inherited-methods-com.google.android.gms.common.api.Result-summary" style="display: none;">
+ <table class="jd-sumtable-expando">
+
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ <a href="/reference/com/google/android/gms/common/api/Status.html">Status</a></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/common/api/Result.html#getStatus()">getStatus</a></span>()</nobr>
+
+ </td></tr>
+
+
+</table>
+ </div>
+</div>
+</td></tr>
+
+
+</table>
+
+
+</div><!-- jd-descr (summary) -->
+
+<!-- Details -->
+
+
+
+
+
+
+
+
+<!-- XML Attributes -->
+
+
+<!-- Enum Values -->
+
+
+<!-- Constants -->
+
+
+<!-- Fields -->
+
+
+<!-- Public ctors -->
+
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<!-- Protected ctors -->
+
+
+
+<!-- ========= METHOD DETAIL ======== -->
+<!-- Public methdos -->
+
+<h2>Public Methods</h2>
+
+
+
+<A NAME="getDriveFolder()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+ abstract
+
+ <a href="/reference/com/google/android/gms/drive/DriveFolder.html">DriveFolder</a>
+ </span>
+ <span class="sympad">getDriveFolder</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+ </div>
+</div>
+
+
+
+
+
+<!-- ========= METHOD DETAIL ======== -->
+
+
+
+<!-- ========= END OF CLASS DATA ========= -->
+<A NAME="navbar_top"></A>
+
+<div id="footer" class="wrap" >
+
+
+ <div id="copyright">
+
+ Except as noted, this content is licensed under <a
+ href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.
+ For details and restrictions, see the <a href="/license.html">
+ Content License</a>.
+ </div>
+ <div id="build_info">
+
+<script src="/timestamp.js" type="text/javascript"></script>
+<script>document.write(BUILD_TIMESTAMP)</script>
+
+ </div>
+
+
+ <div id="footerlinks">
+
+ <p>
+ <a href="/about/index.html">About Android</a> |
+ <a href="/legal.html">Legal</a> |
+ <a href="/support.html">Support</a>
+ </p>
+ </div>
+
+</div> <!-- end footer -->
+</div> <!-- jd-content -->
+
+</div><!-- end doc-content -->
+
+</div> <!-- end body-content -->
+
+
+
+
+
+
+</body>
+</html>
diff --git a/docs/html/reference/com/google/android/gms/drive/DriveFolder.OnChildrenRetrievedCallback.html b/docs/html/reference/com/google/android/gms/drive/DriveFolder.OnChildrenRetrievedCallback.html
new file mode 100644
index 0000000..0234a1b
--- /dev/null
+++ b/docs/html/reference/com/google/android/gms/drive/DriveFolder.OnChildrenRetrievedCallback.html
@@ -0,0 +1,924 @@
+<!DOCTYPE html>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<html>
+<head>
+
+
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<meta name="viewport" content="width=device-width" />
+
+<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
+<title>DriveFolder.OnChildrenRetrievedCallback | Android Developers</title>
+
+<!-- STYLESHEETS -->
+<link rel="stylesheet"
+href="//fonts.googleapis.com/css?family=Roboto:regular,medium,thin,italic,mediumitalic,bold" title="roboto">
+<link href="/assets/css/default.css" rel="stylesheet" type="text/css">
+
+
+
+<!-- JAVASCRIPT -->
+<script src="//www.google.com/jsapi" type="text/javascript"></script>
+<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
+<script type="text/javascript">
+ var toRoot = "/";
+ var metaTags = [];
+ var devsite = false;
+</script>
+<script src="/assets/js/docs.js" type="text/javascript"></script>
+
+<script type="text/javascript">
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-5831155-1']);
+ _gaq.push(['_trackPageview']);
+
+ (function() {
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+ })();
+</script>
+</head>
+<body class="gc-documentation google
+ develop" itemscope itemtype="http://schema.org/Article">
+ <div id="doc-api-level" class="" style="display:none"></div>
+ <a name="top"></a>
+
+<a name="top"></a>
+
+ <!-- Header -->
+ <div id="header">
+ <div class="wrap" id="header-wrap">
+ <div class="col-3 logo">
+ <a href="/index.html">
+ <img src="/assets/images/dac_logo.png" width="123" height="25" alt="Android Developers" />
+ </a>
+ <div class="btn-quicknav" id="btn-quicknav">
+ <a href="#" class="arrow-inactive">Quicknav</a>
+ <a href="#" class="arrow-active">Quicknav</a>
+ </div>
+ </div>
+ <ul class="nav-x col-9">
+ <li class="design">
+ <a href="/design/index.html"
+ zh-tw-lang="設計"
+ zh-cn-lang="设计"
+ ru-lang="Проектирование"
+ ko-lang="디자인"
+ ja-lang="設計"
+ es-lang="Diseñar"
+ >Design</a></li>
+ <li class="develop"><a href="/develop/index.html"
+ zh-tw-lang="開發"
+ zh-cn-lang="开发"
+ ru-lang="Разработка"
+ ko-lang="개발"
+ ja-lang="開発"
+ es-lang="Desarrollar"
+ >Develop</a></li>
+ <li class="distribute last"><a href="/distribute/index.html"
+ zh-tw-lang="發佈"
+ zh-cn-lang="分发"
+ ru-lang="Распространение"
+ ko-lang="배포"
+ ja-lang="配布"
+ es-lang="Distribuir"
+ >Distribute</a></li>
+ </ul>
+
+ <!-- New Search -->
+ <div class="menu-container">
+ <div class="moremenu">
+ <div id="more-btn"></div>
+ </div>
+ <div class="morehover" id="moremenu">
+ <div class="top"></div>
+ <div class="mid">
+ <div class="header">Links</div>
+ <ul>
+ <li><a href="https://play.google.com/apps/publish/">Google Play Developer Console</a></li>
+ <li><a href="http://android-developers.blogspot.com/">Android Developers Blog</a></li>
+ <li><a href="/about/index.html">About Android</a></li>
+ </ul>
+ <div class="header">Android Sites</div>
+ <ul>
+ <li><a href="http://www.android.com">Android.com</a></li>
+ <li class="active"><a>Android Developers</a></li>
+ <li><a href="http://source.android.com">Android Open Source Project</a></li>
+ </ul>
+
+
+
+ <div class="header">Language</div>
+ <div id="language" class="locales">
+ <select name="language" onChange="changeLangPref(this.value, true)">
+ <option value="en">English</option>
+ <option value="es">Español</option>
+ <option value="ja">日本語</option>
+ <option value="ko">한국어</option>
+ <option value="ru">Русский</option>
+ <option value="zh-cn">中文 (中国)</option>
+ <option value="zh-tw">中文 (台灣)</option>
+ </select>
+ </div>
+ <script type="text/javascript">
+ <!--
+ loadLangPref();
+ //-->
+ </script>
+
+
+
+
+ <br class="clearfix" />
+ </div>
+ <div class="bottom"></div>
+ </div>
+ <div class="search" id="search-container">
+ <div class="search-inner">
+ <div id="search-btn"></div>
+ <div class="left"></div>
+ <form onsubmit="return submit_search()">
+ <input id="search_autocomplete" type="text" value="" autocomplete="off" name="q"
+onfocus="search_focus_changed(this, true)" onblur="search_focus_changed(this, false)"
+onkeydown="return search_changed(event, true, '/')"
+onkeyup="return search_changed(event, false, '/')" />
+ </form>
+ <div class="right"></div>
+ <a class="close hide">close</a>
+ <div class="left"></div>
+ <div class="right"></div>
+ </div>
+ </div>
+
+ <div class="search_filtered_wrapper reference">
+ <div class="suggest-card reference no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ </div>
+
+ <div class="search_filtered_wrapper docs">
+ <div class="suggest-card dummy no-display"> </div>
+ <div class="suggest-card develop no-display">
+ <ul class="search_filtered">
+ </ul>
+ <div class="child-card guides no-display">
+ </div>
+ <div class="child-card training no-display">
+ </div>
+ <div class="child-card samples no-display">
+ </div>
+ </div>
+ <div class="suggest-card design no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ <div class="suggest-card distribute no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ </div>
+
+ </div>
+ <!-- /New Search>
+
+
+ <!-- Expanded quicknav -->
+ <div id="quicknav" class="col-9">
+ <ul>
+ <li class="design">
+ <ul>
+ <li><a href="/design/index.html">Get Started</a></li>
+ <li><a href="/design/style/index.html">Style</a></li>
+ <li><a href="/design/patterns/index.html">Patterns</a></li>
+ <li><a href="/design/building-blocks/index.html">Building Blocks</a></li>
+ <li><a href="/design/downloads/index.html">Downloads</a></li>
+ <li><a href="/design/videos/index.html">Videos</a></li>
+ </ul>
+ </li>
+ <li class="develop">
+ <ul>
+ <li><a href="/training/index.html"
+ zh-tw-lang="訓練課程"
+ zh-cn-lang="培训"
+ ru-lang="Курсы"
+ ko-lang="교육"
+ ja-lang="トレーニング"
+ es-lang="Capacitación"
+ >Training</a></li>
+ <li><a href="/guide/index.html"
+ zh-tw-lang="API 指南"
+ zh-cn-lang="API 指南"
+ ru-lang="Руководства по API"
+ ko-lang="API 가이드"
+ ja-lang="API ガイド"
+ es-lang="Guías de la API"
+ >API Guides</a></li>
+ <li><a href="/reference/packages.html"
+ zh-tw-lang="參考資源"
+ zh-cn-lang="参考"
+ ru-lang="Справочник"
+ ko-lang="참조문서"
+ ja-lang="リファレンス"
+ es-lang="Referencia"
+ >Reference</a></li>
+ <li><a href="/tools/index.html"
+ zh-tw-lang="相關工具"
+ zh-cn-lang="工具"
+ ru-lang="Инструменты"
+ ko-lang="도구"
+ ja-lang="ツール"
+ es-lang="Herramientas"
+ >Tools</a>
+ <ul><li><a href="/sdk/index.html">Get the SDK</a></li></ul>
+ </li>
+ <li><a href="/google/index.html">Google Services</a>
+ </li>
+
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
+ </ul>
+ </li>
+ <li class="distribute last">
+ <ul>
+ <li><a href="/distribute/index.html">Google Play</a></li>
+ <li><a href="/distribute/googleplay/publish/index.html">Publishing</a></li>
+ <li><a href="/distribute/googleplay/promote/index.html">Promoting</a></li>
+ <li><a href="/distribute/googleplay/quality/index.html">App Quality</a></li>
+ <li><a href="/distribute/googleplay/spotlight/index.html">Spotlight</a></li>
+ <li><a href="/distribute/open.html">Open Distribution</a></li>
+ </ul>
+ </li>
+ </ul>
+ </div>
+ <!-- /Expanded quicknav -->
+ </div>
+ </div>
+ <!-- /Header -->
+
+
+ <div id="searchResults" class="wrap" style="display:none;">
+ <h2 id="searchTitle">Results</h2>
+ <div id="leftSearchControl" class="search-control">Loading...</div>
+ </div>
+
+
+
+ <!-- Secondary x-nav -->
+ <div id="nav-x">
+ <div class="wrap">
+ <ul class="nav-x col-9 develop" style="width:100%">
+ <li class="training"><a href="/training/index.html"
+ zh-tw-lang="訓練課程"
+ zh-cn-lang="培训"
+ ru-lang="Курсы"
+ ko-lang="교육"
+ ja-lang="トレーニング"
+ es-lang="Capacitación"
+ >Training</a></li>
+ <li class="guide"><a href="/guide/index.html"
+ zh-tw-lang="API 指南"
+ zh-cn-lang="API 指南"
+ ru-lang="Руководства по API"
+ ko-lang="API 가이드"
+ ja-lang="API ガイド"
+ es-lang="Guías de la API"
+ >API Guides</a></li>
+ <li class="reference"><a href="/reference/packages.html"
+ zh-tw-lang="參考資源"
+ zh-cn-lang="参考"
+ ru-lang="Справочник"
+ ko-lang="참조문서"
+ ja-lang="リファレンス"
+ es-lang="Referencia"
+ >Reference</a></li>
+ <li class="tools"><a href="/tools/index.html"
+ zh-tw-lang="相關工具"
+ zh-cn-lang="工具"
+ ru-lang="Инструменты"
+ ko-lang="도구"
+ ja-lang="ツール"
+ es-lang="Herramientas"
+ >Tools</a></li>
+ <li class="google"><a href="/google/index.html"
+ >Google Services</a>
+ </li>
+
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
+ </ul>
+ </div>
+
+ </div>
+ <!-- /Sendondary x-nav -->
+
+
+
+
+
+
+
+
+
+ <div class="wrap clearfix" id="body-content">
+ <div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
+ <div id="devdoc-nav" class="scroll-pane">
+<a class="totop" href="#top" data-g-event="left-nav-top">to top</a>
+
+
+
+<ul id="nav">
+
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/index.html">
+ <span class="en">Overview</span>
+ </a></div>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/games.html">
+ <span class="en">Games</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/location.html">
+ <span class="en">Location</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/plus.html">
+ <span class="en">Google+</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/maps.html">
+ <span class="en">Maps</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play-services/ads.html">
+ <span class="en">Ads</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play-services/id.html">
+ <span class="en">Advertising ID</span></a>
+ </li>
+ </ul>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/wallet.html">
+ <span class="en">Wallet</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/auth.html">
+ <span class="en">Authorization</span>
+ </a></div>
+ </li>
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play-services/index.html">
+ <span class="en">Google Play Services</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play-services/setup.html">
+ <span class="en">Setup</span></a>
+ </li>
+ <li id="gms-tree-list" class="nav-section">
+ <div class="nav-section-header">
+ <a href="/reference/gms-packages.html">
+ <span class="en">Reference</span>
+ </a>
+ <div>
+ </li>
+ </ul>
+ </li>
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/billing/index.html">
+ <span class="en">Google Play In-app Billing</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/billing/billing_overview.html">
+ <span class="en">Overview</span></a>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/api.html">
+ <span class="en">Version 3 API</span></a></div>
+ <ul>
+ <li><a href="/google/play/billing/billing_integrate.html">
+ <span class="en">Implementing the API</span></a></li>
+ <li><a href="/google/play/billing/billing_reference.html">
+ <span class="en">Reference</span></a></li>
+ </ul>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/v2/api.html">
+ <span class="en">Version 2 API</span></a></div>
+ <ul>
+ <li><a href="/google/play/billing/v2/billing_integrate.html">
+ <span class="en">Implementing the API</span></a></li>
+ <li><a href="/google/play/billing/v2/billing_subscriptions.html">
+ <span class="en">Subscriptions</span></a></li>
+ <li><a href="/google/play/billing/v2/billing_reference.html">
+ <span class="en">Reference</span></a></li>
+ </ul>
+ </li>
+ <li><a href="/google/play/billing/billing_subscriptions.html">
+ <span class="en">Subscriptions</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_best_practices.html">
+ <span class="en">Security and Design</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_testing.html">
+ <span class="en">Testing In-app Billing</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_admin.html">
+ <span class="en">Administering In-app Billing</span></a>
+ </li>
+ <li><a href="/google/play/billing/gp-purchase-status-api.html">
+ <span class="en">Purchase Status API</span></a>
+ </li>
+ <li><a href="/google/play/billing/versions.html">
+ <span class="en">Version Notes</span></a>
+ </li>
+ </ul>
+ </li>
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/gcm/index.html">
+ <span class="en">Google Cloud Messaging</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
+ <li><a href="/google/gcm/gs.html">
+ <span class="en">Getting Started</span></a>
+ </li>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
+ </li>
+ <li><a href="/google/gcm/notifications.html">
+ <span class="en">User Notifications</span></a>
+ </li>
+ <li><a href="/google/gcm/adv.html">
+ <span class="en">Advanced Topics</span></a>
+ </li>
+ <li><a href="/google/gcm/c2dm.html">
+ <span class="en">Migration</span></a>
+ </li>
+ <li id="gcm-tree-list" class="nav-section">
+ <div class="nav-section-header">
+ <a href="/reference/gcm-packages.html">
+ <span class="en">Reference</span>
+ </a>
+ <div>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/dist.html">
+ <span class="en">Google Play Distribution</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/filters.html">
+ <span class="en">Filters on Google Play</span></a>
+ </li>
+
+ <li><a href="/google/play/publishing/multiple-apks.html">
+ <span class="en">Multiple APK Support</span></a>
+ </li>
+ <li><a href="/google/play/expansion-files.html">
+ <span class="en">APK Expansion Files</span></a>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/licensing/index.html">
+ <span class="en">Application Licensing</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/licensing/overview.html">
+ <span class="en">Licensing Overview</span></a>
+ </li>
+ <li><a href="/google/play/licensing/setting-up.html">
+ <span class="en">Setting Up for Licensing</span></a>
+ </li>
+ <li><a href="/google/play/licensing/adding-licensing.html">
+ <span class="en">Adding Licensing to Your App</span></a>
+ </li>
+ <li><a href="/google/play/licensing/licensing-reference.html">
+ <span class="en">Licensing Reference</span></a>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/backup/index.html">
+ Android Backup Service</a>
+ </div>
+ <ul>
+ <li><a href="/google/backup/signup.html">
+ Register</a>
+ </li>
+ </ul>
+ </li>
+
+ </ul>
+
+</li>
+
+
+
+</ul>
+
+<script type="text/javascript">
+<!--
+ buildToggleLists();
+ changeNavLang(getLangPref());
+//-->
+</script>
+
+
+
+
+ </div>
+ <script type="text/javascript">
+ showGoogleRefTree();
+
+ </script>
+ </div> <!-- end side-nav -->
+ <script>
+ $(document).ready(function() {
+ scrollIntoView("devdoc-nav");
+ });
+ </script>
+
+
+
+
+
+
+<div class="col-12" id="doc-col">
+
+<div id="api-info-block">
+
+
+
+
+<div class="sum-details-links">
+
+</div><!-- end sum-details-links -->
+<div class="api-level">
+
+
+
+
+</div>
+</div><!-- end api-info-block -->
+
+
+<!-- ======== START OF CLASS DATA ======== -->
+
+<div id="jd-header">
+ public
+ static
+
+
+ interface
+<h1 itemprop="name">DriveFolder.OnChildrenRetrievedCallback</h1>
+
+
+
+
+
+
+
+
+</div><!-- end header -->
+
+<div id="naMessage"></div>
+
+<div id="jd-content" class="api apilevel-">
+<table class="jd-inheritance-table">
+
+
+ <tr>
+
+ <td colspan="1" class="jd-inheritance-class-cell">com.google.android.gms.drive.DriveFolder.OnChildrenRetrievedCallback</td>
+ </tr>
+
+
+</table>
+
+
+
+
+
+
+
+<div class="jd-descr">
+
+
+<h2>Class Overview</h2>
+<p class="caution">
+ <strong>Note:</strong> The Google Drive Android API is currently in <strong>developer
+ preview</strong>. Applications compiled using this version of the API will
+ continue to operate on devices using future versions of Google Play services;
+ however, changes to the API are expected in future releases.
+</p>
+<p itemprop="articleBody">A callback that provides the result for a get children request.
+</p>
+
+
+
+
+
+</div><!-- jd-descr -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<div class="jd-descr">
+
+
+<h2>Summary</h2>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
+
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/DriveFolder.OnChildrenRetrievedCallback.html#onChildrenRetrieved(com.google.android.gms.drive.DriveApi.MetadataBufferResult)">onChildrenRetrieved</a></span>(<a href="/reference/com/google/android/gms/drive/DriveApi.MetadataBufferResult.html">DriveApi.MetadataBufferResult</a> result)</nobr>
+
+ </td></tr>
+
+
+
+</table>
+
+
+
+
+
+
+
+</div><!-- jd-descr (summary) -->
+
+<!-- Details -->
+
+
+
+
+
+
+
+
+<!-- XML Attributes -->
+
+
+<!-- Enum Values -->
+
+
+<!-- Constants -->
+
+
+<!-- Fields -->
+
+
+<!-- Public ctors -->
+
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<!-- Protected ctors -->
+
+
+
+<!-- ========= METHOD DETAIL ======== -->
+<!-- Public methdos -->
+
+<h2>Public Methods</h2>
+
+
+
+<A NAME="onChildrenRetrieved(com.google.android.gms.drive.DriveApi.MetadataBufferResult)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+ abstract
+
+ void
+ </span>
+ <span class="sympad">onChildrenRetrieved</span>
+ <span class="normal">(<a href="/reference/com/google/android/gms/drive/DriveApi.MetadataBufferResult.html">DriveApi.MetadataBufferResult</a> result)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+ </div>
+</div>
+
+
+
+
+
+<!-- ========= METHOD DETAIL ======== -->
+
+
+
+<!-- ========= END OF CLASS DATA ========= -->
+<A NAME="navbar_top"></A>
+
+<div id="footer" class="wrap" >
+
+
+ <div id="copyright">
+
+ Except as noted, this content is licensed under <a
+ href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.
+ For details and restrictions, see the <a href="/license.html">
+ Content License</a>.
+ </div>
+ <div id="build_info">
+
+<script src="/timestamp.js" type="text/javascript"></script>
+<script>document.write(BUILD_TIMESTAMP)</script>
+
+ </div>
+
+
+ <div id="footerlinks">
+
+ <p>
+ <a href="/about/index.html">About Android</a> |
+ <a href="/legal.html">Legal</a> |
+ <a href="/support.html">Support</a>
+ </p>
+ </div>
+
+</div> <!-- end footer -->
+</div> <!-- jd-content -->
+
+</div><!-- end doc-content -->
+
+</div> <!-- end body-content -->
+
+
+
+
+
+
+</body>
+</html>
diff --git a/docs/html/reference/com/google/android/gms/drive/DriveFolder.OnCreateFileCallback.html b/docs/html/reference/com/google/android/gms/drive/DriveFolder.OnCreateFileCallback.html
new file mode 100644
index 0000000..af959e8
--- /dev/null
+++ b/docs/html/reference/com/google/android/gms/drive/DriveFolder.OnCreateFileCallback.html
@@ -0,0 +1,924 @@
+<!DOCTYPE html>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<html>
+<head>
+
+
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<meta name="viewport" content="width=device-width" />
+
+<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
+<title>DriveFolder.OnCreateFileCallback | Android Developers</title>
+
+<!-- STYLESHEETS -->
+<link rel="stylesheet"
+href="//fonts.googleapis.com/css?family=Roboto:regular,medium,thin,italic,mediumitalic,bold" title="roboto">
+<link href="/assets/css/default.css" rel="stylesheet" type="text/css">
+
+
+
+<!-- JAVASCRIPT -->
+<script src="//www.google.com/jsapi" type="text/javascript"></script>
+<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
+<script type="text/javascript">
+ var toRoot = "/";
+ var metaTags = [];
+ var devsite = false;
+</script>
+<script src="/assets/js/docs.js" type="text/javascript"></script>
+
+<script type="text/javascript">
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-5831155-1']);
+ _gaq.push(['_trackPageview']);
+
+ (function() {
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+ })();
+</script>
+</head>
+<body class="gc-documentation google
+ develop" itemscope itemtype="http://schema.org/Article">
+ <div id="doc-api-level" class="" style="display:none"></div>
+ <a name="top"></a>
+
+<a name="top"></a>
+
+ <!-- Header -->
+ <div id="header">
+ <div class="wrap" id="header-wrap">
+ <div class="col-3 logo">
+ <a href="/index.html">
+ <img src="/assets/images/dac_logo.png" width="123" height="25" alt="Android Developers" />
+ </a>
+ <div class="btn-quicknav" id="btn-quicknav">
+ <a href="#" class="arrow-inactive">Quicknav</a>
+ <a href="#" class="arrow-active">Quicknav</a>
+ </div>
+ </div>
+ <ul class="nav-x col-9">
+ <li class="design">
+ <a href="/design/index.html"
+ zh-tw-lang="設計"
+ zh-cn-lang="设计"
+ ru-lang="Проектирование"
+ ko-lang="디자인"
+ ja-lang="設計"
+ es-lang="Diseñar"
+ >Design</a></li>
+ <li class="develop"><a href="/develop/index.html"
+ zh-tw-lang="開發"
+ zh-cn-lang="开发"
+ ru-lang="Разработка"
+ ko-lang="개발"
+ ja-lang="開発"
+ es-lang="Desarrollar"
+ >Develop</a></li>
+ <li class="distribute last"><a href="/distribute/index.html"
+ zh-tw-lang="發佈"
+ zh-cn-lang="分发"
+ ru-lang="Распространение"
+ ko-lang="배포"
+ ja-lang="配布"
+ es-lang="Distribuir"
+ >Distribute</a></li>
+ </ul>
+
+ <!-- New Search -->
+ <div class="menu-container">
+ <div class="moremenu">
+ <div id="more-btn"></div>
+ </div>
+ <div class="morehover" id="moremenu">
+ <div class="top"></div>
+ <div class="mid">
+ <div class="header">Links</div>
+ <ul>
+ <li><a href="https://play.google.com/apps/publish/">Google Play Developer Console</a></li>
+ <li><a href="http://android-developers.blogspot.com/">Android Developers Blog</a></li>
+ <li><a href="/about/index.html">About Android</a></li>
+ </ul>
+ <div class="header">Android Sites</div>
+ <ul>
+ <li><a href="http://www.android.com">Android.com</a></li>
+ <li class="active"><a>Android Developers</a></li>
+ <li><a href="http://source.android.com">Android Open Source Project</a></li>
+ </ul>
+
+
+
+ <div class="header">Language</div>
+ <div id="language" class="locales">
+ <select name="language" onChange="changeLangPref(this.value, true)">
+ <option value="en">English</option>
+ <option value="es">Español</option>
+ <option value="ja">日本語</option>
+ <option value="ko">한국어</option>
+ <option value="ru">Русский</option>
+ <option value="zh-cn">中文 (中国)</option>
+ <option value="zh-tw">中文 (台灣)</option>
+ </select>
+ </div>
+ <script type="text/javascript">
+ <!--
+ loadLangPref();
+ //-->
+ </script>
+
+
+
+
+ <br class="clearfix" />
+ </div>
+ <div class="bottom"></div>
+ </div>
+ <div class="search" id="search-container">
+ <div class="search-inner">
+ <div id="search-btn"></div>
+ <div class="left"></div>
+ <form onsubmit="return submit_search()">
+ <input id="search_autocomplete" type="text" value="" autocomplete="off" name="q"
+onfocus="search_focus_changed(this, true)" onblur="search_focus_changed(this, false)"
+onkeydown="return search_changed(event, true, '/')"
+onkeyup="return search_changed(event, false, '/')" />
+ </form>
+ <div class="right"></div>
+ <a class="close hide">close</a>
+ <div class="left"></div>
+ <div class="right"></div>
+ </div>
+ </div>
+
+ <div class="search_filtered_wrapper reference">
+ <div class="suggest-card reference no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ </div>
+
+ <div class="search_filtered_wrapper docs">
+ <div class="suggest-card dummy no-display"> </div>
+ <div class="suggest-card develop no-display">
+ <ul class="search_filtered">
+ </ul>
+ <div class="child-card guides no-display">
+ </div>
+ <div class="child-card training no-display">
+ </div>
+ <div class="child-card samples no-display">
+ </div>
+ </div>
+ <div class="suggest-card design no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ <div class="suggest-card distribute no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ </div>
+
+ </div>
+ <!-- /New Search>
+
+
+ <!-- Expanded quicknav -->
+ <div id="quicknav" class="col-9">
+ <ul>
+ <li class="design">
+ <ul>
+ <li><a href="/design/index.html">Get Started</a></li>
+ <li><a href="/design/style/index.html">Style</a></li>
+ <li><a href="/design/patterns/index.html">Patterns</a></li>
+ <li><a href="/design/building-blocks/index.html">Building Blocks</a></li>
+ <li><a href="/design/downloads/index.html">Downloads</a></li>
+ <li><a href="/design/videos/index.html">Videos</a></li>
+ </ul>
+ </li>
+ <li class="develop">
+ <ul>
+ <li><a href="/training/index.html"
+ zh-tw-lang="訓練課程"
+ zh-cn-lang="培训"
+ ru-lang="Курсы"
+ ko-lang="교육"
+ ja-lang="トレーニング"
+ es-lang="Capacitación"
+ >Training</a></li>
+ <li><a href="/guide/index.html"
+ zh-tw-lang="API 指南"
+ zh-cn-lang="API 指南"
+ ru-lang="Руководства по API"
+ ko-lang="API 가이드"
+ ja-lang="API ガイド"
+ es-lang="Guías de la API"
+ >API Guides</a></li>
+ <li><a href="/reference/packages.html"
+ zh-tw-lang="參考資源"
+ zh-cn-lang="参考"
+ ru-lang="Справочник"
+ ko-lang="참조문서"
+ ja-lang="リファレンス"
+ es-lang="Referencia"
+ >Reference</a></li>
+ <li><a href="/tools/index.html"
+ zh-tw-lang="相關工具"
+ zh-cn-lang="工具"
+ ru-lang="Инструменты"
+ ko-lang="도구"
+ ja-lang="ツール"
+ es-lang="Herramientas"
+ >Tools</a>
+ <ul><li><a href="/sdk/index.html">Get the SDK</a></li></ul>
+ </li>
+ <li><a href="/google/index.html">Google Services</a>
+ </li>
+
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
+ </ul>
+ </li>
+ <li class="distribute last">
+ <ul>
+ <li><a href="/distribute/index.html">Google Play</a></li>
+ <li><a href="/distribute/googleplay/publish/index.html">Publishing</a></li>
+ <li><a href="/distribute/googleplay/promote/index.html">Promoting</a></li>
+ <li><a href="/distribute/googleplay/quality/index.html">App Quality</a></li>
+ <li><a href="/distribute/googleplay/spotlight/index.html">Spotlight</a></li>
+ <li><a href="/distribute/open.html">Open Distribution</a></li>
+ </ul>
+ </li>
+ </ul>
+ </div>
+ <!-- /Expanded quicknav -->
+ </div>
+ </div>
+ <!-- /Header -->
+
+
+ <div id="searchResults" class="wrap" style="display:none;">
+ <h2 id="searchTitle">Results</h2>
+ <div id="leftSearchControl" class="search-control">Loading...</div>
+ </div>
+
+
+
+ <!-- Secondary x-nav -->
+ <div id="nav-x">
+ <div class="wrap">
+ <ul class="nav-x col-9 develop" style="width:100%">
+ <li class="training"><a href="/training/index.html"
+ zh-tw-lang="訓練課程"
+ zh-cn-lang="培训"
+ ru-lang="Курсы"
+ ko-lang="교육"
+ ja-lang="トレーニング"
+ es-lang="Capacitación"
+ >Training</a></li>
+ <li class="guide"><a href="/guide/index.html"
+ zh-tw-lang="API 指南"
+ zh-cn-lang="API 指南"
+ ru-lang="Руководства по API"
+ ko-lang="API 가이드"
+ ja-lang="API ガイド"
+ es-lang="Guías de la API"
+ >API Guides</a></li>
+ <li class="reference"><a href="/reference/packages.html"
+ zh-tw-lang="參考資源"
+ zh-cn-lang="参考"
+ ru-lang="Справочник"
+ ko-lang="참조문서"
+ ja-lang="リファレンス"
+ es-lang="Referencia"
+ >Reference</a></li>
+ <li class="tools"><a href="/tools/index.html"
+ zh-tw-lang="相關工具"
+ zh-cn-lang="工具"
+ ru-lang="Инструменты"
+ ko-lang="도구"
+ ja-lang="ツール"
+ es-lang="Herramientas"
+ >Tools</a></li>
+ <li class="google"><a href="/google/index.html"
+ >Google Services</a>
+ </li>
+
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
+ </ul>
+ </div>
+
+ </div>
+ <!-- /Sendondary x-nav -->
+
+
+
+
+
+
+
+
+
+ <div class="wrap clearfix" id="body-content">
+ <div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
+ <div id="devdoc-nav" class="scroll-pane">
+<a class="totop" href="#top" data-g-event="left-nav-top">to top</a>
+
+
+
+<ul id="nav">
+
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/index.html">
+ <span class="en">Overview</span>
+ </a></div>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/games.html">
+ <span class="en">Games</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/location.html">
+ <span class="en">Location</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/plus.html">
+ <span class="en">Google+</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/maps.html">
+ <span class="en">Maps</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play-services/ads.html">
+ <span class="en">Ads</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play-services/id.html">
+ <span class="en">Advertising ID</span></a>
+ </li>
+ </ul>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/wallet.html">
+ <span class="en">Wallet</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/auth.html">
+ <span class="en">Authorization</span>
+ </a></div>
+ </li>
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play-services/index.html">
+ <span class="en">Google Play Services</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play-services/setup.html">
+ <span class="en">Setup</span></a>
+ </li>
+ <li id="gms-tree-list" class="nav-section">
+ <div class="nav-section-header">
+ <a href="/reference/gms-packages.html">
+ <span class="en">Reference</span>
+ </a>
+ <div>
+ </li>
+ </ul>
+ </li>
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/billing/index.html">
+ <span class="en">Google Play In-app Billing</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/billing/billing_overview.html">
+ <span class="en">Overview</span></a>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/api.html">
+ <span class="en">Version 3 API</span></a></div>
+ <ul>
+ <li><a href="/google/play/billing/billing_integrate.html">
+ <span class="en">Implementing the API</span></a></li>
+ <li><a href="/google/play/billing/billing_reference.html">
+ <span class="en">Reference</span></a></li>
+ </ul>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/v2/api.html">
+ <span class="en">Version 2 API</span></a></div>
+ <ul>
+ <li><a href="/google/play/billing/v2/billing_integrate.html">
+ <span class="en">Implementing the API</span></a></li>
+ <li><a href="/google/play/billing/v2/billing_subscriptions.html">
+ <span class="en">Subscriptions</span></a></li>
+ <li><a href="/google/play/billing/v2/billing_reference.html">
+ <span class="en">Reference</span></a></li>
+ </ul>
+ </li>
+ <li><a href="/google/play/billing/billing_subscriptions.html">
+ <span class="en">Subscriptions</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_best_practices.html">
+ <span class="en">Security and Design</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_testing.html">
+ <span class="en">Testing In-app Billing</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_admin.html">
+ <span class="en">Administering In-app Billing</span></a>
+ </li>
+ <li><a href="/google/play/billing/gp-purchase-status-api.html">
+ <span class="en">Purchase Status API</span></a>
+ </li>
+ <li><a href="/google/play/billing/versions.html">
+ <span class="en">Version Notes</span></a>
+ </li>
+ </ul>
+ </li>
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/gcm/index.html">
+ <span class="en">Google Cloud Messaging</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
+ <li><a href="/google/gcm/gs.html">
+ <span class="en">Getting Started</span></a>
+ </li>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
+ </li>
+ <li><a href="/google/gcm/notifications.html">
+ <span class="en">User Notifications</span></a>
+ </li>
+ <li><a href="/google/gcm/adv.html">
+ <span class="en">Advanced Topics</span></a>
+ </li>
+ <li><a href="/google/gcm/c2dm.html">
+ <span class="en">Migration</span></a>
+ </li>
+ <li id="gcm-tree-list" class="nav-section">
+ <div class="nav-section-header">
+ <a href="/reference/gcm-packages.html">
+ <span class="en">Reference</span>
+ </a>
+ <div>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/dist.html">
+ <span class="en">Google Play Distribution</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/filters.html">
+ <span class="en">Filters on Google Play</span></a>
+ </li>
+
+ <li><a href="/google/play/publishing/multiple-apks.html">
+ <span class="en">Multiple APK Support</span></a>
+ </li>
+ <li><a href="/google/play/expansion-files.html">
+ <span class="en">APK Expansion Files</span></a>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/licensing/index.html">
+ <span class="en">Application Licensing</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/licensing/overview.html">
+ <span class="en">Licensing Overview</span></a>
+ </li>
+ <li><a href="/google/play/licensing/setting-up.html">
+ <span class="en">Setting Up for Licensing</span></a>
+ </li>
+ <li><a href="/google/play/licensing/adding-licensing.html">
+ <span class="en">Adding Licensing to Your App</span></a>
+ </li>
+ <li><a href="/google/play/licensing/licensing-reference.html">
+ <span class="en">Licensing Reference</span></a>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/backup/index.html">
+ Android Backup Service</a>
+ </div>
+ <ul>
+ <li><a href="/google/backup/signup.html">
+ Register</a>
+ </li>
+ </ul>
+ </li>
+
+ </ul>
+
+</li>
+
+
+
+</ul>
+
+<script type="text/javascript">
+<!--
+ buildToggleLists();
+ changeNavLang(getLangPref());
+//-->
+</script>
+
+
+
+
+ </div>
+ <script type="text/javascript">
+ showGoogleRefTree();
+
+ </script>
+ </div> <!-- end side-nav -->
+ <script>
+ $(document).ready(function() {
+ scrollIntoView("devdoc-nav");
+ });
+ </script>
+
+
+
+
+
+
+<div class="col-12" id="doc-col">
+
+<div id="api-info-block">
+
+
+
+
+<div class="sum-details-links">
+
+</div><!-- end sum-details-links -->
+<div class="api-level">
+
+
+
+
+</div>
+</div><!-- end api-info-block -->
+
+
+<!-- ======== START OF CLASS DATA ======== -->
+
+<div id="jd-header">
+ public
+ static
+
+
+ interface
+<h1 itemprop="name">DriveFolder.OnCreateFileCallback</h1>
+
+
+
+
+
+
+
+
+</div><!-- end header -->
+
+<div id="naMessage"></div>
+
+<div id="jd-content" class="api apilevel-">
+<table class="jd-inheritance-table">
+
+
+ <tr>
+
+ <td colspan="1" class="jd-inheritance-class-cell">com.google.android.gms.drive.DriveFolder.OnCreateFileCallback</td>
+ </tr>
+
+
+</table>
+
+
+
+
+
+
+
+<div class="jd-descr">
+
+
+<h2>Class Overview</h2>
+<p class="caution">
+ <strong>Note:</strong> The Google Drive Android API is currently in <strong>developer
+ preview</strong>. Applications compiled using this version of the API will
+ continue to operate on devices using future versions of Google Play services;
+ however, changes to the API are expected in future releases.
+</p>
+<p itemprop="articleBody">A callback that provides the result for a create file request.
+</p>
+
+
+
+
+
+</div><!-- jd-descr -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<div class="jd-descr">
+
+
+<h2>Summary</h2>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
+
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/DriveFolder.OnCreateFileCallback.html#onCreateFile(com.google.android.gms.drive.DriveFolder.DriveFileResult)">onCreateFile</a></span>(<a href="/reference/com/google/android/gms/drive/DriveFolder.DriveFileResult.html">DriveFolder.DriveFileResult</a> result)</nobr>
+
+ </td></tr>
+
+
+
+</table>
+
+
+
+
+
+
+
+</div><!-- jd-descr (summary) -->
+
+<!-- Details -->
+
+
+
+
+
+
+
+
+<!-- XML Attributes -->
+
+
+<!-- Enum Values -->
+
+
+<!-- Constants -->
+
+
+<!-- Fields -->
+
+
+<!-- Public ctors -->
+
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<!-- Protected ctors -->
+
+
+
+<!-- ========= METHOD DETAIL ======== -->
+<!-- Public methdos -->
+
+<h2>Public Methods</h2>
+
+
+
+<A NAME="onCreateFile(com.google.android.gms.drive.DriveFolder.DriveFileResult)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+ abstract
+
+ void
+ </span>
+ <span class="sympad">onCreateFile</span>
+ <span class="normal">(<a href="/reference/com/google/android/gms/drive/DriveFolder.DriveFileResult.html">DriveFolder.DriveFileResult</a> result)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+ </div>
+</div>
+
+
+
+
+
+<!-- ========= METHOD DETAIL ======== -->
+
+
+
+<!-- ========= END OF CLASS DATA ========= -->
+<A NAME="navbar_top"></A>
+
+<div id="footer" class="wrap" >
+
+
+ <div id="copyright">
+
+ Except as noted, this content is licensed under <a
+ href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.
+ For details and restrictions, see the <a href="/license.html">
+ Content License</a>.
+ </div>
+ <div id="build_info">
+
+<script src="/timestamp.js" type="text/javascript"></script>
+<script>document.write(BUILD_TIMESTAMP)</script>
+
+ </div>
+
+
+ <div id="footerlinks">
+
+ <p>
+ <a href="/about/index.html">About Android</a> |
+ <a href="/legal.html">Legal</a> |
+ <a href="/support.html">Support</a>
+ </p>
+ </div>
+
+</div> <!-- end footer -->
+</div> <!-- jd-content -->
+
+</div><!-- end doc-content -->
+
+</div> <!-- end body-content -->
+
+
+
+
+
+
+</body>
+</html>
diff --git a/docs/html/reference/com/google/android/gms/drive/DriveFolder.OnCreateFolderCallback.html b/docs/html/reference/com/google/android/gms/drive/DriveFolder.OnCreateFolderCallback.html
new file mode 100644
index 0000000..7b80ddb
--- /dev/null
+++ b/docs/html/reference/com/google/android/gms/drive/DriveFolder.OnCreateFolderCallback.html
@@ -0,0 +1,924 @@
+<!DOCTYPE html>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<html>
+<head>
+
+
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<meta name="viewport" content="width=device-width" />
+
+<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
+<title>DriveFolder.OnCreateFolderCallback | Android Developers</title>
+
+<!-- STYLESHEETS -->
+<link rel="stylesheet"
+href="//fonts.googleapis.com/css?family=Roboto:regular,medium,thin,italic,mediumitalic,bold" title="roboto">
+<link href="/assets/css/default.css" rel="stylesheet" type="text/css">
+
+
+
+<!-- JAVASCRIPT -->
+<script src="//www.google.com/jsapi" type="text/javascript"></script>
+<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
+<script type="text/javascript">
+ var toRoot = "/";
+ var metaTags = [];
+ var devsite = false;
+</script>
+<script src="/assets/js/docs.js" type="text/javascript"></script>
+
+<script type="text/javascript">
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-5831155-1']);
+ _gaq.push(['_trackPageview']);
+
+ (function() {
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+ })();
+</script>
+</head>
+<body class="gc-documentation google
+ develop" itemscope itemtype="http://schema.org/Article">
+ <div id="doc-api-level" class="" style="display:none"></div>
+ <a name="top"></a>
+
+<a name="top"></a>
+
+ <!-- Header -->
+ <div id="header">
+ <div class="wrap" id="header-wrap">
+ <div class="col-3 logo">
+ <a href="/index.html">
+ <img src="/assets/images/dac_logo.png" width="123" height="25" alt="Android Developers" />
+ </a>
+ <div class="btn-quicknav" id="btn-quicknav">
+ <a href="#" class="arrow-inactive">Quicknav</a>
+ <a href="#" class="arrow-active">Quicknav</a>
+ </div>
+ </div>
+ <ul class="nav-x col-9">
+ <li class="design">
+ <a href="/design/index.html"
+ zh-tw-lang="設計"
+ zh-cn-lang="设计"
+ ru-lang="Проектирование"
+ ko-lang="디자인"
+ ja-lang="設計"
+ es-lang="Diseñar"
+ >Design</a></li>
+ <li class="develop"><a href="/develop/index.html"
+ zh-tw-lang="開發"
+ zh-cn-lang="开发"
+ ru-lang="Разработка"
+ ko-lang="개발"
+ ja-lang="開発"
+ es-lang="Desarrollar"
+ >Develop</a></li>
+ <li class="distribute last"><a href="/distribute/index.html"
+ zh-tw-lang="發佈"
+ zh-cn-lang="分发"
+ ru-lang="Распространение"
+ ko-lang="배포"
+ ja-lang="配布"
+ es-lang="Distribuir"
+ >Distribute</a></li>
+ </ul>
+
+ <!-- New Search -->
+ <div class="menu-container">
+ <div class="moremenu">
+ <div id="more-btn"></div>
+ </div>
+ <div class="morehover" id="moremenu">
+ <div class="top"></div>
+ <div class="mid">
+ <div class="header">Links</div>
+ <ul>
+ <li><a href="https://play.google.com/apps/publish/">Google Play Developer Console</a></li>
+ <li><a href="http://android-developers.blogspot.com/">Android Developers Blog</a></li>
+ <li><a href="/about/index.html">About Android</a></li>
+ </ul>
+ <div class="header">Android Sites</div>
+ <ul>
+ <li><a href="http://www.android.com">Android.com</a></li>
+ <li class="active"><a>Android Developers</a></li>
+ <li><a href="http://source.android.com">Android Open Source Project</a></li>
+ </ul>
+
+
+
+ <div class="header">Language</div>
+ <div id="language" class="locales">
+ <select name="language" onChange="changeLangPref(this.value, true)">
+ <option value="en">English</option>
+ <option value="es">Español</option>
+ <option value="ja">日本語</option>
+ <option value="ko">한국어</option>
+ <option value="ru">Русский</option>
+ <option value="zh-cn">中文 (中国)</option>
+ <option value="zh-tw">中文 (台灣)</option>
+ </select>
+ </div>
+ <script type="text/javascript">
+ <!--
+ loadLangPref();
+ //-->
+ </script>
+
+
+
+
+ <br class="clearfix" />
+ </div>
+ <div class="bottom"></div>
+ </div>
+ <div class="search" id="search-container">
+ <div class="search-inner">
+ <div id="search-btn"></div>
+ <div class="left"></div>
+ <form onsubmit="return submit_search()">
+ <input id="search_autocomplete" type="text" value="" autocomplete="off" name="q"
+onfocus="search_focus_changed(this, true)" onblur="search_focus_changed(this, false)"
+onkeydown="return search_changed(event, true, '/')"
+onkeyup="return search_changed(event, false, '/')" />
+ </form>
+ <div class="right"></div>
+ <a class="close hide">close</a>
+ <div class="left"></div>
+ <div class="right"></div>
+ </div>
+ </div>
+
+ <div class="search_filtered_wrapper reference">
+ <div class="suggest-card reference no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ </div>
+
+ <div class="search_filtered_wrapper docs">
+ <div class="suggest-card dummy no-display"> </div>
+ <div class="suggest-card develop no-display">
+ <ul class="search_filtered">
+ </ul>
+ <div class="child-card guides no-display">
+ </div>
+ <div class="child-card training no-display">
+ </div>
+ <div class="child-card samples no-display">
+ </div>
+ </div>
+ <div class="suggest-card design no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ <div class="suggest-card distribute no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ </div>
+
+ </div>
+ <!-- /New Search>
+
+
+ <!-- Expanded quicknav -->
+ <div id="quicknav" class="col-9">
+ <ul>
+ <li class="design">
+ <ul>
+ <li><a href="/design/index.html">Get Started</a></li>
+ <li><a href="/design/style/index.html">Style</a></li>
+ <li><a href="/design/patterns/index.html">Patterns</a></li>
+ <li><a href="/design/building-blocks/index.html">Building Blocks</a></li>
+ <li><a href="/design/downloads/index.html">Downloads</a></li>
+ <li><a href="/design/videos/index.html">Videos</a></li>
+ </ul>
+ </li>
+ <li class="develop">
+ <ul>
+ <li><a href="/training/index.html"
+ zh-tw-lang="訓練課程"
+ zh-cn-lang="培训"
+ ru-lang="Курсы"
+ ko-lang="교육"
+ ja-lang="トレーニング"
+ es-lang="Capacitación"
+ >Training</a></li>
+ <li><a href="/guide/index.html"
+ zh-tw-lang="API 指南"
+ zh-cn-lang="API 指南"
+ ru-lang="Руководства по API"
+ ko-lang="API 가이드"
+ ja-lang="API ガイド"
+ es-lang="Guías de la API"
+ >API Guides</a></li>
+ <li><a href="/reference/packages.html"
+ zh-tw-lang="參考資源"
+ zh-cn-lang="参考"
+ ru-lang="Справочник"
+ ko-lang="참조문서"
+ ja-lang="リファレンス"
+ es-lang="Referencia"
+ >Reference</a></li>
+ <li><a href="/tools/index.html"
+ zh-tw-lang="相關工具"
+ zh-cn-lang="工具"
+ ru-lang="Инструменты"
+ ko-lang="도구"
+ ja-lang="ツール"
+ es-lang="Herramientas"
+ >Tools</a>
+ <ul><li><a href="/sdk/index.html">Get the SDK</a></li></ul>
+ </li>
+ <li><a href="/google/index.html">Google Services</a>
+ </li>
+
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
+ </ul>
+ </li>
+ <li class="distribute last">
+ <ul>
+ <li><a href="/distribute/index.html">Google Play</a></li>
+ <li><a href="/distribute/googleplay/publish/index.html">Publishing</a></li>
+ <li><a href="/distribute/googleplay/promote/index.html">Promoting</a></li>
+ <li><a href="/distribute/googleplay/quality/index.html">App Quality</a></li>
+ <li><a href="/distribute/googleplay/spotlight/index.html">Spotlight</a></li>
+ <li><a href="/distribute/open.html">Open Distribution</a></li>
+ </ul>
+ </li>
+ </ul>
+ </div>
+ <!-- /Expanded quicknav -->
+ </div>
+ </div>
+ <!-- /Header -->
+
+
+ <div id="searchResults" class="wrap" style="display:none;">
+ <h2 id="searchTitle">Results</h2>
+ <div id="leftSearchControl" class="search-control">Loading...</div>
+ </div>
+
+
+
+ <!-- Secondary x-nav -->
+ <div id="nav-x">
+ <div class="wrap">
+ <ul class="nav-x col-9 develop" style="width:100%">
+ <li class="training"><a href="/training/index.html"
+ zh-tw-lang="訓練課程"
+ zh-cn-lang="培训"
+ ru-lang="Курсы"
+ ko-lang="교육"
+ ja-lang="トレーニング"
+ es-lang="Capacitación"
+ >Training</a></li>
+ <li class="guide"><a href="/guide/index.html"
+ zh-tw-lang="API 指南"
+ zh-cn-lang="API 指南"
+ ru-lang="Руководства по API"
+ ko-lang="API 가이드"
+ ja-lang="API ガイド"
+ es-lang="Guías de la API"
+ >API Guides</a></li>
+ <li class="reference"><a href="/reference/packages.html"
+ zh-tw-lang="參考資源"
+ zh-cn-lang="参考"
+ ru-lang="Справочник"
+ ko-lang="참조문서"
+ ja-lang="リファレンス"
+ es-lang="Referencia"
+ >Reference</a></li>
+ <li class="tools"><a href="/tools/index.html"
+ zh-tw-lang="相關工具"
+ zh-cn-lang="工具"
+ ru-lang="Инструменты"
+ ko-lang="도구"
+ ja-lang="ツール"
+ es-lang="Herramientas"
+ >Tools</a></li>
+ <li class="google"><a href="/google/index.html"
+ >Google Services</a>
+ </li>
+
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
+ </ul>
+ </div>
+
+ </div>
+ <!-- /Sendondary x-nav -->
+
+
+
+
+
+
+
+
+
+ <div class="wrap clearfix" id="body-content">
+ <div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
+ <div id="devdoc-nav" class="scroll-pane">
+<a class="totop" href="#top" data-g-event="left-nav-top">to top</a>
+
+
+
+<ul id="nav">
+
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/index.html">
+ <span class="en">Overview</span>
+ </a></div>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/games.html">
+ <span class="en">Games</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/location.html">
+ <span class="en">Location</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/plus.html">
+ <span class="en">Google+</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/maps.html">
+ <span class="en">Maps</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play-services/ads.html">
+ <span class="en">Ads</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play-services/id.html">
+ <span class="en">Advertising ID</span></a>
+ </li>
+ </ul>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/wallet.html">
+ <span class="en">Wallet</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/auth.html">
+ <span class="en">Authorization</span>
+ </a></div>
+ </li>
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play-services/index.html">
+ <span class="en">Google Play Services</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play-services/setup.html">
+ <span class="en">Setup</span></a>
+ </li>
+ <li id="gms-tree-list" class="nav-section">
+ <div class="nav-section-header">
+ <a href="/reference/gms-packages.html">
+ <span class="en">Reference</span>
+ </a>
+ <div>
+ </li>
+ </ul>
+ </li>
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/billing/index.html">
+ <span class="en">Google Play In-app Billing</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/billing/billing_overview.html">
+ <span class="en">Overview</span></a>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/api.html">
+ <span class="en">Version 3 API</span></a></div>
+ <ul>
+ <li><a href="/google/play/billing/billing_integrate.html">
+ <span class="en">Implementing the API</span></a></li>
+ <li><a href="/google/play/billing/billing_reference.html">
+ <span class="en">Reference</span></a></li>
+ </ul>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/v2/api.html">
+ <span class="en">Version 2 API</span></a></div>
+ <ul>
+ <li><a href="/google/play/billing/v2/billing_integrate.html">
+ <span class="en">Implementing the API</span></a></li>
+ <li><a href="/google/play/billing/v2/billing_subscriptions.html">
+ <span class="en">Subscriptions</span></a></li>
+ <li><a href="/google/play/billing/v2/billing_reference.html">
+ <span class="en">Reference</span></a></li>
+ </ul>
+ </li>
+ <li><a href="/google/play/billing/billing_subscriptions.html">
+ <span class="en">Subscriptions</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_best_practices.html">
+ <span class="en">Security and Design</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_testing.html">
+ <span class="en">Testing In-app Billing</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_admin.html">
+ <span class="en">Administering In-app Billing</span></a>
+ </li>
+ <li><a href="/google/play/billing/gp-purchase-status-api.html">
+ <span class="en">Purchase Status API</span></a>
+ </li>
+ <li><a href="/google/play/billing/versions.html">
+ <span class="en">Version Notes</span></a>
+ </li>
+ </ul>
+ </li>
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/gcm/index.html">
+ <span class="en">Google Cloud Messaging</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
+ <li><a href="/google/gcm/gs.html">
+ <span class="en">Getting Started</span></a>
+ </li>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
+ </li>
+ <li><a href="/google/gcm/notifications.html">
+ <span class="en">User Notifications</span></a>
+ </li>
+ <li><a href="/google/gcm/adv.html">
+ <span class="en">Advanced Topics</span></a>
+ </li>
+ <li><a href="/google/gcm/c2dm.html">
+ <span class="en">Migration</span></a>
+ </li>
+ <li id="gcm-tree-list" class="nav-section">
+ <div class="nav-section-header">
+ <a href="/reference/gcm-packages.html">
+ <span class="en">Reference</span>
+ </a>
+ <div>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/dist.html">
+ <span class="en">Google Play Distribution</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/filters.html">
+ <span class="en">Filters on Google Play</span></a>
+ </li>
+
+ <li><a href="/google/play/publishing/multiple-apks.html">
+ <span class="en">Multiple APK Support</span></a>
+ </li>
+ <li><a href="/google/play/expansion-files.html">
+ <span class="en">APK Expansion Files</span></a>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/licensing/index.html">
+ <span class="en">Application Licensing</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/licensing/overview.html">
+ <span class="en">Licensing Overview</span></a>
+ </li>
+ <li><a href="/google/play/licensing/setting-up.html">
+ <span class="en">Setting Up for Licensing</span></a>
+ </li>
+ <li><a href="/google/play/licensing/adding-licensing.html">
+ <span class="en">Adding Licensing to Your App</span></a>
+ </li>
+ <li><a href="/google/play/licensing/licensing-reference.html">
+ <span class="en">Licensing Reference</span></a>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/backup/index.html">
+ Android Backup Service</a>
+ </div>
+ <ul>
+ <li><a href="/google/backup/signup.html">
+ Register</a>
+ </li>
+ </ul>
+ </li>
+
+ </ul>
+
+</li>
+
+
+
+</ul>
+
+<script type="text/javascript">
+<!--
+ buildToggleLists();
+ changeNavLang(getLangPref());
+//-->
+</script>
+
+
+
+
+ </div>
+ <script type="text/javascript">
+ showGoogleRefTree();
+
+ </script>
+ </div> <!-- end side-nav -->
+ <script>
+ $(document).ready(function() {
+ scrollIntoView("devdoc-nav");
+ });
+ </script>
+
+
+
+
+
+
+<div class="col-12" id="doc-col">
+
+<div id="api-info-block">
+
+
+
+
+<div class="sum-details-links">
+
+</div><!-- end sum-details-links -->
+<div class="api-level">
+
+
+
+
+</div>
+</div><!-- end api-info-block -->
+
+
+<!-- ======== START OF CLASS DATA ======== -->
+
+<div id="jd-header">
+ public
+ static
+
+
+ interface
+<h1 itemprop="name">DriveFolder.OnCreateFolderCallback</h1>
+
+
+
+
+
+
+
+
+</div><!-- end header -->
+
+<div id="naMessage"></div>
+
+<div id="jd-content" class="api apilevel-">
+<table class="jd-inheritance-table">
+
+
+ <tr>
+
+ <td colspan="1" class="jd-inheritance-class-cell">com.google.android.gms.drive.DriveFolder.OnCreateFolderCallback</td>
+ </tr>
+
+
+</table>
+
+
+
+
+
+
+
+<div class="jd-descr">
+
+
+<h2>Class Overview</h2>
+<p class="caution">
+ <strong>Note:</strong> The Google Drive Android API is currently in <strong>developer
+ preview</strong>. Applications compiled using this version of the API will
+ continue to operate on devices using future versions of Google Play services;
+ however, changes to the API are expected in future releases.
+</p>
+<p itemprop="articleBody">A callback that provides the result for a create folder request.
+</p>
+
+
+
+
+
+</div><!-- jd-descr -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<div class="jd-descr">
+
+
+<h2>Summary</h2>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
+
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/DriveFolder.OnCreateFolderCallback.html#onCreateFolder(com.google.android.gms.drive.DriveFolder.DriveFolderResult)">onCreateFolder</a></span>(<a href="/reference/com/google/android/gms/drive/DriveFolder.DriveFolderResult.html">DriveFolder.DriveFolderResult</a> result)</nobr>
+
+ </td></tr>
+
+
+
+</table>
+
+
+
+
+
+
+
+</div><!-- jd-descr (summary) -->
+
+<!-- Details -->
+
+
+
+
+
+
+
+
+<!-- XML Attributes -->
+
+
+<!-- Enum Values -->
+
+
+<!-- Constants -->
+
+
+<!-- Fields -->
+
+
+<!-- Public ctors -->
+
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<!-- Protected ctors -->
+
+
+
+<!-- ========= METHOD DETAIL ======== -->
+<!-- Public methdos -->
+
+<h2>Public Methods</h2>
+
+
+
+<A NAME="onCreateFolder(com.google.android.gms.drive.DriveFolder.DriveFolderResult)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+ abstract
+
+ void
+ </span>
+ <span class="sympad">onCreateFolder</span>
+ <span class="normal">(<a href="/reference/com/google/android/gms/drive/DriveFolder.DriveFolderResult.html">DriveFolder.DriveFolderResult</a> result)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+ </div>
+</div>
+
+
+
+
+
+<!-- ========= METHOD DETAIL ======== -->
+
+
+
+<!-- ========= END OF CLASS DATA ========= -->
+<A NAME="navbar_top"></A>
+
+<div id="footer" class="wrap" >
+
+
+ <div id="copyright">
+
+ Except as noted, this content is licensed under <a
+ href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.
+ For details and restrictions, see the <a href="/license.html">
+ Content License</a>.
+ </div>
+ <div id="build_info">
+
+<script src="/timestamp.js" type="text/javascript"></script>
+<script>document.write(BUILD_TIMESTAMP)</script>
+
+ </div>
+
+
+ <div id="footerlinks">
+
+ <p>
+ <a href="/about/index.html">About Android</a> |
+ <a href="/legal.html">Legal</a> |
+ <a href="/support.html">Support</a>
+ </p>
+ </div>
+
+</div> <!-- end footer -->
+</div> <!-- jd-content -->
+
+</div><!-- end doc-content -->
+
+</div> <!-- end body-content -->
+
+
+
+
+
+
+</body>
+</html>
diff --git a/docs/html/reference/com/google/android/gms/drive/DriveFolder.html b/docs/html/reference/com/google/android/gms/drive/DriveFolder.html
new file mode 100644
index 0000000..76fadfc
--- /dev/null
+++ b/docs/html/reference/com/google/android/gms/drive/DriveFolder.html
@@ -0,0 +1,1404 @@
+<!DOCTYPE html>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<html>
+<head>
+
+
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<meta name="viewport" content="width=device-width" />
+
+<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
+<title>DriveFolder | Android Developers</title>
+
+<!-- STYLESHEETS -->
+<link rel="stylesheet"
+href="//fonts.googleapis.com/css?family=Roboto:regular,medium,thin,italic,mediumitalic,bold" title="roboto">
+<link href="/assets/css/default.css" rel="stylesheet" type="text/css">
+
+
+
+<!-- JAVASCRIPT -->
+<script src="//www.google.com/jsapi" type="text/javascript"></script>
+<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
+<script type="text/javascript">
+ var toRoot = "/";
+ var metaTags = [];
+ var devsite = false;
+</script>
+<script src="/assets/js/docs.js" type="text/javascript"></script>
+
+<script type="text/javascript">
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-5831155-1']);
+ _gaq.push(['_trackPageview']);
+
+ (function() {
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+ })();
+</script>
+</head>
+<body class="gc-documentation google
+ develop" itemscope itemtype="http://schema.org/Article">
+ <div id="doc-api-level" class="" style="display:none"></div>
+ <a name="top"></a>
+
+<a name="top"></a>
+
+ <!-- Header -->
+ <div id="header">
+ <div class="wrap" id="header-wrap">
+ <div class="col-3 logo">
+ <a href="/index.html">
+ <img src="/assets/images/dac_logo.png" width="123" height="25" alt="Android Developers" />
+ </a>
+ <div class="btn-quicknav" id="btn-quicknav">
+ <a href="#" class="arrow-inactive">Quicknav</a>
+ <a href="#" class="arrow-active">Quicknav</a>
+ </div>
+ </div>
+ <ul class="nav-x col-9">
+ <li class="design">
+ <a href="/design/index.html"
+ zh-tw-lang="設計"
+ zh-cn-lang="设计"
+ ru-lang="Проектирование"
+ ko-lang="디자인"
+ ja-lang="設計"
+ es-lang="Diseñar"
+ >Design</a></li>
+ <li class="develop"><a href="/develop/index.html"
+ zh-tw-lang="開發"
+ zh-cn-lang="开发"
+ ru-lang="Разработка"
+ ko-lang="개발"
+ ja-lang="開発"
+ es-lang="Desarrollar"
+ >Develop</a></li>
+ <li class="distribute last"><a href="/distribute/index.html"
+ zh-tw-lang="發佈"
+ zh-cn-lang="分发"
+ ru-lang="Распространение"
+ ko-lang="배포"
+ ja-lang="配布"
+ es-lang="Distribuir"
+ >Distribute</a></li>
+ </ul>
+
+ <!-- New Search -->
+ <div class="menu-container">
+ <div class="moremenu">
+ <div id="more-btn"></div>
+ </div>
+ <div class="morehover" id="moremenu">
+ <div class="top"></div>
+ <div class="mid">
+ <div class="header">Links</div>
+ <ul>
+ <li><a href="https://play.google.com/apps/publish/">Google Play Developer Console</a></li>
+ <li><a href="http://android-developers.blogspot.com/">Android Developers Blog</a></li>
+ <li><a href="/about/index.html">About Android</a></li>
+ </ul>
+ <div class="header">Android Sites</div>
+ <ul>
+ <li><a href="http://www.android.com">Android.com</a></li>
+ <li class="active"><a>Android Developers</a></li>
+ <li><a href="http://source.android.com">Android Open Source Project</a></li>
+ </ul>
+
+
+
+ <div class="header">Language</div>
+ <div id="language" class="locales">
+ <select name="language" onChange="changeLangPref(this.value, true)">
+ <option value="en">English</option>
+ <option value="es">Español</option>
+ <option value="ja">日本語</option>
+ <option value="ko">한국어</option>
+ <option value="ru">Русский</option>
+ <option value="zh-cn">中文 (中国)</option>
+ <option value="zh-tw">中文 (台灣)</option>
+ </select>
+ </div>
+ <script type="text/javascript">
+ <!--
+ loadLangPref();
+ //-->
+ </script>
+
+
+
+
+ <br class="clearfix" />
+ </div>
+ <div class="bottom"></div>
+ </div>
+ <div class="search" id="search-container">
+ <div class="search-inner">
+ <div id="search-btn"></div>
+ <div class="left"></div>
+ <form onsubmit="return submit_search()">
+ <input id="search_autocomplete" type="text" value="" autocomplete="off" name="q"
+onfocus="search_focus_changed(this, true)" onblur="search_focus_changed(this, false)"
+onkeydown="return search_changed(event, true, '/')"
+onkeyup="return search_changed(event, false, '/')" />
+ </form>
+ <div class="right"></div>
+ <a class="close hide">close</a>
+ <div class="left"></div>
+ <div class="right"></div>
+ </div>
+ </div>
+
+ <div class="search_filtered_wrapper reference">
+ <div class="suggest-card reference no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ </div>
+
+ <div class="search_filtered_wrapper docs">
+ <div class="suggest-card dummy no-display"> </div>
+ <div class="suggest-card develop no-display">
+ <ul class="search_filtered">
+ </ul>
+ <div class="child-card guides no-display">
+ </div>
+ <div class="child-card training no-display">
+ </div>
+ <div class="child-card samples no-display">
+ </div>
+ </div>
+ <div class="suggest-card design no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ <div class="suggest-card distribute no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ </div>
+
+ </div>
+ <!-- /New Search>
+
+
+ <!-- Expanded quicknav -->
+ <div id="quicknav" class="col-9">
+ <ul>
+ <li class="design">
+ <ul>
+ <li><a href="/design/index.html">Get Started</a></li>
+ <li><a href="/design/style/index.html">Style</a></li>
+ <li><a href="/design/patterns/index.html">Patterns</a></li>
+ <li><a href="/design/building-blocks/index.html">Building Blocks</a></li>
+ <li><a href="/design/downloads/index.html">Downloads</a></li>
+ <li><a href="/design/videos/index.html">Videos</a></li>
+ </ul>
+ </li>
+ <li class="develop">
+ <ul>
+ <li><a href="/training/index.html"
+ zh-tw-lang="訓練課程"
+ zh-cn-lang="培训"
+ ru-lang="Курсы"
+ ko-lang="교육"
+ ja-lang="トレーニング"
+ es-lang="Capacitación"
+ >Training</a></li>
+ <li><a href="/guide/index.html"
+ zh-tw-lang="API 指南"
+ zh-cn-lang="API 指南"
+ ru-lang="Руководства по API"
+ ko-lang="API 가이드"
+ ja-lang="API ガイド"
+ es-lang="Guías de la API"
+ >API Guides</a></li>
+ <li><a href="/reference/packages.html"
+ zh-tw-lang="參考資源"
+ zh-cn-lang="参考"
+ ru-lang="Справочник"
+ ko-lang="참조문서"
+ ja-lang="リファレンス"
+ es-lang="Referencia"
+ >Reference</a></li>
+ <li><a href="/tools/index.html"
+ zh-tw-lang="相關工具"
+ zh-cn-lang="工具"
+ ru-lang="Инструменты"
+ ko-lang="도구"
+ ja-lang="ツール"
+ es-lang="Herramientas"
+ >Tools</a>
+ <ul><li><a href="/sdk/index.html">Get the SDK</a></li></ul>
+ </li>
+ <li><a href="/google/index.html">Google Services</a>
+ </li>
+
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
+ </ul>
+ </li>
+ <li class="distribute last">
+ <ul>
+ <li><a href="/distribute/index.html">Google Play</a></li>
+ <li><a href="/distribute/googleplay/publish/index.html">Publishing</a></li>
+ <li><a href="/distribute/googleplay/promote/index.html">Promoting</a></li>
+ <li><a href="/distribute/googleplay/quality/index.html">App Quality</a></li>
+ <li><a href="/distribute/googleplay/spotlight/index.html">Spotlight</a></li>
+ <li><a href="/distribute/open.html">Open Distribution</a></li>
+ </ul>
+ </li>
+ </ul>
+ </div>
+ <!-- /Expanded quicknav -->
+ </div>
+ </div>
+ <!-- /Header -->
+
+
+ <div id="searchResults" class="wrap" style="display:none;">
+ <h2 id="searchTitle">Results</h2>
+ <div id="leftSearchControl" class="search-control">Loading...</div>
+ </div>
+
+
+
+ <!-- Secondary x-nav -->
+ <div id="nav-x">
+ <div class="wrap">
+ <ul class="nav-x col-9 develop" style="width:100%">
+ <li class="training"><a href="/training/index.html"
+ zh-tw-lang="訓練課程"
+ zh-cn-lang="培训"
+ ru-lang="Курсы"
+ ko-lang="교육"
+ ja-lang="トレーニング"
+ es-lang="Capacitación"
+ >Training</a></li>
+ <li class="guide"><a href="/guide/index.html"
+ zh-tw-lang="API 指南"
+ zh-cn-lang="API 指南"
+ ru-lang="Руководства по API"
+ ko-lang="API 가이드"
+ ja-lang="API ガイド"
+ es-lang="Guías de la API"
+ >API Guides</a></li>
+ <li class="reference"><a href="/reference/packages.html"
+ zh-tw-lang="參考資源"
+ zh-cn-lang="参考"
+ ru-lang="Справочник"
+ ko-lang="참조문서"
+ ja-lang="リファレンス"
+ es-lang="Referencia"
+ >Reference</a></li>
+ <li class="tools"><a href="/tools/index.html"
+ zh-tw-lang="相關工具"
+ zh-cn-lang="工具"
+ ru-lang="Инструменты"
+ ko-lang="도구"
+ ja-lang="ツール"
+ es-lang="Herramientas"
+ >Tools</a></li>
+ <li class="google"><a href="/google/index.html"
+ >Google Services</a>
+ </li>
+
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
+ </ul>
+ </div>
+
+ </div>
+ <!-- /Sendondary x-nav -->
+
+
+
+
+
+
+
+
+
+ <div class="wrap clearfix" id="body-content">
+ <div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
+ <div id="devdoc-nav" class="scroll-pane">
+<a class="totop" href="#top" data-g-event="left-nav-top">to top</a>
+
+
+
+<ul id="nav">
+
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/index.html">
+ <span class="en">Overview</span>
+ </a></div>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/games.html">
+ <span class="en">Games</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/location.html">
+ <span class="en">Location</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/plus.html">
+ <span class="en">Google+</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/maps.html">
+ <span class="en">Maps</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play-services/ads.html">
+ <span class="en">Ads</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play-services/id.html">
+ <span class="en">Advertising ID</span></a>
+ </li>
+ </ul>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/wallet.html">
+ <span class="en">Wallet</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/auth.html">
+ <span class="en">Authorization</span>
+ </a></div>
+ </li>
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play-services/index.html">
+ <span class="en">Google Play Services</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play-services/setup.html">
+ <span class="en">Setup</span></a>
+ </li>
+ <li id="gms-tree-list" class="nav-section">
+ <div class="nav-section-header">
+ <a href="/reference/gms-packages.html">
+ <span class="en">Reference</span>
+ </a>
+ <div>
+ </li>
+ </ul>
+ </li>
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/billing/index.html">
+ <span class="en">Google Play In-app Billing</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/billing/billing_overview.html">
+ <span class="en">Overview</span></a>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/api.html">
+ <span class="en">Version 3 API</span></a></div>
+ <ul>
+ <li><a href="/google/play/billing/billing_integrate.html">
+ <span class="en">Implementing the API</span></a></li>
+ <li><a href="/google/play/billing/billing_reference.html">
+ <span class="en">Reference</span></a></li>
+ </ul>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/v2/api.html">
+ <span class="en">Version 2 API</span></a></div>
+ <ul>
+ <li><a href="/google/play/billing/v2/billing_integrate.html">
+ <span class="en">Implementing the API</span></a></li>
+ <li><a href="/google/play/billing/v2/billing_subscriptions.html">
+ <span class="en">Subscriptions</span></a></li>
+ <li><a href="/google/play/billing/v2/billing_reference.html">
+ <span class="en">Reference</span></a></li>
+ </ul>
+ </li>
+ <li><a href="/google/play/billing/billing_subscriptions.html">
+ <span class="en">Subscriptions</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_best_practices.html">
+ <span class="en">Security and Design</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_testing.html">
+ <span class="en">Testing In-app Billing</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_admin.html">
+ <span class="en">Administering In-app Billing</span></a>
+ </li>
+ <li><a href="/google/play/billing/gp-purchase-status-api.html">
+ <span class="en">Purchase Status API</span></a>
+ </li>
+ <li><a href="/google/play/billing/versions.html">
+ <span class="en">Version Notes</span></a>
+ </li>
+ </ul>
+ </li>
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/gcm/index.html">
+ <span class="en">Google Cloud Messaging</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
+ <li><a href="/google/gcm/gs.html">
+ <span class="en">Getting Started</span></a>
+ </li>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
+ </li>
+ <li><a href="/google/gcm/notifications.html">
+ <span class="en">User Notifications</span></a>
+ </li>
+ <li><a href="/google/gcm/adv.html">
+ <span class="en">Advanced Topics</span></a>
+ </li>
+ <li><a href="/google/gcm/c2dm.html">
+ <span class="en">Migration</span></a>
+ </li>
+ <li id="gcm-tree-list" class="nav-section">
+ <div class="nav-section-header">
+ <a href="/reference/gcm-packages.html">
+ <span class="en">Reference</span>
+ </a>
+ <div>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/dist.html">
+ <span class="en">Google Play Distribution</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/filters.html">
+ <span class="en">Filters on Google Play</span></a>
+ </li>
+
+ <li><a href="/google/play/publishing/multiple-apks.html">
+ <span class="en">Multiple APK Support</span></a>
+ </li>
+ <li><a href="/google/play/expansion-files.html">
+ <span class="en">APK Expansion Files</span></a>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/licensing/index.html">
+ <span class="en">Application Licensing</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/licensing/overview.html">
+ <span class="en">Licensing Overview</span></a>
+ </li>
+ <li><a href="/google/play/licensing/setting-up.html">
+ <span class="en">Setting Up for Licensing</span></a>
+ </li>
+ <li><a href="/google/play/licensing/adding-licensing.html">
+ <span class="en">Adding Licensing to Your App</span></a>
+ </li>
+ <li><a href="/google/play/licensing/licensing-reference.html">
+ <span class="en">Licensing Reference</span></a>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/backup/index.html">
+ Android Backup Service</a>
+ </div>
+ <ul>
+ <li><a href="/google/backup/signup.html">
+ Register</a>
+ </li>
+ </ul>
+ </li>
+
+ </ul>
+
+</li>
+
+
+
+</ul>
+
+<script type="text/javascript">
+<!--
+ buildToggleLists();
+ changeNavLang(getLangPref());
+//-->
+</script>
+
+
+
+
+ </div>
+ <script type="text/javascript">
+ showGoogleRefTree();
+
+ </script>
+ </div> <!-- end side-nav -->
+ <script>
+ $(document).ready(function() {
+ scrollIntoView("devdoc-nav");
+ });
+ </script>
+
+
+
+
+
+
+<div class="col-12" id="doc-col">
+
+<div id="api-info-block">
+
+
+
+
+
+
+
+
+
+
+
+<div class="sum-details-links">
+
+Summary:
+
+ <a href="#nestedclasses">Nested Classes</a>
+
+
+
+
+
+
+ | <a href="#constants">Constants</a>
+
+
+
+
+
+
+
+
+ | <a href="#pubmethods">Methods</a>
+
+
+
+
+ | <a href="#inhmethods">Inherited Methods</a>
+
+| <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
+
+</div><!-- end sum-details-links -->
+<div class="api-level">
+
+
+
+
+</div>
+</div><!-- end api-info-block -->
+
+
+<!-- ======== START OF CLASS DATA ======== -->
+
+<div id="jd-header">
+ public
+
+
+
+ interface
+<h1 itemprop="name">DriveFolder</h1>
+
+
+
+
+
+ implements
+
+ <a href="/reference/com/google/android/gms/drive/DriveResource.html">DriveResource</a>
+
+
+
+
+
+</div><!-- end header -->
+
+<div id="naMessage"></div>
+
+<div id="jd-content" class="api apilevel-">
+<table class="jd-inheritance-table">
+
+
+ <tr>
+
+ <td colspan="1" class="jd-inheritance-class-cell">com.google.android.gms.drive.DriveFolder</td>
+ </tr>
+
+
+</table>
+
+
+
+
+
+
+
+<div class="jd-descr">
+
+
+<h2>Class Overview</h2>
+<p class="caution">
+ <strong>Note:</strong> The Google Drive Android API is currently in <strong>developer
+ preview</strong>. Applications compiled using this version of the API will
+ continue to operate on devices using future versions of Google Play services;
+ however, changes to the API are expected in future releases.
+</p>
+<p itemprop="articleBody">A folder in Drive. This class provides access to list or query the contents of the folder, or
+ create new resources within it.
+ <p>To retrieve a DriveFolder from a known drive id, use <code><a href="/">ERROR(/DriveApi#getFolder(DriveId))</a></code>.
+</p>
+
+
+
+
+
+</div><!-- jd-descr -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<div class="jd-descr">
+
+
+<h2>Summary</h2>
+
+
+
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<table id="nestedclasses" class="jd-sumtable"><tr><th colspan="12">Nested Classes</th></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+ interface</nobr></td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/drive/DriveFolder.DriveFileResult.html">DriveFolder.DriveFileResult</a></td>
+ <td class="jd-descrcol" width="100%">A result that contains a DriveFile. </td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+ interface</nobr></td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/drive/DriveFolder.DriveFolderResult.html">DriveFolder.DriveFolderResult</a></td>
+ <td class="jd-descrcol" width="100%">A result that contains a DriveFolder. </td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+ interface</nobr></td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/drive/DriveFolder.OnChildrenRetrievedCallback.html">DriveFolder.OnChildrenRetrievedCallback</a></td>
+ <td class="jd-descrcol" width="100%">A callback that provides the result for a get children request. </td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+ interface</nobr></td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/drive/DriveFolder.OnCreateFileCallback.html">DriveFolder.OnCreateFileCallback</a></td>
+ <td class="jd-descrcol" width="100%">A callback that provides the result for a create file request. </td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+ interface</nobr></td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/drive/DriveFolder.OnCreateFolderCallback.html">DriveFolder.OnCreateFolderCallback</a></td>
+ <td class="jd-descrcol" width="100%">A callback that provides the result for a create folder request. </td>
+ </tr>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<!-- =========== ENUM CONSTANT SUMMARY =========== -->
+<table id="constants" class="jd-sumtable"><tr><th colspan="12">Constants</th></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">String</td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/drive/DriveFolder.html#MIME_TYPE">MIME_TYPE</a></td>
+ <td class="jd-descrcol" width="100%">The MIME type associated with folder resources.</td>
+ </tr>
+
+
+
+</table>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
+
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ <a href="/reference/com/google/android/gms/common/api/PendingResult.html">PendingResult</a><<a href="/reference/com/google/android/gms/drive/DriveFolder.DriveFileResult.html">DriveFolder.DriveFileResult</a>, <a href="/reference/com/google/android/gms/drive/DriveFolder.OnCreateFileCallback.html">DriveFolder.OnCreateFileCallback</a>></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/DriveFolder.html#createFile(com.google.android.gms.common.api.GoogleApiClient, com.google.android.gms.drive.MetadataChangeSet, com.google.android.gms.drive.Contents)">createFile</a></span>(<a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html">GoogleApiClient</a> apiClient, <a href="/reference/com/google/android/gms/drive/MetadataChangeSet.html">MetadataChangeSet</a> changeSet, <a href="/reference/com/google/android/gms/drive/Contents.html">Contents</a> contents)</nobr>
+
+ <div class="jd-descrdiv">Creates a new file within this folder, with the provided initial metadata and contents.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ <a href="/reference/com/google/android/gms/common/api/PendingResult.html">PendingResult</a><<a href="/reference/com/google/android/gms/drive/DriveFolder.DriveFolderResult.html">DriveFolder.DriveFolderResult</a>, <a href="/reference/com/google/android/gms/drive/DriveFolder.OnCreateFolderCallback.html">DriveFolder.OnCreateFolderCallback</a>></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/DriveFolder.html#createFolder(com.google.android.gms.common.api.GoogleApiClient, com.google.android.gms.drive.MetadataChangeSet)">createFolder</a></span>(<a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html">GoogleApiClient</a> apiClient, <a href="/reference/com/google/android/gms/drive/MetadataChangeSet.html">MetadataChangeSet</a> changeSet)</nobr>
+
+ <div class="jd-descrdiv">Creates a new folder within this folder, with the provided initial metadata.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ <a href="/reference/com/google/android/gms/common/api/PendingResult.html">PendingResult</a><<a href="/reference/com/google/android/gms/drive/DriveApi.MetadataBufferResult.html">DriveApi.MetadataBufferResult</a>, <a href="/reference/com/google/android/gms/drive/DriveFolder.OnChildrenRetrievedCallback.html">DriveFolder.OnChildrenRetrievedCallback</a>></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/DriveFolder.html#listChildren(com.google.android.gms.common.api.GoogleApiClient)">listChildren</a></span>(<a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html">GoogleApiClient</a> apiClient)</nobr>
+
+ <div class="jd-descrdiv">Retrieves a collection of metadata for the direct children of this folder.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ <a href="/reference/com/google/android/gms/common/api/PendingResult.html">PendingResult</a><<a href="/reference/com/google/android/gms/drive/DriveApi.MetadataBufferResult.html">DriveApi.MetadataBufferResult</a>, <a href="/reference/com/google/android/gms/drive/DriveFolder.OnChildrenRetrievedCallback.html">DriveFolder.OnChildrenRetrievedCallback</a>></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/DriveFolder.html#queryChildren(com.google.android.gms.common.api.GoogleApiClient, com.google.android.gms.drive.query.Query)">queryChildren</a></span>(<a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html">GoogleApiClient</a> apiClient, <a href="/reference/com/google/android/gms/drive/query/Query.html">Query</a> query)</nobr>
+
+ <div class="jd-descrdiv">Retrieves a collection of metadata for the all authorized direct children of this folder.</div>
+
+ </td></tr>
+
+
+
+</table>
+
+
+
+
+
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+<table id="inhmethods" class="jd-sumtable"><tr><th>
+ <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
+ <div style="clear:left;">Inherited Methods</div></th></tr>
+
+
+<tr class="api apilevel-" >
+<td colspan="12">
+ <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.android.gms.drive.DriveResource" class="jd-expando-trigger closed"
+ ><img id="inherited-methods-com.google.android.gms.drive.DriveResource-trigger"
+ src="/assets/images/triangle-closed.png"
+ class="jd-expando-trigger-img" /></a>
+From interface
+
+ <a href="/reference/com/google/android/gms/drive/DriveResource.html">com.google.android.gms.drive.DriveResource</a>
+
+<div id="inherited-methods-com.google.android.gms.drive.DriveResource">
+ <div id="inherited-methods-com.google.android.gms.drive.DriveResource-list"
+ class="jd-inheritedlinks">
+ </div>
+ <div id="inherited-methods-com.google.android.gms.drive.DriveResource-summary" style="display: none;">
+ <table class="jd-sumtable-expando">
+
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ <a href="/reference/com/google/android/gms/drive/DriveId.html">DriveId</a></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/DriveResource.html#getDriveId()">getDriveId</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Returns the DriveId that uniquely identifies this resource.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ <a href="/reference/com/google/android/gms/common/api/PendingResult.html">PendingResult</a><<a href="/reference/com/google/android/gms/drive/DriveResource.MetadataResult.html">DriveResource.MetadataResult</a>, <a href="/reference/com/google/android/gms/drive/DriveResource.OnMetadataRetrievedCallback.html">DriveResource.OnMetadataRetrievedCallback</a>></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/DriveResource.html#getMetadata(com.google.android.gms.common.api.GoogleApiClient)">getMetadata</a></span>(<a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html">GoogleApiClient</a> apiClient)</nobr>
+
+ <div class="jd-descrdiv">Retrieves the Metadata that is associated with this resource.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ <a href="/reference/com/google/android/gms/common/api/PendingResult.html">PendingResult</a><<a href="/reference/com/google/android/gms/drive/DriveResource.MetadataResult.html">DriveResource.MetadataResult</a>, <a href="/reference/com/google/android/gms/drive/DriveResource.OnMetadataUpdatedCallback.html">DriveResource.OnMetadataUpdatedCallback</a>></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/DriveResource.html#updateMetadata(com.google.android.gms.common.api.GoogleApiClient, com.google.android.gms.drive.MetadataChangeSet)">updateMetadata</a></span>(<a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html">GoogleApiClient</a> apiClient, <a href="/reference/com/google/android/gms/drive/MetadataChangeSet.html">MetadataChangeSet</a> changeSet)</nobr>
+
+ <div class="jd-descrdiv">Updates the Metadata that is associated with this resource with the changes described
+ in the <code><a href="/reference/com/google/android/gms/drive/MetadataChangeSet.html">MetadataChangeSet</a></code>.</div>
+
+ </td></tr>
+
+
+</table>
+ </div>
+</div>
+</td></tr>
+
+
+</table>
+
+
+</div><!-- jd-descr (summary) -->
+
+<!-- Details -->
+
+
+
+
+
+
+
+
+<!-- XML Attributes -->
+
+
+<!-- Enum Values -->
+
+
+<!-- Constants -->
+
+
+<!-- ========= ENUM CONSTANTS DETAIL ======== -->
+<h2>Constants</h2>
+
+
+
+
+<A NAME="MIME_TYPE"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+ static
+ final
+ String
+ </span>
+ MIME_TYPE
+ </h4>
+ <div class="api-level">
+
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>The MIME type associated with folder resources.
+</p></div>
+
+
+ <div class="jd-tagdata">
+ <span class="jd-tagtitle">Constant Value: </span>
+ <span>
+
+ "application/vnd.google-apps.folder"
+
+ </span>
+ </div>
+
+ </div>
+</div>
+
+
+
+
+<!-- Fields -->
+
+
+<!-- Public ctors -->
+
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<!-- Protected ctors -->
+
+
+
+<!-- ========= METHOD DETAIL ======== -->
+<!-- Public methdos -->
+
+<h2>Public Methods</h2>
+
+
+
+<A NAME="createFile(com.google.android.gms.common.api.GoogleApiClient, com.google.android.gms.drive.MetadataChangeSet, com.google.android.gms.drive.Contents)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+ abstract
+
+ <a href="/reference/com/google/android/gms/common/api/PendingResult.html">PendingResult</a><<a href="/reference/com/google/android/gms/drive/DriveFolder.DriveFileResult.html">DriveFolder.DriveFileResult</a>, <a href="/reference/com/google/android/gms/drive/DriveFolder.OnCreateFileCallback.html">DriveFolder.OnCreateFileCallback</a>>
+ </span>
+ <span class="sympad">createFile</span>
+ <span class="normal">(<a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html">GoogleApiClient</a> apiClient, <a href="/reference/com/google/android/gms/drive/MetadataChangeSet.html">MetadataChangeSet</a> changeSet, <a href="/reference/com/google/android/gms/drive/Contents.html">Contents</a> contents)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Creates a new file within this folder, with the provided initial metadata and contents.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>apiClient</td>
+ <td>The <code><a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html">GoogleApiClient</a></code> to service the call. The client must be
+ connected before invoking this method.</td>
+ </tr>
+ <tr>
+ <th>changeSet</td>
+ <td>A set of metadata fields that should be initially set. This should
+ minimally include a title and mime type.</td>
+ </tr>
+ <tr>
+ <th>contents</td>
+ <td>The initial contents.</td>
+ </tr>
+ </table>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>A PendingResult which can be used to retrieve the newly created DriveFile.
+</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="createFolder(com.google.android.gms.common.api.GoogleApiClient, com.google.android.gms.drive.MetadataChangeSet)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+ abstract
+
+ <a href="/reference/com/google/android/gms/common/api/PendingResult.html">PendingResult</a><<a href="/reference/com/google/android/gms/drive/DriveFolder.DriveFolderResult.html">DriveFolder.DriveFolderResult</a>, <a href="/reference/com/google/android/gms/drive/DriveFolder.OnCreateFolderCallback.html">DriveFolder.OnCreateFolderCallback</a>>
+ </span>
+ <span class="sympad">createFolder</span>
+ <span class="normal">(<a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html">GoogleApiClient</a> apiClient, <a href="/reference/com/google/android/gms/drive/MetadataChangeSet.html">MetadataChangeSet</a> changeSet)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Creates a new folder within this folder, with the provided initial metadata.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>apiClient</td>
+ <td>The <code><a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html">GoogleApiClient</a></code> to service the call. The client must be
+ connected before invoking this method.</td>
+ </tr>
+ <tr>
+ <th>changeSet</td>
+ <td>A set of metadata fields that should be initially set. This should
+ minimally include a title. The mime type will be set to the folder mime type.</td>
+ </tr>
+ </table>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>A PendingResult which can be used to retrieve the newly created DriveFile.
+</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="listChildren(com.google.android.gms.common.api.GoogleApiClient)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+ abstract
+
+ <a href="/reference/com/google/android/gms/common/api/PendingResult.html">PendingResult</a><<a href="/reference/com/google/android/gms/drive/DriveApi.MetadataBufferResult.html">DriveApi.MetadataBufferResult</a>, <a href="/reference/com/google/android/gms/drive/DriveFolder.OnChildrenRetrievedCallback.html">DriveFolder.OnChildrenRetrievedCallback</a>>
+ </span>
+ <span class="sympad">listChildren</span>
+ <span class="normal">(<a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html">GoogleApiClient</a> apiClient)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Retrieves a collection of metadata for the direct children of this folder. The result will
+ include metadata for both files and folders.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>apiClient</td>
+ <td>The <code><a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html">GoogleApiClient</a></code> to service the call.</td>
+ </tr>
+ </table>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>a PendingResult which can be used to retrieve the children list.
+</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="queryChildren(com.google.android.gms.common.api.GoogleApiClient, com.google.android.gms.drive.query.Query)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+ abstract
+
+ <a href="/reference/com/google/android/gms/common/api/PendingResult.html">PendingResult</a><<a href="/reference/com/google/android/gms/drive/DriveApi.MetadataBufferResult.html">DriveApi.MetadataBufferResult</a>, <a href="/reference/com/google/android/gms/drive/DriveFolder.OnChildrenRetrievedCallback.html">DriveFolder.OnChildrenRetrievedCallback</a>>
+ </span>
+ <span class="sympad">queryChildren</span>
+ <span class="normal">(<a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html">GoogleApiClient</a> apiClient, <a href="/reference/com/google/android/gms/drive/query/Query.html">Query</a> query)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Retrieves a collection of metadata for the all authorized direct children of this folder.
+ Unless restricted by the query, the result will include metadata for both files and folders.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>apiClient</td>
+ <td>The <code><a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html">GoogleApiClient</a></code> to service the call.</td>
+ </tr>
+ <tr>
+ <th>query</td>
+ <td>A query that will restrict the results of the retrieved children.</td>
+ </tr>
+ </table>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>a PendingResult which can be used to retrieve the children list.
+</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+
+
+
+<!-- ========= METHOD DETAIL ======== -->
+
+
+
+<!-- ========= END OF CLASS DATA ========= -->
+<A NAME="navbar_top"></A>
+
+<div id="footer" class="wrap" >
+
+
+ <div id="copyright">
+
+ Except as noted, this content is licensed under <a
+ href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.
+ For details and restrictions, see the <a href="/license.html">
+ Content License</a>.
+ </div>
+ <div id="build_info">
+
+<script src="/timestamp.js" type="text/javascript"></script>
+<script>document.write(BUILD_TIMESTAMP)</script>
+
+ </div>
+
+
+ <div id="footerlinks">
+
+ <p>
+ <a href="/about/index.html">About Android</a> |
+ <a href="/legal.html">Legal</a> |
+ <a href="/support.html">Support</a>
+ </p>
+ </div>
+
+</div> <!-- end footer -->
+</div> <!-- jd-content -->
+
+</div><!-- end doc-content -->
+
+</div> <!-- end body-content -->
+
+
+
+
+
+
+</body>
+</html>
diff --git a/docs/html/reference/com/google/android/gms/auth/RecoveryDecision.html b/docs/html/reference/com/google/android/gms/drive/DriveId.html
similarity index 76%
rename from docs/html/reference/com/google/android/gms/auth/RecoveryDecision.html
rename to docs/html/reference/com/google/android/gms/drive/DriveId.html
index 59a1346..3f62f22 100644
--- a/docs/html/reference/com/google/android/gms/auth/RecoveryDecision.html
+++ b/docs/html/reference/com/google/android/gms/drive/DriveId.html
@@ -83,7 +83,7 @@
<meta name="viewport" content="width=device-width" />
<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
-<title>RecoveryDecision | Android Developers</title>
+<title>DriveId | Android Developers</title>
<!-- STYLESHEETS -->
<link rel="stylesheet"
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -128,7 +129,7 @@
<img src="/assets/images/dac_logo.png" width="123" height="25" alt="Android Developers" />
</a>
<div class="btn-quicknav" id="btn-quicknav">
- <a href="#" class="arrow-inactive">Quicknav</a>
+ <a href="#" class="arrow-inactive">Quicknav</a>
<a href="#" class="arrow-active">Quicknav</a>
</div>
</div>
@@ -140,7 +141,7 @@
ru-lang="Проектирование"
ko-lang="디자인"
ja-lang="設計"
- es-lang="Diseñar"
+ es-lang="Diseñar"
>Design</a></li>
<li class="develop"><a href="/develop/index.html"
zh-tw-lang="開發"
@@ -148,7 +149,7 @@
ru-lang="Разработка"
ko-lang="개발"
ja-lang="開発"
- es-lang="Desarrollar"
+ es-lang="Desarrollar"
>Develop</a></li>
<li class="distribute last"><a href="/distribute/index.html"
zh-tw-lang="發佈"
@@ -156,10 +157,10 @@
ru-lang="Распространение"
ko-lang="배포"
ja-lang="配布"
- es-lang="Distribuir"
+ es-lang="Distribuir"
>Distribute</a></li>
</ul>
-
+
<!-- New Search -->
<div class="menu-container">
<div class="moremenu">
@@ -180,9 +181,9 @@
<li class="active"><a>Android Developers</a></li>
<li><a href="http://source.android.com">Android Open Source Project</a></li>
</ul>
-
-
-
+
+
+
<div class="header">Language</div>
<div id="language" class="locales">
<select name="language" onChange="changeLangPref(this.value, true)">
@@ -200,8 +201,8 @@
loadLangPref();
//-->
</script>
-
-
+
+
<br class="clearfix" />
@@ -215,7 +216,7 @@
<form onsubmit="return submit_search()">
<input id="search_autocomplete" type="text" value="" autocomplete="off" name="q"
onfocus="search_focus_changed(this, true)" onblur="search_focus_changed(this, false)"
-onkeydown="return search_changed(event, true, '/')"
+onkeydown="return search_changed(event, true, '/')"
onkeyup="return search_changed(event, false, '/')" />
</form>
<div class="right"></div>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -254,8 +257,8 @@
</div>
<!-- /New Search>
-
-
+
+
<!-- Expanded quicknav -->
<div id="quicknav" class="col-9">
<ul>
@@ -277,15 +280,15 @@
ru-lang="Курсы"
ko-lang="교육"
ja-lang="トレーニング"
- es-lang="Capacitación"
+ es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
ko-lang="API 가이드"
ja-lang="API ガイド"
- es-lang="Guías de la API"
+ es-lang="Guías de la API"
>API Guides</a></li>
<li><a href="/reference/packages.html"
zh-tw-lang="參考資源"
@@ -293,7 +296,7 @@
ru-lang="Справочник"
ko-lang="참조문서"
ja-lang="リファレンス"
- es-lang="Referencia"
+ es-lang="Referencia"
>Reference</a></li>
<li><a href="/tools/index.html"
zh-tw-lang="相關工具"
@@ -301,13 +304,16 @@
ru-lang="Инструменты"
ko-lang="도구"
ja-lang="ツール"
- es-lang="Herramientas"
+ es-lang="Herramientas"
>Tools</a>
<ul><li><a href="/sdk/index.html">Get the SDK</a></li></ul>
</li>
<li><a href="/google/index.html">Google Services</a>
</li>
-
+
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -326,15 +332,15 @@
</div>
</div>
<!-- /Header -->
-
-
+
+
<div id="searchResults" class="wrap" style="display:none;">
<h2 id="searchTitle">Results</h2>
<div id="leftSearchControl" class="search-control">Loading...</div>
</div>
-
-
-
+
+
+
<!-- Secondary x-nav -->
<div id="nav-x">
<div class="wrap">
@@ -345,15 +351,15 @@
ru-lang="Курсы"
ko-lang="교육"
ja-lang="トレーニング"
- es-lang="Capacitación"
+ es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
ko-lang="API 가이드"
ja-lang="API ガイド"
- es-lang="Guías de la API"
+ es-lang="Guías de la API"
>API Guides</a></li>
<li class="reference"><a href="/reference/packages.html"
zh-tw-lang="參考資源"
@@ -361,7 +367,7 @@
ru-lang="Справочник"
ko-lang="참조문서"
ja-lang="リファレンス"
- es-lang="Referencia"
+ es-lang="Referencia"
>Reference</a></li>
<li class="tools"><a href="/tools/index.html"
zh-tw-lang="相關工具"
@@ -374,21 +380,25 @@
<li class="google"><a href="/google/index.html"
>Google Services</a>
</li>
-
+
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
-
+
</div>
<!-- /Sendondary x-nav -->
-
-
-
+
+
+
<div class="wrap clearfix" id="body-content">
<div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
<div id="devdoc-nav" class="scroll-pane">
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
@@ -618,12 +631,12 @@
</script>
-
+
</div>
<script type="text/javascript">
showGoogleRefTree();
-
+
</script>
</div> <!-- end side-nav -->
<script>
@@ -633,7 +646,7 @@
</script>
-
+
@@ -643,21 +656,21 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
<div class="sum-details-links">
@@ -670,21 +683,18 @@
<a href="#inhconstants">Inherited Constants</a>
-
+
| <a href="#lfields">Fields</a>
-
- | <a href="#pubctors">Ctors</a>
-
| <a href="#pubmethods">Methods</a>
-
+
@@ -694,9 +704,9 @@
</div><!-- end sum-details-links -->
<div class="api-level">
-
-
-
+
+
+
</div>
</div><!-- end api-info-block -->
@@ -706,28 +716,28 @@
<div id="jd-header">
public
-
-
-
+
+
+
class
-<h1 itemprop="name">RecoveryDecision</h1>
+<h1 itemprop="name">DriveId</h1>
-
+
extends Object<br/>
-
-
-
-
-
- implements
-
- Parcelable
-
-
-
+
+
+
+
+
+ implements
+
+ Parcelable
+
+
+
</div><!-- end header -->
@@ -739,18 +749,18 @@
<tr>
-
+
<td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
</tr>
-
+
<tr>
-
+
<td class="jd-inheritance-space"> ↳</td>
-
- <td colspan="1" class="jd-inheritance-class-cell">com.google.android.gms.auth.RecoveryDecision</td>
+
+ <td colspan="1" class="jd-inheritance-class-cell">com.google.android.gms.drive.DriveId</td>
</tr>
-
+
</table>
@@ -763,6 +773,16 @@
<div class="jd-descr">
+<h2>Class Overview</h2>
+<p class="caution">
+ <strong>Note:</strong> The Google Drive Android API is currently in <strong>developer
+ preview</strong>. Applications compiled using this version of the API will
+ continue to operate on devices using future versions of Google Play services;
+ however, changes to the API are expected in future releases.
+</p>
+<p itemprop="articleBody">A canonical identifier for a Drive resource.
+</p>
+
@@ -826,23 +846,23 @@
</div>
<div id="inherited-constants-android.os.Parcelable-summary" style="display: none;">
<table class="jd-sumtable-expando">
-
-
+
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol">CONTENTS_FILE_DESCRIPTOR</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
-
-
+
+
<tr class=" api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol">PARCELABLE_WRITE_RETURN_VALUE</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
-
-
+
+
</table>
</div>
</div>
@@ -858,102 +878,16 @@
<table id="lfields" class="jd-sumtable"><tr><th colspan="12">Fields</th></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
public
static
final
- <a href="/reference/com/google/android/gms/auth/RecoveryDecisionCreator.html">RecoveryDecisionCreator</a></nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#CREATOR">CREATOR</a></td>
+ Creator<<a href="/reference/com/google/android/gms/drive/DriveId.html">DriveId</a>></nobr></td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/drive/DriveId.html#CREATOR">CREATOR</a></td>
<td class="jd-descrcol" width="100%"></td>
</tr>
-
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- boolean</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#isRecoveryInfoNeeded">isRecoveryInfoNeeded</a></td>
- <td class="jd-descrcol" width="100%">Is <code>true</code> if either the account has no recovery information or it
- was updated long time back (controlled by server, default 1 year).</td>
- </tr>
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- boolean</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#isRecoveryInterstitialAllowed">isRecoveryInterstitialAllowed</a></td>
- <td class="jd-descrcol" width="100%">Is <code>true</code> iff the user has permission to update the account.</td>
- </tr>
-
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- PendingIntent</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#recoveryIntent">recoveryIntent</a></td>
- <td class="jd-descrcol" width="100%">A PendingIntent to an activity that gathers recovery information for the given account.</td>
- </tr>
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- PendingIntent</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#recoveryIntentWithoutIntro">recoveryIntentWithoutIntro</a></td>
- <td class="jd-descrcol" width="100%">A PendingIntent to an activity that gathers recovery information for the given account.</td>
- </tr>
-
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- boolean</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#showRecoveryInterstitial">showRecoveryInterstitial</a></td>
- <td class="jd-descrcol" width="100%">Represents the decision and should be obeyed by the client.</td>
- </tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
-
-
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
-
-
-
-
-
- </nobr>
- </td>
- <td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#RecoveryDecision()">RecoveryDecision</a></span>()</nobr>
-
- </td></tr>
@@ -964,56 +898,167 @@
+
+
+
+
+
<!-- ========== METHOD SUMMARY =========== -->
<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
- int</nobr>
+
+
+
+ static
+
+ <a href="/reference/com/google/android/gms/drive/DriveId.html">DriveId</a></nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#describeContents()">describeContents</a></span>()</nobr>
-
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/DriveId.html#createFromResourceId(java.lang.String)">createFromResourceId</a></span>(String resourceId)</nobr>
+
+ <div class="jd-descrdiv">Creates a DriveId from the provided remote Drive resource id.</div>
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
- int</nobr>
+
+
+
+ static
+
+ <a href="/reference/com/google/android/gms/drive/DriveId.html">DriveId</a></nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#getVersionCode()">getVersionCode</a></span>()</nobr>
-
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/DriveId.html#decodeFromString(java.lang.String)">decodeFromString</a></span>(String s)</nobr>
+
+ <div class="jd-descrdiv">Decodes the result of <code><a href="/reference/com/google/android/gms/drive/DriveId.html#encodeToString()">encodeToString()</a></code> back into a <code><a href="/reference/com/google/android/gms/drive/DriveId.html">DriveId</a></code>.</div>
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/DriveId.html#describeContents()">describeContents</a></span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ String</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/DriveId.html#encodeToString()">encodeToString</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Returns a String representation of this <code><a href="/reference/com/google/android/gms/drive/DriveId.html">DriveId</a></code> that can be safely
+ persisted, and from which an equal <code><a href="/reference/com/google/android/gms/drive/DriveId.html">DriveId</a></code> can later be
+ reconstructed via <code><a href="/reference/com/google/android/gms/drive/DriveId.html#decodeFromString(java.lang.String)">decodeFromString(String)</a></code>.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/DriveId.html#equals(java.lang.Object)">equals</a></span>(Object obj)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ String</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/DriveId.html#getResourceId()">getResourceId</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Returns the remote Drive resource id associated with the resource.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/DriveId.html#hashCode()">hashCode</a></span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ String</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/DriveId.html#toString()">toString</a></span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#writeToParcel(android.os.Parcel, int)">writeToParcel</a></span>(Parcel out, int flags)</nobr>
-
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/DriveId.html#writeToParcel(android.os.Parcel, int)">writeToParcel</a></span>(Parcel out, int flags)</nobr>
+
</td></tr>
@@ -1048,182 +1093,182 @@
</div>
<div id="inherited-methods-java.lang.Object-summary" style="display: none;">
<table class="jd-sumtable-expando">
-
-
+
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
Object</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">clone</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
boolean</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">equals</span>(Object arg0)</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">finalize</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
Class<?></nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">getClass</span>()</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
int</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">hashCode</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">notify</span>()</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">notifyAll</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
String</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">toString</span>()</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">wait</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">wait</span>(long arg0)</nobr>
-
+
</td></tr>
@@ -1250,38 +1295,38 @@
</div>
<div id="inherited-methods-android.os.Parcelable-summary" style="display: none;">
<table class="jd-sumtable-expando">
-
-
+
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
abstract
-
-
-
-
+
+
+
+
int</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">describeContents</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
abstract
-
-
-
-
+
+
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">writeToParcel</span>(Parcel arg0, int arg1)</nobr>
-
+
</td></tr>
@@ -1325,183 +1370,27 @@
<A NAME="CREATOR"></A>
-<div class="jd-details api apilevel-">
+<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
- public
- static
- final
- <a href="/reference/com/google/android/gms/auth/RecoveryDecisionCreator.html">RecoveryDecisionCreator</a>
+ public
+ static
+ final
+ Creator<<a href="/reference/com/google/android/gms/drive/DriveId.html">DriveId</a>>
</span>
CREATOR
</h4>
<div class="api-level">
-
-
-
+
+
+
</div>
<div class="jd-details-descr">
-
+
<div class="jd-tagdata jd-tagdescr"><p></p></div>
-
- </div>
-</div>
-
-
-<A NAME="isRecoveryInfoNeeded"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- boolean
- </span>
- isRecoveryInfoNeeded
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>Is <code>true</code> if either the account has no recovery information or it
- was updated long time back (controlled by server, default 1 year).
-</p></div>
-
-
- </div>
-</div>
-
-
-
-<A NAME="isRecoveryInterstitialAllowed"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- boolean
- </span>
- isRecoveryInterstitialAllowed
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>Is <code>true</code> iff the user has permission to update the account.
- Dasher accounts can have recovery information edit disabled by the administrator.
- Eg: @google.com
-</p></div>
-
-
- </div>
-</div>
-
-
-
-<A NAME="recoveryIntent"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- PendingIntent
- </span>
- recoveryIntent
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>A PendingIntent to an activity that gathers recovery information for the given account.
- This intent will be null iff isRecoveryInterstitialAllowed is <code>false</code>.
-</p></div>
-
-
- </div>
-</div>
-
-
-
-<A NAME="recoveryIntentWithoutIntro"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- PendingIntent
- </span>
- recoveryIntentWithoutIntro
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>A PendingIntent to an activity that gathers recovery information for the given account.
- This intent will be null iff isRecoveryInterstitialAllowed is <code>false</code>.
- This intent directly skips to the input activity without showing the intro message.
-</p></div>
-
-
- </div>
-</div>
-
-
-
-<A NAME="showRecoveryInterstitial"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- boolean
- </span>
- showRecoveryInterstitial
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>Represents the decision and should be obeyed by the client. The remaining
- two flags are provided as additional information for one off decisions. This value
- is <code>true</code> iff isRecoveryInfoNeeded is <code>true</code>, isRecoveryInterstitialAllowed is
- <code>true</code> and a specified period (controlled by server, default 2 months) has passed
- since the user was shown a prompt for recovery information on any google property
- (Android, Web, etc.)
-</p></div>
-
-
</div>
</div>
@@ -1511,42 +1400,6 @@
<!-- Public ctors -->
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<h2>Public Constructors</h2>
-
-
-
-<A NAME="RecoveryDecision()"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
-
-
-
- </span>
- <span class="sympad">RecoveryDecision</span>
- <span class="normal">()</span>
- </h4>
- <div class="api-level">
- <div></div>
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
- </div>
-</div>
-
-
-
-
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<!-- Protected ctors -->
@@ -1560,16 +1413,86 @@
-<A NAME="describeContents()"></A>
+<A NAME="createFromResourceId(java.lang.String)"></A>
-<div class="jd-details api apilevel-">
+<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
- public
-
-
-
-
+ public
+ static
+
+
+
+ <a href="/reference/com/google/android/gms/drive/DriveId.html">DriveId</a>
+ </span>
+ <span class="sympad">createFromResourceId</span>
+ <span class="normal">(String resourceId)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Creates a DriveId from the provided remote Drive resource id.
+</p></div>
+
+ </div>
+</div>
+
+
+<A NAME="decodeFromString(java.lang.String)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+ static
+
+
+
+ <a href="/reference/com/google/android/gms/drive/DriveId.html">DriveId</a>
+ </span>
+ <span class="sympad">decodeFromString</span>
+ <span class="normal">(String s)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Decodes the result of <code><a href="/reference/com/google/android/gms/drive/DriveId.html#encodeToString()">encodeToString()</a></code> back into a <code><a href="/reference/com/google/android/gms/drive/DriveId.html">DriveId</a></code>.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Throws</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>IllegalArgumentException</td>
+ <td>if the argument is not a valid result of
+ <code><a href="/reference/com/google/android/gms/drive/DriveId.html#encodeToString()">encodeToString()</a></code>.
+</td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="describeContents()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
int
</span>
<span class="sympad">describeContents</span>
@@ -1577,41 +1500,162 @@
</h4>
<div class="api-level">
<div></div>
-
-
+
+
</div>
<div class="jd-details-descr">
-
+
<div class="jd-tagdata jd-tagdescr"><p></p></div>
</div>
</div>
-<A NAME="getVersionCode()"></A>
+<A NAME="encodeToString()"></A>
-<div class="jd-details api apilevel-">
+<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
- public
-
-
-
-
- int
+ public
+
+ final
+
+
+ String
</span>
- <span class="sympad">getVersionCode</span>
+ <span class="sympad">encodeToString</span>
<span class="normal">()</span>
</h4>
<div class="api-level">
<div></div>
-
-
+
+
</div>
<div class="jd-details-descr">
-
+
+ <div class="jd-tagdata jd-tagdescr"><p>Returns a String representation of this <code><a href="/reference/com/google/android/gms/drive/DriveId.html">DriveId</a></code> that can be safely
+ persisted, and from which an equal <code><a href="/reference/com/google/android/gms/drive/DriveId.html">DriveId</a></code> can later be
+ reconstructed via <code><a href="/reference/com/google/android/gms/drive/DriveId.html#decodeFromString(java.lang.String)">decodeFromString(String)</a></code>.
+</p></div>
+
+ </div>
+</div>
+
+
+<A NAME="equals(java.lang.Object)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ boolean
+ </span>
+ <span class="sympad">equals</span>
+ <span class="normal">(Object obj)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+ </div>
+</div>
+
+
+<A NAME="getResourceId()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ String
+ </span>
+ <span class="sympad">getResourceId</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Returns the remote Drive resource id associated with the resource. May be <code>null</code> for
+ local resources that have not yet been synchronized to the Drive service.
+</p></div>
+
+ </div>
+</div>
+
+
+<A NAME="hashCode()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ int
+ </span>
+ <span class="sympad">hashCode</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+ </div>
+</div>
+
+
+<A NAME="toString()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ String
+ </span>
+ <span class="sympad">toString</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
<div class="jd-tagdata jd-tagdescr"><p></p></div>
</div>
@@ -1620,14 +1664,14 @@
<A NAME="writeToParcel(android.os.Parcel, int)"></A>
-<div class="jd-details api apilevel-">
+<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
- public
-
-
-
-
+ public
+
+
+
+
void
</span>
<span class="sympad">writeToParcel</span>
@@ -1635,12 +1679,12 @@
</h4>
<div class="api-level">
<div></div>
-
-
+
+
</div>
<div class="jd-details-descr">
-
+
<div class="jd-tagdata jd-tagdescr"><p></p></div>
</div>
@@ -1658,17 +1702,17 @@
<A NAME="navbar_top"></A>
<div id="footer" class="wrap" >
-
+
<div id="copyright">
-
+
Except as noted, this content is licensed under <a
- href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.
+ href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.
For details and restrictions, see the <a href="/license.html">
Content License</a>.
</div>
<div id="build_info">
-
+
<script src="/timestamp.js" type="text/javascript"></script>
<script>document.write(BUILD_TIMESTAMP)</script>
@@ -1676,7 +1720,7 @@
<div id="footerlinks">
-
+
<p>
<a href="/about/index.html">About Android</a> |
<a href="/legal.html">Legal</a> |
@@ -1689,7 +1733,7 @@
</div><!-- end doc-content -->
-</div> <!-- end body-content -->
+</div> <!-- end body-content -->
diff --git a/docs/html/reference/com/google/android/gms/drive/DriveResource.MetadataResult.html b/docs/html/reference/com/google/android/gms/drive/DriveResource.MetadataResult.html
new file mode 100644
index 0000000..5f85a9fa
--- /dev/null
+++ b/docs/html/reference/com/google/android/gms/drive/DriveResource.MetadataResult.html
@@ -0,0 +1,1007 @@
+<!DOCTYPE html>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<html>
+<head>
+
+
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<meta name="viewport" content="width=device-width" />
+
+<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
+<title>DriveResource.MetadataResult | Android Developers</title>
+
+<!-- STYLESHEETS -->
+<link rel="stylesheet"
+href="//fonts.googleapis.com/css?family=Roboto:regular,medium,thin,italic,mediumitalic,bold" title="roboto">
+<link href="/assets/css/default.css" rel="stylesheet" type="text/css">
+
+
+
+<!-- JAVASCRIPT -->
+<script src="//www.google.com/jsapi" type="text/javascript"></script>
+<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
+<script type="text/javascript">
+ var toRoot = "/";
+ var metaTags = [];
+ var devsite = false;
+</script>
+<script src="/assets/js/docs.js" type="text/javascript"></script>
+
+<script type="text/javascript">
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-5831155-1']);
+ _gaq.push(['_trackPageview']);
+
+ (function() {
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+ })();
+</script>
+</head>
+<body class="gc-documentation google
+ develop" itemscope itemtype="http://schema.org/Article">
+ <div id="doc-api-level" class="" style="display:none"></div>
+ <a name="top"></a>
+
+<a name="top"></a>
+
+ <!-- Header -->
+ <div id="header">
+ <div class="wrap" id="header-wrap">
+ <div class="col-3 logo">
+ <a href="/index.html">
+ <img src="/assets/images/dac_logo.png" width="123" height="25" alt="Android Developers" />
+ </a>
+ <div class="btn-quicknav" id="btn-quicknav">
+ <a href="#" class="arrow-inactive">Quicknav</a>
+ <a href="#" class="arrow-active">Quicknav</a>
+ </div>
+ </div>
+ <ul class="nav-x col-9">
+ <li class="design">
+ <a href="/design/index.html"
+ zh-tw-lang="設計"
+ zh-cn-lang="设计"
+ ru-lang="Проектирование"
+ ko-lang="디자인"
+ ja-lang="設計"
+ es-lang="Diseñar"
+ >Design</a></li>
+ <li class="develop"><a href="/develop/index.html"
+ zh-tw-lang="開發"
+ zh-cn-lang="开发"
+ ru-lang="Разработка"
+ ko-lang="개발"
+ ja-lang="開発"
+ es-lang="Desarrollar"
+ >Develop</a></li>
+ <li class="distribute last"><a href="/distribute/index.html"
+ zh-tw-lang="發佈"
+ zh-cn-lang="分发"
+ ru-lang="Распространение"
+ ko-lang="배포"
+ ja-lang="配布"
+ es-lang="Distribuir"
+ >Distribute</a></li>
+ </ul>
+
+ <!-- New Search -->
+ <div class="menu-container">
+ <div class="moremenu">
+ <div id="more-btn"></div>
+ </div>
+ <div class="morehover" id="moremenu">
+ <div class="top"></div>
+ <div class="mid">
+ <div class="header">Links</div>
+ <ul>
+ <li><a href="https://play.google.com/apps/publish/">Google Play Developer Console</a></li>
+ <li><a href="http://android-developers.blogspot.com/">Android Developers Blog</a></li>
+ <li><a href="/about/index.html">About Android</a></li>
+ </ul>
+ <div class="header">Android Sites</div>
+ <ul>
+ <li><a href="http://www.android.com">Android.com</a></li>
+ <li class="active"><a>Android Developers</a></li>
+ <li><a href="http://source.android.com">Android Open Source Project</a></li>
+ </ul>
+
+
+
+ <div class="header">Language</div>
+ <div id="language" class="locales">
+ <select name="language" onChange="changeLangPref(this.value, true)">
+ <option value="en">English</option>
+ <option value="es">Español</option>
+ <option value="ja">日本語</option>
+ <option value="ko">한국어</option>
+ <option value="ru">Русский</option>
+ <option value="zh-cn">中文 (中国)</option>
+ <option value="zh-tw">中文 (台灣)</option>
+ </select>
+ </div>
+ <script type="text/javascript">
+ <!--
+ loadLangPref();
+ //-->
+ </script>
+
+
+
+
+ <br class="clearfix" />
+ </div>
+ <div class="bottom"></div>
+ </div>
+ <div class="search" id="search-container">
+ <div class="search-inner">
+ <div id="search-btn"></div>
+ <div class="left"></div>
+ <form onsubmit="return submit_search()">
+ <input id="search_autocomplete" type="text" value="" autocomplete="off" name="q"
+onfocus="search_focus_changed(this, true)" onblur="search_focus_changed(this, false)"
+onkeydown="return search_changed(event, true, '/')"
+onkeyup="return search_changed(event, false, '/')" />
+ </form>
+ <div class="right"></div>
+ <a class="close hide">close</a>
+ <div class="left"></div>
+ <div class="right"></div>
+ </div>
+ </div>
+
+ <div class="search_filtered_wrapper reference">
+ <div class="suggest-card reference no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ </div>
+
+ <div class="search_filtered_wrapper docs">
+ <div class="suggest-card dummy no-display"> </div>
+ <div class="suggest-card develop no-display">
+ <ul class="search_filtered">
+ </ul>
+ <div class="child-card guides no-display">
+ </div>
+ <div class="child-card training no-display">
+ </div>
+ <div class="child-card samples no-display">
+ </div>
+ </div>
+ <div class="suggest-card design no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ <div class="suggest-card distribute no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ </div>
+
+ </div>
+ <!-- /New Search>
+
+
+ <!-- Expanded quicknav -->
+ <div id="quicknav" class="col-9">
+ <ul>
+ <li class="design">
+ <ul>
+ <li><a href="/design/index.html">Get Started</a></li>
+ <li><a href="/design/style/index.html">Style</a></li>
+ <li><a href="/design/patterns/index.html">Patterns</a></li>
+ <li><a href="/design/building-blocks/index.html">Building Blocks</a></li>
+ <li><a href="/design/downloads/index.html">Downloads</a></li>
+ <li><a href="/design/videos/index.html">Videos</a></li>
+ </ul>
+ </li>
+ <li class="develop">
+ <ul>
+ <li><a href="/training/index.html"
+ zh-tw-lang="訓練課程"
+ zh-cn-lang="培训"
+ ru-lang="Курсы"
+ ko-lang="교육"
+ ja-lang="トレーニング"
+ es-lang="Capacitación"
+ >Training</a></li>
+ <li><a href="/guide/index.html"
+ zh-tw-lang="API 指南"
+ zh-cn-lang="API 指南"
+ ru-lang="Руководства по API"
+ ko-lang="API 가이드"
+ ja-lang="API ガイド"
+ es-lang="Guías de la API"
+ >API Guides</a></li>
+ <li><a href="/reference/packages.html"
+ zh-tw-lang="參考資源"
+ zh-cn-lang="参考"
+ ru-lang="Справочник"
+ ko-lang="참조문서"
+ ja-lang="リファレンス"
+ es-lang="Referencia"
+ >Reference</a></li>
+ <li><a href="/tools/index.html"
+ zh-tw-lang="相關工具"
+ zh-cn-lang="工具"
+ ru-lang="Инструменты"
+ ko-lang="도구"
+ ja-lang="ツール"
+ es-lang="Herramientas"
+ >Tools</a>
+ <ul><li><a href="/sdk/index.html">Get the SDK</a></li></ul>
+ </li>
+ <li><a href="/google/index.html">Google Services</a>
+ </li>
+
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
+ </ul>
+ </li>
+ <li class="distribute last">
+ <ul>
+ <li><a href="/distribute/index.html">Google Play</a></li>
+ <li><a href="/distribute/googleplay/publish/index.html">Publishing</a></li>
+ <li><a href="/distribute/googleplay/promote/index.html">Promoting</a></li>
+ <li><a href="/distribute/googleplay/quality/index.html">App Quality</a></li>
+ <li><a href="/distribute/googleplay/spotlight/index.html">Spotlight</a></li>
+ <li><a href="/distribute/open.html">Open Distribution</a></li>
+ </ul>
+ </li>
+ </ul>
+ </div>
+ <!-- /Expanded quicknav -->
+ </div>
+ </div>
+ <!-- /Header -->
+
+
+ <div id="searchResults" class="wrap" style="display:none;">
+ <h2 id="searchTitle">Results</h2>
+ <div id="leftSearchControl" class="search-control">Loading...</div>
+ </div>
+
+
+
+ <!-- Secondary x-nav -->
+ <div id="nav-x">
+ <div class="wrap">
+ <ul class="nav-x col-9 develop" style="width:100%">
+ <li class="training"><a href="/training/index.html"
+ zh-tw-lang="訓練課程"
+ zh-cn-lang="培训"
+ ru-lang="Курсы"
+ ko-lang="교육"
+ ja-lang="トレーニング"
+ es-lang="Capacitación"
+ >Training</a></li>
+ <li class="guide"><a href="/guide/index.html"
+ zh-tw-lang="API 指南"
+ zh-cn-lang="API 指南"
+ ru-lang="Руководства по API"
+ ko-lang="API 가이드"
+ ja-lang="API ガイド"
+ es-lang="Guías de la API"
+ >API Guides</a></li>
+ <li class="reference"><a href="/reference/packages.html"
+ zh-tw-lang="參考資源"
+ zh-cn-lang="参考"
+ ru-lang="Справочник"
+ ko-lang="참조문서"
+ ja-lang="リファレンス"
+ es-lang="Referencia"
+ >Reference</a></li>
+ <li class="tools"><a href="/tools/index.html"
+ zh-tw-lang="相關工具"
+ zh-cn-lang="工具"
+ ru-lang="Инструменты"
+ ko-lang="도구"
+ ja-lang="ツール"
+ es-lang="Herramientas"
+ >Tools</a></li>
+ <li class="google"><a href="/google/index.html"
+ >Google Services</a>
+ </li>
+
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
+ </ul>
+ </div>
+
+ </div>
+ <!-- /Sendondary x-nav -->
+
+
+
+
+
+
+
+
+
+ <div class="wrap clearfix" id="body-content">
+ <div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
+ <div id="devdoc-nav" class="scroll-pane">
+<a class="totop" href="#top" data-g-event="left-nav-top">to top</a>
+
+
+
+<ul id="nav">
+
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/index.html">
+ <span class="en">Overview</span>
+ </a></div>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/games.html">
+ <span class="en">Games</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/location.html">
+ <span class="en">Location</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/plus.html">
+ <span class="en">Google+</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/maps.html">
+ <span class="en">Maps</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play-services/ads.html">
+ <span class="en">Ads</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play-services/id.html">
+ <span class="en">Advertising ID</span></a>
+ </li>
+ </ul>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/wallet.html">
+ <span class="en">Wallet</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/auth.html">
+ <span class="en">Authorization</span>
+ </a></div>
+ </li>
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play-services/index.html">
+ <span class="en">Google Play Services</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play-services/setup.html">
+ <span class="en">Setup</span></a>
+ </li>
+ <li id="gms-tree-list" class="nav-section">
+ <div class="nav-section-header">
+ <a href="/reference/gms-packages.html">
+ <span class="en">Reference</span>
+ </a>
+ <div>
+ </li>
+ </ul>
+ </li>
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/billing/index.html">
+ <span class="en">Google Play In-app Billing</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/billing/billing_overview.html">
+ <span class="en">Overview</span></a>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/api.html">
+ <span class="en">Version 3 API</span></a></div>
+ <ul>
+ <li><a href="/google/play/billing/billing_integrate.html">
+ <span class="en">Implementing the API</span></a></li>
+ <li><a href="/google/play/billing/billing_reference.html">
+ <span class="en">Reference</span></a></li>
+ </ul>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/v2/api.html">
+ <span class="en">Version 2 API</span></a></div>
+ <ul>
+ <li><a href="/google/play/billing/v2/billing_integrate.html">
+ <span class="en">Implementing the API</span></a></li>
+ <li><a href="/google/play/billing/v2/billing_subscriptions.html">
+ <span class="en">Subscriptions</span></a></li>
+ <li><a href="/google/play/billing/v2/billing_reference.html">
+ <span class="en">Reference</span></a></li>
+ </ul>
+ </li>
+ <li><a href="/google/play/billing/billing_subscriptions.html">
+ <span class="en">Subscriptions</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_best_practices.html">
+ <span class="en">Security and Design</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_testing.html">
+ <span class="en">Testing In-app Billing</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_admin.html">
+ <span class="en">Administering In-app Billing</span></a>
+ </li>
+ <li><a href="/google/play/billing/gp-purchase-status-api.html">
+ <span class="en">Purchase Status API</span></a>
+ </li>
+ <li><a href="/google/play/billing/versions.html">
+ <span class="en">Version Notes</span></a>
+ </li>
+ </ul>
+ </li>
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/gcm/index.html">
+ <span class="en">Google Cloud Messaging</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
+ <li><a href="/google/gcm/gs.html">
+ <span class="en">Getting Started</span></a>
+ </li>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
+ </li>
+ <li><a href="/google/gcm/notifications.html">
+ <span class="en">User Notifications</span></a>
+ </li>
+ <li><a href="/google/gcm/adv.html">
+ <span class="en">Advanced Topics</span></a>
+ </li>
+ <li><a href="/google/gcm/c2dm.html">
+ <span class="en">Migration</span></a>
+ </li>
+ <li id="gcm-tree-list" class="nav-section">
+ <div class="nav-section-header">
+ <a href="/reference/gcm-packages.html">
+ <span class="en">Reference</span>
+ </a>
+ <div>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/dist.html">
+ <span class="en">Google Play Distribution</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/filters.html">
+ <span class="en">Filters on Google Play</span></a>
+ </li>
+
+ <li><a href="/google/play/publishing/multiple-apks.html">
+ <span class="en">Multiple APK Support</span></a>
+ </li>
+ <li><a href="/google/play/expansion-files.html">
+ <span class="en">APK Expansion Files</span></a>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/licensing/index.html">
+ <span class="en">Application Licensing</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/licensing/overview.html">
+ <span class="en">Licensing Overview</span></a>
+ </li>
+ <li><a href="/google/play/licensing/setting-up.html">
+ <span class="en">Setting Up for Licensing</span></a>
+ </li>
+ <li><a href="/google/play/licensing/adding-licensing.html">
+ <span class="en">Adding Licensing to Your App</span></a>
+ </li>
+ <li><a href="/google/play/licensing/licensing-reference.html">
+ <span class="en">Licensing Reference</span></a>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/backup/index.html">
+ Android Backup Service</a>
+ </div>
+ <ul>
+ <li><a href="/google/backup/signup.html">
+ Register</a>
+ </li>
+ </ul>
+ </li>
+
+ </ul>
+
+</li>
+
+
+
+</ul>
+
+<script type="text/javascript">
+<!--
+ buildToggleLists();
+ changeNavLang(getLangPref());
+//-->
+</script>
+
+
+
+
+ </div>
+ <script type="text/javascript">
+ showGoogleRefTree();
+
+ </script>
+ </div> <!-- end side-nav -->
+ <script>
+ $(document).ready(function() {
+ scrollIntoView("devdoc-nav");
+ });
+ </script>
+
+
+
+
+
+
+<div class="col-12" id="doc-col">
+
+<div id="api-info-block">
+
+
+
+
+
+
+
+
+
+
+
+<div class="sum-details-links">
+
+Summary:
+
+
+
+
+
+
+
+
+
+
+
+ <a href="#pubmethods">Methods</a>
+
+
+
+
+ | <a href="#inhmethods">Inherited Methods</a>
+
+| <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
+
+</div><!-- end sum-details-links -->
+<div class="api-level">
+
+
+
+
+</div>
+</div><!-- end api-info-block -->
+
+
+<!-- ======== START OF CLASS DATA ======== -->
+
+<div id="jd-header">
+ public
+ static
+
+
+ interface
+<h1 itemprop="name">DriveResource.MetadataResult</h1>
+
+
+
+
+
+ implements
+
+ <a href="/reference/com/google/android/gms/common/api/Result.html">Result</a>
+
+
+
+
+
+</div><!-- end header -->
+
+<div id="naMessage"></div>
+
+<div id="jd-content" class="api apilevel-">
+<table class="jd-inheritance-table">
+
+
+ <tr>
+
+ <td colspan="1" class="jd-inheritance-class-cell">com.google.android.gms.drive.DriveResource.MetadataResult</td>
+ </tr>
+
+
+</table>
+
+
+
+
+
+
+
+<div class="jd-descr">
+
+
+<h2>Class Overview</h2>
+<p class="caution">
+ <strong>Note:</strong> The Google Drive Android API is currently in <strong>developer
+ preview</strong>. Applications compiled using this version of the API will
+ continue to operate on devices using future versions of Google Play services;
+ however, changes to the API are expected in future releases.
+</p>
+<p itemprop="articleBody">Result that is returned in response to metadata requests.
+</p>
+
+
+
+
+
+</div><!-- jd-descr -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<div class="jd-descr">
+
+
+<h2>Summary</h2>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
+
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ <a href="/reference/com/google/android/gms/drive/Metadata.html">Metadata</a></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/DriveResource.MetadataResult.html#getMetadata()">getMetadata</a></span>()</nobr>
+
+ </td></tr>
+
+
+
+</table>
+
+
+
+
+
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+<table id="inhmethods" class="jd-sumtable"><tr><th>
+ <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
+ <div style="clear:left;">Inherited Methods</div></th></tr>
+
+
+<tr class="api apilevel-" >
+<td colspan="12">
+ <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.android.gms.common.api.Result" class="jd-expando-trigger closed"
+ ><img id="inherited-methods-com.google.android.gms.common.api.Result-trigger"
+ src="/assets/images/triangle-closed.png"
+ class="jd-expando-trigger-img" /></a>
+From interface
+
+ <a href="/reference/com/google/android/gms/common/api/Result.html">com.google.android.gms.common.api.Result</a>
+
+<div id="inherited-methods-com.google.android.gms.common.api.Result">
+ <div id="inherited-methods-com.google.android.gms.common.api.Result-list"
+ class="jd-inheritedlinks">
+ </div>
+ <div id="inherited-methods-com.google.android.gms.common.api.Result-summary" style="display: none;">
+ <table class="jd-sumtable-expando">
+
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ <a href="/reference/com/google/android/gms/common/api/Status.html">Status</a></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/common/api/Result.html#getStatus()">getStatus</a></span>()</nobr>
+
+ </td></tr>
+
+
+</table>
+ </div>
+</div>
+</td></tr>
+
+
+</table>
+
+
+</div><!-- jd-descr (summary) -->
+
+<!-- Details -->
+
+
+
+
+
+
+
+
+<!-- XML Attributes -->
+
+
+<!-- Enum Values -->
+
+
+<!-- Constants -->
+
+
+<!-- Fields -->
+
+
+<!-- Public ctors -->
+
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<!-- Protected ctors -->
+
+
+
+<!-- ========= METHOD DETAIL ======== -->
+<!-- Public methdos -->
+
+<h2>Public Methods</h2>
+
+
+
+<A NAME="getMetadata()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+ abstract
+
+ <a href="/reference/com/google/android/gms/drive/Metadata.html">Metadata</a>
+ </span>
+ <span class="sympad">getMetadata</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+ </div>
+</div>
+
+
+
+
+
+<!-- ========= METHOD DETAIL ======== -->
+
+
+
+<!-- ========= END OF CLASS DATA ========= -->
+<A NAME="navbar_top"></A>
+
+<div id="footer" class="wrap" >
+
+
+ <div id="copyright">
+
+ Except as noted, this content is licensed under <a
+ href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.
+ For details and restrictions, see the <a href="/license.html">
+ Content License</a>.
+ </div>
+ <div id="build_info">
+
+<script src="/timestamp.js" type="text/javascript"></script>
+<script>document.write(BUILD_TIMESTAMP)</script>
+
+ </div>
+
+
+ <div id="footerlinks">
+
+ <p>
+ <a href="/about/index.html">About Android</a> |
+ <a href="/legal.html">Legal</a> |
+ <a href="/support.html">Support</a>
+ </p>
+ </div>
+
+</div> <!-- end footer -->
+</div> <!-- jd-content -->
+
+</div><!-- end doc-content -->
+
+</div> <!-- end body-content -->
+
+
+
+
+
+
+</body>
+</html>
diff --git a/docs/html/reference/com/google/android/gms/drive/DriveResource.OnMetadataRetrievedCallback.html b/docs/html/reference/com/google/android/gms/drive/DriveResource.OnMetadataRetrievedCallback.html
new file mode 100644
index 0000000..e8fbd27
--- /dev/null
+++ b/docs/html/reference/com/google/android/gms/drive/DriveResource.OnMetadataRetrievedCallback.html
@@ -0,0 +1,924 @@
+<!DOCTYPE html>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<html>
+<head>
+
+
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<meta name="viewport" content="width=device-width" />
+
+<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
+<title>DriveResource.OnMetadataRetrievedCallback | Android Developers</title>
+
+<!-- STYLESHEETS -->
+<link rel="stylesheet"
+href="//fonts.googleapis.com/css?family=Roboto:regular,medium,thin,italic,mediumitalic,bold" title="roboto">
+<link href="/assets/css/default.css" rel="stylesheet" type="text/css">
+
+
+
+<!-- JAVASCRIPT -->
+<script src="//www.google.com/jsapi" type="text/javascript"></script>
+<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
+<script type="text/javascript">
+ var toRoot = "/";
+ var metaTags = [];
+ var devsite = false;
+</script>
+<script src="/assets/js/docs.js" type="text/javascript"></script>
+
+<script type="text/javascript">
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-5831155-1']);
+ _gaq.push(['_trackPageview']);
+
+ (function() {
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+ })();
+</script>
+</head>
+<body class="gc-documentation google
+ develop" itemscope itemtype="http://schema.org/Article">
+ <div id="doc-api-level" class="" style="display:none"></div>
+ <a name="top"></a>
+
+<a name="top"></a>
+
+ <!-- Header -->
+ <div id="header">
+ <div class="wrap" id="header-wrap">
+ <div class="col-3 logo">
+ <a href="/index.html">
+ <img src="/assets/images/dac_logo.png" width="123" height="25" alt="Android Developers" />
+ </a>
+ <div class="btn-quicknav" id="btn-quicknav">
+ <a href="#" class="arrow-inactive">Quicknav</a>
+ <a href="#" class="arrow-active">Quicknav</a>
+ </div>
+ </div>
+ <ul class="nav-x col-9">
+ <li class="design">
+ <a href="/design/index.html"
+ zh-tw-lang="設計"
+ zh-cn-lang="设计"
+ ru-lang="Проектирование"
+ ko-lang="디자인"
+ ja-lang="設計"
+ es-lang="Diseñar"
+ >Design</a></li>
+ <li class="develop"><a href="/develop/index.html"
+ zh-tw-lang="開發"
+ zh-cn-lang="开发"
+ ru-lang="Разработка"
+ ko-lang="개발"
+ ja-lang="開発"
+ es-lang="Desarrollar"
+ >Develop</a></li>
+ <li class="distribute last"><a href="/distribute/index.html"
+ zh-tw-lang="發佈"
+ zh-cn-lang="分发"
+ ru-lang="Распространение"
+ ko-lang="배포"
+ ja-lang="配布"
+ es-lang="Distribuir"
+ >Distribute</a></li>
+ </ul>
+
+ <!-- New Search -->
+ <div class="menu-container">
+ <div class="moremenu">
+ <div id="more-btn"></div>
+ </div>
+ <div class="morehover" id="moremenu">
+ <div class="top"></div>
+ <div class="mid">
+ <div class="header">Links</div>
+ <ul>
+ <li><a href="https://play.google.com/apps/publish/">Google Play Developer Console</a></li>
+ <li><a href="http://android-developers.blogspot.com/">Android Developers Blog</a></li>
+ <li><a href="/about/index.html">About Android</a></li>
+ </ul>
+ <div class="header">Android Sites</div>
+ <ul>
+ <li><a href="http://www.android.com">Android.com</a></li>
+ <li class="active"><a>Android Developers</a></li>
+ <li><a href="http://source.android.com">Android Open Source Project</a></li>
+ </ul>
+
+
+
+ <div class="header">Language</div>
+ <div id="language" class="locales">
+ <select name="language" onChange="changeLangPref(this.value, true)">
+ <option value="en">English</option>
+ <option value="es">Español</option>
+ <option value="ja">日本語</option>
+ <option value="ko">한국어</option>
+ <option value="ru">Русский</option>
+ <option value="zh-cn">中文 (中国)</option>
+ <option value="zh-tw">中文 (台灣)</option>
+ </select>
+ </div>
+ <script type="text/javascript">
+ <!--
+ loadLangPref();
+ //-->
+ </script>
+
+
+
+
+ <br class="clearfix" />
+ </div>
+ <div class="bottom"></div>
+ </div>
+ <div class="search" id="search-container">
+ <div class="search-inner">
+ <div id="search-btn"></div>
+ <div class="left"></div>
+ <form onsubmit="return submit_search()">
+ <input id="search_autocomplete" type="text" value="" autocomplete="off" name="q"
+onfocus="search_focus_changed(this, true)" onblur="search_focus_changed(this, false)"
+onkeydown="return search_changed(event, true, '/')"
+onkeyup="return search_changed(event, false, '/')" />
+ </form>
+ <div class="right"></div>
+ <a class="close hide">close</a>
+ <div class="left"></div>
+ <div class="right"></div>
+ </div>
+ </div>
+
+ <div class="search_filtered_wrapper reference">
+ <div class="suggest-card reference no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ </div>
+
+ <div class="search_filtered_wrapper docs">
+ <div class="suggest-card dummy no-display"> </div>
+ <div class="suggest-card develop no-display">
+ <ul class="search_filtered">
+ </ul>
+ <div class="child-card guides no-display">
+ </div>
+ <div class="child-card training no-display">
+ </div>
+ <div class="child-card samples no-display">
+ </div>
+ </div>
+ <div class="suggest-card design no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ <div class="suggest-card distribute no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ </div>
+
+ </div>
+ <!-- /New Search>
+
+
+ <!-- Expanded quicknav -->
+ <div id="quicknav" class="col-9">
+ <ul>
+ <li class="design">
+ <ul>
+ <li><a href="/design/index.html">Get Started</a></li>
+ <li><a href="/design/style/index.html">Style</a></li>
+ <li><a href="/design/patterns/index.html">Patterns</a></li>
+ <li><a href="/design/building-blocks/index.html">Building Blocks</a></li>
+ <li><a href="/design/downloads/index.html">Downloads</a></li>
+ <li><a href="/design/videos/index.html">Videos</a></li>
+ </ul>
+ </li>
+ <li class="develop">
+ <ul>
+ <li><a href="/training/index.html"
+ zh-tw-lang="訓練課程"
+ zh-cn-lang="培训"
+ ru-lang="Курсы"
+ ko-lang="교육"
+ ja-lang="トレーニング"
+ es-lang="Capacitación"
+ >Training</a></li>
+ <li><a href="/guide/index.html"
+ zh-tw-lang="API 指南"
+ zh-cn-lang="API 指南"
+ ru-lang="Руководства по API"
+ ko-lang="API 가이드"
+ ja-lang="API ガイド"
+ es-lang="Guías de la API"
+ >API Guides</a></li>
+ <li><a href="/reference/packages.html"
+ zh-tw-lang="參考資源"
+ zh-cn-lang="参考"
+ ru-lang="Справочник"
+ ko-lang="참조문서"
+ ja-lang="リファレンス"
+ es-lang="Referencia"
+ >Reference</a></li>
+ <li><a href="/tools/index.html"
+ zh-tw-lang="相關工具"
+ zh-cn-lang="工具"
+ ru-lang="Инструменты"
+ ko-lang="도구"
+ ja-lang="ツール"
+ es-lang="Herramientas"
+ >Tools</a>
+ <ul><li><a href="/sdk/index.html">Get the SDK</a></li></ul>
+ </li>
+ <li><a href="/google/index.html">Google Services</a>
+ </li>
+
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
+ </ul>
+ </li>
+ <li class="distribute last">
+ <ul>
+ <li><a href="/distribute/index.html">Google Play</a></li>
+ <li><a href="/distribute/googleplay/publish/index.html">Publishing</a></li>
+ <li><a href="/distribute/googleplay/promote/index.html">Promoting</a></li>
+ <li><a href="/distribute/googleplay/quality/index.html">App Quality</a></li>
+ <li><a href="/distribute/googleplay/spotlight/index.html">Spotlight</a></li>
+ <li><a href="/distribute/open.html">Open Distribution</a></li>
+ </ul>
+ </li>
+ </ul>
+ </div>
+ <!-- /Expanded quicknav -->
+ </div>
+ </div>
+ <!-- /Header -->
+
+
+ <div id="searchResults" class="wrap" style="display:none;">
+ <h2 id="searchTitle">Results</h2>
+ <div id="leftSearchControl" class="search-control">Loading...</div>
+ </div>
+
+
+
+ <!-- Secondary x-nav -->
+ <div id="nav-x">
+ <div class="wrap">
+ <ul class="nav-x col-9 develop" style="width:100%">
+ <li class="training"><a href="/training/index.html"
+ zh-tw-lang="訓練課程"
+ zh-cn-lang="培训"
+ ru-lang="Курсы"
+ ko-lang="교육"
+ ja-lang="トレーニング"
+ es-lang="Capacitación"
+ >Training</a></li>
+ <li class="guide"><a href="/guide/index.html"
+ zh-tw-lang="API 指南"
+ zh-cn-lang="API 指南"
+ ru-lang="Руководства по API"
+ ko-lang="API 가이드"
+ ja-lang="API ガイド"
+ es-lang="Guías de la API"
+ >API Guides</a></li>
+ <li class="reference"><a href="/reference/packages.html"
+ zh-tw-lang="參考資源"
+ zh-cn-lang="参考"
+ ru-lang="Справочник"
+ ko-lang="참조문서"
+ ja-lang="リファレンス"
+ es-lang="Referencia"
+ >Reference</a></li>
+ <li class="tools"><a href="/tools/index.html"
+ zh-tw-lang="相關工具"
+ zh-cn-lang="工具"
+ ru-lang="Инструменты"
+ ko-lang="도구"
+ ja-lang="ツール"
+ es-lang="Herramientas"
+ >Tools</a></li>
+ <li class="google"><a href="/google/index.html"
+ >Google Services</a>
+ </li>
+
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
+ </ul>
+ </div>
+
+ </div>
+ <!-- /Sendondary x-nav -->
+
+
+
+
+
+
+
+
+
+ <div class="wrap clearfix" id="body-content">
+ <div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
+ <div id="devdoc-nav" class="scroll-pane">
+<a class="totop" href="#top" data-g-event="left-nav-top">to top</a>
+
+
+
+<ul id="nav">
+
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/index.html">
+ <span class="en">Overview</span>
+ </a></div>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/games.html">
+ <span class="en">Games</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/location.html">
+ <span class="en">Location</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/plus.html">
+ <span class="en">Google+</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/maps.html">
+ <span class="en">Maps</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play-services/ads.html">
+ <span class="en">Ads</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play-services/id.html">
+ <span class="en">Advertising ID</span></a>
+ </li>
+ </ul>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/wallet.html">
+ <span class="en">Wallet</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/auth.html">
+ <span class="en">Authorization</span>
+ </a></div>
+ </li>
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play-services/index.html">
+ <span class="en">Google Play Services</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play-services/setup.html">
+ <span class="en">Setup</span></a>
+ </li>
+ <li id="gms-tree-list" class="nav-section">
+ <div class="nav-section-header">
+ <a href="/reference/gms-packages.html">
+ <span class="en">Reference</span>
+ </a>
+ <div>
+ </li>
+ </ul>
+ </li>
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/billing/index.html">
+ <span class="en">Google Play In-app Billing</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/billing/billing_overview.html">
+ <span class="en">Overview</span></a>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/api.html">
+ <span class="en">Version 3 API</span></a></div>
+ <ul>
+ <li><a href="/google/play/billing/billing_integrate.html">
+ <span class="en">Implementing the API</span></a></li>
+ <li><a href="/google/play/billing/billing_reference.html">
+ <span class="en">Reference</span></a></li>
+ </ul>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/v2/api.html">
+ <span class="en">Version 2 API</span></a></div>
+ <ul>
+ <li><a href="/google/play/billing/v2/billing_integrate.html">
+ <span class="en">Implementing the API</span></a></li>
+ <li><a href="/google/play/billing/v2/billing_subscriptions.html">
+ <span class="en">Subscriptions</span></a></li>
+ <li><a href="/google/play/billing/v2/billing_reference.html">
+ <span class="en">Reference</span></a></li>
+ </ul>
+ </li>
+ <li><a href="/google/play/billing/billing_subscriptions.html">
+ <span class="en">Subscriptions</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_best_practices.html">
+ <span class="en">Security and Design</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_testing.html">
+ <span class="en">Testing In-app Billing</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_admin.html">
+ <span class="en">Administering In-app Billing</span></a>
+ </li>
+ <li><a href="/google/play/billing/gp-purchase-status-api.html">
+ <span class="en">Purchase Status API</span></a>
+ </li>
+ <li><a href="/google/play/billing/versions.html">
+ <span class="en">Version Notes</span></a>
+ </li>
+ </ul>
+ </li>
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/gcm/index.html">
+ <span class="en">Google Cloud Messaging</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
+ <li><a href="/google/gcm/gs.html">
+ <span class="en">Getting Started</span></a>
+ </li>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
+ </li>
+ <li><a href="/google/gcm/notifications.html">
+ <span class="en">User Notifications</span></a>
+ </li>
+ <li><a href="/google/gcm/adv.html">
+ <span class="en">Advanced Topics</span></a>
+ </li>
+ <li><a href="/google/gcm/c2dm.html">
+ <span class="en">Migration</span></a>
+ </li>
+ <li id="gcm-tree-list" class="nav-section">
+ <div class="nav-section-header">
+ <a href="/reference/gcm-packages.html">
+ <span class="en">Reference</span>
+ </a>
+ <div>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/dist.html">
+ <span class="en">Google Play Distribution</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/filters.html">
+ <span class="en">Filters on Google Play</span></a>
+ </li>
+
+ <li><a href="/google/play/publishing/multiple-apks.html">
+ <span class="en">Multiple APK Support</span></a>
+ </li>
+ <li><a href="/google/play/expansion-files.html">
+ <span class="en">APK Expansion Files</span></a>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/licensing/index.html">
+ <span class="en">Application Licensing</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/licensing/overview.html">
+ <span class="en">Licensing Overview</span></a>
+ </li>
+ <li><a href="/google/play/licensing/setting-up.html">
+ <span class="en">Setting Up for Licensing</span></a>
+ </li>
+ <li><a href="/google/play/licensing/adding-licensing.html">
+ <span class="en">Adding Licensing to Your App</span></a>
+ </li>
+ <li><a href="/google/play/licensing/licensing-reference.html">
+ <span class="en">Licensing Reference</span></a>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/backup/index.html">
+ Android Backup Service</a>
+ </div>
+ <ul>
+ <li><a href="/google/backup/signup.html">
+ Register</a>
+ </li>
+ </ul>
+ </li>
+
+ </ul>
+
+</li>
+
+
+
+</ul>
+
+<script type="text/javascript">
+<!--
+ buildToggleLists();
+ changeNavLang(getLangPref());
+//-->
+</script>
+
+
+
+
+ </div>
+ <script type="text/javascript">
+ showGoogleRefTree();
+
+ </script>
+ </div> <!-- end side-nav -->
+ <script>
+ $(document).ready(function() {
+ scrollIntoView("devdoc-nav");
+ });
+ </script>
+
+
+
+
+
+
+<div class="col-12" id="doc-col">
+
+<div id="api-info-block">
+
+
+
+
+<div class="sum-details-links">
+
+</div><!-- end sum-details-links -->
+<div class="api-level">
+
+
+
+
+</div>
+</div><!-- end api-info-block -->
+
+
+<!-- ======== START OF CLASS DATA ======== -->
+
+<div id="jd-header">
+ public
+ static
+
+
+ interface
+<h1 itemprop="name">DriveResource.OnMetadataRetrievedCallback</h1>
+
+
+
+
+
+
+
+
+</div><!-- end header -->
+
+<div id="naMessage"></div>
+
+<div id="jd-content" class="api apilevel-">
+<table class="jd-inheritance-table">
+
+
+ <tr>
+
+ <td colspan="1" class="jd-inheritance-class-cell">com.google.android.gms.drive.DriveResource.OnMetadataRetrievedCallback</td>
+ </tr>
+
+
+</table>
+
+
+
+
+
+
+
+<div class="jd-descr">
+
+
+<h2>Class Overview</h2>
+<p class="caution">
+ <strong>Note:</strong> The Google Drive Android API is currently in <strong>developer
+ preview</strong>. Applications compiled using this version of the API will
+ continue to operate on devices using future versions of Google Play services;
+ however, changes to the API are expected in future releases.
+</p>
+<p itemprop="articleBody">A callback that provides the result for a get request.
+</p>
+
+
+
+
+
+</div><!-- jd-descr -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<div class="jd-descr">
+
+
+<h2>Summary</h2>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
+
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/DriveResource.OnMetadataRetrievedCallback.html#onMetadataRetrieved(com.google.android.gms.drive.DriveResource.MetadataResult)">onMetadataRetrieved</a></span>(<a href="/reference/com/google/android/gms/drive/DriveResource.MetadataResult.html">DriveResource.MetadataResult</a> result)</nobr>
+
+ </td></tr>
+
+
+
+</table>
+
+
+
+
+
+
+
+</div><!-- jd-descr (summary) -->
+
+<!-- Details -->
+
+
+
+
+
+
+
+
+<!-- XML Attributes -->
+
+
+<!-- Enum Values -->
+
+
+<!-- Constants -->
+
+
+<!-- Fields -->
+
+
+<!-- Public ctors -->
+
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<!-- Protected ctors -->
+
+
+
+<!-- ========= METHOD DETAIL ======== -->
+<!-- Public methdos -->
+
+<h2>Public Methods</h2>
+
+
+
+<A NAME="onMetadataRetrieved(com.google.android.gms.drive.DriveResource.MetadataResult)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+ abstract
+
+ void
+ </span>
+ <span class="sympad">onMetadataRetrieved</span>
+ <span class="normal">(<a href="/reference/com/google/android/gms/drive/DriveResource.MetadataResult.html">DriveResource.MetadataResult</a> result)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+ </div>
+</div>
+
+
+
+
+
+<!-- ========= METHOD DETAIL ======== -->
+
+
+
+<!-- ========= END OF CLASS DATA ========= -->
+<A NAME="navbar_top"></A>
+
+<div id="footer" class="wrap" >
+
+
+ <div id="copyright">
+
+ Except as noted, this content is licensed under <a
+ href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.
+ For details and restrictions, see the <a href="/license.html">
+ Content License</a>.
+ </div>
+ <div id="build_info">
+
+<script src="/timestamp.js" type="text/javascript"></script>
+<script>document.write(BUILD_TIMESTAMP)</script>
+
+ </div>
+
+
+ <div id="footerlinks">
+
+ <p>
+ <a href="/about/index.html">About Android</a> |
+ <a href="/legal.html">Legal</a> |
+ <a href="/support.html">Support</a>
+ </p>
+ </div>
+
+</div> <!-- end footer -->
+</div> <!-- jd-content -->
+
+</div><!-- end doc-content -->
+
+</div> <!-- end body-content -->
+
+
+
+
+
+
+</body>
+</html>
diff --git a/docs/html/reference/com/google/android/gms/drive/DriveResource.OnMetadataUpdatedCallback.html b/docs/html/reference/com/google/android/gms/drive/DriveResource.OnMetadataUpdatedCallback.html
new file mode 100644
index 0000000..445dda1
--- /dev/null
+++ b/docs/html/reference/com/google/android/gms/drive/DriveResource.OnMetadataUpdatedCallback.html
@@ -0,0 +1,925 @@
+<!DOCTYPE html>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<html>
+<head>
+
+
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<meta name="viewport" content="width=device-width" />
+
+<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
+<title>DriveResource.OnMetadataUpdatedCallback | Android Developers</title>
+
+<!-- STYLESHEETS -->
+<link rel="stylesheet"
+href="//fonts.googleapis.com/css?family=Roboto:regular,medium,thin,italic,mediumitalic,bold" title="roboto">
+<link href="/assets/css/default.css" rel="stylesheet" type="text/css">
+
+
+
+<!-- JAVASCRIPT -->
+<script src="//www.google.com/jsapi" type="text/javascript"></script>
+<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
+<script type="text/javascript">
+ var toRoot = "/";
+ var metaTags = [];
+ var devsite = false;
+</script>
+<script src="/assets/js/docs.js" type="text/javascript"></script>
+
+<script type="text/javascript">
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-5831155-1']);
+ _gaq.push(['_trackPageview']);
+
+ (function() {
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+ })();
+</script>
+</head>
+<body class="gc-documentation google
+ develop" itemscope itemtype="http://schema.org/Article">
+ <div id="doc-api-level" class="" style="display:none"></div>
+ <a name="top"></a>
+
+<a name="top"></a>
+
+ <!-- Header -->
+ <div id="header">
+ <div class="wrap" id="header-wrap">
+ <div class="col-3 logo">
+ <a href="/index.html">
+ <img src="/assets/images/dac_logo.png" width="123" height="25" alt="Android Developers" />
+ </a>
+ <div class="btn-quicknav" id="btn-quicknav">
+ <a href="#" class="arrow-inactive">Quicknav</a>
+ <a href="#" class="arrow-active">Quicknav</a>
+ </div>
+ </div>
+ <ul class="nav-x col-9">
+ <li class="design">
+ <a href="/design/index.html"
+ zh-tw-lang="設計"
+ zh-cn-lang="设计"
+ ru-lang="Проектирование"
+ ko-lang="디자인"
+ ja-lang="設計"
+ es-lang="Diseñar"
+ >Design</a></li>
+ <li class="develop"><a href="/develop/index.html"
+ zh-tw-lang="開發"
+ zh-cn-lang="开发"
+ ru-lang="Разработка"
+ ko-lang="개발"
+ ja-lang="開発"
+ es-lang="Desarrollar"
+ >Develop</a></li>
+ <li class="distribute last"><a href="/distribute/index.html"
+ zh-tw-lang="發佈"
+ zh-cn-lang="分发"
+ ru-lang="Распространение"
+ ko-lang="배포"
+ ja-lang="配布"
+ es-lang="Distribuir"
+ >Distribute</a></li>
+ </ul>
+
+ <!-- New Search -->
+ <div class="menu-container">
+ <div class="moremenu">
+ <div id="more-btn"></div>
+ </div>
+ <div class="morehover" id="moremenu">
+ <div class="top"></div>
+ <div class="mid">
+ <div class="header">Links</div>
+ <ul>
+ <li><a href="https://play.google.com/apps/publish/">Google Play Developer Console</a></li>
+ <li><a href="http://android-developers.blogspot.com/">Android Developers Blog</a></li>
+ <li><a href="/about/index.html">About Android</a></li>
+ </ul>
+ <div class="header">Android Sites</div>
+ <ul>
+ <li><a href="http://www.android.com">Android.com</a></li>
+ <li class="active"><a>Android Developers</a></li>
+ <li><a href="http://source.android.com">Android Open Source Project</a></li>
+ </ul>
+
+
+
+ <div class="header">Language</div>
+ <div id="language" class="locales">
+ <select name="language" onChange="changeLangPref(this.value, true)">
+ <option value="en">English</option>
+ <option value="es">Español</option>
+ <option value="ja">日本語</option>
+ <option value="ko">한국어</option>
+ <option value="ru">Русский</option>
+ <option value="zh-cn">中文 (中国)</option>
+ <option value="zh-tw">中文 (台灣)</option>
+ </select>
+ </div>
+ <script type="text/javascript">
+ <!--
+ loadLangPref();
+ //-->
+ </script>
+
+
+
+
+ <br class="clearfix" />
+ </div>
+ <div class="bottom"></div>
+ </div>
+ <div class="search" id="search-container">
+ <div class="search-inner">
+ <div id="search-btn"></div>
+ <div class="left"></div>
+ <form onsubmit="return submit_search()">
+ <input id="search_autocomplete" type="text" value="" autocomplete="off" name="q"
+onfocus="search_focus_changed(this, true)" onblur="search_focus_changed(this, false)"
+onkeydown="return search_changed(event, true, '/')"
+onkeyup="return search_changed(event, false, '/')" />
+ </form>
+ <div class="right"></div>
+ <a class="close hide">close</a>
+ <div class="left"></div>
+ <div class="right"></div>
+ </div>
+ </div>
+
+ <div class="search_filtered_wrapper reference">
+ <div class="suggest-card reference no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ </div>
+
+ <div class="search_filtered_wrapper docs">
+ <div class="suggest-card dummy no-display"> </div>
+ <div class="suggest-card develop no-display">
+ <ul class="search_filtered">
+ </ul>
+ <div class="child-card guides no-display">
+ </div>
+ <div class="child-card training no-display">
+ </div>
+ <div class="child-card samples no-display">
+ </div>
+ </div>
+ <div class="suggest-card design no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ <div class="suggest-card distribute no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ </div>
+
+ </div>
+ <!-- /New Search>
+
+
+ <!-- Expanded quicknav -->
+ <div id="quicknav" class="col-9">
+ <ul>
+ <li class="design">
+ <ul>
+ <li><a href="/design/index.html">Get Started</a></li>
+ <li><a href="/design/style/index.html">Style</a></li>
+ <li><a href="/design/patterns/index.html">Patterns</a></li>
+ <li><a href="/design/building-blocks/index.html">Building Blocks</a></li>
+ <li><a href="/design/downloads/index.html">Downloads</a></li>
+ <li><a href="/design/videos/index.html">Videos</a></li>
+ </ul>
+ </li>
+ <li class="develop">
+ <ul>
+ <li><a href="/training/index.html"
+ zh-tw-lang="訓練課程"
+ zh-cn-lang="培训"
+ ru-lang="Курсы"
+ ko-lang="교육"
+ ja-lang="トレーニング"
+ es-lang="Capacitación"
+ >Training</a></li>
+ <li><a href="/guide/index.html"
+ zh-tw-lang="API 指南"
+ zh-cn-lang="API 指南"
+ ru-lang="Руководства по API"
+ ko-lang="API 가이드"
+ ja-lang="API ガイド"
+ es-lang="Guías de la API"
+ >API Guides</a></li>
+ <li><a href="/reference/packages.html"
+ zh-tw-lang="參考資源"
+ zh-cn-lang="参考"
+ ru-lang="Справочник"
+ ko-lang="참조문서"
+ ja-lang="リファレンス"
+ es-lang="Referencia"
+ >Reference</a></li>
+ <li><a href="/tools/index.html"
+ zh-tw-lang="相關工具"
+ zh-cn-lang="工具"
+ ru-lang="Инструменты"
+ ko-lang="도구"
+ ja-lang="ツール"
+ es-lang="Herramientas"
+ >Tools</a>
+ <ul><li><a href="/sdk/index.html">Get the SDK</a></li></ul>
+ </li>
+ <li><a href="/google/index.html">Google Services</a>
+ </li>
+
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
+ </ul>
+ </li>
+ <li class="distribute last">
+ <ul>
+ <li><a href="/distribute/index.html">Google Play</a></li>
+ <li><a href="/distribute/googleplay/publish/index.html">Publishing</a></li>
+ <li><a href="/distribute/googleplay/promote/index.html">Promoting</a></li>
+ <li><a href="/distribute/googleplay/quality/index.html">App Quality</a></li>
+ <li><a href="/distribute/googleplay/spotlight/index.html">Spotlight</a></li>
+ <li><a href="/distribute/open.html">Open Distribution</a></li>
+ </ul>
+ </li>
+ </ul>
+ </div>
+ <!-- /Expanded quicknav -->
+ </div>
+ </div>
+ <!-- /Header -->
+
+
+ <div id="searchResults" class="wrap" style="display:none;">
+ <h2 id="searchTitle">Results</h2>
+ <div id="leftSearchControl" class="search-control">Loading...</div>
+ </div>
+
+
+
+ <!-- Secondary x-nav -->
+ <div id="nav-x">
+ <div class="wrap">
+ <ul class="nav-x col-9 develop" style="width:100%">
+ <li class="training"><a href="/training/index.html"
+ zh-tw-lang="訓練課程"
+ zh-cn-lang="培训"
+ ru-lang="Курсы"
+ ko-lang="교육"
+ ja-lang="トレーニング"
+ es-lang="Capacitación"
+ >Training</a></li>
+ <li class="guide"><a href="/guide/index.html"
+ zh-tw-lang="API 指南"
+ zh-cn-lang="API 指南"
+ ru-lang="Руководства по API"
+ ko-lang="API 가이드"
+ ja-lang="API ガイド"
+ es-lang="Guías de la API"
+ >API Guides</a></li>
+ <li class="reference"><a href="/reference/packages.html"
+ zh-tw-lang="參考資源"
+ zh-cn-lang="参考"
+ ru-lang="Справочник"
+ ko-lang="참조문서"
+ ja-lang="リファレンス"
+ es-lang="Referencia"
+ >Reference</a></li>
+ <li class="tools"><a href="/tools/index.html"
+ zh-tw-lang="相關工具"
+ zh-cn-lang="工具"
+ ru-lang="Инструменты"
+ ko-lang="도구"
+ ja-lang="ツール"
+ es-lang="Herramientas"
+ >Tools</a></li>
+ <li class="google"><a href="/google/index.html"
+ >Google Services</a>
+ </li>
+
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
+ </ul>
+ </div>
+
+ </div>
+ <!-- /Sendondary x-nav -->
+
+
+
+
+
+
+
+
+
+ <div class="wrap clearfix" id="body-content">
+ <div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
+ <div id="devdoc-nav" class="scroll-pane">
+<a class="totop" href="#top" data-g-event="left-nav-top">to top</a>
+
+
+
+<ul id="nav">
+
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/index.html">
+ <span class="en">Overview</span>
+ </a></div>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/games.html">
+ <span class="en">Games</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/location.html">
+ <span class="en">Location</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/plus.html">
+ <span class="en">Google+</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/maps.html">
+ <span class="en">Maps</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play-services/ads.html">
+ <span class="en">Ads</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play-services/id.html">
+ <span class="en">Advertising ID</span></a>
+ </li>
+ </ul>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/wallet.html">
+ <span class="en">Wallet</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/auth.html">
+ <span class="en">Authorization</span>
+ </a></div>
+ </li>
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play-services/index.html">
+ <span class="en">Google Play Services</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play-services/setup.html">
+ <span class="en">Setup</span></a>
+ </li>
+ <li id="gms-tree-list" class="nav-section">
+ <div class="nav-section-header">
+ <a href="/reference/gms-packages.html">
+ <span class="en">Reference</span>
+ </a>
+ <div>
+ </li>
+ </ul>
+ </li>
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/billing/index.html">
+ <span class="en">Google Play In-app Billing</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/billing/billing_overview.html">
+ <span class="en">Overview</span></a>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/api.html">
+ <span class="en">Version 3 API</span></a></div>
+ <ul>
+ <li><a href="/google/play/billing/billing_integrate.html">
+ <span class="en">Implementing the API</span></a></li>
+ <li><a href="/google/play/billing/billing_reference.html">
+ <span class="en">Reference</span></a></li>
+ </ul>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/v2/api.html">
+ <span class="en">Version 2 API</span></a></div>
+ <ul>
+ <li><a href="/google/play/billing/v2/billing_integrate.html">
+ <span class="en">Implementing the API</span></a></li>
+ <li><a href="/google/play/billing/v2/billing_subscriptions.html">
+ <span class="en">Subscriptions</span></a></li>
+ <li><a href="/google/play/billing/v2/billing_reference.html">
+ <span class="en">Reference</span></a></li>
+ </ul>
+ </li>
+ <li><a href="/google/play/billing/billing_subscriptions.html">
+ <span class="en">Subscriptions</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_best_practices.html">
+ <span class="en">Security and Design</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_testing.html">
+ <span class="en">Testing In-app Billing</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_admin.html">
+ <span class="en">Administering In-app Billing</span></a>
+ </li>
+ <li><a href="/google/play/billing/gp-purchase-status-api.html">
+ <span class="en">Purchase Status API</span></a>
+ </li>
+ <li><a href="/google/play/billing/versions.html">
+ <span class="en">Version Notes</span></a>
+ </li>
+ </ul>
+ </li>
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/gcm/index.html">
+ <span class="en">Google Cloud Messaging</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
+ <li><a href="/google/gcm/gs.html">
+ <span class="en">Getting Started</span></a>
+ </li>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
+ </li>
+ <li><a href="/google/gcm/notifications.html">
+ <span class="en">User Notifications</span></a>
+ </li>
+ <li><a href="/google/gcm/adv.html">
+ <span class="en">Advanced Topics</span></a>
+ </li>
+ <li><a href="/google/gcm/c2dm.html">
+ <span class="en">Migration</span></a>
+ </li>
+ <li id="gcm-tree-list" class="nav-section">
+ <div class="nav-section-header">
+ <a href="/reference/gcm-packages.html">
+ <span class="en">Reference</span>
+ </a>
+ <div>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/dist.html">
+ <span class="en">Google Play Distribution</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/filters.html">
+ <span class="en">Filters on Google Play</span></a>
+ </li>
+
+ <li><a href="/google/play/publishing/multiple-apks.html">
+ <span class="en">Multiple APK Support</span></a>
+ </li>
+ <li><a href="/google/play/expansion-files.html">
+ <span class="en">APK Expansion Files</span></a>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/licensing/index.html">
+ <span class="en">Application Licensing</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/licensing/overview.html">
+ <span class="en">Licensing Overview</span></a>
+ </li>
+ <li><a href="/google/play/licensing/setting-up.html">
+ <span class="en">Setting Up for Licensing</span></a>
+ </li>
+ <li><a href="/google/play/licensing/adding-licensing.html">
+ <span class="en">Adding Licensing to Your App</span></a>
+ </li>
+ <li><a href="/google/play/licensing/licensing-reference.html">
+ <span class="en">Licensing Reference</span></a>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/backup/index.html">
+ Android Backup Service</a>
+ </div>
+ <ul>
+ <li><a href="/google/backup/signup.html">
+ Register</a>
+ </li>
+ </ul>
+ </li>
+
+ </ul>
+
+</li>
+
+
+
+</ul>
+
+<script type="text/javascript">
+<!--
+ buildToggleLists();
+ changeNavLang(getLangPref());
+//-->
+</script>
+
+
+
+
+ </div>
+ <script type="text/javascript">
+ showGoogleRefTree();
+
+ </script>
+ </div> <!-- end side-nav -->
+ <script>
+ $(document).ready(function() {
+ scrollIntoView("devdoc-nav");
+ });
+ </script>
+
+
+
+
+
+
+<div class="col-12" id="doc-col">
+
+<div id="api-info-block">
+
+
+
+
+<div class="sum-details-links">
+
+</div><!-- end sum-details-links -->
+<div class="api-level">
+
+
+
+
+</div>
+</div><!-- end api-info-block -->
+
+
+<!-- ======== START OF CLASS DATA ======== -->
+
+<div id="jd-header">
+ public
+ static
+
+
+ interface
+<h1 itemprop="name">DriveResource.OnMetadataUpdatedCallback</h1>
+
+
+
+
+
+
+
+
+</div><!-- end header -->
+
+<div id="naMessage"></div>
+
+<div id="jd-content" class="api apilevel-">
+<table class="jd-inheritance-table">
+
+
+ <tr>
+
+ <td colspan="1" class="jd-inheritance-class-cell">com.google.android.gms.drive.DriveResource.OnMetadataUpdatedCallback</td>
+ </tr>
+
+
+</table>
+
+
+
+
+
+
+
+<div class="jd-descr">
+
+
+<h2>Class Overview</h2>
+<p class="caution">
+ <strong>Note:</strong> The Google Drive Android API is currently in <strong>developer
+ preview</strong>. Applications compiled using this version of the API will
+ continue to operate on devices using future versions of Google Play services;
+ however, changes to the API are expected in future releases.
+</p>
+<p itemprop="articleBody">A callback that indicates that the metadata update has completed. Check the status in
+ the result to ensure it completed successfully.
+</p>
+
+
+
+
+
+</div><!-- jd-descr -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<div class="jd-descr">
+
+
+<h2>Summary</h2>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
+
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/DriveResource.OnMetadataUpdatedCallback.html#onMetadataUpdated(com.google.android.gms.drive.DriveResource.MetadataResult)">onMetadataUpdated</a></span>(<a href="/reference/com/google/android/gms/drive/DriveResource.MetadataResult.html">DriveResource.MetadataResult</a> result)</nobr>
+
+ </td></tr>
+
+
+
+</table>
+
+
+
+
+
+
+
+</div><!-- jd-descr (summary) -->
+
+<!-- Details -->
+
+
+
+
+
+
+
+
+<!-- XML Attributes -->
+
+
+<!-- Enum Values -->
+
+
+<!-- Constants -->
+
+
+<!-- Fields -->
+
+
+<!-- Public ctors -->
+
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<!-- Protected ctors -->
+
+
+
+<!-- ========= METHOD DETAIL ======== -->
+<!-- Public methdos -->
+
+<h2>Public Methods</h2>
+
+
+
+<A NAME="onMetadataUpdated(com.google.android.gms.drive.DriveResource.MetadataResult)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+ abstract
+
+ void
+ </span>
+ <span class="sympad">onMetadataUpdated</span>
+ <span class="normal">(<a href="/reference/com/google/android/gms/drive/DriveResource.MetadataResult.html">DriveResource.MetadataResult</a> result)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+ </div>
+</div>
+
+
+
+
+
+<!-- ========= METHOD DETAIL ======== -->
+
+
+
+<!-- ========= END OF CLASS DATA ========= -->
+<A NAME="navbar_top"></A>
+
+<div id="footer" class="wrap" >
+
+
+ <div id="copyright">
+
+ Except as noted, this content is licensed under <a
+ href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.
+ For details and restrictions, see the <a href="/license.html">
+ Content License</a>.
+ </div>
+ <div id="build_info">
+
+<script src="/timestamp.js" type="text/javascript"></script>
+<script>document.write(BUILD_TIMESTAMP)</script>
+
+ </div>
+
+
+ <div id="footerlinks">
+
+ <p>
+ <a href="/about/index.html">About Android</a> |
+ <a href="/legal.html">Legal</a> |
+ <a href="/support.html">Support</a>
+ </p>
+ </div>
+
+</div> <!-- end footer -->
+</div> <!-- jd-content -->
+
+</div><!-- end doc-content -->
+
+</div> <!-- end body-content -->
+
+
+
+
+
+
+</body>
+</html>
diff --git a/docs/html/reference/com/google/android/gms/drive/DriveResource.html b/docs/html/reference/com/google/android/gms/drive/DriveResource.html
new file mode 100644
index 0000000..86a1d97
--- /dev/null
+++ b/docs/html/reference/com/google/android/gms/drive/DriveResource.html
@@ -0,0 +1,1160 @@
+<!DOCTYPE html>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<html>
+<head>
+
+
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<meta name="viewport" content="width=device-width" />
+
+<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
+<title>DriveResource | Android Developers</title>
+
+<!-- STYLESHEETS -->
+<link rel="stylesheet"
+href="//fonts.googleapis.com/css?family=Roboto:regular,medium,thin,italic,mediumitalic,bold" title="roboto">
+<link href="/assets/css/default.css" rel="stylesheet" type="text/css">
+
+
+
+<!-- JAVASCRIPT -->
+<script src="//www.google.com/jsapi" type="text/javascript"></script>
+<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
+<script type="text/javascript">
+ var toRoot = "/";
+ var metaTags = [];
+ var devsite = false;
+</script>
+<script src="/assets/js/docs.js" type="text/javascript"></script>
+
+<script type="text/javascript">
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-5831155-1']);
+ _gaq.push(['_trackPageview']);
+
+ (function() {
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+ })();
+</script>
+</head>
+<body class="gc-documentation google
+ develop" itemscope itemtype="http://schema.org/Article">
+ <div id="doc-api-level" class="" style="display:none"></div>
+ <a name="top"></a>
+
+<a name="top"></a>
+
+ <!-- Header -->
+ <div id="header">
+ <div class="wrap" id="header-wrap">
+ <div class="col-3 logo">
+ <a href="/index.html">
+ <img src="/assets/images/dac_logo.png" width="123" height="25" alt="Android Developers" />
+ </a>
+ <div class="btn-quicknav" id="btn-quicknav">
+ <a href="#" class="arrow-inactive">Quicknav</a>
+ <a href="#" class="arrow-active">Quicknav</a>
+ </div>
+ </div>
+ <ul class="nav-x col-9">
+ <li class="design">
+ <a href="/design/index.html"
+ zh-tw-lang="設計"
+ zh-cn-lang="设计"
+ ru-lang="Проектирование"
+ ko-lang="디자인"
+ ja-lang="設計"
+ es-lang="Diseñar"
+ >Design</a></li>
+ <li class="develop"><a href="/develop/index.html"
+ zh-tw-lang="開發"
+ zh-cn-lang="开发"
+ ru-lang="Разработка"
+ ko-lang="개발"
+ ja-lang="開発"
+ es-lang="Desarrollar"
+ >Develop</a></li>
+ <li class="distribute last"><a href="/distribute/index.html"
+ zh-tw-lang="發佈"
+ zh-cn-lang="分发"
+ ru-lang="Распространение"
+ ko-lang="배포"
+ ja-lang="配布"
+ es-lang="Distribuir"
+ >Distribute</a></li>
+ </ul>
+
+ <!-- New Search -->
+ <div class="menu-container">
+ <div class="moremenu">
+ <div id="more-btn"></div>
+ </div>
+ <div class="morehover" id="moremenu">
+ <div class="top"></div>
+ <div class="mid">
+ <div class="header">Links</div>
+ <ul>
+ <li><a href="https://play.google.com/apps/publish/">Google Play Developer Console</a></li>
+ <li><a href="http://android-developers.blogspot.com/">Android Developers Blog</a></li>
+ <li><a href="/about/index.html">About Android</a></li>
+ </ul>
+ <div class="header">Android Sites</div>
+ <ul>
+ <li><a href="http://www.android.com">Android.com</a></li>
+ <li class="active"><a>Android Developers</a></li>
+ <li><a href="http://source.android.com">Android Open Source Project</a></li>
+ </ul>
+
+
+
+ <div class="header">Language</div>
+ <div id="language" class="locales">
+ <select name="language" onChange="changeLangPref(this.value, true)">
+ <option value="en">English</option>
+ <option value="es">Español</option>
+ <option value="ja">日本語</option>
+ <option value="ko">한국어</option>
+ <option value="ru">Русский</option>
+ <option value="zh-cn">中文 (中国)</option>
+ <option value="zh-tw">中文 (台灣)</option>
+ </select>
+ </div>
+ <script type="text/javascript">
+ <!--
+ loadLangPref();
+ //-->
+ </script>
+
+
+
+
+ <br class="clearfix" />
+ </div>
+ <div class="bottom"></div>
+ </div>
+ <div class="search" id="search-container">
+ <div class="search-inner">
+ <div id="search-btn"></div>
+ <div class="left"></div>
+ <form onsubmit="return submit_search()">
+ <input id="search_autocomplete" type="text" value="" autocomplete="off" name="q"
+onfocus="search_focus_changed(this, true)" onblur="search_focus_changed(this, false)"
+onkeydown="return search_changed(event, true, '/')"
+onkeyup="return search_changed(event, false, '/')" />
+ </form>
+ <div class="right"></div>
+ <a class="close hide">close</a>
+ <div class="left"></div>
+ <div class="right"></div>
+ </div>
+ </div>
+
+ <div class="search_filtered_wrapper reference">
+ <div class="suggest-card reference no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ </div>
+
+ <div class="search_filtered_wrapper docs">
+ <div class="suggest-card dummy no-display"> </div>
+ <div class="suggest-card develop no-display">
+ <ul class="search_filtered">
+ </ul>
+ <div class="child-card guides no-display">
+ </div>
+ <div class="child-card training no-display">
+ </div>
+ <div class="child-card samples no-display">
+ </div>
+ </div>
+ <div class="suggest-card design no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ <div class="suggest-card distribute no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ </div>
+
+ </div>
+ <!-- /New Search>
+
+
+ <!-- Expanded quicknav -->
+ <div id="quicknav" class="col-9">
+ <ul>
+ <li class="design">
+ <ul>
+ <li><a href="/design/index.html">Get Started</a></li>
+ <li><a href="/design/style/index.html">Style</a></li>
+ <li><a href="/design/patterns/index.html">Patterns</a></li>
+ <li><a href="/design/building-blocks/index.html">Building Blocks</a></li>
+ <li><a href="/design/downloads/index.html">Downloads</a></li>
+ <li><a href="/design/videos/index.html">Videos</a></li>
+ </ul>
+ </li>
+ <li class="develop">
+ <ul>
+ <li><a href="/training/index.html"
+ zh-tw-lang="訓練課程"
+ zh-cn-lang="培训"
+ ru-lang="Курсы"
+ ko-lang="교육"
+ ja-lang="トレーニング"
+ es-lang="Capacitación"
+ >Training</a></li>
+ <li><a href="/guide/index.html"
+ zh-tw-lang="API 指南"
+ zh-cn-lang="API 指南"
+ ru-lang="Руководства по API"
+ ko-lang="API 가이드"
+ ja-lang="API ガイド"
+ es-lang="Guías de la API"
+ >API Guides</a></li>
+ <li><a href="/reference/packages.html"
+ zh-tw-lang="參考資源"
+ zh-cn-lang="参考"
+ ru-lang="Справочник"
+ ko-lang="참조문서"
+ ja-lang="リファレンス"
+ es-lang="Referencia"
+ >Reference</a></li>
+ <li><a href="/tools/index.html"
+ zh-tw-lang="相關工具"
+ zh-cn-lang="工具"
+ ru-lang="Инструменты"
+ ko-lang="도구"
+ ja-lang="ツール"
+ es-lang="Herramientas"
+ >Tools</a>
+ <ul><li><a href="/sdk/index.html">Get the SDK</a></li></ul>
+ </li>
+ <li><a href="/google/index.html">Google Services</a>
+ </li>
+
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
+ </ul>
+ </li>
+ <li class="distribute last">
+ <ul>
+ <li><a href="/distribute/index.html">Google Play</a></li>
+ <li><a href="/distribute/googleplay/publish/index.html">Publishing</a></li>
+ <li><a href="/distribute/googleplay/promote/index.html">Promoting</a></li>
+ <li><a href="/distribute/googleplay/quality/index.html">App Quality</a></li>
+ <li><a href="/distribute/googleplay/spotlight/index.html">Spotlight</a></li>
+ <li><a href="/distribute/open.html">Open Distribution</a></li>
+ </ul>
+ </li>
+ </ul>
+ </div>
+ <!-- /Expanded quicknav -->
+ </div>
+ </div>
+ <!-- /Header -->
+
+
+ <div id="searchResults" class="wrap" style="display:none;">
+ <h2 id="searchTitle">Results</h2>
+ <div id="leftSearchControl" class="search-control">Loading...</div>
+ </div>
+
+
+
+ <!-- Secondary x-nav -->
+ <div id="nav-x">
+ <div class="wrap">
+ <ul class="nav-x col-9 develop" style="width:100%">
+ <li class="training"><a href="/training/index.html"
+ zh-tw-lang="訓練課程"
+ zh-cn-lang="培训"
+ ru-lang="Курсы"
+ ko-lang="교육"
+ ja-lang="トレーニング"
+ es-lang="Capacitación"
+ >Training</a></li>
+ <li class="guide"><a href="/guide/index.html"
+ zh-tw-lang="API 指南"
+ zh-cn-lang="API 指南"
+ ru-lang="Руководства по API"
+ ko-lang="API 가이드"
+ ja-lang="API ガイド"
+ es-lang="Guías de la API"
+ >API Guides</a></li>
+ <li class="reference"><a href="/reference/packages.html"
+ zh-tw-lang="參考資源"
+ zh-cn-lang="参考"
+ ru-lang="Справочник"
+ ko-lang="참조문서"
+ ja-lang="リファレンス"
+ es-lang="Referencia"
+ >Reference</a></li>
+ <li class="tools"><a href="/tools/index.html"
+ zh-tw-lang="相關工具"
+ zh-cn-lang="工具"
+ ru-lang="Инструменты"
+ ko-lang="도구"
+ ja-lang="ツール"
+ es-lang="Herramientas"
+ >Tools</a></li>
+ <li class="google"><a href="/google/index.html"
+ >Google Services</a>
+ </li>
+
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
+ </ul>
+ </div>
+
+ </div>
+ <!-- /Sendondary x-nav -->
+
+
+
+
+
+
+
+
+
+ <div class="wrap clearfix" id="body-content">
+ <div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
+ <div id="devdoc-nav" class="scroll-pane">
+<a class="totop" href="#top" data-g-event="left-nav-top">to top</a>
+
+
+
+<ul id="nav">
+
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/index.html">
+ <span class="en">Overview</span>
+ </a></div>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/games.html">
+ <span class="en">Games</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/location.html">
+ <span class="en">Location</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/plus.html">
+ <span class="en">Google+</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/maps.html">
+ <span class="en">Maps</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play-services/ads.html">
+ <span class="en">Ads</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play-services/id.html">
+ <span class="en">Advertising ID</span></a>
+ </li>
+ </ul>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/wallet.html">
+ <span class="en">Wallet</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/auth.html">
+ <span class="en">Authorization</span>
+ </a></div>
+ </li>
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play-services/index.html">
+ <span class="en">Google Play Services</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play-services/setup.html">
+ <span class="en">Setup</span></a>
+ </li>
+ <li id="gms-tree-list" class="nav-section">
+ <div class="nav-section-header">
+ <a href="/reference/gms-packages.html">
+ <span class="en">Reference</span>
+ </a>
+ <div>
+ </li>
+ </ul>
+ </li>
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/billing/index.html">
+ <span class="en">Google Play In-app Billing</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/billing/billing_overview.html">
+ <span class="en">Overview</span></a>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/api.html">
+ <span class="en">Version 3 API</span></a></div>
+ <ul>
+ <li><a href="/google/play/billing/billing_integrate.html">
+ <span class="en">Implementing the API</span></a></li>
+ <li><a href="/google/play/billing/billing_reference.html">
+ <span class="en">Reference</span></a></li>
+ </ul>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/v2/api.html">
+ <span class="en">Version 2 API</span></a></div>
+ <ul>
+ <li><a href="/google/play/billing/v2/billing_integrate.html">
+ <span class="en">Implementing the API</span></a></li>
+ <li><a href="/google/play/billing/v2/billing_subscriptions.html">
+ <span class="en">Subscriptions</span></a></li>
+ <li><a href="/google/play/billing/v2/billing_reference.html">
+ <span class="en">Reference</span></a></li>
+ </ul>
+ </li>
+ <li><a href="/google/play/billing/billing_subscriptions.html">
+ <span class="en">Subscriptions</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_best_practices.html">
+ <span class="en">Security and Design</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_testing.html">
+ <span class="en">Testing In-app Billing</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_admin.html">
+ <span class="en">Administering In-app Billing</span></a>
+ </li>
+ <li><a href="/google/play/billing/gp-purchase-status-api.html">
+ <span class="en">Purchase Status API</span></a>
+ </li>
+ <li><a href="/google/play/billing/versions.html">
+ <span class="en">Version Notes</span></a>
+ </li>
+ </ul>
+ </li>
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/gcm/index.html">
+ <span class="en">Google Cloud Messaging</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
+ <li><a href="/google/gcm/gs.html">
+ <span class="en">Getting Started</span></a>
+ </li>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
+ </li>
+ <li><a href="/google/gcm/notifications.html">
+ <span class="en">User Notifications</span></a>
+ </li>
+ <li><a href="/google/gcm/adv.html">
+ <span class="en">Advanced Topics</span></a>
+ </li>
+ <li><a href="/google/gcm/c2dm.html">
+ <span class="en">Migration</span></a>
+ </li>
+ <li id="gcm-tree-list" class="nav-section">
+ <div class="nav-section-header">
+ <a href="/reference/gcm-packages.html">
+ <span class="en">Reference</span>
+ </a>
+ <div>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/dist.html">
+ <span class="en">Google Play Distribution</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/filters.html">
+ <span class="en">Filters on Google Play</span></a>
+ </li>
+
+ <li><a href="/google/play/publishing/multiple-apks.html">
+ <span class="en">Multiple APK Support</span></a>
+ </li>
+ <li><a href="/google/play/expansion-files.html">
+ <span class="en">APK Expansion Files</span></a>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/licensing/index.html">
+ <span class="en">Application Licensing</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/licensing/overview.html">
+ <span class="en">Licensing Overview</span></a>
+ </li>
+ <li><a href="/google/play/licensing/setting-up.html">
+ <span class="en">Setting Up for Licensing</span></a>
+ </li>
+ <li><a href="/google/play/licensing/adding-licensing.html">
+ <span class="en">Adding Licensing to Your App</span></a>
+ </li>
+ <li><a href="/google/play/licensing/licensing-reference.html">
+ <span class="en">Licensing Reference</span></a>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/backup/index.html">
+ Android Backup Service</a>
+ </div>
+ <ul>
+ <li><a href="/google/backup/signup.html">
+ Register</a>
+ </li>
+ </ul>
+ </li>
+
+ </ul>
+
+</li>
+
+
+
+</ul>
+
+<script type="text/javascript">
+<!--
+ buildToggleLists();
+ changeNavLang(getLangPref());
+//-->
+</script>
+
+
+
+
+ </div>
+ <script type="text/javascript">
+ showGoogleRefTree();
+
+ </script>
+ </div> <!-- end side-nav -->
+ <script>
+ $(document).ready(function() {
+ scrollIntoView("devdoc-nav");
+ });
+ </script>
+
+
+
+
+
+
+<div class="col-12" id="doc-col">
+
+<div id="api-info-block">
+
+
+
+
+<div class="sum-details-links">
+
+Summary:
+
+ <a href="#nestedclasses">Nested Classes</a>
+
+
+
+
+
+
+
+
+
+
+
+
+ | <a href="#pubmethods">Methods</a>
+
+
+
+
+| <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
+
+</div><!-- end sum-details-links -->
+<div class="api-level">
+
+
+
+
+</div>
+</div><!-- end api-info-block -->
+
+
+<!-- ======== START OF CLASS DATA ======== -->
+
+<div id="jd-header">
+ public
+
+
+
+ interface
+<h1 itemprop="name">DriveResource</h1>
+
+
+
+
+
+
+
+
+</div><!-- end header -->
+
+<div id="naMessage"></div>
+
+<div id="jd-content" class="api apilevel-">
+<table class="jd-inheritance-table">
+
+
+ <tr>
+
+ <td colspan="1" class="jd-inheritance-class-cell">com.google.android.gms.drive.DriveResource</td>
+ </tr>
+
+
+</table>
+
+
+
+
+
+
+<table class="jd-sumtable jd-sumtable-subclasses"><tr><td colspan="12" style="border:none;margin:0;padding:0;">
+
+ <a href="#" onclick="return toggleInherited(this, null)" id="subclasses-indirect" class="jd-expando-trigger closed"
+ ><img id="subclasses-indirect-trigger"
+ src="/assets/images/triangle-closed.png"
+ class="jd-expando-trigger-img" /></a>Known Indirect Subclasses
+
+ <div id="subclasses-indirect">
+ <div id="subclasses-indirect-list"
+ class="jd-inheritedlinks"
+
+ >
+
+
+ <a href="/reference/com/google/android/gms/drive/DriveFile.html">DriveFile</a>,
+
+ <a href="/reference/com/google/android/gms/drive/DriveFolder.html">DriveFolder</a>
+
+
+ </div>
+ <div id="subclasses-indirect-summary"
+ style="display: none;"
+ >
+ <table class="jd-sumtable-expando">
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/drive/DriveFile.html">DriveFile</a></td>
+ <td class="jd-descrcol" width="100%">A file in Drive. </td>
+ </tr>
+ <tr class=" api apilevel-" >
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/drive/DriveFolder.html">DriveFolder</a></td>
+ <td class="jd-descrcol" width="100%">A folder in Drive. </td>
+ </tr>
+ </table>
+ </div>
+ </div>
+</td></tr></table>
+
+
+<div class="jd-descr">
+
+
+<h2>Class Overview</h2>
+<p class="caution">
+ <strong>Note:</strong> The Google Drive Android API is currently in <strong>developer
+ preview</strong>. Applications compiled using this version of the API will
+ continue to operate on devices using future versions of Google Play services;
+ however, changes to the API are expected in future releases.
+</p>
+<p itemprop="articleBody">A Resource represents a file or folder in Drive.
+</p>
+
+
+
+
+
+</div><!-- jd-descr -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<div class="jd-descr">
+
+
+<h2>Summary</h2>
+
+
+
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<table id="nestedclasses" class="jd-sumtable"><tr><th colspan="12">Nested Classes</th></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+ interface</nobr></td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/drive/DriveResource.MetadataResult.html">DriveResource.MetadataResult</a></td>
+ <td class="jd-descrcol" width="100%">Result that is returned in response to metadata requests. </td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+ interface</nobr></td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/drive/DriveResource.OnMetadataRetrievedCallback.html">DriveResource.OnMetadataRetrievedCallback</a></td>
+ <td class="jd-descrcol" width="100%">A callback that provides the result for a get request. </td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+ interface</nobr></td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/drive/DriveResource.OnMetadataUpdatedCallback.html">DriveResource.OnMetadataUpdatedCallback</a></td>
+ <td class="jd-descrcol" width="100%">A callback that indicates that the metadata update has completed. </td>
+ </tr>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
+
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ <a href="/reference/com/google/android/gms/drive/DriveId.html">DriveId</a></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/DriveResource.html#getDriveId()">getDriveId</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Returns the DriveId that uniquely identifies this resource.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ <a href="/reference/com/google/android/gms/common/api/PendingResult.html">PendingResult</a><<a href="/reference/com/google/android/gms/drive/DriveResource.MetadataResult.html">DriveResource.MetadataResult</a>, <a href="/reference/com/google/android/gms/drive/DriveResource.OnMetadataRetrievedCallback.html">DriveResource.OnMetadataRetrievedCallback</a>></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/DriveResource.html#getMetadata(com.google.android.gms.common.api.GoogleApiClient)">getMetadata</a></span>(<a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html">GoogleApiClient</a> apiClient)</nobr>
+
+ <div class="jd-descrdiv">Retrieves the Metadata that is associated with this resource.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ <a href="/reference/com/google/android/gms/common/api/PendingResult.html">PendingResult</a><<a href="/reference/com/google/android/gms/drive/DriveResource.MetadataResult.html">DriveResource.MetadataResult</a>, <a href="/reference/com/google/android/gms/drive/DriveResource.OnMetadataUpdatedCallback.html">DriveResource.OnMetadataUpdatedCallback</a>></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/DriveResource.html#updateMetadata(com.google.android.gms.common.api.GoogleApiClient, com.google.android.gms.drive.MetadataChangeSet)">updateMetadata</a></span>(<a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html">GoogleApiClient</a> apiClient, <a href="/reference/com/google/android/gms/drive/MetadataChangeSet.html">MetadataChangeSet</a> changeSet)</nobr>
+
+ <div class="jd-descrdiv">Updates the Metadata that is associated with this resource with the changes described
+ in the <code><a href="/reference/com/google/android/gms/drive/MetadataChangeSet.html">MetadataChangeSet</a></code>.</div>
+
+ </td></tr>
+
+
+
+</table>
+
+
+
+
+
+
+
+</div><!-- jd-descr (summary) -->
+
+<!-- Details -->
+
+
+
+
+
+
+
+
+<!-- XML Attributes -->
+
+
+<!-- Enum Values -->
+
+
+<!-- Constants -->
+
+
+<!-- Fields -->
+
+
+<!-- Public ctors -->
+
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<!-- Protected ctors -->
+
+
+
+<!-- ========= METHOD DETAIL ======== -->
+<!-- Public methdos -->
+
+<h2>Public Methods</h2>
+
+
+
+<A NAME="getDriveId()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+ abstract
+
+ <a href="/reference/com/google/android/gms/drive/DriveId.html">DriveId</a>
+ </span>
+ <span class="sympad">getDriveId</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Returns the DriveId that uniquely identifies this resource.
+</p></div>
+
+ </div>
+</div>
+
+
+<A NAME="getMetadata(com.google.android.gms.common.api.GoogleApiClient)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+ abstract
+
+ <a href="/reference/com/google/android/gms/common/api/PendingResult.html">PendingResult</a><<a href="/reference/com/google/android/gms/drive/DriveResource.MetadataResult.html">DriveResource.MetadataResult</a>, <a href="/reference/com/google/android/gms/drive/DriveResource.OnMetadataRetrievedCallback.html">DriveResource.OnMetadataRetrievedCallback</a>>
+ </span>
+ <span class="sympad">getMetadata</span>
+ <span class="normal">(<a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html">GoogleApiClient</a> apiClient)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Retrieves the Metadata that is associated with this resource.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>apiClient</td>
+ <td>The <code><a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html">GoogleApiClient</a></code> to service the call.</td>
+ </tr>
+ </table>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>a PendingResult which can be used to retrieve the Metadata when it is available.
+</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="updateMetadata(com.google.android.gms.common.api.GoogleApiClient, com.google.android.gms.drive.MetadataChangeSet)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+ abstract
+
+ <a href="/reference/com/google/android/gms/common/api/PendingResult.html">PendingResult</a><<a href="/reference/com/google/android/gms/drive/DriveResource.MetadataResult.html">DriveResource.MetadataResult</a>, <a href="/reference/com/google/android/gms/drive/DriveResource.OnMetadataUpdatedCallback.html">DriveResource.OnMetadataUpdatedCallback</a>>
+ </span>
+ <span class="sympad">updateMetadata</span>
+ <span class="normal">(<a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html">GoogleApiClient</a> apiClient, <a href="/reference/com/google/android/gms/drive/MetadataChangeSet.html">MetadataChangeSet</a> changeSet)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Updates the Metadata that is associated with this resource with the changes described
+ in the <code><a href="/reference/com/google/android/gms/drive/MetadataChangeSet.html">MetadataChangeSet</a></code>.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>apiClient</td>
+ <td>The <code><a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html">GoogleApiClient</a></code> to service the call. The client must be
+ connected when this method is invoked.</td>
+ </tr>
+ <tr>
+ <th>changeSet</td>
+ <td>The set of changes that will be applied to the Metadata. Only include the
+ specific fields that wish to be updated.</td>
+ </tr>
+ </table>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>a PendingResult which will return the updated Metadata when it is available.
+</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+
+
+
+<!-- ========= METHOD DETAIL ======== -->
+
+
+
+<!-- ========= END OF CLASS DATA ========= -->
+<A NAME="navbar_top"></A>
+
+<div id="footer" class="wrap" >
+
+
+ <div id="copyright">
+
+ Except as noted, this content is licensed under <a
+ href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.
+ For details and restrictions, see the <a href="/license.html">
+ Content License</a>.
+ </div>
+ <div id="build_info">
+
+<script src="/timestamp.js" type="text/javascript"></script>
+<script>document.write(BUILD_TIMESTAMP)</script>
+
+ </div>
+
+
+ <div id="footerlinks">
+
+ <p>
+ <a href="/about/index.html">About Android</a> |
+ <a href="/legal.html">Legal</a> |
+ <a href="/support.html">Support</a>
+ </p>
+ </div>
+
+</div> <!-- end footer -->
+</div> <!-- jd-content -->
+
+</div><!-- end doc-content -->
+
+</div> <!-- end body-content -->
+
+
+
+
+
+
+</body>
+</html>
diff --git a/docs/html/reference/com/google/android/gms/auth/RecoveryDecision.html b/docs/html/reference/com/google/android/gms/drive/Metadata.html
similarity index 69%
copy from docs/html/reference/com/google/android/gms/auth/RecoveryDecision.html
copy to docs/html/reference/com/google/android/gms/drive/Metadata.html
index 59a1346..c90a862 100644
--- a/docs/html/reference/com/google/android/gms/auth/RecoveryDecision.html
+++ b/docs/html/reference/com/google/android/gms/drive/Metadata.html
@@ -83,7 +83,7 @@
<meta name="viewport" content="width=device-width" />
<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
-<title>RecoveryDecision | Android Developers</title>
+<title>Metadata | Android Developers</title>
<!-- STYLESHEETS -->
<link rel="stylesheet"
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -128,7 +129,7 @@
<img src="/assets/images/dac_logo.png" width="123" height="25" alt="Android Developers" />
</a>
<div class="btn-quicknav" id="btn-quicknav">
- <a href="#" class="arrow-inactive">Quicknav</a>
+ <a href="#" class="arrow-inactive">Quicknav</a>
<a href="#" class="arrow-active">Quicknav</a>
</div>
</div>
@@ -140,7 +141,7 @@
ru-lang="Проектирование"
ko-lang="디자인"
ja-lang="設計"
- es-lang="Diseñar"
+ es-lang="Diseñar"
>Design</a></li>
<li class="develop"><a href="/develop/index.html"
zh-tw-lang="開發"
@@ -148,7 +149,7 @@
ru-lang="Разработка"
ko-lang="개발"
ja-lang="開発"
- es-lang="Desarrollar"
+ es-lang="Desarrollar"
>Develop</a></li>
<li class="distribute last"><a href="/distribute/index.html"
zh-tw-lang="發佈"
@@ -156,10 +157,10 @@
ru-lang="Распространение"
ko-lang="배포"
ja-lang="配布"
- es-lang="Distribuir"
+ es-lang="Distribuir"
>Distribute</a></li>
</ul>
-
+
<!-- New Search -->
<div class="menu-container">
<div class="moremenu">
@@ -180,9 +181,9 @@
<li class="active"><a>Android Developers</a></li>
<li><a href="http://source.android.com">Android Open Source Project</a></li>
</ul>
-
-
-
+
+
+
<div class="header">Language</div>
<div id="language" class="locales">
<select name="language" onChange="changeLangPref(this.value, true)">
@@ -200,8 +201,8 @@
loadLangPref();
//-->
</script>
-
-
+
+
<br class="clearfix" />
@@ -215,7 +216,7 @@
<form onsubmit="return submit_search()">
<input id="search_autocomplete" type="text" value="" autocomplete="off" name="q"
onfocus="search_focus_changed(this, true)" onblur="search_focus_changed(this, false)"
-onkeydown="return search_changed(event, true, '/')"
+onkeydown="return search_changed(event, true, '/')"
onkeyup="return search_changed(event, false, '/')" />
</form>
<div class="right"></div>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -254,8 +257,8 @@
</div>
<!-- /New Search>
-
-
+
+
<!-- Expanded quicknav -->
<div id="quicknav" class="col-9">
<ul>
@@ -277,15 +280,15 @@
ru-lang="Курсы"
ko-lang="교육"
ja-lang="トレーニング"
- es-lang="Capacitación"
+ es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
ko-lang="API 가이드"
ja-lang="API ガイド"
- es-lang="Guías de la API"
+ es-lang="Guías de la API"
>API Guides</a></li>
<li><a href="/reference/packages.html"
zh-tw-lang="參考資源"
@@ -293,7 +296,7 @@
ru-lang="Справочник"
ko-lang="참조문서"
ja-lang="リファレンス"
- es-lang="Referencia"
+ es-lang="Referencia"
>Reference</a></li>
<li><a href="/tools/index.html"
zh-tw-lang="相關工具"
@@ -301,13 +304,16 @@
ru-lang="Инструменты"
ko-lang="도구"
ja-lang="ツール"
- es-lang="Herramientas"
+ es-lang="Herramientas"
>Tools</a>
<ul><li><a href="/sdk/index.html">Get the SDK</a></li></ul>
</li>
<li><a href="/google/index.html">Google Services</a>
</li>
-
+
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -326,15 +332,15 @@
</div>
</div>
<!-- /Header -->
-
-
+
+
<div id="searchResults" class="wrap" style="display:none;">
<h2 id="searchTitle">Results</h2>
<div id="leftSearchControl" class="search-control">Loading...</div>
</div>
-
-
-
+
+
+
<!-- Secondary x-nav -->
<div id="nav-x">
<div class="wrap">
@@ -345,15 +351,15 @@
ru-lang="Курсы"
ko-lang="교육"
ja-lang="トレーニング"
- es-lang="Capacitación"
+ es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
ko-lang="API 가이드"
ja-lang="API ガイド"
- es-lang="Guías de la API"
+ es-lang="Guías de la API"
>API Guides</a></li>
<li class="reference"><a href="/reference/packages.html"
zh-tw-lang="參考資源"
@@ -361,7 +367,7 @@
ru-lang="Справочник"
ko-lang="참조문서"
ja-lang="リファレンス"
- es-lang="Referencia"
+ es-lang="Referencia"
>Reference</a></li>
<li class="tools"><a href="/tools/index.html"
zh-tw-lang="相關工具"
@@ -374,21 +380,25 @@
<li class="google"><a href="/google/index.html"
>Google Services</a>
</li>
-
+
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
-
+
</div>
<!-- /Sendondary x-nav -->
-
-
-
+
+
+
<div class="wrap clearfix" id="body-content">
<div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
<div id="devdoc-nav" class="scroll-pane">
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
@@ -618,12 +631,12 @@
</script>
-
+
</div>
<script type="text/javascript">
showGoogleRefTree();
-
+
</script>
</div> <!-- end side-nav -->
<script>
@@ -633,7 +646,7 @@
</script>
-
+
@@ -643,21 +656,19 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
<div class="sum-details-links">
@@ -669,22 +680,16 @@
- <a href="#inhconstants">Inherited Constants</a>
-
-
-
- | <a href="#lfields">Fields</a>
-
- | <a href="#pubctors">Ctors</a>
-
+ <a href="#pubctors">Ctors</a>
+
| <a href="#pubmethods">Methods</a>
-
+
@@ -694,9 +699,9 @@
</div><!-- end sum-details-links -->
<div class="api-level">
-
-
-
+
+
+
</div>
</div><!-- end api-info-block -->
@@ -706,28 +711,28 @@
<div id="jd-header">
public
-
-
-
+
+
+ abstract
class
-<h1 itemprop="name">RecoveryDecision</h1>
+<h1 itemprop="name">Metadata</h1>
-
+
extends Object<br/>
-
-
-
-
-
- implements
-
- Parcelable
-
-
-
+
+
+
+
+
+ implements
+
+ <a href="/reference/com/google/android/gms/common/data/Freezable.html">Freezable</a><T>
+
+
+
</div><!-- end header -->
@@ -739,18 +744,18 @@
<tr>
-
+
<td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
</tr>
-
+
<tr>
-
+
<td class="jd-inheritance-space"> ↳</td>
-
- <td colspan="1" class="jd-inheritance-class-cell">com.google.android.gms.auth.RecoveryDecision</td>
+
+ <td colspan="1" class="jd-inheritance-class-cell">com.google.android.gms.drive.Metadata</td>
</tr>
-
+
</table>
@@ -763,6 +768,16 @@
<div class="jd-descr">
+<h2>Class Overview</h2>
+<p class="caution">
+ <strong>Note:</strong> The Google Drive Android API is currently in <strong>developer
+ preview</strong>. Applications compiled using this version of the API will
+ continue to operate on devices using future versions of Google Play services;
+ however, changes to the API are expected in future releases.
+</p>
+<p itemprop="articleBody">The details of a Drive file or folder.
+</p>
+
@@ -804,130 +819,6 @@
-<!-- =========== ENUM CONSTANT SUMMARY =========== -->
-<table id="inhconstants" class="jd-sumtable"><tr><th>
- <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
- <div style="clear:left;">Inherited Constants</div></th></tr>
-
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-
- <a href="#" onclick="return toggleInherited(this, null)" id="inherited-constants-android.os.Parcelable" class="jd-expando-trigger closed"
- ><img id="inherited-constants-android.os.Parcelable-trigger"
- src="/assets/images/triangle-closed.png"
- class="jd-expando-trigger-img" /></a>From interface
-android.os.Parcelable
-<div id="inherited-constants-android.os.Parcelable">
- <div id="inherited-constants-android.os.Parcelable-list"
- class="jd-inheritedlinks">
- </div>
- <div id="inherited-constants-android.os.Parcelable-summary" style="display: none;">
- <table class="jd-sumtable-expando">
-
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol">int</td>
- <td class="jd-linkcol">CONTENTS_FILE_DESCRIPTOR</td>
- <td class="jd-descrcol" width="100%"></td>
- </tr>
-
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol">int</td>
- <td class="jd-linkcol">PARCELABLE_WRITE_RETURN_VALUE</td>
- <td class="jd-descrcol" width="100%"></td>
- </tr>
-
-
-</table>
- </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-
-
-<!-- =========== FIELD SUMMARY =========== -->
-<table id="lfields" class="jd-sumtable"><tr><th colspan="12">Fields</th></tr>
-
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
- static
- final
- <a href="/reference/com/google/android/gms/auth/RecoveryDecisionCreator.html">RecoveryDecisionCreator</a></nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#CREATOR">CREATOR</a></td>
- <td class="jd-descrcol" width="100%"></td>
- </tr>
-
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- boolean</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#isRecoveryInfoNeeded">isRecoveryInfoNeeded</a></td>
- <td class="jd-descrcol" width="100%">Is <code>true</code> if either the account has no recovery information or it
- was updated long time back (controlled by server, default 1 year).</td>
- </tr>
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- boolean</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#isRecoveryInterstitialAllowed">isRecoveryInterstitialAllowed</a></td>
- <td class="jd-descrcol" width="100%">Is <code>true</code> iff the user has permission to update the account.</td>
- </tr>
-
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- PendingIntent</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#recoveryIntent">recoveryIntent</a></td>
- <td class="jd-descrcol" width="100%">A PendingIntent to an activity that gathers recovery information for the given account.</td>
- </tr>
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- PendingIntent</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#recoveryIntentWithoutIntro">recoveryIntentWithoutIntro</a></td>
- <td class="jd-descrcol" width="100%">A PendingIntent to an activity that gathers recovery information for the given account.</td>
- </tr>
-
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- boolean</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#showRecoveryInterstitial">showRecoveryInterstitial</a></td>
- <td class="jd-descrcol" width="100%">Represents the decision and should be obeyed by the client.</td>
- </tr>
-
-
-
-</table>
@@ -940,19 +831,19 @@
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#RecoveryDecision()">RecoveryDecision</a></span>()</nobr>
-
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/Metadata.html#Metadata()">Metadata</a></span>()</nobr>
+
</td></tr>
@@ -969,51 +860,201 @@
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
- int</nobr>
+
+
+
+
+
+ Date</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#describeContents()">describeContents</a></span>()</nobr>
-
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/Metadata.html#getCreatedDate()">getCreatedDate</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Returns the create time for this resource.</div>
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
- int</nobr>
+
+
+
+
+
+ <a href="/reference/com/google/android/gms/drive/DriveId.html">DriveId</a></nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#getVersionCode()">getVersionCode</a></span>()</nobr>
-
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/Metadata.html#getDriveId()">getDriveId</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Returns the id of the resource </div>
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
- void</nobr>
+
+
+
+
+
+ String</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#writeToParcel(android.os.Parcel, int)">writeToParcel</a></span>(Parcel out, int flags)</nobr>
-
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/Metadata.html#getMimeType()">getMimeType</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Returns the MIME type of the resource </div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ Date</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/Metadata.html#getModifiedByMeDate()">getModifiedByMeDate</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Returns the last time this resource was modified by the user.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ Date</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/Metadata.html#getModifiedDate()">getModifiedDate</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Returns the last time this resource was modified by anyone.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ Date</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/Metadata.html#getSharedWithMeDate()">getSharedWithMeDate</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Returns the time at which this resource was shared with the user.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ String</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/Metadata.html#getTitle()">getTitle</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Returns the title of the resource </div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/Metadata.html#isEditable()">isEditable</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Returns true if this resource can be edited by the current user.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/Metadata.html#isFolder()">isFolder</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Returns true if this Metadata is for a folder.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/Metadata.html#isStarred()">isStarred</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Returns true if this resource is starred by the user.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/Metadata.html#isTrashed()">isTrashed</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Returns true if this resource has been trashed.</div>
+
</td></tr>
@@ -1048,182 +1089,182 @@
</div>
<div id="inherited-methods-java.lang.Object-summary" style="display: none;">
<table class="jd-sumtable-expando">
-
-
+
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
Object</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">clone</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
boolean</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">equals</span>(Object arg0)</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">finalize</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
Class<?></nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">getClass</span>()</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
int</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">hashCode</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">notify</span>()</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">notifyAll</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
String</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">toString</span>()</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">wait</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">wait</span>(long arg0)</nobr>
-
+
</td></tr>
@@ -1236,52 +1277,56 @@
<tr class="api apilevel-" >
<td colspan="12">
- <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-android.os.Parcelable" class="jd-expando-trigger closed"
- ><img id="inherited-methods-android.os.Parcelable-trigger"
+ <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.android.gms.common.data.Freezable" class="jd-expando-trigger closed"
+ ><img id="inherited-methods-com.google.android.gms.common.data.Freezable-trigger"
src="/assets/images/triangle-closed.png"
class="jd-expando-trigger-img" /></a>
From interface
- android.os.Parcelable
+ <a href="/reference/com/google/android/gms/common/data/Freezable.html">com.google.android.gms.common.data.Freezable</a>
-<div id="inherited-methods-android.os.Parcelable">
- <div id="inherited-methods-android.os.Parcelable-list"
+<div id="inherited-methods-com.google.android.gms.common.data.Freezable">
+ <div id="inherited-methods-com.google.android.gms.common.data.Freezable-list"
class="jd-inheritedlinks">
</div>
- <div id="inherited-methods-android.os.Parcelable-summary" style="display: none;">
+ <div id="inherited-methods-com.google.android.gms.common.data.Freezable-summary" style="display: none;">
<table class="jd-sumtable-expando">
-
-
+
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
abstract
-
-
-
-
- int</nobr>
+
+
+
+
+ T</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad">describeContents</span>()</nobr>
-
+ <span class="sympad"><a href="/reference/com/google/android/gms/common/data/Freezable.html#freeze()">freeze</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Freeze a volatile representation into an immutable representation.</div>
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
abstract
-
-
-
-
- void</nobr>
+
+
+
+
+ boolean</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad">writeToParcel</span>(Parcel arg0, int arg1)</nobr>
-
+ <span class="sympad"><a href="/reference/com/google/android/gms/common/data/Freezable.html#isDataValid()">isDataValid</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Check to see if this object is valid for use.</div>
+
</td></tr>
@@ -1317,197 +1362,6 @@
<!-- Fields -->
-<!-- ========= FIELD DETAIL ======== -->
-<h2>Fields</h2>
-
-
-
-
-<A NAME="CREATOR"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
- static
- final
- <a href="/reference/com/google/android/gms/auth/RecoveryDecisionCreator.html">RecoveryDecisionCreator</a>
- </span>
- CREATOR
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-
- </div>
-</div>
-
-
-
-<A NAME="isRecoveryInfoNeeded"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- boolean
- </span>
- isRecoveryInfoNeeded
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>Is <code>true</code> if either the account has no recovery information or it
- was updated long time back (controlled by server, default 1 year).
-</p></div>
-
-
- </div>
-</div>
-
-
-
-<A NAME="isRecoveryInterstitialAllowed"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- boolean
- </span>
- isRecoveryInterstitialAllowed
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>Is <code>true</code> iff the user has permission to update the account.
- Dasher accounts can have recovery information edit disabled by the administrator.
- Eg: @google.com
-</p></div>
-
-
- </div>
-</div>
-
-
-
-<A NAME="recoveryIntent"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- PendingIntent
- </span>
- recoveryIntent
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>A PendingIntent to an activity that gathers recovery information for the given account.
- This intent will be null iff isRecoveryInterstitialAllowed is <code>false</code>.
-</p></div>
-
-
- </div>
-</div>
-
-
-
-<A NAME="recoveryIntentWithoutIntro"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- PendingIntent
- </span>
- recoveryIntentWithoutIntro
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>A PendingIntent to an activity that gathers recovery information for the given account.
- This intent will be null iff isRecoveryInterstitialAllowed is <code>false</code>.
- This intent directly skips to the input activity without showing the intro message.
-</p></div>
-
-
- </div>
-</div>
-
-
-
-<A NAME="showRecoveryInterstitial"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- boolean
- </span>
- showRecoveryInterstitial
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>Represents the decision and should be obeyed by the client. The remaining
- two flags are provided as additional information for one off decisions. This value
- is <code>true</code> iff isRecoveryInfoNeeded is <code>true</code>, isRecoveryInterstitialAllowed is
- <code>true</code> and a specified period (controlled by server, default 2 months) has passed
- since the user was shown a prompt for recovery information on any google property
- (Android, Web, etc.)
-</p></div>
-
-
- </div>
-</div>
-
-
-
-
<!-- Public ctors -->
@@ -1516,29 +1370,29 @@
-<A NAME="RecoveryDecision()"></A>
+<A NAME="Metadata()"></A>
-<div class="jd-details api apilevel-">
+<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
- public
-
-
-
-
-
+ public
+
+
+
+
+
</span>
- <span class="sympad">RecoveryDecision</span>
+ <span class="sympad">Metadata</span>
<span class="normal">()</span>
</h4>
<div class="api-level">
<div></div>
-
-
+
+
</div>
<div class="jd-details-descr">
-
+
<div class="jd-tagdata jd-tagdescr"><p></p></div>
</div>
@@ -1560,88 +1414,328 @@
-<A NAME="describeContents()"></A>
+<A NAME="getCreatedDate()"></A>
-<div class="jd-details api apilevel-">
+<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
- public
-
-
-
-
- int
+ public
+
+
+
+
+ Date
</span>
- <span class="sympad">describeContents</span>
+ <span class="sympad">getCreatedDate</span>
<span class="normal">()</span>
</h4>
<div class="api-level">
<div></div>
-
-
+
+
</div>
<div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+ <div class="jd-tagdata jd-tagdescr"><p>Returns the create time for this resource.
+</p></div>
</div>
</div>
-<A NAME="getVersionCode()"></A>
+<A NAME="getDriveId()"></A>
-<div class="jd-details api apilevel-">
+<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
- public
-
-
-
-
- int
+ public
+
+
+
+
+ <a href="/reference/com/google/android/gms/drive/DriveId.html">DriveId</a>
</span>
- <span class="sympad">getVersionCode</span>
+ <span class="sympad">getDriveId</span>
<span class="normal">()</span>
</h4>
<div class="api-level">
<div></div>
-
-
+
+
</div>
<div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+ <div class="jd-tagdata jd-tagdescr"><p>Returns the id of the resource </p></div>
</div>
</div>
-<A NAME="writeToParcel(android.os.Parcel, int)"></A>
+<A NAME="getMimeType()"></A>
-<div class="jd-details api apilevel-">
+<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
- public
-
-
-
-
- void
+ public
+
+
+
+
+ String
</span>
- <span class="sympad">writeToParcel</span>
- <span class="normal">(Parcel out, int flags)</span>
+ <span class="sympad">getMimeType</span>
+ <span class="normal">()</span>
</h4>
<div class="api-level">
<div></div>
-
-
+
+
</div>
<div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+ <div class="jd-tagdata jd-tagdescr"><p>Returns the MIME type of the resource </p></div>
+
+ </div>
+</div>
+
+
+<A NAME="getModifiedByMeDate()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ Date
+ </span>
+ <span class="sympad">getModifiedByMeDate</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Returns the last time this resource was modified by the user.
+</p></div>
+
+ </div>
+</div>
+
+
+<A NAME="getModifiedDate()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ Date
+ </span>
+ <span class="sympad">getModifiedDate</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Returns the last time this resource was modified by anyone.
+</p></div>
+
+ </div>
+</div>
+
+
+<A NAME="getSharedWithMeDate()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ Date
+ </span>
+ <span class="sympad">getSharedWithMeDate</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Returns the time at which this resource was shared with the user.
+</p></div>
+
+ </div>
+</div>
+
+
+<A NAME="getTitle()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ String
+ </span>
+ <span class="sympad">getTitle</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Returns the title of the resource </p></div>
+
+ </div>
+</div>
+
+
+<A NAME="isEditable()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ boolean
+ </span>
+ <span class="sympad">isEditable</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Returns true if this resource can be edited by the current user.
+</p></div>
+
+ </div>
+</div>
+
+
+<A NAME="isFolder()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ boolean
+ </span>
+ <span class="sympad">isFolder</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Returns true if this Metadata is for a folder.
+</p></div>
+
+ </div>
+</div>
+
+
+<A NAME="isStarred()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ boolean
+ </span>
+ <span class="sympad">isStarred</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Returns true if this resource is starred by the user.
+</p></div>
+
+ </div>
+</div>
+
+
+<A NAME="isTrashed()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ boolean
+ </span>
+ <span class="sympad">isTrashed</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Returns true if this resource has been trashed.
+</p></div>
</div>
</div>
@@ -1658,17 +1752,17 @@
<A NAME="navbar_top"></A>
<div id="footer" class="wrap" >
-
+
<div id="copyright">
-
+
Except as noted, this content is licensed under <a
- href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.
+ href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.
For details and restrictions, see the <a href="/license.html">
Content License</a>.
</div>
<div id="build_info">
-
+
<script src="/timestamp.js" type="text/javascript"></script>
<script>document.write(BUILD_TIMESTAMP)</script>
@@ -1676,7 +1770,7 @@
<div id="footerlinks">
-
+
<p>
<a href="/about/index.html">About Android</a> |
<a href="/legal.html">Legal</a> |
@@ -1689,7 +1783,7 @@
</div><!-- end doc-content -->
-</div> <!-- end body-content -->
+</div> <!-- end body-content -->
diff --git a/docs/html/reference/com/google/android/gms/auth/RecoveryDecision.html b/docs/html/reference/com/google/android/gms/drive/MetadataBuffer.html
similarity index 65%
copy from docs/html/reference/com/google/android/gms/auth/RecoveryDecision.html
copy to docs/html/reference/com/google/android/gms/drive/MetadataBuffer.html
index 59a1346..b57890f 100644
--- a/docs/html/reference/com/google/android/gms/auth/RecoveryDecision.html
+++ b/docs/html/reference/com/google/android/gms/drive/MetadataBuffer.html
@@ -83,7 +83,7 @@
<meta name="viewport" content="width=device-width" />
<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
-<title>RecoveryDecision | Android Developers</title>
+<title>MetadataBuffer | Android Developers</title>
<!-- STYLESHEETS -->
<link rel="stylesheet"
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -128,7 +129,7 @@
<img src="/assets/images/dac_logo.png" width="123" height="25" alt="Android Developers" />
</a>
<div class="btn-quicknav" id="btn-quicknav">
- <a href="#" class="arrow-inactive">Quicknav</a>
+ <a href="#" class="arrow-inactive">Quicknav</a>
<a href="#" class="arrow-active">Quicknav</a>
</div>
</div>
@@ -140,7 +141,7 @@
ru-lang="Проектирование"
ko-lang="디자인"
ja-lang="設計"
- es-lang="Diseñar"
+ es-lang="Diseñar"
>Design</a></li>
<li class="develop"><a href="/develop/index.html"
zh-tw-lang="開發"
@@ -148,7 +149,7 @@
ru-lang="Разработка"
ko-lang="개발"
ja-lang="開発"
- es-lang="Desarrollar"
+ es-lang="Desarrollar"
>Develop</a></li>
<li class="distribute last"><a href="/distribute/index.html"
zh-tw-lang="發佈"
@@ -156,10 +157,10 @@
ru-lang="Распространение"
ko-lang="배포"
ja-lang="配布"
- es-lang="Distribuir"
+ es-lang="Distribuir"
>Distribute</a></li>
</ul>
-
+
<!-- New Search -->
<div class="menu-container">
<div class="moremenu">
@@ -180,9 +181,9 @@
<li class="active"><a>Android Developers</a></li>
<li><a href="http://source.android.com">Android Open Source Project</a></li>
</ul>
-
-
-
+
+
+
<div class="header">Language</div>
<div id="language" class="locales">
<select name="language" onChange="changeLangPref(this.value, true)">
@@ -200,8 +201,8 @@
loadLangPref();
//-->
</script>
-
-
+
+
<br class="clearfix" />
@@ -215,7 +216,7 @@
<form onsubmit="return submit_search()">
<input id="search_autocomplete" type="text" value="" autocomplete="off" name="q"
onfocus="search_focus_changed(this, true)" onblur="search_focus_changed(this, false)"
-onkeydown="return search_changed(event, true, '/')"
+onkeydown="return search_changed(event, true, '/')"
onkeyup="return search_changed(event, false, '/')" />
</form>
<div class="right"></div>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -254,8 +257,8 @@
</div>
<!-- /New Search>
-
-
+
+
<!-- Expanded quicknav -->
<div id="quicknav" class="col-9">
<ul>
@@ -277,15 +280,15 @@
ru-lang="Курсы"
ko-lang="교육"
ja-lang="トレーニング"
- es-lang="Capacitación"
+ es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
ko-lang="API 가이드"
ja-lang="API ガイド"
- es-lang="Guías de la API"
+ es-lang="Guías de la API"
>API Guides</a></li>
<li><a href="/reference/packages.html"
zh-tw-lang="參考資源"
@@ -293,7 +296,7 @@
ru-lang="Справочник"
ko-lang="참조문서"
ja-lang="リファレンス"
- es-lang="Referencia"
+ es-lang="Referencia"
>Reference</a></li>
<li><a href="/tools/index.html"
zh-tw-lang="相關工具"
@@ -301,13 +304,16 @@
ru-lang="Инструменты"
ko-lang="도구"
ja-lang="ツール"
- es-lang="Herramientas"
+ es-lang="Herramientas"
>Tools</a>
<ul><li><a href="/sdk/index.html">Get the SDK</a></li></ul>
</li>
<li><a href="/google/index.html">Google Services</a>
</li>
-
+
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -326,15 +332,15 @@
</div>
</div>
<!-- /Header -->
-
-
+
+
<div id="searchResults" class="wrap" style="display:none;">
<h2 id="searchTitle">Results</h2>
<div id="leftSearchControl" class="search-control">Loading...</div>
</div>
-
-
-
+
+
+
<!-- Secondary x-nav -->
<div id="nav-x">
<div class="wrap">
@@ -345,15 +351,15 @@
ru-lang="Курсы"
ko-lang="교육"
ja-lang="トレーニング"
- es-lang="Capacitación"
+ es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
ko-lang="API 가이드"
ja-lang="API ガイド"
- es-lang="Guías de la API"
+ es-lang="Guías de la API"
>API Guides</a></li>
<li class="reference"><a href="/reference/packages.html"
zh-tw-lang="參考資源"
@@ -361,7 +367,7 @@
ru-lang="Справочник"
ko-lang="참조문서"
ja-lang="リファレンス"
- es-lang="Referencia"
+ es-lang="Referencia"
>Reference</a></li>
<li class="tools"><a href="/tools/index.html"
zh-tw-lang="相關工具"
@@ -374,21 +380,25 @@
<li class="google"><a href="/google/index.html"
>Google Services</a>
</li>
-
+
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
-
+
</div>
<!-- /Sendondary x-nav -->
-
-
-
+
+
+
<div class="wrap clearfix" id="body-content">
<div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
<div id="devdoc-nav" class="scroll-pane">
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
@@ -618,12 +631,12 @@
</script>
-
+
</div>
<script type="text/javascript">
showGoogleRefTree();
-
+
</script>
</div> <!-- end side-nav -->
<script>
@@ -633,7 +646,7 @@
</script>
-
+
@@ -643,21 +656,26 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
<div class="sum-details-links">
@@ -669,22 +687,13 @@
- <a href="#inhconstants">Inherited Constants</a>
-
-
-
- | <a href="#lfields">Fields</a>
-
- | <a href="#pubctors">Ctors</a>
-
+ <a href="#pubmethods">Methods</a>
- | <a href="#pubmethods">Methods</a>
-
@@ -694,9 +703,9 @@
</div><!-- end sum-details-links -->
<div class="api-level">
-
-
-
+
+
+
</div>
</div><!-- end api-info-block -->
@@ -706,28 +715,27 @@
<div id="jd-header">
public
-
-
-
+
+ final
+
class
-<h1 itemprop="name">RecoveryDecision</h1>
+<h1 itemprop="name">MetadataBuffer</h1>
-
- extends Object<br/>
-
-
-
-
-
- implements
-
- Parcelable
-
-
-
+
+
+
+
+ extends <a href="/reference/com/google/android/gms/common/data/DataBuffer.html">DataBuffer</a><T><br/>
+
+
+
+
+
+
+
</div><!-- end header -->
@@ -739,18 +747,28 @@
<tr>
-
- <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
+
+ <td colspan="3" class="jd-inheritance-class-cell">java.lang.Object</td>
</tr>
-
+
<tr>
-
+
<td class="jd-inheritance-space"> ↳</td>
-
- <td colspan="1" class="jd-inheritance-class-cell">com.google.android.gms.auth.RecoveryDecision</td>
+
+ <td colspan="2" class="jd-inheritance-class-cell"><a href="/reference/com/google/android/gms/common/data/DataBuffer.html">com.google.android.gms.common.data.DataBuffer</a><T></td>
</tr>
-
+
+
+ <tr>
+
+ <td class="jd-inheritance-space"> </td>
+
+ <td class="jd-inheritance-space"> ↳</td>
+
+ <td colspan="1" class="jd-inheritance-class-cell">com.google.android.gms.drive.MetadataBuffer</td>
+ </tr>
+
</table>
@@ -763,6 +781,19 @@
<div class="jd-descr">
+<h2>Class Overview</h2>
+<p class="caution">
+ <strong>Note:</strong> The Google Drive Android API is currently in <strong>developer
+ preview</strong>. Applications compiled using this version of the API will
+ continue to operate on devices using future versions of Google Play services;
+ however, changes to the API are expected in future releases.
+</p>
+<p itemprop="articleBody">A data buffer that points to Metadata entries. Objects of this class are returned in responses to
+ list requests (such as <code><a href="/reference/com/google/android/gms/drive/DriveApi.html#query(com.google.android.gms.common.api.GoogleApiClient, com.google.android.gms.drive.query.Query)">query(GoogleApiClient, Query)</a></code>). This object behaves as an Iterable, as well as
+ allowing indexed access to its entries. Be sure to call close on any buffers when you are done
+ with them.
+</p>
+
@@ -804,130 +835,6 @@
-<!-- =========== ENUM CONSTANT SUMMARY =========== -->
-<table id="inhconstants" class="jd-sumtable"><tr><th>
- <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
- <div style="clear:left;">Inherited Constants</div></th></tr>
-
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-
- <a href="#" onclick="return toggleInherited(this, null)" id="inherited-constants-android.os.Parcelable" class="jd-expando-trigger closed"
- ><img id="inherited-constants-android.os.Parcelable-trigger"
- src="/assets/images/triangle-closed.png"
- class="jd-expando-trigger-img" /></a>From interface
-android.os.Parcelable
-<div id="inherited-constants-android.os.Parcelable">
- <div id="inherited-constants-android.os.Parcelable-list"
- class="jd-inheritedlinks">
- </div>
- <div id="inherited-constants-android.os.Parcelable-summary" style="display: none;">
- <table class="jd-sumtable-expando">
-
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol">int</td>
- <td class="jd-linkcol">CONTENTS_FILE_DESCRIPTOR</td>
- <td class="jd-descrcol" width="100%"></td>
- </tr>
-
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol">int</td>
- <td class="jd-linkcol">PARCELABLE_WRITE_RETURN_VALUE</td>
- <td class="jd-descrcol" width="100%"></td>
- </tr>
-
-
-</table>
- </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-
-
-<!-- =========== FIELD SUMMARY =========== -->
-<table id="lfields" class="jd-sumtable"><tr><th colspan="12">Fields</th></tr>
-
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
- static
- final
- <a href="/reference/com/google/android/gms/auth/RecoveryDecisionCreator.html">RecoveryDecisionCreator</a></nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#CREATOR">CREATOR</a></td>
- <td class="jd-descrcol" width="100%"></td>
- </tr>
-
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- boolean</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#isRecoveryInfoNeeded">isRecoveryInfoNeeded</a></td>
- <td class="jd-descrcol" width="100%">Is <code>true</code> if either the account has no recovery information or it
- was updated long time back (controlled by server, default 1 year).</td>
- </tr>
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- boolean</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#isRecoveryInterstitialAllowed">isRecoveryInterstitialAllowed</a></td>
- <td class="jd-descrcol" width="100%">Is <code>true</code> iff the user has permission to update the account.</td>
- </tr>
-
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- PendingIntent</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#recoveryIntent">recoveryIntent</a></td>
- <td class="jd-descrcol" width="100%">A PendingIntent to an activity that gathers recovery information for the given account.</td>
- </tr>
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- PendingIntent</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#recoveryIntentWithoutIntro">recoveryIntentWithoutIntro</a></td>
- <td class="jd-descrcol" width="100%">A PendingIntent to an activity that gathers recovery information for the given account.</td>
- </tr>
-
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- boolean</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#showRecoveryInterstitial">showRecoveryInterstitial</a></td>
- <td class="jd-descrcol" width="100%">Represents the decision and should be obeyed by the client.</td>
- </tr>
-
-
-
-</table>
@@ -935,31 +842,6 @@
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
-
-
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
-
-
-
-
-
- </nobr>
- </td>
- <td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#RecoveryDecision()">RecoveryDecision</a></span>()</nobr>
-
- </td></tr>
-
-
-
-</table>
-
-
@@ -969,51 +851,37 @@
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
- int</nobr>
+
+
+
+
+
+ <a href="/reference/com/google/android/gms/drive/Metadata.html">Metadata</a></nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#describeContents()">describeContents</a></span>()</nobr>
-
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/MetadataBuffer.html#get(int)">get</a></span>(int row)</nobr>
+
+ <div class="jd-descrdiv">Get the item at the specified position.</div>
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
- int</nobr>
- </td>
- <td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#getVersionCode()">getVersionCode</a></span>()</nobr>
-
- </td></tr>
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
-
-
-
-
-
- void</nobr>
+
+
+
+ String</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#writeToParcel(android.os.Parcel, int)">writeToParcel</a></span>(Parcel out, int flags)</nobr>
-
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/MetadataBuffer.html#getNextPageToken()">getNextPageToken</a></span>()</nobr>
+
</td></tr>
@@ -1034,6 +902,130 @@
<tr class="api apilevel-" >
<td colspan="12">
+ <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.android.gms.common.data.DataBuffer" class="jd-expando-trigger closed"
+ ><img id="inherited-methods-com.google.android.gms.common.data.DataBuffer-trigger"
+ src="/assets/images/triangle-closed.png"
+ class="jd-expando-trigger-img" /></a>
+From class
+
+ <a href="/reference/com/google/android/gms/common/data/DataBuffer.html">com.google.android.gms.common.data.DataBuffer</a>
+
+<div id="inherited-methods-com.google.android.gms.common.data.DataBuffer">
+ <div id="inherited-methods-com.google.android.gms.common.data.DataBuffer-list"
+ class="jd-inheritedlinks">
+ </div>
+ <div id="inherited-methods-com.google.android.gms.common.data.DataBuffer-summary" style="display: none;">
+ <table class="jd-sumtable-expando">
+
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/common/data/DataBuffer.html#close()">close</a></span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/common/data/DataBuffer.html#describeContents()">describeContents</a></span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ T</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/common/data/DataBuffer.html#get(int)">get</a></span>(int position)</nobr>
+
+ <div class="jd-descrdiv">Get the item at the specified position.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/common/data/DataBuffer.html#getCount()">getCount</a></span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/common/data/DataBuffer.html#isClosed()">isClosed</a></span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ Iterator<T></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/common/data/DataBuffer.html#iterator()">iterator</a></span>()</nobr>
+
+ </td></tr>
+
+
+</table>
+ </div>
+</div>
+</td></tr>
+
+
+
+<tr class="api apilevel-" >
+<td colspan="12">
<a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
><img id="inherited-methods-java.lang.Object-trigger"
src="/assets/images/triangle-closed.png"
@@ -1048,182 +1040,182 @@
</div>
<div id="inherited-methods-java.lang.Object-summary" style="display: none;">
<table class="jd-sumtable-expando">
-
-
+
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
Object</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">clone</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
boolean</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">equals</span>(Object arg0)</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">finalize</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
Class<?></nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">getClass</span>()</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
int</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">hashCode</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">notify</span>()</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">notifyAll</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
String</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">toString</span>()</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">wait</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">wait</span>(long arg0)</nobr>
-
+
</td></tr>
@@ -1236,52 +1228,36 @@
<tr class="api apilevel-" >
<td colspan="12">
- <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-android.os.Parcelable" class="jd-expando-trigger closed"
- ><img id="inherited-methods-android.os.Parcelable-trigger"
+ <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Iterable" class="jd-expando-trigger closed"
+ ><img id="inherited-methods-java.lang.Iterable-trigger"
src="/assets/images/triangle-closed.png"
class="jd-expando-trigger-img" /></a>
From interface
- android.os.Parcelable
+ java.lang.Iterable
-<div id="inherited-methods-android.os.Parcelable">
- <div id="inherited-methods-android.os.Parcelable-list"
+<div id="inherited-methods-java.lang.Iterable">
+ <div id="inherited-methods-java.lang.Iterable-list"
class="jd-inheritedlinks">
</div>
- <div id="inherited-methods-android.os.Parcelable-summary" style="display: none;">
+ <div id="inherited-methods-java.lang.Iterable-summary" style="display: none;">
<table class="jd-sumtable-expando">
-
-
+
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
abstract
-
-
-
-
- int</nobr>
- </td>
- <td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad">describeContents</span>()</nobr>
-
- </td></tr>
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol"><nobr>
- abstract
-
-
-
-
- void</nobr>
+
+
+ Iterator<T></nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad">writeToParcel</span>(Parcel arg0, int arg1)</nobr>
-
+ <span class="sympad">iterator</span>()</nobr>
+
</td></tr>
@@ -1317,236 +1293,9 @@
<!-- Fields -->
-<!-- ========= FIELD DETAIL ======== -->
-<h2>Fields</h2>
-
-
-
-
-<A NAME="CREATOR"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
- static
- final
- <a href="/reference/com/google/android/gms/auth/RecoveryDecisionCreator.html">RecoveryDecisionCreator</a>
- </span>
- CREATOR
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-
- </div>
-</div>
-
-
-
-<A NAME="isRecoveryInfoNeeded"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- boolean
- </span>
- isRecoveryInfoNeeded
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>Is <code>true</code> if either the account has no recovery information or it
- was updated long time back (controlled by server, default 1 year).
-</p></div>
-
-
- </div>
-</div>
-
-
-
-<A NAME="isRecoveryInterstitialAllowed"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- boolean
- </span>
- isRecoveryInterstitialAllowed
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>Is <code>true</code> iff the user has permission to update the account.
- Dasher accounts can have recovery information edit disabled by the administrator.
- Eg: @google.com
-</p></div>
-
-
- </div>
-</div>
-
-
-
-<A NAME="recoveryIntent"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- PendingIntent
- </span>
- recoveryIntent
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>A PendingIntent to an activity that gathers recovery information for the given account.
- This intent will be null iff isRecoveryInterstitialAllowed is <code>false</code>.
-</p></div>
-
-
- </div>
-</div>
-
-
-
-<A NAME="recoveryIntentWithoutIntro"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- PendingIntent
- </span>
- recoveryIntentWithoutIntro
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>A PendingIntent to an activity that gathers recovery information for the given account.
- This intent will be null iff isRecoveryInterstitialAllowed is <code>false</code>.
- This intent directly skips to the input activity without showing the intro message.
-</p></div>
-
-
- </div>
-</div>
-
-
-
-<A NAME="showRecoveryInterstitial"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- boolean
- </span>
- showRecoveryInterstitial
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>Represents the decision and should be obeyed by the client. The remaining
- two flags are provided as additional information for one off decisions. This value
- is <code>true</code> iff isRecoveryInfoNeeded is <code>true</code>, isRecoveryInterstitialAllowed is
- <code>true</code> and a specified period (controlled by server, default 2 months) has passed
- since the user was shown a prompt for recovery information on any google property
- (Android, Web, etc.)
-</p></div>
-
-
- </div>
-</div>
-
-
-
-
<!-- Public ctors -->
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<h2>Public Constructors</h2>
-
-
-
-<A NAME="RecoveryDecision()"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
-
-
-
- </span>
- <span class="sympad">RecoveryDecision</span>
- <span class="normal">()</span>
- </h4>
- <div class="api-level">
- <div></div>
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
- </div>
-</div>
-
-
-
-
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<!-- Protected ctors -->
@@ -1560,87 +1309,78 @@
-<A NAME="describeContents()"></A>
+<A NAME="get(int)"></A>
-<div class="jd-details api apilevel-">
+<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
- public
-
-
-
-
- int
+ public
+
+
+
+
+ <a href="/reference/com/google/android/gms/drive/Metadata.html">Metadata</a>
</span>
- <span class="sympad">describeContents</span>
- <span class="normal">()</span>
+ <span class="sympad">get</span>
+ <span class="normal">(int row)</span>
</h4>
<div class="api-level">
<div></div>
-
-
+
+
</div>
<div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+ <div class="jd-tagdata jd-tagdescr"><p>Get the item at the specified position. Note that the objects returned from subsequent
+ invocations of this method for the same position may not be identical objects, but will be
+ equal in value. In other words:
+ <p>
+ <code>buffer.get(i) == buffer.get(i)</code> may return false.
+ <p>
+ <code>buffer.get(i).equals(buffer.get(i))</code> will return true.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>row</td>
+ <td>The position of the item to retrieve.</td>
+ </tr>
+ </table>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>the item at <code>position</code> in this buffer.
+</li></ul>
+ </div>
</div>
</div>
-<A NAME="getVersionCode()"></A>
+<A NAME="getNextPageToken()"></A>
-<div class="jd-details api apilevel-">
+<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
- public
-
-
-
-
- int
+ public
+
+
+
+
+ String
</span>
- <span class="sympad">getVersionCode</span>
+ <span class="sympad">getNextPageToken</span>
<span class="normal">()</span>
</h4>
<div class="api-level">
<div></div>
-
-
+
+
</div>
<div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p></p></div>
- </div>
-</div>
-
-
-<A NAME="writeToParcel(android.os.Parcel, int)"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
-
-
- void
- </span>
- <span class="sympad">writeToParcel</span>
- <span class="normal">(Parcel out, int flags)</span>
- </h4>
- <div class="api-level">
- <div></div>
-
-
-
- </div>
- <div class="jd-details-descr">
-
<div class="jd-tagdata jd-tagdescr"><p></p></div>
</div>
@@ -1658,17 +1398,17 @@
<A NAME="navbar_top"></A>
<div id="footer" class="wrap" >
-
+
<div id="copyright">
-
+
Except as noted, this content is licensed under <a
- href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.
+ href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.
For details and restrictions, see the <a href="/license.html">
Content License</a>.
</div>
<div id="build_info">
-
+
<script src="/timestamp.js" type="text/javascript"></script>
<script>document.write(BUILD_TIMESTAMP)</script>
@@ -1676,7 +1416,7 @@
<div id="footerlinks">
-
+
<p>
<a href="/about/index.html">About Android</a> |
<a href="/legal.html">Legal</a> |
@@ -1689,7 +1429,7 @@
</div><!-- end doc-content -->
-</div> <!-- end body-content -->
+</div> <!-- end body-content -->
diff --git a/docs/html/reference/com/google/android/gms/auth/RecoveryDecision.html b/docs/html/reference/com/google/android/gms/drive/MetadataChangeSet.Builder.html
similarity index 66%
copy from docs/html/reference/com/google/android/gms/auth/RecoveryDecision.html
copy to docs/html/reference/com/google/android/gms/drive/MetadataChangeSet.Builder.html
index 59a1346..2aac6f6 100644
--- a/docs/html/reference/com/google/android/gms/auth/RecoveryDecision.html
+++ b/docs/html/reference/com/google/android/gms/drive/MetadataChangeSet.Builder.html
@@ -83,7 +83,7 @@
<meta name="viewport" content="width=device-width" />
<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
-<title>RecoveryDecision | Android Developers</title>
+<title>MetadataChangeSet.Builder | Android Developers</title>
<!-- STYLESHEETS -->
<link rel="stylesheet"
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -128,7 +129,7 @@
<img src="/assets/images/dac_logo.png" width="123" height="25" alt="Android Developers" />
</a>
<div class="btn-quicknav" id="btn-quicknav">
- <a href="#" class="arrow-inactive">Quicknav</a>
+ <a href="#" class="arrow-inactive">Quicknav</a>
<a href="#" class="arrow-active">Quicknav</a>
</div>
</div>
@@ -140,7 +141,7 @@
ru-lang="Проектирование"
ko-lang="디자인"
ja-lang="設計"
- es-lang="Diseñar"
+ es-lang="Diseñar"
>Design</a></li>
<li class="develop"><a href="/develop/index.html"
zh-tw-lang="開發"
@@ -148,7 +149,7 @@
ru-lang="Разработка"
ko-lang="개발"
ja-lang="開発"
- es-lang="Desarrollar"
+ es-lang="Desarrollar"
>Develop</a></li>
<li class="distribute last"><a href="/distribute/index.html"
zh-tw-lang="發佈"
@@ -156,10 +157,10 @@
ru-lang="Распространение"
ko-lang="배포"
ja-lang="配布"
- es-lang="Distribuir"
+ es-lang="Distribuir"
>Distribute</a></li>
</ul>
-
+
<!-- New Search -->
<div class="menu-container">
<div class="moremenu">
@@ -180,9 +181,9 @@
<li class="active"><a>Android Developers</a></li>
<li><a href="http://source.android.com">Android Open Source Project</a></li>
</ul>
-
-
-
+
+
+
<div class="header">Language</div>
<div id="language" class="locales">
<select name="language" onChange="changeLangPref(this.value, true)">
@@ -200,8 +201,8 @@
loadLangPref();
//-->
</script>
-
-
+
+
<br class="clearfix" />
@@ -215,7 +216,7 @@
<form onsubmit="return submit_search()">
<input id="search_autocomplete" type="text" value="" autocomplete="off" name="q"
onfocus="search_focus_changed(this, true)" onblur="search_focus_changed(this, false)"
-onkeydown="return search_changed(event, true, '/')"
+onkeydown="return search_changed(event, true, '/')"
onkeyup="return search_changed(event, false, '/')" />
</form>
<div class="right"></div>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -254,8 +257,8 @@
</div>
<!-- /New Search>
-
-
+
+
<!-- Expanded quicknav -->
<div id="quicknav" class="col-9">
<ul>
@@ -277,15 +280,15 @@
ru-lang="Курсы"
ko-lang="교육"
ja-lang="トレーニング"
- es-lang="Capacitación"
+ es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
ko-lang="API 가이드"
ja-lang="API ガイド"
- es-lang="Guías de la API"
+ es-lang="Guías de la API"
>API Guides</a></li>
<li><a href="/reference/packages.html"
zh-tw-lang="參考資源"
@@ -293,7 +296,7 @@
ru-lang="Справочник"
ko-lang="참조문서"
ja-lang="リファレンス"
- es-lang="Referencia"
+ es-lang="Referencia"
>Reference</a></li>
<li><a href="/tools/index.html"
zh-tw-lang="相關工具"
@@ -301,13 +304,16 @@
ru-lang="Инструменты"
ko-lang="도구"
ja-lang="ツール"
- es-lang="Herramientas"
+ es-lang="Herramientas"
>Tools</a>
<ul><li><a href="/sdk/index.html">Get the SDK</a></li></ul>
</li>
<li><a href="/google/index.html">Google Services</a>
</li>
-
+
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -326,15 +332,15 @@
</div>
</div>
<!-- /Header -->
-
-
+
+
<div id="searchResults" class="wrap" style="display:none;">
<h2 id="searchTitle">Results</h2>
<div id="leftSearchControl" class="search-control">Loading...</div>
</div>
-
-
-
+
+
+
<!-- Secondary x-nav -->
<div id="nav-x">
<div class="wrap">
@@ -345,15 +351,15 @@
ru-lang="Курсы"
ko-lang="교육"
ja-lang="トレーニング"
- es-lang="Capacitación"
+ es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
ko-lang="API 가이드"
ja-lang="API ガイド"
- es-lang="Guías de la API"
+ es-lang="Guías de la API"
>API Guides</a></li>
<li class="reference"><a href="/reference/packages.html"
zh-tw-lang="參考資源"
@@ -361,7 +367,7 @@
ru-lang="Справочник"
ko-lang="참조문서"
ja-lang="リファレンス"
- es-lang="Referencia"
+ es-lang="Referencia"
>Reference</a></li>
<li class="tools"><a href="/tools/index.html"
zh-tw-lang="相關工具"
@@ -374,21 +380,25 @@
<li class="google"><a href="/google/index.html"
>Google Services</a>
</li>
-
+
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
-
+
</div>
<!-- /Sendondary x-nav -->
-
-
-
+
+
+
<div class="wrap clearfix" id="body-content">
<div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
<div id="devdoc-nav" class="scroll-pane">
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
@@ -618,12 +631,12 @@
</script>
-
+
</div>
<script type="text/javascript">
showGoogleRefTree();
-
+
</script>
</div> <!-- end side-nav -->
<script>
@@ -633,7 +646,7 @@
</script>
-
+
@@ -643,21 +656,12 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
<div class="sum-details-links">
@@ -669,22 +673,16 @@
- <a href="#inhconstants">Inherited Constants</a>
-
-
-
- | <a href="#lfields">Fields</a>
-
- | <a href="#pubctors">Ctors</a>
-
+ <a href="#pubctors">Ctors</a>
+
| <a href="#pubmethods">Methods</a>
-
+
@@ -694,9 +692,9 @@
</div><!-- end sum-details-links -->
<div class="api-level">
-
-
-
+
+
+
</div>
</div><!-- end api-info-block -->
@@ -706,28 +704,23 @@
<div id="jd-header">
public
-
-
-
+ static
+
+
class
-<h1 itemprop="name">RecoveryDecision</h1>
+<h1 itemprop="name">MetadataChangeSet.Builder</h1>
-
+
extends Object<br/>
-
-
-
-
-
- implements
-
- Parcelable
-
-
-
+
+
+
+
+
+
</div><!-- end header -->
@@ -739,18 +732,18 @@
<tr>
-
+
<td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
</tr>
-
+
<tr>
-
+
<td class="jd-inheritance-space"> ↳</td>
-
- <td colspan="1" class="jd-inheritance-class-cell">com.google.android.gms.auth.RecoveryDecision</td>
+
+ <td colspan="1" class="jd-inheritance-class-cell">com.google.android.gms.drive.MetadataChangeSet.Builder</td>
</tr>
-
+
</table>
@@ -763,6 +756,16 @@
<div class="jd-descr">
+<h2>Class Overview</h2>
+<p class="caution">
+ <strong>Note:</strong> The Google Drive Android API is currently in <strong>developer
+ preview</strong>. Applications compiled using this version of the API will
+ continue to operate on devices using future versions of Google Play services;
+ however, changes to the API are expected in future releases.
+</p>
+<p itemprop="articleBody">A builder for creating a new MetadataChangeSet.
+</p>
+
@@ -804,130 +807,6 @@
-<!-- =========== ENUM CONSTANT SUMMARY =========== -->
-<table id="inhconstants" class="jd-sumtable"><tr><th>
- <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
- <div style="clear:left;">Inherited Constants</div></th></tr>
-
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-
- <a href="#" onclick="return toggleInherited(this, null)" id="inherited-constants-android.os.Parcelable" class="jd-expando-trigger closed"
- ><img id="inherited-constants-android.os.Parcelable-trigger"
- src="/assets/images/triangle-closed.png"
- class="jd-expando-trigger-img" /></a>From interface
-android.os.Parcelable
-<div id="inherited-constants-android.os.Parcelable">
- <div id="inherited-constants-android.os.Parcelable-list"
- class="jd-inheritedlinks">
- </div>
- <div id="inherited-constants-android.os.Parcelable-summary" style="display: none;">
- <table class="jd-sumtable-expando">
-
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol">int</td>
- <td class="jd-linkcol">CONTENTS_FILE_DESCRIPTOR</td>
- <td class="jd-descrcol" width="100%"></td>
- </tr>
-
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol">int</td>
- <td class="jd-linkcol">PARCELABLE_WRITE_RETURN_VALUE</td>
- <td class="jd-descrcol" width="100%"></td>
- </tr>
-
-
-</table>
- </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-
-
-<!-- =========== FIELD SUMMARY =========== -->
-<table id="lfields" class="jd-sumtable"><tr><th colspan="12">Fields</th></tr>
-
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
- static
- final
- <a href="/reference/com/google/android/gms/auth/RecoveryDecisionCreator.html">RecoveryDecisionCreator</a></nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#CREATOR">CREATOR</a></td>
- <td class="jd-descrcol" width="100%"></td>
- </tr>
-
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- boolean</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#isRecoveryInfoNeeded">isRecoveryInfoNeeded</a></td>
- <td class="jd-descrcol" width="100%">Is <code>true</code> if either the account has no recovery information or it
- was updated long time back (controlled by server, default 1 year).</td>
- </tr>
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- boolean</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#isRecoveryInterstitialAllowed">isRecoveryInterstitialAllowed</a></td>
- <td class="jd-descrcol" width="100%">Is <code>true</code> iff the user has permission to update the account.</td>
- </tr>
-
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- PendingIntent</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#recoveryIntent">recoveryIntent</a></td>
- <td class="jd-descrcol" width="100%">A PendingIntent to an activity that gathers recovery information for the given account.</td>
- </tr>
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- PendingIntent</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#recoveryIntentWithoutIntro">recoveryIntentWithoutIntro</a></td>
- <td class="jd-descrcol" width="100%">A PendingIntent to an activity that gathers recovery information for the given account.</td>
- </tr>
-
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- boolean</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#showRecoveryInterstitial">showRecoveryInterstitial</a></td>
- <td class="jd-descrcol" width="100%">Represents the decision and should be obeyed by the client.</td>
- </tr>
-
-
-
-</table>
@@ -940,19 +819,19 @@
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#RecoveryDecision()">RecoveryDecision</a></span>()</nobr>
-
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/MetadataChangeSet.Builder.html#MetadataChangeSet.Builder()">MetadataChangeSet.Builder</a></span>()</nobr>
+
</td></tr>
@@ -969,51 +848,67 @@
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
- int</nobr>
+
+
+
+
+
+ <a href="/reference/com/google/android/gms/drive/MetadataChangeSet.html">MetadataChangeSet</a></nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#describeContents()">describeContents</a></span>()</nobr>
-
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/MetadataChangeSet.Builder.html#build()">build</a></span>()</nobr>
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
- int</nobr>
+
+
+
+
+
+ <a href="/reference/com/google/android/gms/drive/MetadataChangeSet.Builder.html">MetadataChangeSet.Builder</a></nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#getVersionCode()">getVersionCode</a></span>()</nobr>
-
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/MetadataChangeSet.Builder.html#setMimeType(java.lang.String)">setMimeType</a></span>(String mimeType)</nobr>
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
- void</nobr>
+
+
+
+
+
+ <a href="/reference/com/google/android/gms/drive/MetadataChangeSet.Builder.html">MetadataChangeSet.Builder</a></nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#writeToParcel(android.os.Parcel, int)">writeToParcel</a></span>(Parcel out, int flags)</nobr>
-
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/MetadataChangeSet.Builder.html#setStarred(boolean)">setStarred</a></span>(boolean starred)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ <a href="/reference/com/google/android/gms/drive/MetadataChangeSet.Builder.html">MetadataChangeSet.Builder</a></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/MetadataChangeSet.Builder.html#setTitle(java.lang.String)">setTitle</a></span>(String title)</nobr>
+
</td></tr>
@@ -1048,240 +943,182 @@
</div>
<div id="inherited-methods-java.lang.Object-summary" style="display: none;">
<table class="jd-sumtable-expando">
-
-
+
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
Object</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">clone</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
boolean</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">equals</span>(Object arg0)</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">finalize</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
Class<?></nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">getClass</span>()</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
int</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">hashCode</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">notify</span>()</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">notifyAll</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
String</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">toString</span>()</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">wait</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">wait</span>(long arg0)</nobr>
-
- </td></tr>
-
-</table>
- </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
- <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-android.os.Parcelable" class="jd-expando-trigger closed"
- ><img id="inherited-methods-android.os.Parcelable-trigger"
- src="/assets/images/triangle-closed.png"
- class="jd-expando-trigger-img" /></a>
-From interface
-
- android.os.Parcelable
-
-<div id="inherited-methods-android.os.Parcelable">
- <div id="inherited-methods-android.os.Parcelable-list"
- class="jd-inheritedlinks">
- </div>
- <div id="inherited-methods-android.os.Parcelable-summary" style="display: none;">
- <table class="jd-sumtable-expando">
-
-
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
- abstract
-
-
-
-
- int</nobr>
- </td>
- <td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad">describeContents</span>()</nobr>
-
- </td></tr>
-
-
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol"><nobr>
- abstract
-
-
-
-
- void</nobr>
- </td>
- <td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad">writeToParcel</span>(Parcel arg0, int arg1)</nobr>
-
</td></tr>
@@ -1317,197 +1154,6 @@
<!-- Fields -->
-<!-- ========= FIELD DETAIL ======== -->
-<h2>Fields</h2>
-
-
-
-
-<A NAME="CREATOR"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
- static
- final
- <a href="/reference/com/google/android/gms/auth/RecoveryDecisionCreator.html">RecoveryDecisionCreator</a>
- </span>
- CREATOR
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-
- </div>
-</div>
-
-
-
-<A NAME="isRecoveryInfoNeeded"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- boolean
- </span>
- isRecoveryInfoNeeded
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>Is <code>true</code> if either the account has no recovery information or it
- was updated long time back (controlled by server, default 1 year).
-</p></div>
-
-
- </div>
-</div>
-
-
-
-<A NAME="isRecoveryInterstitialAllowed"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- boolean
- </span>
- isRecoveryInterstitialAllowed
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>Is <code>true</code> iff the user has permission to update the account.
- Dasher accounts can have recovery information edit disabled by the administrator.
- Eg: @google.com
-</p></div>
-
-
- </div>
-</div>
-
-
-
-<A NAME="recoveryIntent"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- PendingIntent
- </span>
- recoveryIntent
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>A PendingIntent to an activity that gathers recovery information for the given account.
- This intent will be null iff isRecoveryInterstitialAllowed is <code>false</code>.
-</p></div>
-
-
- </div>
-</div>
-
-
-
-<A NAME="recoveryIntentWithoutIntro"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- PendingIntent
- </span>
- recoveryIntentWithoutIntro
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>A PendingIntent to an activity that gathers recovery information for the given account.
- This intent will be null iff isRecoveryInterstitialAllowed is <code>false</code>.
- This intent directly skips to the input activity without showing the intro message.
-</p></div>
-
-
- </div>
-</div>
-
-
-
-<A NAME="showRecoveryInterstitial"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- boolean
- </span>
- showRecoveryInterstitial
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>Represents the decision and should be obeyed by the client. The remaining
- two flags are provided as additional information for one off decisions. This value
- is <code>true</code> iff isRecoveryInfoNeeded is <code>true</code>, isRecoveryInterstitialAllowed is
- <code>true</code> and a specified period (controlled by server, default 2 months) has passed
- since the user was shown a prompt for recovery information on any google property
- (Android, Web, etc.)
-</p></div>
-
-
- </div>
-</div>
-
-
-
-
<!-- Public ctors -->
@@ -1516,29 +1162,29 @@
-<A NAME="RecoveryDecision()"></A>
+<A NAME="MetadataChangeSet.Builder()"></A>
-<div class="jd-details api apilevel-">
+<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
- public
-
-
-
-
-
+ public
+
+
+
+
+
</span>
- <span class="sympad">RecoveryDecision</span>
+ <span class="sympad">MetadataChangeSet.Builder</span>
<span class="normal">()</span>
</h4>
<div class="api-level">
<div></div>
-
-
+
+
</div>
<div class="jd-details-descr">
-
+
<div class="jd-tagdata jd-tagdescr"><p></p></div>
</div>
@@ -1560,87 +1206,116 @@
-<A NAME="describeContents()"></A>
+<A NAME="build()"></A>
-<div class="jd-details api apilevel-">
+<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
- public
-
-
-
-
- int
+ public
+
+
+
+
+ <a href="/reference/com/google/android/gms/drive/MetadataChangeSet.html">MetadataChangeSet</a>
</span>
- <span class="sympad">describeContents</span>
+ <span class="sympad">build</span>
<span class="normal">()</span>
</h4>
<div class="api-level">
<div></div>
-
-
+
+
</div>
<div class="jd-details-descr">
-
+
<div class="jd-tagdata jd-tagdescr"><p></p></div>
</div>
</div>
-<A NAME="getVersionCode()"></A>
+<A NAME="setMimeType(java.lang.String)"></A>
-<div class="jd-details api apilevel-">
+<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
- public
-
-
-
-
- int
+ public
+
+
+
+
+ <a href="/reference/com/google/android/gms/drive/MetadataChangeSet.Builder.html">MetadataChangeSet.Builder</a>
</span>
- <span class="sympad">getVersionCode</span>
- <span class="normal">()</span>
+ <span class="sympad">setMimeType</span>
+ <span class="normal">(String mimeType)</span>
</h4>
<div class="api-level">
<div></div>
-
-
+
+
</div>
<div class="jd-details-descr">
-
+
<div class="jd-tagdata jd-tagdescr"><p></p></div>
</div>
</div>
-<A NAME="writeToParcel(android.os.Parcel, int)"></A>
+<A NAME="setStarred(boolean)"></A>
-<div class="jd-details api apilevel-">
+<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
- public
-
-
-
-
- void
+ public
+
+
+
+
+ <a href="/reference/com/google/android/gms/drive/MetadataChangeSet.Builder.html">MetadataChangeSet.Builder</a>
</span>
- <span class="sympad">writeToParcel</span>
- <span class="normal">(Parcel out, int flags)</span>
+ <span class="sympad">setStarred</span>
+ <span class="normal">(boolean starred)</span>
</h4>
<div class="api-level">
<div></div>
-
-
+
+
</div>
<div class="jd-details-descr">
-
+
+ <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+ </div>
+</div>
+
+
+<A NAME="setTitle(java.lang.String)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ <a href="/reference/com/google/android/gms/drive/MetadataChangeSet.Builder.html">MetadataChangeSet.Builder</a>
+ </span>
+ <span class="sympad">setTitle</span>
+ <span class="normal">(String title)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
<div class="jd-tagdata jd-tagdescr"><p></p></div>
</div>
@@ -1658,17 +1333,17 @@
<A NAME="navbar_top"></A>
<div id="footer" class="wrap" >
-
+
<div id="copyright">
-
+
Except as noted, this content is licensed under <a
- href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.
+ href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.
For details and restrictions, see the <a href="/license.html">
Content License</a>.
</div>
<div id="build_info">
-
+
<script src="/timestamp.js" type="text/javascript"></script>
<script>document.write(BUILD_TIMESTAMP)</script>
@@ -1676,7 +1351,7 @@
<div id="footerlinks">
-
+
<p>
<a href="/about/index.html">About Android</a> |
<a href="/legal.html">Legal</a> |
@@ -1689,7 +1364,7 @@
</div><!-- end doc-content -->
-</div> <!-- end body-content -->
+</div> <!-- end body-content -->
diff --git a/docs/html/reference/com/google/android/gms/auth/RecoveryDecision.html b/docs/html/reference/com/google/android/gms/drive/MetadataChangeSet.html
similarity index 63%
copy from docs/html/reference/com/google/android/gms/auth/RecoveryDecision.html
copy to docs/html/reference/com/google/android/gms/drive/MetadataChangeSet.html
index 59a1346..deb6cbd 100644
--- a/docs/html/reference/com/google/android/gms/auth/RecoveryDecision.html
+++ b/docs/html/reference/com/google/android/gms/drive/MetadataChangeSet.html
@@ -83,7 +83,7 @@
<meta name="viewport" content="width=device-width" />
<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
-<title>RecoveryDecision | Android Developers</title>
+<title>MetadataChangeSet | Android Developers</title>
<!-- STYLESHEETS -->
<link rel="stylesheet"
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -128,7 +129,7 @@
<img src="/assets/images/dac_logo.png" width="123" height="25" alt="Android Developers" />
</a>
<div class="btn-quicknav" id="btn-quicknav">
- <a href="#" class="arrow-inactive">Quicknav</a>
+ <a href="#" class="arrow-inactive">Quicknav</a>
<a href="#" class="arrow-active">Quicknav</a>
</div>
</div>
@@ -140,7 +141,7 @@
ru-lang="Проектирование"
ko-lang="디자인"
ja-lang="設計"
- es-lang="Diseñar"
+ es-lang="Diseñar"
>Design</a></li>
<li class="develop"><a href="/develop/index.html"
zh-tw-lang="開發"
@@ -148,7 +149,7 @@
ru-lang="Разработка"
ko-lang="개발"
ja-lang="開発"
- es-lang="Desarrollar"
+ es-lang="Desarrollar"
>Develop</a></li>
<li class="distribute last"><a href="/distribute/index.html"
zh-tw-lang="發佈"
@@ -156,10 +157,10 @@
ru-lang="Распространение"
ko-lang="배포"
ja-lang="配布"
- es-lang="Distribuir"
+ es-lang="Distribuir"
>Distribute</a></li>
</ul>
-
+
<!-- New Search -->
<div class="menu-container">
<div class="moremenu">
@@ -180,9 +181,9 @@
<li class="active"><a>Android Developers</a></li>
<li><a href="http://source.android.com">Android Open Source Project</a></li>
</ul>
-
-
-
+
+
+
<div class="header">Language</div>
<div id="language" class="locales">
<select name="language" onChange="changeLangPref(this.value, true)">
@@ -200,8 +201,8 @@
loadLangPref();
//-->
</script>
-
-
+
+
<br class="clearfix" />
@@ -215,7 +216,7 @@
<form onsubmit="return submit_search()">
<input id="search_autocomplete" type="text" value="" autocomplete="off" name="q"
onfocus="search_focus_changed(this, true)" onblur="search_focus_changed(this, false)"
-onkeydown="return search_changed(event, true, '/')"
+onkeydown="return search_changed(event, true, '/')"
onkeyup="return search_changed(event, false, '/')" />
</form>
<div class="right"></div>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -254,8 +257,8 @@
</div>
<!-- /New Search>
-
-
+
+
<!-- Expanded quicknav -->
<div id="quicknav" class="col-9">
<ul>
@@ -277,15 +280,15 @@
ru-lang="Курсы"
ko-lang="교육"
ja-lang="トレーニング"
- es-lang="Capacitación"
+ es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
ko-lang="API 가이드"
ja-lang="API ガイド"
- es-lang="Guías de la API"
+ es-lang="Guías de la API"
>API Guides</a></li>
<li><a href="/reference/packages.html"
zh-tw-lang="參考資源"
@@ -293,7 +296,7 @@
ru-lang="Справочник"
ko-lang="참조문서"
ja-lang="リファレンス"
- es-lang="Referencia"
+ es-lang="Referencia"
>Reference</a></li>
<li><a href="/tools/index.html"
zh-tw-lang="相關工具"
@@ -301,13 +304,16 @@
ru-lang="Инструменты"
ko-lang="도구"
ja-lang="ツール"
- es-lang="Herramientas"
+ es-lang="Herramientas"
>Tools</a>
<ul><li><a href="/sdk/index.html">Get the SDK</a></li></ul>
</li>
<li><a href="/google/index.html">Google Services</a>
</li>
-
+
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -326,15 +332,15 @@
</div>
</div>
<!-- /Header -->
-
-
+
+
<div id="searchResults" class="wrap" style="display:none;">
<h2 id="searchTitle">Results</h2>
<div id="leftSearchControl" class="search-control">Loading...</div>
</div>
-
-
-
+
+
+
<!-- Secondary x-nav -->
<div id="nav-x">
<div class="wrap">
@@ -345,15 +351,15 @@
ru-lang="Курсы"
ko-lang="교육"
ja-lang="トレーニング"
- es-lang="Capacitación"
+ es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
ko-lang="API 가이드"
ja-lang="API ガイド"
- es-lang="Guías de la API"
+ es-lang="Guías de la API"
>API Guides</a></li>
<li class="reference"><a href="/reference/packages.html"
zh-tw-lang="參考資源"
@@ -361,7 +367,7 @@
ru-lang="Справочник"
ko-lang="참조문서"
ja-lang="リファレンス"
- es-lang="Referencia"
+ es-lang="Referencia"
>Reference</a></li>
<li class="tools"><a href="/tools/index.html"
zh-tw-lang="相關工具"
@@ -374,21 +380,25 @@
<li class="google"><a href="/google/index.html"
>Google Services</a>
</li>
-
+
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
-
+
</div>
<!-- /Sendondary x-nav -->
-
-
-
+
+
+
<div class="wrap clearfix" id="body-content">
<div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
<div id="devdoc-nav" class="scroll-pane">
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
@@ -618,12 +631,12 @@
</script>
-
+
</div>
<script type="text/javascript">
showGoogleRefTree();
-
+
</script>
</div> <!-- end side-nav -->
<script>
@@ -633,7 +646,7 @@
</script>
-
+
@@ -643,48 +656,33 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
<div class="sum-details-links">
Summary:
+ <a href="#nestedclasses">Nested Classes</a>
- <a href="#inhconstants">Inherited Constants</a>
-
-
-
- | <a href="#lfields">Fields</a>
-
- | <a href="#pubctors">Ctors</a>
-
+
| <a href="#pubmethods">Methods</a>
-
+
@@ -694,9 +692,9 @@
</div><!-- end sum-details-links -->
<div class="api-level">
-
-
-
+
+
+
</div>
</div><!-- end api-info-block -->
@@ -706,28 +704,23 @@
<div id="jd-header">
public
-
-
-
+
+ final
+
class
-<h1 itemprop="name">RecoveryDecision</h1>
+<h1 itemprop="name">MetadataChangeSet</h1>
-
+
extends Object<br/>
-
-
-
-
-
- implements
-
- Parcelable
-
-
-
+
+
+
+
+
+
</div><!-- end header -->
@@ -739,18 +732,18 @@
<tr>
-
+
<td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
</tr>
-
+
<tr>
-
+
<td class="jd-inheritance-space"> ↳</td>
-
- <td colspan="1" class="jd-inheritance-class-cell">com.google.android.gms.auth.RecoveryDecision</td>
+
+ <td colspan="1" class="jd-inheritance-class-cell">com.google.android.gms.drive.MetadataChangeSet</td>
</tr>
-
+
</table>
@@ -763,6 +756,16 @@
<div class="jd-descr">
+<h2>Class Overview</h2>
+<p class="caution">
+ <strong>Note:</strong> The Google Drive Android API is currently in <strong>developer
+ preview</strong>. Applications compiled using this version of the API will
+ continue to operate on devices using future versions of Google Play services;
+ however, changes to the API are expected in future releases.
+</p>
+<p itemprop="articleBody">A collection of metadata changes. Any fields with null values will retain their current value.
+</p>
+
@@ -791,143 +794,21 @@
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<table id="nestedclasses" class="jd-sumtable"><tr><th colspan="12">Nested Classes</th></tr>
-
-
-
-
-
-
-
-
-
-
-<!-- =========== ENUM CONSTANT SUMMARY =========== -->
-<table id="inhconstants" class="jd-sumtable"><tr><th>
- <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
- <div style="clear:left;">Inherited Constants</div></th></tr>
-
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-
- <a href="#" onclick="return toggleInherited(this, null)" id="inherited-constants-android.os.Parcelable" class="jd-expando-trigger closed"
- ><img id="inherited-constants-android.os.Parcelable-trigger"
- src="/assets/images/triangle-closed.png"
- class="jd-expando-trigger-img" /></a>From interface
-android.os.Parcelable
-<div id="inherited-constants-android.os.Parcelable">
- <div id="inherited-constants-android.os.Parcelable-list"
- class="jd-inheritedlinks">
- </div>
- <div id="inherited-constants-android.os.Parcelable-summary" style="display: none;">
- <table class="jd-sumtable-expando">
-
-
-
<tr class="alt-color api apilevel-" >
- <td class="jd-typecol">int</td>
- <td class="jd-linkcol">CONTENTS_FILE_DESCRIPTOR</td>
- <td class="jd-descrcol" width="100%"></td>
+ <td class="jd-typecol"><nobr>
+
+
+
+
+ class</nobr></td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/drive/MetadataChangeSet.Builder.html">MetadataChangeSet.Builder</a></td>
+ <td class="jd-descrcol" width="100%">A builder for creating a new MetadataChangeSet. </td>
</tr>
-
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol">int</td>
- <td class="jd-linkcol">PARCELABLE_WRITE_RETURN_VALUE</td>
- <td class="jd-descrcol" width="100%"></td>
- </tr>
-
-
-</table>
- </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-
-
-<!-- =========== FIELD SUMMARY =========== -->
-<table id="lfields" class="jd-sumtable"><tr><th colspan="12">Fields</th></tr>
-
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
- static
- final
- <a href="/reference/com/google/android/gms/auth/RecoveryDecisionCreator.html">RecoveryDecisionCreator</a></nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#CREATOR">CREATOR</a></td>
- <td class="jd-descrcol" width="100%"></td>
- </tr>
-
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- boolean</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#isRecoveryInfoNeeded">isRecoveryInfoNeeded</a></td>
- <td class="jd-descrcol" width="100%">Is <code>true</code> if either the account has no recovery information or it
- was updated long time back (controlled by server, default 1 year).</td>
- </tr>
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- boolean</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#isRecoveryInterstitialAllowed">isRecoveryInterstitialAllowed</a></td>
- <td class="jd-descrcol" width="100%">Is <code>true</code> iff the user has permission to update the account.</td>
- </tr>
-
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- PendingIntent</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#recoveryIntent">recoveryIntent</a></td>
- <td class="jd-descrcol" width="100%">A PendingIntent to an activity that gathers recovery information for the given account.</td>
- </tr>
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- PendingIntent</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#recoveryIntentWithoutIntro">recoveryIntentWithoutIntro</a></td>
- <td class="jd-descrcol" width="100%">A PendingIntent to an activity that gathers recovery information for the given account.</td>
- </tr>
-
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- boolean</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#showRecoveryInterstitial">showRecoveryInterstitial</a></td>
- <td class="jd-descrcol" width="100%">Represents the decision and should be obeyed by the client.</td>
- </tr>
-
-
-
-</table>
@@ -935,29 +816,22 @@
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
-
-
-
-
-
- </nobr>
- </td>
- <td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#RecoveryDecision()">RecoveryDecision</a></span>()</nobr>
-
- </td></tr>
-</table>
+
+
+
+
+
+
+
+
+
+
@@ -969,51 +843,51 @@
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
- int</nobr>
+
+
+
+
+
+ String</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#describeContents()">describeContents</a></span>()</nobr>
-
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/MetadataChangeSet.html#getMimeType()">getMimeType</a></span>()</nobr>
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
- int</nobr>
+
+
+
+
+
+ String</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#getVersionCode()">getVersionCode</a></span>()</nobr>
-
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/MetadataChangeSet.html#getTitle()">getTitle</a></span>()</nobr>
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
- void</nobr>
+
+
+
+
+
+ Boolean</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#writeToParcel(android.os.Parcel, int)">writeToParcel</a></span>(Parcel out, int flags)</nobr>
-
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/MetadataChangeSet.html#isStarred()">isStarred</a></span>()</nobr>
+
</td></tr>
@@ -1048,240 +922,182 @@
</div>
<div id="inherited-methods-java.lang.Object-summary" style="display: none;">
<table class="jd-sumtable-expando">
-
-
+
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
Object</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">clone</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
boolean</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">equals</span>(Object arg0)</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">finalize</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
Class<?></nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">getClass</span>()</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
int</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">hashCode</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">notify</span>()</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">notifyAll</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
String</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">toString</span>()</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">wait</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">wait</span>(long arg0)</nobr>
-
- </td></tr>
-
-</table>
- </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
- <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-android.os.Parcelable" class="jd-expando-trigger closed"
- ><img id="inherited-methods-android.os.Parcelable-trigger"
- src="/assets/images/triangle-closed.png"
- class="jd-expando-trigger-img" /></a>
-From interface
-
- android.os.Parcelable
-
-<div id="inherited-methods-android.os.Parcelable">
- <div id="inherited-methods-android.os.Parcelable-list"
- class="jd-inheritedlinks">
- </div>
- <div id="inherited-methods-android.os.Parcelable-summary" style="display: none;">
- <table class="jd-sumtable-expando">
-
-
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
- abstract
-
-
-
-
- int</nobr>
- </td>
- <td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad">describeContents</span>()</nobr>
-
- </td></tr>
-
-
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol"><nobr>
- abstract
-
-
-
-
- void</nobr>
- </td>
- <td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad">writeToParcel</span>(Parcel arg0, int arg1)</nobr>
-
</td></tr>
@@ -1317,236 +1133,9 @@
<!-- Fields -->
-<!-- ========= FIELD DETAIL ======== -->
-<h2>Fields</h2>
-
-
-
-
-<A NAME="CREATOR"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
- static
- final
- <a href="/reference/com/google/android/gms/auth/RecoveryDecisionCreator.html">RecoveryDecisionCreator</a>
- </span>
- CREATOR
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-
- </div>
-</div>
-
-
-
-<A NAME="isRecoveryInfoNeeded"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- boolean
- </span>
- isRecoveryInfoNeeded
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>Is <code>true</code> if either the account has no recovery information or it
- was updated long time back (controlled by server, default 1 year).
-</p></div>
-
-
- </div>
-</div>
-
-
-
-<A NAME="isRecoveryInterstitialAllowed"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- boolean
- </span>
- isRecoveryInterstitialAllowed
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>Is <code>true</code> iff the user has permission to update the account.
- Dasher accounts can have recovery information edit disabled by the administrator.
- Eg: @google.com
-</p></div>
-
-
- </div>
-</div>
-
-
-
-<A NAME="recoveryIntent"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- PendingIntent
- </span>
- recoveryIntent
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>A PendingIntent to an activity that gathers recovery information for the given account.
- This intent will be null iff isRecoveryInterstitialAllowed is <code>false</code>.
-</p></div>
-
-
- </div>
-</div>
-
-
-
-<A NAME="recoveryIntentWithoutIntro"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- PendingIntent
- </span>
- recoveryIntentWithoutIntro
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>A PendingIntent to an activity that gathers recovery information for the given account.
- This intent will be null iff isRecoveryInterstitialAllowed is <code>false</code>.
- This intent directly skips to the input activity without showing the intro message.
-</p></div>
-
-
- </div>
-</div>
-
-
-
-<A NAME="showRecoveryInterstitial"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- boolean
- </span>
- showRecoveryInterstitial
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>Represents the decision and should be obeyed by the client. The remaining
- two flags are provided as additional information for one off decisions. This value
- is <code>true</code> iff isRecoveryInfoNeeded is <code>true</code>, isRecoveryInterstitialAllowed is
- <code>true</code> and a specified period (controlled by server, default 2 months) has passed
- since the user was shown a prompt for recovery information on any google property
- (Android, Web, etc.)
-</p></div>
-
-
- </div>
-</div>
-
-
-
-
<!-- Public ctors -->
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<h2>Public Constructors</h2>
-
-
-
-<A NAME="RecoveryDecision()"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
-
-
-
- </span>
- <span class="sympad">RecoveryDecision</span>
- <span class="normal">()</span>
- </h4>
- <div class="api-level">
- <div></div>
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
- </div>
-</div>
-
-
-
-
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<!-- Protected ctors -->
@@ -1560,87 +1149,87 @@
-<A NAME="describeContents()"></A>
+<A NAME="getMimeType()"></A>
-<div class="jd-details api apilevel-">
+<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
- public
-
-
-
-
- int
+ public
+
+
+
+
+ String
</span>
- <span class="sympad">describeContents</span>
+ <span class="sympad">getMimeType</span>
<span class="normal">()</span>
</h4>
<div class="api-level">
<div></div>
-
-
+
+
</div>
<div class="jd-details-descr">
-
+
<div class="jd-tagdata jd-tagdescr"><p></p></div>
</div>
</div>
-<A NAME="getVersionCode()"></A>
+<A NAME="getTitle()"></A>
-<div class="jd-details api apilevel-">
+<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
- public
-
-
-
-
- int
+ public
+
+
+
+
+ String
</span>
- <span class="sympad">getVersionCode</span>
+ <span class="sympad">getTitle</span>
<span class="normal">()</span>
</h4>
<div class="api-level">
<div></div>
-
-
+
+
</div>
<div class="jd-details-descr">
-
+
<div class="jd-tagdata jd-tagdescr"><p></p></div>
</div>
</div>
-<A NAME="writeToParcel(android.os.Parcel, int)"></A>
+<A NAME="isStarred()"></A>
-<div class="jd-details api apilevel-">
+<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
- public
-
-
-
-
- void
+ public
+
+
+
+
+ Boolean
</span>
- <span class="sympad">writeToParcel</span>
- <span class="normal">(Parcel out, int flags)</span>
+ <span class="sympad">isStarred</span>
+ <span class="normal">()</span>
</h4>
<div class="api-level">
<div></div>
-
-
+
+
</div>
<div class="jd-details-descr">
-
+
<div class="jd-tagdata jd-tagdescr"><p></p></div>
</div>
@@ -1658,17 +1247,17 @@
<A NAME="navbar_top"></A>
<div id="footer" class="wrap" >
-
+
<div id="copyright">
-
+
Except as noted, this content is licensed under <a
- href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.
+ href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.
For details and restrictions, see the <a href="/license.html">
Content License</a>.
</div>
<div id="build_info">
-
+
<script src="/timestamp.js" type="text/javascript"></script>
<script>document.write(BUILD_TIMESTAMP)</script>
@@ -1676,7 +1265,7 @@
<div id="footerlinks">
-
+
<p>
<a href="/about/index.html">About Android</a> |
<a href="/legal.html">Legal</a> |
@@ -1689,7 +1278,7 @@
</div><!-- end doc-content -->
-</div> <!-- end body-content -->
+</div> <!-- end body-content -->
diff --git a/docs/html/reference/com/google/android/gms/auth/RecoveryDecision.html b/docs/html/reference/com/google/android/gms/drive/OpenFileActivityBuilder.html
similarity index 65%
copy from docs/html/reference/com/google/android/gms/auth/RecoveryDecision.html
copy to docs/html/reference/com/google/android/gms/drive/OpenFileActivityBuilder.html
index 59a1346..5487ec6 100644
--- a/docs/html/reference/com/google/android/gms/auth/RecoveryDecision.html
+++ b/docs/html/reference/com/google/android/gms/drive/OpenFileActivityBuilder.html
@@ -83,7 +83,7 @@
<meta name="viewport" content="width=device-width" />
<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
-<title>RecoveryDecision | Android Developers</title>
+<title>OpenFileActivityBuilder | Android Developers</title>
<!-- STYLESHEETS -->
<link rel="stylesheet"
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -128,7 +129,7 @@
<img src="/assets/images/dac_logo.png" width="123" height="25" alt="Android Developers" />
</a>
<div class="btn-quicknav" id="btn-quicknav">
- <a href="#" class="arrow-inactive">Quicknav</a>
+ <a href="#" class="arrow-inactive">Quicknav</a>
<a href="#" class="arrow-active">Quicknav</a>
</div>
</div>
@@ -140,7 +141,7 @@
ru-lang="Проектирование"
ko-lang="디자인"
ja-lang="設計"
- es-lang="Diseñar"
+ es-lang="Diseñar"
>Design</a></li>
<li class="develop"><a href="/develop/index.html"
zh-tw-lang="開發"
@@ -148,7 +149,7 @@
ru-lang="Разработка"
ko-lang="개발"
ja-lang="開発"
- es-lang="Desarrollar"
+ es-lang="Desarrollar"
>Develop</a></li>
<li class="distribute last"><a href="/distribute/index.html"
zh-tw-lang="發佈"
@@ -156,10 +157,10 @@
ru-lang="Распространение"
ko-lang="배포"
ja-lang="配布"
- es-lang="Distribuir"
+ es-lang="Distribuir"
>Distribute</a></li>
</ul>
-
+
<!-- New Search -->
<div class="menu-container">
<div class="moremenu">
@@ -180,9 +181,9 @@
<li class="active"><a>Android Developers</a></li>
<li><a href="http://source.android.com">Android Open Source Project</a></li>
</ul>
-
-
-
+
+
+
<div class="header">Language</div>
<div id="language" class="locales">
<select name="language" onChange="changeLangPref(this.value, true)">
@@ -200,8 +201,8 @@
loadLangPref();
//-->
</script>
-
-
+
+
<br class="clearfix" />
@@ -215,7 +216,7 @@
<form onsubmit="return submit_search()">
<input id="search_autocomplete" type="text" value="" autocomplete="off" name="q"
onfocus="search_focus_changed(this, true)" onblur="search_focus_changed(this, false)"
-onkeydown="return search_changed(event, true, '/')"
+onkeydown="return search_changed(event, true, '/')"
onkeyup="return search_changed(event, false, '/')" />
</form>
<div class="right"></div>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -254,8 +257,8 @@
</div>
<!-- /New Search>
-
-
+
+
<!-- Expanded quicknav -->
<div id="quicknav" class="col-9">
<ul>
@@ -277,15 +280,15 @@
ru-lang="Курсы"
ko-lang="교육"
ja-lang="トレーニング"
- es-lang="Capacitación"
+ es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
ko-lang="API 가이드"
ja-lang="API ガイド"
- es-lang="Guías de la API"
+ es-lang="Guías de la API"
>API Guides</a></li>
<li><a href="/reference/packages.html"
zh-tw-lang="參考資源"
@@ -293,7 +296,7 @@
ru-lang="Справочник"
ko-lang="참조문서"
ja-lang="リファレンス"
- es-lang="Referencia"
+ es-lang="Referencia"
>Reference</a></li>
<li><a href="/tools/index.html"
zh-tw-lang="相關工具"
@@ -301,13 +304,16 @@
ru-lang="Инструменты"
ko-lang="도구"
ja-lang="ツール"
- es-lang="Herramientas"
+ es-lang="Herramientas"
>Tools</a>
<ul><li><a href="/sdk/index.html">Get the SDK</a></li></ul>
</li>
<li><a href="/google/index.html">Google Services</a>
</li>
-
+
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -326,15 +332,15 @@
</div>
</div>
<!-- /Header -->
-
-
+
+
<div id="searchResults" class="wrap" style="display:none;">
<h2 id="searchTitle">Results</h2>
<div id="leftSearchControl" class="search-control">Loading...</div>
</div>
-
-
-
+
+
+
<!-- Secondary x-nav -->
<div id="nav-x">
<div class="wrap">
@@ -345,15 +351,15 @@
ru-lang="Курсы"
ko-lang="교육"
ja-lang="トレーニング"
- es-lang="Capacitación"
+ es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
ko-lang="API 가이드"
ja-lang="API ガイド"
- es-lang="Guías de la API"
+ es-lang="Guías de la API"
>API Guides</a></li>
<li class="reference"><a href="/reference/packages.html"
zh-tw-lang="參考資源"
@@ -361,7 +367,7 @@
ru-lang="Справочник"
ko-lang="참조문서"
ja-lang="リファレンス"
- es-lang="Referencia"
+ es-lang="Referencia"
>Reference</a></li>
<li class="tools"><a href="/tools/index.html"
zh-tw-lang="相關工具"
@@ -374,21 +380,25 @@
<li class="google"><a href="/google/index.html"
>Google Services</a>
</li>
-
+
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
-
+
</div>
<!-- /Sendondary x-nav -->
-
-
-
+
+
+
<div class="wrap clearfix" id="body-content">
<div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
<div id="devdoc-nav" class="scroll-pane">
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
@@ -618,12 +631,12 @@
</script>
-
+
</div>
<script type="text/javascript">
showGoogleRefTree();
-
+
</script>
</div> <!-- end side-nav -->
<script>
@@ -633,7 +646,7 @@
</script>
-
+
@@ -643,21 +656,12 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
<div class="sum-details-links">
@@ -668,23 +672,17 @@
-
- <a href="#inhconstants">Inherited Constants</a>
-
-
-
- | <a href="#lfields">Fields</a>
-
+ <a href="#constants">Constants</a>
- | <a href="#pubctors">Ctors</a>
-
+
+
| <a href="#pubmethods">Methods</a>
-
+
@@ -694,9 +692,9 @@
</div><!-- end sum-details-links -->
<div class="api-level">
-
-
-
+
+
+
</div>
</div><!-- end api-info-block -->
@@ -706,28 +704,23 @@
<div id="jd-header">
public
-
-
-
+
+
+
class
-<h1 itemprop="name">RecoveryDecision</h1>
+<h1 itemprop="name">OpenFileActivityBuilder</h1>
-
+
extends Object<br/>
-
-
-
-
-
- implements
-
- Parcelable
-
-
-
+
+
+
+
+
+
</div><!-- end header -->
@@ -739,18 +732,18 @@
<tr>
-
+
<td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
</tr>
-
+
<tr>
-
+
<td class="jd-inheritance-space"> ↳</td>
-
- <td colspan="1" class="jd-inheritance-class-cell">com.google.android.gms.auth.RecoveryDecision</td>
+
+ <td colspan="1" class="jd-inheritance-class-cell">com.google.android.gms.drive.OpenFileActivityBuilder</td>
</tr>
-
+
</table>
@@ -763,6 +756,27 @@
<div class="jd-descr">
+<h2>Class Overview</h2>
+<p class="caution">
+ <strong>Note:</strong> The Google Drive Android API is currently in <strong>developer
+ preview</strong>. Applications compiled using this version of the API will
+ continue to operate on devices using future versions of Google Play services;
+ however, changes to the API are expected in future releases.
+</p>
+<p itemprop="articleBody">A builder that is used to configure and display the open file activity. This activity displays
+ files and folders from the user's Drive. The activity can be used to display all files in the
+ Drive, not just those your application has access to. Your application will be given access to
+ the selected file.
+
+ <p>
+ To display the activity, pass the result of <code><a href="/reference/com/google/android/gms/drive/OpenFileActivityBuilder.html#build(com.google.android.gms.common.api.GoogleApiClient)">build(GoogleApiClient)</a></code> to <code>#startActivityForResult()</code>.
+ When the activity completes, a successful response will include an extra
+ <code><a href="/reference/com/google/android/gms/drive/OpenFileActivityBuilder.html#EXTRA_RESPONSE_DRIVE_ID">EXTRA_RESPONSE_DRIVE_ID</a></code> with the selected <code><a href="/reference/com/google/android/gms/drive/DriveId.html">DriveId</a></code>.
+
+ <p>
+ Note: you cannot use <code>#startActivity</code> to invoke the activity. This will fail.
+</p>
+
@@ -801,159 +815,17 @@
-
-
-
<!-- =========== ENUM CONSTANT SUMMARY =========== -->
-<table id="inhconstants" class="jd-sumtable"><tr><th>
- <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
- <div style="clear:left;">Inherited Constants</div></th></tr>
+<table id="constants" class="jd-sumtable"><tr><th colspan="12">Constants</th></tr>
-
-<tr class="api apilevel-" >
-<td colspan="12">
-
- <a href="#" onclick="return toggleInherited(this, null)" id="inherited-constants-android.os.Parcelable" class="jd-expando-trigger closed"
- ><img id="inherited-constants-android.os.Parcelable-trigger"
- src="/assets/images/triangle-closed.png"
- class="jd-expando-trigger-img" /></a>From interface
-android.os.Parcelable
-<div id="inherited-constants-android.os.Parcelable">
- <div id="inherited-constants-android.os.Parcelable-list"
- class="jd-inheritedlinks">
- </div>
- <div id="inherited-constants-android.os.Parcelable-summary" style="display: none;">
- <table class="jd-sumtable-expando">
-
-
-
<tr class="alt-color api apilevel-" >
- <td class="jd-typecol">int</td>
- <td class="jd-linkcol">CONTENTS_FILE_DESCRIPTOR</td>
- <td class="jd-descrcol" width="100%"></td>
+ <td class="jd-typecol">String</td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/drive/OpenFileActivityBuilder.html#EXTRA_RESPONSE_DRIVE_ID">EXTRA_RESPONSE_DRIVE_ID</a></td>
+ <td class="jd-descrcol" width="100%">A successful result will return an extra by this name which will contain the <code><a href="/reference/com/google/android/gms/drive/DriveId.html">DriveId</a></code>
+ of the selected file.</td>
</tr>
-
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol">int</td>
- <td class="jd-linkcol">PARCELABLE_WRITE_RETURN_VALUE</td>
- <td class="jd-descrcol" width="100%"></td>
- </tr>
-
-
-</table>
- </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-
-
-<!-- =========== FIELD SUMMARY =========== -->
-<table id="lfields" class="jd-sumtable"><tr><th colspan="12">Fields</th></tr>
-
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
- static
- final
- <a href="/reference/com/google/android/gms/auth/RecoveryDecisionCreator.html">RecoveryDecisionCreator</a></nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#CREATOR">CREATOR</a></td>
- <td class="jd-descrcol" width="100%"></td>
- </tr>
-
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- boolean</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#isRecoveryInfoNeeded">isRecoveryInfoNeeded</a></td>
- <td class="jd-descrcol" width="100%">Is <code>true</code> if either the account has no recovery information or it
- was updated long time back (controlled by server, default 1 year).</td>
- </tr>
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- boolean</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#isRecoveryInterstitialAllowed">isRecoveryInterstitialAllowed</a></td>
- <td class="jd-descrcol" width="100%">Is <code>true</code> iff the user has permission to update the account.</td>
- </tr>
-
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- PendingIntent</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#recoveryIntent">recoveryIntent</a></td>
- <td class="jd-descrcol" width="100%">A PendingIntent to an activity that gathers recovery information for the given account.</td>
- </tr>
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- PendingIntent</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#recoveryIntentWithoutIntro">recoveryIntentWithoutIntro</a></td>
- <td class="jd-descrcol" width="100%">A PendingIntent to an activity that gathers recovery information for the given account.</td>
- </tr>
-
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- boolean</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#showRecoveryInterstitial">showRecoveryInterstitial</a></td>
- <td class="jd-descrcol" width="100%">Represents the decision and should be obeyed by the client.</td>
- </tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
-
-
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
-
-
-
-
-
- </nobr>
- </td>
- <td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#RecoveryDecision()">RecoveryDecision</a></span>()</nobr>
-
- </td></tr>
@@ -964,56 +836,93 @@
+
+
+
+
+
+
+
+
+
+
<!-- ========== METHOD SUMMARY =========== -->
<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
- int</nobr>
+
+
+
+
+
+ IntentSender</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#describeContents()">describeContents</a></span>()</nobr>
-
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/OpenFileActivityBuilder.html#build(com.google.android.gms.common.api.GoogleApiClient)">build</a></span>(<a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html">GoogleApiClient</a> apiClient)</nobr>
+
+ <div class="jd-descrdiv">Builds an <code><a href="/reference/android/content/IntentSender.html">IntentSender</a></code> from the builder attributes that can be used to start the Open
+ File activity using
+ <code><a href="/reference/android/app/Activity.html#startIntentSenderForResult(android.content.IntentSender, int, android.content.Intent, int, int, int)">startIntentSenderForResult(IntentSender, int, Intent, int, int, int)</a></code>.</div>
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
- int</nobr>
+
+
+
+
+
+ <a href="/reference/com/google/android/gms/drive/OpenFileActivityBuilder.html">OpenFileActivityBuilder</a></nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#getVersionCode()">getVersionCode</a></span>()</nobr>
-
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/OpenFileActivityBuilder.html#setActivityStartFolder(com.google.android.gms.drive.DriveId)">setActivityStartFolder</a></span>(<a href="/reference/com/google/android/gms/drive/DriveId.html">DriveId</a> folder)</nobr>
+
+ <div class="jd-descrdiv">Sets the folder that the Activity will display initially.</div>
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
- void</nobr>
+
+
+
+
+
+ <a href="/reference/com/google/android/gms/drive/OpenFileActivityBuilder.html">OpenFileActivityBuilder</a></nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#writeToParcel(android.os.Parcel, int)">writeToParcel</a></span>(Parcel out, int flags)</nobr>
-
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/OpenFileActivityBuilder.html#setActivityTitle(java.lang.String)">setActivityTitle</a></span>(String title)</nobr>
+
+ <div class="jd-descrdiv">Sets the title displayed in the activity.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ <a href="/reference/com/google/android/gms/drive/OpenFileActivityBuilder.html">OpenFileActivityBuilder</a></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/OpenFileActivityBuilder.html#setMimeType(java.lang.String[])">setMimeType</a></span>(String[] mimeTypes)</nobr>
+
+ <div class="jd-descrdiv">Sets the MIME type filter which controls which kinds of files can be selected from the file
+ picker.</div>
+
</td></tr>
@@ -1048,240 +957,182 @@
</div>
<div id="inherited-methods-java.lang.Object-summary" style="display: none;">
<table class="jd-sumtable-expando">
-
-
+
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
Object</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">clone</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
boolean</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">equals</span>(Object arg0)</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">finalize</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
Class<?></nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">getClass</span>()</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
int</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">hashCode</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">notify</span>()</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">notifyAll</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
String</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">toString</span>()</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">wait</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">wait</span>(long arg0)</nobr>
-
- </td></tr>
-
-</table>
- </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
- <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-android.os.Parcelable" class="jd-expando-trigger closed"
- ><img id="inherited-methods-android.os.Parcelable-trigger"
- src="/assets/images/triangle-closed.png"
- class="jd-expando-trigger-img" /></a>
-From interface
-
- android.os.Parcelable
-
-<div id="inherited-methods-android.os.Parcelable">
- <div id="inherited-methods-android.os.Parcelable-list"
- class="jd-inheritedlinks">
- </div>
- <div id="inherited-methods-android.os.Parcelable-summary" style="display: none;">
- <table class="jd-sumtable-expando">
-
-
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
- abstract
-
-
-
-
- int</nobr>
- </td>
- <td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad">describeContents</span>()</nobr>
-
- </td></tr>
-
-
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol"><nobr>
- abstract
-
-
-
-
- void</nobr>
- </td>
- <td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad">writeToParcel</span>(Parcel arg0, int arg1)</nobr>
-
</td></tr>
@@ -1314,239 +1165,58 @@
<!-- Constants -->
+<!-- ========= ENUM CONSTANTS DETAIL ======== -->
+<h2>Constants</h2>
+
+
+
+
+<A NAME="EXTRA_RESPONSE_DRIVE_ID"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+ static
+ final
+ String
+ </span>
+ EXTRA_RESPONSE_DRIVE_ID
+ </h4>
+ <div class="api-level">
+
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>A successful result will return an extra by this name which will contain the <code><a href="/reference/com/google/android/gms/drive/DriveId.html">DriveId</a></code>
+ of the selected file.
+</p></div>
+
+
+ <div class="jd-tagdata">
+ <span class="jd-tagtitle">Constant Value: </span>
+ <span>
+
+ "response_drive_id"
+
+ </span>
+ </div>
+
+ </div>
+</div>
+
+
+
+
<!-- Fields -->
-<!-- ========= FIELD DETAIL ======== -->
-<h2>Fields</h2>
-
-
-
-
-<A NAME="CREATOR"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
- static
- final
- <a href="/reference/com/google/android/gms/auth/RecoveryDecisionCreator.html">RecoveryDecisionCreator</a>
- </span>
- CREATOR
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-
- </div>
-</div>
-
-
-
-<A NAME="isRecoveryInfoNeeded"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- boolean
- </span>
- isRecoveryInfoNeeded
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>Is <code>true</code> if either the account has no recovery information or it
- was updated long time back (controlled by server, default 1 year).
-</p></div>
-
-
- </div>
-</div>
-
-
-
-<A NAME="isRecoveryInterstitialAllowed"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- boolean
- </span>
- isRecoveryInterstitialAllowed
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>Is <code>true</code> iff the user has permission to update the account.
- Dasher accounts can have recovery information edit disabled by the administrator.
- Eg: @google.com
-</p></div>
-
-
- </div>
-</div>
-
-
-
-<A NAME="recoveryIntent"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- PendingIntent
- </span>
- recoveryIntent
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>A PendingIntent to an activity that gathers recovery information for the given account.
- This intent will be null iff isRecoveryInterstitialAllowed is <code>false</code>.
-</p></div>
-
-
- </div>
-</div>
-
-
-
-<A NAME="recoveryIntentWithoutIntro"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- PendingIntent
- </span>
- recoveryIntentWithoutIntro
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>A PendingIntent to an activity that gathers recovery information for the given account.
- This intent will be null iff isRecoveryInterstitialAllowed is <code>false</code>.
- This intent directly skips to the input activity without showing the intro message.
-</p></div>
-
-
- </div>
-</div>
-
-
-
-<A NAME="showRecoveryInterstitial"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- boolean
- </span>
- showRecoveryInterstitial
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>Represents the decision and should be obeyed by the client. The remaining
- two flags are provided as additional information for one off decisions. This value
- is <code>true</code> iff isRecoveryInfoNeeded is <code>true</code>, isRecoveryInterstitialAllowed is
- <code>true</code> and a specified period (controlled by server, default 2 months) has passed
- since the user was shown a prompt for recovery information on any google property
- (Android, Web, etc.)
-</p></div>
-
-
- </div>
-</div>
-
-
-
-
<!-- Public ctors -->
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<h2>Public Constructors</h2>
-
-
-
-<A NAME="RecoveryDecision()"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
-
-
-
- </span>
- <span class="sympad">RecoveryDecision</span>
- <span class="normal">()</span>
- </h4>
- <div class="api-level">
- <div></div>
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
- </div>
-</div>
-
-
-
-
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<!-- Protected ctors -->
@@ -1560,88 +1230,154 @@
-<A NAME="describeContents()"></A>
+<A NAME="build(com.google.android.gms.common.api.GoogleApiClient)"></A>
-<div class="jd-details api apilevel-">
+<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
- public
-
-
-
-
- int
+ public
+
+
+
+
+ IntentSender
</span>
- <span class="sympad">describeContents</span>
- <span class="normal">()</span>
+ <span class="sympad">build</span>
+ <span class="normal">(<a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html">GoogleApiClient</a> apiClient)</span>
</h4>
<div class="api-level">
<div></div>
-
-
+
+
</div>
<div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+ <div class="jd-tagdata jd-tagdescr"><p>Builds an <code><a href="/reference/android/content/IntentSender.html">IntentSender</a></code> from the builder attributes that can be used to start the Open
+ File activity using
+ <code><a href="/reference/android/app/Activity.html#startIntentSenderForResult(android.content.IntentSender, int, android.content.Intent, int, int, int)">startIntentSenderForResult(IntentSender, int, Intent, int, int, int)</a></code>.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>apiClient</td>
+ <td>The <code><a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html">GoogleApiClient</a></code> to service the call. The client must be connected
+ before invoking this method.
+</td>
+ </tr>
+ </table>
+ </div>
</div>
</div>
-<A NAME="getVersionCode()"></A>
+<A NAME="setActivityStartFolder(com.google.android.gms.drive.DriveId)"></A>
-<div class="jd-details api apilevel-">
+<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
- public
-
-
-
-
- int
+ public
+
+
+
+
+ <a href="/reference/com/google/android/gms/drive/OpenFileActivityBuilder.html">OpenFileActivityBuilder</a>
</span>
- <span class="sympad">getVersionCode</span>
- <span class="normal">()</span>
+ <span class="sympad">setActivityStartFolder</span>
+ <span class="normal">(<a href="/reference/com/google/android/gms/drive/DriveId.html">DriveId</a> folder)</span>
</h4>
<div class="api-level">
<div></div>
-
-
+
+
</div>
<div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+ <div class="jd-tagdata jd-tagdescr"><p>Sets the folder that the Activity will display initially. If not specified, it will default
+ to the root of "My Drive".
+</p></div>
</div>
</div>
-<A NAME="writeToParcel(android.os.Parcel, int)"></A>
+<A NAME="setActivityTitle(java.lang.String)"></A>
-<div class="jd-details api apilevel-">
+<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
- public
-
-
-
-
- void
+ public
+
+
+
+
+ <a href="/reference/com/google/android/gms/drive/OpenFileActivityBuilder.html">OpenFileActivityBuilder</a>
</span>
- <span class="sympad">writeToParcel</span>
- <span class="normal">(Parcel out, int flags)</span>
+ <span class="sympad">setActivityTitle</span>
+ <span class="normal">(String title)</span>
</h4>
<div class="api-level">
<div></div>
-
-
+
+
</div>
<div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+ <div class="jd-tagdata jd-tagdescr"><p>Sets the title displayed in the activity.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>title</td>
+ <td>the title to set on the activity (may not be null)
+</td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="setMimeType(java.lang.String[])"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ <a href="/reference/com/google/android/gms/drive/OpenFileActivityBuilder.html">OpenFileActivityBuilder</a>
+ </span>
+ <span class="sympad">setMimeType</span>
+ <span class="normal">(String[] mimeTypes)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Sets the MIME type filter which controls which kinds of files can be selected from the file
+ picker. This method must be called on the builder or the {#build} method will fail.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>mimeTypes</td>
+ <td>the mime types to show in the picker. May not be null, and must contain at
+ least one value
+</td>
+ </tr>
+ </table>
+ </div>
</div>
</div>
@@ -1658,17 +1394,17 @@
<A NAME="navbar_top"></A>
<div id="footer" class="wrap" >
-
+
<div id="copyright">
-
+
Except as noted, this content is licensed under <a
- href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.
+ href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.
For details and restrictions, see the <a href="/license.html">
Content License</a>.
</div>
<div id="build_info">
-
+
<script src="/timestamp.js" type="text/javascript"></script>
<script>document.write(BUILD_TIMESTAMP)</script>
@@ -1676,7 +1412,7 @@
<div id="footerlinks">
-
+
<p>
<a href="/about/index.html">About Android</a> |
<a href="/legal.html">Legal</a> |
@@ -1689,7 +1425,7 @@
</div><!-- end doc-content -->
-</div> <!-- end body-content -->
+</div> <!-- end body-content -->
diff --git a/docs/html/reference/com/google/android/gms/auth/RecoveryDecision.html b/docs/html/reference/com/google/android/gms/drive/metadata/CollectionMetadataField.html
similarity index 62%
copy from docs/html/reference/com/google/android/gms/auth/RecoveryDecision.html
copy to docs/html/reference/com/google/android/gms/drive/metadata/CollectionMetadataField.html
index 59a1346..ab652b2 100644
--- a/docs/html/reference/com/google/android/gms/auth/RecoveryDecision.html
+++ b/docs/html/reference/com/google/android/gms/drive/metadata/CollectionMetadataField.html
@@ -83,7 +83,7 @@
<meta name="viewport" content="width=device-width" />
<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
-<title>RecoveryDecision | Android Developers</title>
+<title>CollectionMetadataField | Android Developers</title>
<!-- STYLESHEETS -->
<link rel="stylesheet"
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -128,7 +129,7 @@
<img src="/assets/images/dac_logo.png" width="123" height="25" alt="Android Developers" />
</a>
<div class="btn-quicknav" id="btn-quicknav">
- <a href="#" class="arrow-inactive">Quicknav</a>
+ <a href="#" class="arrow-inactive">Quicknav</a>
<a href="#" class="arrow-active">Quicknav</a>
</div>
</div>
@@ -140,7 +141,7 @@
ru-lang="Проектирование"
ko-lang="디자인"
ja-lang="設計"
- es-lang="Diseñar"
+ es-lang="Diseñar"
>Design</a></li>
<li class="develop"><a href="/develop/index.html"
zh-tw-lang="開發"
@@ -148,7 +149,7 @@
ru-lang="Разработка"
ko-lang="개발"
ja-lang="開発"
- es-lang="Desarrollar"
+ es-lang="Desarrollar"
>Develop</a></li>
<li class="distribute last"><a href="/distribute/index.html"
zh-tw-lang="發佈"
@@ -156,10 +157,10 @@
ru-lang="Распространение"
ko-lang="배포"
ja-lang="配布"
- es-lang="Distribuir"
+ es-lang="Distribuir"
>Distribute</a></li>
</ul>
-
+
<!-- New Search -->
<div class="menu-container">
<div class="moremenu">
@@ -180,9 +181,9 @@
<li class="active"><a>Android Developers</a></li>
<li><a href="http://source.android.com">Android Open Source Project</a></li>
</ul>
-
-
-
+
+
+
<div class="header">Language</div>
<div id="language" class="locales">
<select name="language" onChange="changeLangPref(this.value, true)">
@@ -200,8 +201,8 @@
loadLangPref();
//-->
</script>
-
-
+
+
<br class="clearfix" />
@@ -215,7 +216,7 @@
<form onsubmit="return submit_search()">
<input id="search_autocomplete" type="text" value="" autocomplete="off" name="q"
onfocus="search_focus_changed(this, true)" onblur="search_focus_changed(this, false)"
-onkeydown="return search_changed(event, true, '/')"
+onkeydown="return search_changed(event, true, '/')"
onkeyup="return search_changed(event, false, '/')" />
</form>
<div class="right"></div>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -254,8 +257,8 @@
</div>
<!-- /New Search>
-
-
+
+
<!-- Expanded quicknav -->
<div id="quicknav" class="col-9">
<ul>
@@ -277,15 +280,15 @@
ru-lang="Курсы"
ko-lang="교육"
ja-lang="トレーニング"
- es-lang="Capacitación"
+ es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
ko-lang="API 가이드"
ja-lang="API ガイド"
- es-lang="Guías de la API"
+ es-lang="Guías de la API"
>API Guides</a></li>
<li><a href="/reference/packages.html"
zh-tw-lang="參考資源"
@@ -293,7 +296,7 @@
ru-lang="Справочник"
ko-lang="참조문서"
ja-lang="リファレンス"
- es-lang="Referencia"
+ es-lang="Referencia"
>Reference</a></li>
<li><a href="/tools/index.html"
zh-tw-lang="相關工具"
@@ -301,13 +304,16 @@
ru-lang="Инструменты"
ko-lang="도구"
ja-lang="ツール"
- es-lang="Herramientas"
+ es-lang="Herramientas"
>Tools</a>
<ul><li><a href="/sdk/index.html">Get the SDK</a></li></ul>
</li>
<li><a href="/google/index.html">Google Services</a>
</li>
-
+
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -326,15 +332,15 @@
</div>
</div>
<!-- /Header -->
-
-
+
+
<div id="searchResults" class="wrap" style="display:none;">
<h2 id="searchTitle">Results</h2>
<div id="leftSearchControl" class="search-control">Loading...</div>
</div>
-
-
-
+
+
+
<!-- Secondary x-nav -->
<div id="nav-x">
<div class="wrap">
@@ -345,15 +351,15 @@
ru-lang="Курсы"
ko-lang="교육"
ja-lang="トレーニング"
- es-lang="Capacitación"
+ es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
ko-lang="API 가이드"
ja-lang="API ガイド"
- es-lang="Guías de la API"
+ es-lang="Guías de la API"
>API Guides</a></li>
<li class="reference"><a href="/reference/packages.html"
zh-tw-lang="參考資源"
@@ -361,7 +367,7 @@
ru-lang="Справочник"
ko-lang="참조문서"
ja-lang="リファレンス"
- es-lang="Referencia"
+ es-lang="Referencia"
>Reference</a></li>
<li class="tools"><a href="/tools/index.html"
zh-tw-lang="相關工具"
@@ -374,21 +380,25 @@
<li class="google"><a href="/google/index.html"
>Google Services</a>
</li>
-
+
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
-
+
</div>
<!-- /Sendondary x-nav -->
-
-
-
+
+
+
<div class="wrap clearfix" id="body-content">
<div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
<div id="devdoc-nav" class="scroll-pane">
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
@@ -618,12 +631,12 @@
</script>
-
+
</div>
<script type="text/javascript">
showGoogleRefTree();
-
+
</script>
</div> <!-- end side-nav -->
<script>
@@ -633,7 +646,7 @@
</script>
-
+
@@ -643,21 +656,19 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
<div class="sum-details-links">
@@ -669,23 +680,14 @@
- <a href="#inhconstants">Inherited Constants</a>
-
-
-
- | <a href="#lfields">Fields</a>
-
- | <a href="#pubctors">Ctors</a>
-
+
+ <a href="#proctors">Protected Ctors</a>
- | <a href="#pubmethods">Methods</a>
-
-
| <a href="#inhmethods">Inherited Methods</a>
@@ -694,9 +696,9 @@
</div><!-- end sum-details-links -->
<div class="api-level">
-
-
-
+
+
+
</div>
</div><!-- end api-info-block -->
@@ -706,28 +708,27 @@
<div id="jd-header">
public
-
-
-
+
+
+ abstract
class
-<h1 itemprop="name">RecoveryDecision</h1>
+<h1 itemprop="name">CollectionMetadataField</h1>
-
- extends Object<br/>
-
-
-
-
-
- implements
-
- Parcelable
-
-
-
+
+
+
+
+ extends <a href="/reference/com/google/android/gms/drive/metadata/MetadataField.html">MetadataField</a><T><br/>
+
+
+
+
+
+
+
</div><!-- end header -->
@@ -739,18 +740,28 @@
<tr>
-
- <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
+
+ <td colspan="3" class="jd-inheritance-class-cell">java.lang.Object</td>
</tr>
-
+
<tr>
-
+
<td class="jd-inheritance-space"> ↳</td>
-
- <td colspan="1" class="jd-inheritance-class-cell">com.google.android.gms.auth.RecoveryDecision</td>
+
+ <td colspan="2" class="jd-inheritance-class-cell"><a href="/reference/com/google/android/gms/drive/metadata/MetadataField.html">com.google.android.gms.drive.metadata.MetadataField</a><T></td>
</tr>
-
+
+
+ <tr>
+
+ <td class="jd-inheritance-space"> </td>
+
+ <td class="jd-inheritance-space"> ↳</td>
+
+ <td colspan="1" class="jd-inheritance-class-cell">com.google.android.gms.drive.metadata.CollectionMetadataField<T></td>
+ </tr>
+
</table>
@@ -763,6 +774,34 @@
<div class="jd-descr">
+<h2>Class Overview</h2>
+<p class="caution">
+ <strong>Note:</strong> The Google Drive Android API is currently in <strong>developer
+ preview</strong>. Applications compiled using this version of the API will
+ continue to operate on devices using future versions of Google Play services;
+ however, changes to the API are expected in future releases.
+</p>
+<p itemprop="articleBody">A metadata field which holds a collection of values. Instances of this class (such as the static
+ values in <code><a href="/reference/com/google/android/gms/drive/query/SearchableField.html">SearchableField</a></code>) can be used to create
+ "in" filters for file queries.<p><p>
+ For example, the following code will find all files in the folder with ID "folder" with the MIME
+ type "text/plain":<p>
+ <pre>
+ DriveId parent = DriveId.createFromResourceId("folder");
+ Filter parentFilter = Filters.in(SearchableField.PARENTS, parent);
+ Filter mimeTypeFilter = Filters.eq(SearchableField.MIME_TYPE, "text/plain");
+ Query query = new Query.Builder().addFilters(parentFilter, mimeTypeFilter).build();
+ for (Metadata metadata : Drive.DriveApi.query(apiClient, query).await().getMetadataBuffer()) {
+ System.out.println(metadata.getTitle());
+ }
+ </pre>
+ <p>
+ Note that you must pass a <code><a href="/reference/com/google/android/gms/drive/metadata/CollectionMetadataField.html">CollectionMetadataField</a></code> to the <code>Filters.in</code> method;
+ a plain <code><a href="/reference/com/google/android/gms/drive/metadata/MetadataField.html">MetadataField</a></code> cannot be used as part of an "in" query. However, every
+ <code>CollectionMetadataField</code> is also a <code>MetadataField</code>, so you can use a
+ <code>CollectionMetadataField</code> with <code>Filters.eq</code> (for example, if you want to find a
+ file with an exact set of parents).</p>
+
@@ -804,155 +843,33 @@
-<!-- =========== ENUM CONSTANT SUMMARY =========== -->
-<table id="inhconstants" class="jd-sumtable"><tr><th>
- <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
- <div style="clear:left;">Inherited Constants</div></th></tr>
-<tr class="api apilevel-" >
-<td colspan="12">
-
- <a href="#" onclick="return toggleInherited(this, null)" id="inherited-constants-android.os.Parcelable" class="jd-expando-trigger closed"
- ><img id="inherited-constants-android.os.Parcelable-trigger"
- src="/assets/images/triangle-closed.png"
- class="jd-expando-trigger-img" /></a>From interface
-android.os.Parcelable
-<div id="inherited-constants-android.os.Parcelable">
- <div id="inherited-constants-android.os.Parcelable-list"
- class="jd-inheritedlinks">
- </div>
- <div id="inherited-constants-android.os.Parcelable-summary" style="display: none;">
- <table class="jd-sumtable-expando">
-
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol">int</td>
- <td class="jd-linkcol">CONTENTS_FILE_DESCRIPTOR</td>
- <td class="jd-descrcol" width="100%"></td>
- </tr>
-
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol">int</td>
- <td class="jd-linkcol">PARCELABLE_WRITE_RETURN_VALUE</td>
- <td class="jd-descrcol" width="100%"></td>
- </tr>
-
-
-</table>
- </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-
-
-<!-- =========== FIELD SUMMARY =========== -->
-<table id="lfields" class="jd-sumtable"><tr><th colspan="12">Fields</th></tr>
-
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
- static
- final
- <a href="/reference/com/google/android/gms/auth/RecoveryDecisionCreator.html">RecoveryDecisionCreator</a></nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#CREATOR">CREATOR</a></td>
- <td class="jd-descrcol" width="100%"></td>
- </tr>
-
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- boolean</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#isRecoveryInfoNeeded">isRecoveryInfoNeeded</a></td>
- <td class="jd-descrcol" width="100%">Is <code>true</code> if either the account has no recovery information or it
- was updated long time back (controlled by server, default 1 year).</td>
- </tr>
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- boolean</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#isRecoveryInterstitialAllowed">isRecoveryInterstitialAllowed</a></td>
- <td class="jd-descrcol" width="100%">Is <code>true</code> iff the user has permission to update the account.</td>
- </tr>
-
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- PendingIntent</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#recoveryIntent">recoveryIntent</a></td>
- <td class="jd-descrcol" width="100%">A PendingIntent to an activity that gathers recovery information for the given account.</td>
- </tr>
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- PendingIntent</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#recoveryIntentWithoutIntro">recoveryIntentWithoutIntro</a></td>
- <td class="jd-descrcol" width="100%">A PendingIntent to an activity that gathers recovery information for the given account.</td>
- </tr>
-
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- boolean</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#showRecoveryInterstitial">showRecoveryInterstitial</a></td>
- <td class="jd-descrcol" width="100%">Represents the decision and should be obeyed by the client.</td>
- </tr>
-
-
-
-</table>
-
-
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
+<table id="proctors" class="jd-sumtable"><tr><th colspan="12">Protected Constructors</th></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#RecoveryDecision()">RecoveryDecision</a></span>()</nobr>
-
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/metadata/CollectionMetadataField.html#CollectionMetadataField(java.lang.String)">CollectionMetadataField</a></span>(String fieldName)</nobr>
+
</td></tr>
@@ -964,65 +881,6 @@
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
-
-
-
-
-
- int</nobr>
- </td>
- <td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#describeContents()">describeContents</a></span>()</nobr>
-
- </td></tr>
-
-
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol"><nobr>
-
-
-
-
-
- int</nobr>
- </td>
- <td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#getVersionCode()">getVersionCode</a></span>()</nobr>
-
- </td></tr>
-
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
-
-
-
-
-
- void</nobr>
- </td>
- <td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#writeToParcel(android.os.Parcel, int)">writeToParcel</a></span>(Parcel out, int flags)</nobr>
-
- </td></tr>
-
-
-
-</table>
-
-
-
-
@@ -1034,6 +892,48 @@
<tr class="api apilevel-" >
<td colspan="12">
+ <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.android.gms.drive.metadata.MetadataField" class="jd-expando-trigger closed"
+ ><img id="inherited-methods-com.google.android.gms.drive.metadata.MetadataField-trigger"
+ src="/assets/images/triangle-closed.png"
+ class="jd-expando-trigger-img" /></a>
+From class
+
+ <a href="/reference/com/google/android/gms/drive/metadata/MetadataField.html">com.google.android.gms.drive.metadata.MetadataField</a>
+
+<div id="inherited-methods-com.google.android.gms.drive.metadata.MetadataField">
+ <div id="inherited-methods-com.google.android.gms.drive.metadata.MetadataField-list"
+ class="jd-inheritedlinks">
+ </div>
+ <div id="inherited-methods-com.google.android.gms.drive.metadata.MetadataField-summary" style="display: none;">
+ <table class="jd-sumtable-expando">
+
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ String</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/metadata/MetadataField.html#toString()">toString</a></span>()</nobr>
+
+ </td></tr>
+
+
+</table>
+ </div>
+</div>
+</td></tr>
+
+
+
+<tr class="api apilevel-" >
+<td colspan="12">
<a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
><img id="inherited-methods-java.lang.Object-trigger"
src="/assets/images/triangle-closed.png"
@@ -1048,240 +948,182 @@
</div>
<div id="inherited-methods-java.lang.Object-summary" style="display: none;">
<table class="jd-sumtable-expando">
-
-
+
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
Object</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">clone</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
boolean</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">equals</span>(Object arg0)</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">finalize</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
Class<?></nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">getClass</span>()</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
int</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">hashCode</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">notify</span>()</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">notifyAll</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
String</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">toString</span>()</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">wait</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">wait</span>(long arg0)</nobr>
-
- </td></tr>
-
-</table>
- </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
- <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-android.os.Parcelable" class="jd-expando-trigger closed"
- ><img id="inherited-methods-android.os.Parcelable-trigger"
- src="/assets/images/triangle-closed.png"
- class="jd-expando-trigger-img" /></a>
-From interface
-
- android.os.Parcelable
-
-<div id="inherited-methods-android.os.Parcelable">
- <div id="inherited-methods-android.os.Parcelable-list"
- class="jd-inheritedlinks">
- </div>
- <div id="inherited-methods-android.os.Parcelable-summary" style="display: none;">
- <table class="jd-sumtable-expando">
-
-
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
- abstract
-
-
-
-
- int</nobr>
- </td>
- <td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad">describeContents</span>()</nobr>
-
- </td></tr>
-
-
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol"><nobr>
- abstract
-
-
-
-
- void</nobr>
- </td>
- <td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad">writeToParcel</span>(Parcel arg0, int arg1)</nobr>
-
</td></tr>
@@ -1317,337 +1159,52 @@
<!-- Fields -->
-<!-- ========= FIELD DETAIL ======== -->
-<h2>Fields</h2>
-
-
-
-
-<A NAME="CREATOR"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
- static
- final
- <a href="/reference/com/google/android/gms/auth/RecoveryDecisionCreator.html">RecoveryDecisionCreator</a>
- </span>
- CREATOR
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-
- </div>
-</div>
-
-
-
-<A NAME="isRecoveryInfoNeeded"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- boolean
- </span>
- isRecoveryInfoNeeded
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>Is <code>true</code> if either the account has no recovery information or it
- was updated long time back (controlled by server, default 1 year).
-</p></div>
-
-
- </div>
-</div>
-
-
-
-<A NAME="isRecoveryInterstitialAllowed"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- boolean
- </span>
- isRecoveryInterstitialAllowed
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>Is <code>true</code> iff the user has permission to update the account.
- Dasher accounts can have recovery information edit disabled by the administrator.
- Eg: @google.com
-</p></div>
-
-
- </div>
-</div>
-
-
-
-<A NAME="recoveryIntent"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- PendingIntent
- </span>
- recoveryIntent
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>A PendingIntent to an activity that gathers recovery information for the given account.
- This intent will be null iff isRecoveryInterstitialAllowed is <code>false</code>.
-</p></div>
-
-
- </div>
-</div>
-
-
-
-<A NAME="recoveryIntentWithoutIntro"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- PendingIntent
- </span>
- recoveryIntentWithoutIntro
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>A PendingIntent to an activity that gathers recovery information for the given account.
- This intent will be null iff isRecoveryInterstitialAllowed is <code>false</code>.
- This intent directly skips to the input activity without showing the intro message.
-</p></div>
-
-
- </div>
-</div>
-
-
-
-<A NAME="showRecoveryInterstitial"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- boolean
- </span>
- showRecoveryInterstitial
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>Represents the decision and should be obeyed by the client. The remaining
- two flags are provided as additional information for one off decisions. This value
- is <code>true</code> iff isRecoveryInfoNeeded is <code>true</code>, isRecoveryInterstitialAllowed is
- <code>true</code> and a specified period (controlled by server, default 2 months) has passed
- since the user was shown a prompt for recovery information on any google property
- (Android, Web, etc.)
-</p></div>
-
-
- </div>
-</div>
-
-
-
-
<!-- Public ctors -->
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<h2>Public Constructors</h2>
-
-
-
-<A NAME="RecoveryDecision()"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
-
-
-
- </span>
- <span class="sympad">RecoveryDecision</span>
- <span class="normal">()</span>
- </h4>
- <div class="api-level">
- <div></div>
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
- </div>
-</div>
-
-
-
-
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<!-- Protected ctors -->
+<h2>Protected Constructors</h2>
+
+
+
+<A NAME="CollectionMetadataField(java.lang.String)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ protected
+
+
+
+
+
+ </span>
+ <span class="sympad">CollectionMetadataField</span>
+ <span class="normal">(String fieldName)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+ </div>
+</div>
+
+
+
<!-- ========= METHOD DETAIL ======== -->
<!-- Public methdos -->
-<h2>Public Methods</h2>
-
-
-
-<A NAME="describeContents()"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
-
-
- int
- </span>
- <span class="sympad">describeContents</span>
- <span class="normal">()</span>
- </h4>
- <div class="api-level">
- <div></div>
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
- </div>
-</div>
-
-
-<A NAME="getVersionCode()"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
-
-
- int
- </span>
- <span class="sympad">getVersionCode</span>
- <span class="normal">()</span>
- </h4>
- <div class="api-level">
- <div></div>
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
- </div>
-</div>
-
-
-<A NAME="writeToParcel(android.os.Parcel, int)"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
-
-
- void
- </span>
- <span class="sympad">writeToParcel</span>
- <span class="normal">(Parcel out, int flags)</span>
- </h4>
- <div class="api-level">
- <div></div>
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
- </div>
-</div>
-
-
-
<!-- ========= METHOD DETAIL ======== -->
@@ -1658,17 +1215,17 @@
<A NAME="navbar_top"></A>
<div id="footer" class="wrap" >
-
+
<div id="copyright">
-
+
Except as noted, this content is licensed under <a
- href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.
+ href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.
For details and restrictions, see the <a href="/license.html">
Content License</a>.
</div>
<div id="build_info">
-
+
<script src="/timestamp.js" type="text/javascript"></script>
<script>document.write(BUILD_TIMESTAMP)</script>
@@ -1676,7 +1233,7 @@
<div id="footerlinks">
-
+
<p>
<a href="/about/index.html">About Android</a> |
<a href="/legal.html">Legal</a> |
@@ -1689,7 +1246,7 @@
</div><!-- end doc-content -->
-</div> <!-- end body-content -->
+</div> <!-- end body-content -->
diff --git a/docs/html/reference/com/google/android/gms/auth/RecoveryDecision.html b/docs/html/reference/com/google/android/gms/drive/metadata/MetadataField.html
similarity index 61%
copy from docs/html/reference/com/google/android/gms/auth/RecoveryDecision.html
copy to docs/html/reference/com/google/android/gms/drive/metadata/MetadataField.html
index 59a1346..46053a8 100644
--- a/docs/html/reference/com/google/android/gms/auth/RecoveryDecision.html
+++ b/docs/html/reference/com/google/android/gms/drive/metadata/MetadataField.html
@@ -83,7 +83,7 @@
<meta name="viewport" content="width=device-width" />
<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
-<title>RecoveryDecision | Android Developers</title>
+<title>MetadataField | Android Developers</title>
<!-- STYLESHEETS -->
<link rel="stylesheet"
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -128,7 +129,7 @@
<img src="/assets/images/dac_logo.png" width="123" height="25" alt="Android Developers" />
</a>
<div class="btn-quicknav" id="btn-quicknav">
- <a href="#" class="arrow-inactive">Quicknav</a>
+ <a href="#" class="arrow-inactive">Quicknav</a>
<a href="#" class="arrow-active">Quicknav</a>
</div>
</div>
@@ -140,7 +141,7 @@
ru-lang="Проектирование"
ko-lang="디자인"
ja-lang="設計"
- es-lang="Diseñar"
+ es-lang="Diseñar"
>Design</a></li>
<li class="develop"><a href="/develop/index.html"
zh-tw-lang="開發"
@@ -148,7 +149,7 @@
ru-lang="Разработка"
ko-lang="개발"
ja-lang="開発"
- es-lang="Desarrollar"
+ es-lang="Desarrollar"
>Develop</a></li>
<li class="distribute last"><a href="/distribute/index.html"
zh-tw-lang="發佈"
@@ -156,10 +157,10 @@
ru-lang="Распространение"
ko-lang="배포"
ja-lang="配布"
- es-lang="Distribuir"
+ es-lang="Distribuir"
>Distribute</a></li>
</ul>
-
+
<!-- New Search -->
<div class="menu-container">
<div class="moremenu">
@@ -180,9 +181,9 @@
<li class="active"><a>Android Developers</a></li>
<li><a href="http://source.android.com">Android Open Source Project</a></li>
</ul>
-
-
-
+
+
+
<div class="header">Language</div>
<div id="language" class="locales">
<select name="language" onChange="changeLangPref(this.value, true)">
@@ -200,8 +201,8 @@
loadLangPref();
//-->
</script>
-
-
+
+
<br class="clearfix" />
@@ -215,7 +216,7 @@
<form onsubmit="return submit_search()">
<input id="search_autocomplete" type="text" value="" autocomplete="off" name="q"
onfocus="search_focus_changed(this, true)" onblur="search_focus_changed(this, false)"
-onkeydown="return search_changed(event, true, '/')"
+onkeydown="return search_changed(event, true, '/')"
onkeyup="return search_changed(event, false, '/')" />
</form>
<div class="right"></div>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -254,8 +257,8 @@
</div>
<!-- /New Search>
-
-
+
+
<!-- Expanded quicknav -->
<div id="quicknav" class="col-9">
<ul>
@@ -277,15 +280,15 @@
ru-lang="Курсы"
ko-lang="교육"
ja-lang="トレーニング"
- es-lang="Capacitación"
+ es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
ko-lang="API 가이드"
ja-lang="API ガイド"
- es-lang="Guías de la API"
+ es-lang="Guías de la API"
>API Guides</a></li>
<li><a href="/reference/packages.html"
zh-tw-lang="參考資源"
@@ -293,7 +296,7 @@
ru-lang="Справочник"
ko-lang="참조문서"
ja-lang="リファレンス"
- es-lang="Referencia"
+ es-lang="Referencia"
>Reference</a></li>
<li><a href="/tools/index.html"
zh-tw-lang="相關工具"
@@ -301,13 +304,16 @@
ru-lang="Инструменты"
ko-lang="도구"
ja-lang="ツール"
- es-lang="Herramientas"
+ es-lang="Herramientas"
>Tools</a>
<ul><li><a href="/sdk/index.html">Get the SDK</a></li></ul>
</li>
<li><a href="/google/index.html">Google Services</a>
</li>
-
+
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -326,15 +332,15 @@
</div>
</div>
<!-- /Header -->
-
-
+
+
<div id="searchResults" class="wrap" style="display:none;">
<h2 id="searchTitle">Results</h2>
<div id="leftSearchControl" class="search-control">Loading...</div>
</div>
-
-
-
+
+
+
<!-- Secondary x-nav -->
<div id="nav-x">
<div class="wrap">
@@ -345,15 +351,15 @@
ru-lang="Курсы"
ko-lang="교육"
ja-lang="トレーニング"
- es-lang="Capacitación"
+ es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
ko-lang="API 가이드"
ja-lang="API ガイド"
- es-lang="Guías de la API"
+ es-lang="Guías de la API"
>API Guides</a></li>
<li class="reference"><a href="/reference/packages.html"
zh-tw-lang="參考資源"
@@ -361,7 +367,7 @@
ru-lang="Справочник"
ko-lang="참조문서"
ja-lang="リファレンス"
- es-lang="Referencia"
+ es-lang="Referencia"
>Reference</a></li>
<li class="tools"><a href="/tools/index.html"
zh-tw-lang="相關工具"
@@ -374,21 +380,25 @@
<li class="google"><a href="/google/index.html"
>Google Services</a>
</li>
-
+
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
-
+
</div>
<!-- /Sendondary x-nav -->
-
-
-
+
+
+
<div class="wrap clearfix" id="body-content">
<div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
<div id="devdoc-nav" class="scroll-pane">
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
@@ -618,12 +631,12 @@
</script>
-
+
</div>
<script type="text/javascript">
showGoogleRefTree();
-
+
</script>
</div> <!-- end side-nav -->
<script>
@@ -633,7 +646,7 @@
</script>
-
+
@@ -643,21 +656,12 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
<div class="sum-details-links">
@@ -669,22 +673,13 @@
- <a href="#inhconstants">Inherited Constants</a>
-
-
-
- | <a href="#lfields">Fields</a>
-
- | <a href="#pubctors">Ctors</a>
-
+ <a href="#pubmethods">Methods</a>
- | <a href="#pubmethods">Methods</a>
-
@@ -694,9 +689,9 @@
</div><!-- end sum-details-links -->
<div class="api-level">
-
-
-
+
+
+
</div>
</div><!-- end api-info-block -->
@@ -706,28 +701,23 @@
<div id="jd-header">
public
-
-
-
+
+
+ abstract
class
-<h1 itemprop="name">RecoveryDecision</h1>
+<h1 itemprop="name">MetadataField</h1>
-
+
extends Object<br/>
-
-
-
-
-
- implements
-
- Parcelable
-
-
-
+
+
+
+
+
+
</div><!-- end header -->
@@ -739,30 +729,100 @@
<tr>
-
+
<td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
</tr>
-
+
<tr>
-
+
<td class="jd-inheritance-space"> ↳</td>
-
- <td colspan="1" class="jd-inheritance-class-cell">com.google.android.gms.auth.RecoveryDecision</td>
+
+ <td colspan="1" class="jd-inheritance-class-cell">com.google.android.gms.drive.metadata.MetadataField<T></td>
</tr>
-
+
</table>
+<table class="jd-sumtable jd-sumtable-subclasses"><tr><td colspan="12" style="border:none;margin:0;padding:0;">
+
+ <a href="#" onclick="return toggleInherited(this, null)" id="subclasses-direct" class="jd-expando-trigger closed"
+ ><img id="subclasses-direct-trigger"
+ src="/assets/images/triangle-closed.png"
+ class="jd-expando-trigger-img" /></a>Known Direct Subclasses
+
+ <div id="subclasses-direct">
+ <div id="subclasses-direct-list"
+ class="jd-inheritedlinks"
+
+ >
+
+
+ <a href="/reference/com/google/android/gms/drive/metadata/CollectionMetadataField.html">CollectionMetadataField</a><T>,
+
+ <a href="/reference/com/google/android/gms/drive/metadata/OrderedMetadataField.html">OrderedMetadataField</a><T extends Comparable<T>>,
+
+ <a href="/reference/com/google/android/gms/drive/metadata/StringMetadataField.html">StringMetadataField</a>
+
+
+ </div>
+ <div id="subclasses-direct-summary"
+ style="display: none;"
+ >
+ <table class="jd-sumtable-expando">
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/drive/metadata/CollectionMetadataField.html">CollectionMetadataField</a><T></td>
+ <td class="jd-descrcol" width="100%">A metadata field which holds a collection of values. </td>
+ </tr>
+ <tr class=" api apilevel-" >
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/drive/metadata/OrderedMetadataField.html">OrderedMetadataField</a><T extends Comparable<T>></td>
+ <td class="jd-descrcol" width="100%">A metadata field which holds an ordered value (such as a date) which can be used for range
+ queries. </td>
+ </tr>
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/drive/metadata/StringMetadataField.html">StringMetadataField</a></td>
+ <td class="jd-descrcol" width="100%">A metadata field which holds a string value of values. </td>
+ </tr>
+ </table>
+ </div>
+ </div>
+</td></tr></table>
+
<div class="jd-descr">
+<h2>Class Overview</h2>
+<p class="caution">
+ <strong>Note:</strong> The Google Drive Android API is currently in <strong>developer
+ preview</strong>. Applications compiled using this version of the API will
+ continue to operate on devices using future versions of Google Play services;
+ however, changes to the API are expected in future releases.
+</p>
+<p itemprop="articleBody">A single metadata field that can be used as part of file queries. Instances of this class (such
+ as the static values in <code><a href="/reference/com/google/android/gms/drive/query/SearchableField.html">SearchableField</a></code>) can be used
+ to create filters for file queries.
+ <p>
+ <p>
+ For example, the following code will find all files that are starred and have the MIME type type
+ "text/plain":
+ <p>
+
+ <pre>
+ Date oneHourAgo = new Date(System.currentTimeMillis() - (60 * 60 * 1000));
+ Filter starredFilter = Filters.eq(SearchableField.STARRED, true);
+ Filter mimeTypeFilter = Filters.eq(SearchableField.MIME_TYPE, "text/plain");
+ Query query = new Query.Builder().addFilters(starredFilter, mimeTypeFilter).build();
+ for (Metadata metadata : Drive.DriveApi.query(apiClient, query).await().getMetadataBuffer()) {
+ System.out.println(metadata.getTitle());
+ }
+ </pre></p>
+
@@ -804,130 +864,6 @@
-<!-- =========== ENUM CONSTANT SUMMARY =========== -->
-<table id="inhconstants" class="jd-sumtable"><tr><th>
- <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
- <div style="clear:left;">Inherited Constants</div></th></tr>
-
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-
- <a href="#" onclick="return toggleInherited(this, null)" id="inherited-constants-android.os.Parcelable" class="jd-expando-trigger closed"
- ><img id="inherited-constants-android.os.Parcelable-trigger"
- src="/assets/images/triangle-closed.png"
- class="jd-expando-trigger-img" /></a>From interface
-android.os.Parcelable
-<div id="inherited-constants-android.os.Parcelable">
- <div id="inherited-constants-android.os.Parcelable-list"
- class="jd-inheritedlinks">
- </div>
- <div id="inherited-constants-android.os.Parcelable-summary" style="display: none;">
- <table class="jd-sumtable-expando">
-
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol">int</td>
- <td class="jd-linkcol">CONTENTS_FILE_DESCRIPTOR</td>
- <td class="jd-descrcol" width="100%"></td>
- </tr>
-
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol">int</td>
- <td class="jd-linkcol">PARCELABLE_WRITE_RETURN_VALUE</td>
- <td class="jd-descrcol" width="100%"></td>
- </tr>
-
-
-</table>
- </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-
-
-<!-- =========== FIELD SUMMARY =========== -->
-<table id="lfields" class="jd-sumtable"><tr><th colspan="12">Fields</th></tr>
-
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
- static
- final
- <a href="/reference/com/google/android/gms/auth/RecoveryDecisionCreator.html">RecoveryDecisionCreator</a></nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#CREATOR">CREATOR</a></td>
- <td class="jd-descrcol" width="100%"></td>
- </tr>
-
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- boolean</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#isRecoveryInfoNeeded">isRecoveryInfoNeeded</a></td>
- <td class="jd-descrcol" width="100%">Is <code>true</code> if either the account has no recovery information or it
- was updated long time back (controlled by server, default 1 year).</td>
- </tr>
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- boolean</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#isRecoveryInterstitialAllowed">isRecoveryInterstitialAllowed</a></td>
- <td class="jd-descrcol" width="100%">Is <code>true</code> iff the user has permission to update the account.</td>
- </tr>
-
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- PendingIntent</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#recoveryIntent">recoveryIntent</a></td>
- <td class="jd-descrcol" width="100%">A PendingIntent to an activity that gathers recovery information for the given account.</td>
- </tr>
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- PendingIntent</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#recoveryIntentWithoutIntro">recoveryIntentWithoutIntro</a></td>
- <td class="jd-descrcol" width="100%">A PendingIntent to an activity that gathers recovery information for the given account.</td>
- </tr>
-
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- boolean</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#showRecoveryInterstitial">showRecoveryInterstitial</a></td>
- <td class="jd-descrcol" width="100%">Represents the decision and should be obeyed by the client.</td>
- </tr>
-
-
-
-</table>
@@ -935,31 +871,6 @@
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
-
-
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
-
-
-
-
-
- </nobr>
- </td>
- <td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#RecoveryDecision()">RecoveryDecision</a></span>()</nobr>
-
- </td></tr>
-
-
-
-</table>
-
-
@@ -969,51 +880,19 @@
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
- int</nobr>
+
+
+
+
+
+ String</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#describeContents()">describeContents</a></span>()</nobr>
-
- </td></tr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/metadata/MetadataField.html#toString()">toString</a></span>()</nobr>
-
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol"><nobr>
-
-
-
-
-
- int</nobr>
- </td>
- <td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#getVersionCode()">getVersionCode</a></span>()</nobr>
-
- </td></tr>
-
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
-
-
-
-
-
- void</nobr>
- </td>
- <td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#writeToParcel(android.os.Parcel, int)">writeToParcel</a></span>(Parcel out, int flags)</nobr>
-
</td></tr>
@@ -1048,240 +927,182 @@
</div>
<div id="inherited-methods-java.lang.Object-summary" style="display: none;">
<table class="jd-sumtable-expando">
-
-
+
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
Object</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">clone</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
boolean</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">equals</span>(Object arg0)</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">finalize</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
Class<?></nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">getClass</span>()</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
int</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">hashCode</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">notify</span>()</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">notifyAll</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
String</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">toString</span>()</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">wait</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">wait</span>(long arg0)</nobr>
-
- </td></tr>
-
-</table>
- </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
- <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-android.os.Parcelable" class="jd-expando-trigger closed"
- ><img id="inherited-methods-android.os.Parcelable-trigger"
- src="/assets/images/triangle-closed.png"
- class="jd-expando-trigger-img" /></a>
-From interface
-
- android.os.Parcelable
-
-<div id="inherited-methods-android.os.Parcelable">
- <div id="inherited-methods-android.os.Parcelable-list"
- class="jd-inheritedlinks">
- </div>
- <div id="inherited-methods-android.os.Parcelable-summary" style="display: none;">
- <table class="jd-sumtable-expando">
-
-
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
- abstract
-
-
-
-
- int</nobr>
- </td>
- <td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad">describeContents</span>()</nobr>
-
- </td></tr>
-
-
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol"><nobr>
- abstract
-
-
-
-
- void</nobr>
- </td>
- <td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad">writeToParcel</span>(Parcel arg0, int arg1)</nobr>
-
</td></tr>
@@ -1317,236 +1138,9 @@
<!-- Fields -->
-<!-- ========= FIELD DETAIL ======== -->
-<h2>Fields</h2>
-
-
-
-
-<A NAME="CREATOR"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
- static
- final
- <a href="/reference/com/google/android/gms/auth/RecoveryDecisionCreator.html">RecoveryDecisionCreator</a>
- </span>
- CREATOR
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-
- </div>
-</div>
-
-
-
-<A NAME="isRecoveryInfoNeeded"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- boolean
- </span>
- isRecoveryInfoNeeded
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>Is <code>true</code> if either the account has no recovery information or it
- was updated long time back (controlled by server, default 1 year).
-</p></div>
-
-
- </div>
-</div>
-
-
-
-<A NAME="isRecoveryInterstitialAllowed"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- boolean
- </span>
- isRecoveryInterstitialAllowed
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>Is <code>true</code> iff the user has permission to update the account.
- Dasher accounts can have recovery information edit disabled by the administrator.
- Eg: @google.com
-</p></div>
-
-
- </div>
-</div>
-
-
-
-<A NAME="recoveryIntent"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- PendingIntent
- </span>
- recoveryIntent
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>A PendingIntent to an activity that gathers recovery information for the given account.
- This intent will be null iff isRecoveryInterstitialAllowed is <code>false</code>.
-</p></div>
-
-
- </div>
-</div>
-
-
-
-<A NAME="recoveryIntentWithoutIntro"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- PendingIntent
- </span>
- recoveryIntentWithoutIntro
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>A PendingIntent to an activity that gathers recovery information for the given account.
- This intent will be null iff isRecoveryInterstitialAllowed is <code>false</code>.
- This intent directly skips to the input activity without showing the intro message.
-</p></div>
-
-
- </div>
-</div>
-
-
-
-<A NAME="showRecoveryInterstitial"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- boolean
- </span>
- showRecoveryInterstitial
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>Represents the decision and should be obeyed by the client. The remaining
- two flags are provided as additional information for one off decisions. This value
- is <code>true</code> iff isRecoveryInfoNeeded is <code>true</code>, isRecoveryInterstitialAllowed is
- <code>true</code> and a specified period (controlled by server, default 2 months) has passed
- since the user was shown a prompt for recovery information on any google property
- (Android, Web, etc.)
-</p></div>
-
-
- </div>
-</div>
-
-
-
-
<!-- Public ctors -->
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<h2>Public Constructors</h2>
-
-
-
-<A NAME="RecoveryDecision()"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
-
-
-
- </span>
- <span class="sympad">RecoveryDecision</span>
- <span class="normal">()</span>
- </h4>
- <div class="api-level">
- <div></div>
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
- </div>
-</div>
-
-
-
-
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<!-- Protected ctors -->
@@ -1560,87 +1154,29 @@
-<A NAME="describeContents()"></A>
+<A NAME="toString()"></A>
-<div class="jd-details api apilevel-">
+<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
- public
-
-
-
-
- int
+ public
+
+
+
+
+ String
</span>
- <span class="sympad">describeContents</span>
+ <span class="sympad">toString</span>
<span class="normal">()</span>
</h4>
<div class="api-level">
<div></div>
-
-
+
+
</div>
<div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p></p></div>
- </div>
-</div>
-
-
-<A NAME="getVersionCode()"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
-
-
- int
- </span>
- <span class="sympad">getVersionCode</span>
- <span class="normal">()</span>
- </h4>
- <div class="api-level">
- <div></div>
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
- </div>
-</div>
-
-
-<A NAME="writeToParcel(android.os.Parcel, int)"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
-
-
- void
- </span>
- <span class="sympad">writeToParcel</span>
- <span class="normal">(Parcel out, int flags)</span>
- </h4>
- <div class="api-level">
- <div></div>
-
-
-
- </div>
- <div class="jd-details-descr">
-
<div class="jd-tagdata jd-tagdescr"><p></p></div>
</div>
@@ -1658,17 +1194,17 @@
<A NAME="navbar_top"></A>
<div id="footer" class="wrap" >
-
+
<div id="copyright">
-
+
Except as noted, this content is licensed under <a
- href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.
+ href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.
For details and restrictions, see the <a href="/license.html">
Content License</a>.
</div>
<div id="build_info">
-
+
<script src="/timestamp.js" type="text/javascript"></script>
<script>document.write(BUILD_TIMESTAMP)</script>
@@ -1676,7 +1212,7 @@
<div id="footerlinks">
-
+
<p>
<a href="/about/index.html">About Android</a> |
<a href="/legal.html">Legal</a> |
@@ -1689,7 +1225,7 @@
</div><!-- end doc-content -->
-</div> <!-- end body-content -->
+</div> <!-- end body-content -->
diff --git a/docs/html/reference/com/google/android/gms/auth/RecoveryDecision.html b/docs/html/reference/com/google/android/gms/drive/metadata/OrderedMetadataField.html
similarity index 63%
copy from docs/html/reference/com/google/android/gms/auth/RecoveryDecision.html
copy to docs/html/reference/com/google/android/gms/drive/metadata/OrderedMetadataField.html
index 59a1346..6320c9f 100644
--- a/docs/html/reference/com/google/android/gms/auth/RecoveryDecision.html
+++ b/docs/html/reference/com/google/android/gms/drive/metadata/OrderedMetadataField.html
@@ -83,7 +83,7 @@
<meta name="viewport" content="width=device-width" />
<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
-<title>RecoveryDecision | Android Developers</title>
+<title>OrderedMetadataField | Android Developers</title>
<!-- STYLESHEETS -->
<link rel="stylesheet"
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -128,7 +129,7 @@
<img src="/assets/images/dac_logo.png" width="123" height="25" alt="Android Developers" />
</a>
<div class="btn-quicknav" id="btn-quicknav">
- <a href="#" class="arrow-inactive">Quicknav</a>
+ <a href="#" class="arrow-inactive">Quicknav</a>
<a href="#" class="arrow-active">Quicknav</a>
</div>
</div>
@@ -140,7 +141,7 @@
ru-lang="Проектирование"
ko-lang="디자인"
ja-lang="設計"
- es-lang="Diseñar"
+ es-lang="Diseñar"
>Design</a></li>
<li class="develop"><a href="/develop/index.html"
zh-tw-lang="開發"
@@ -148,7 +149,7 @@
ru-lang="Разработка"
ko-lang="개발"
ja-lang="開発"
- es-lang="Desarrollar"
+ es-lang="Desarrollar"
>Develop</a></li>
<li class="distribute last"><a href="/distribute/index.html"
zh-tw-lang="發佈"
@@ -156,10 +157,10 @@
ru-lang="Распространение"
ko-lang="배포"
ja-lang="配布"
- es-lang="Distribuir"
+ es-lang="Distribuir"
>Distribute</a></li>
</ul>
-
+
<!-- New Search -->
<div class="menu-container">
<div class="moremenu">
@@ -180,9 +181,9 @@
<li class="active"><a>Android Developers</a></li>
<li><a href="http://source.android.com">Android Open Source Project</a></li>
</ul>
-
-
-
+
+
+
<div class="header">Language</div>
<div id="language" class="locales">
<select name="language" onChange="changeLangPref(this.value, true)">
@@ -200,8 +201,8 @@
loadLangPref();
//-->
</script>
-
-
+
+
<br class="clearfix" />
@@ -215,7 +216,7 @@
<form onsubmit="return submit_search()">
<input id="search_autocomplete" type="text" value="" autocomplete="off" name="q"
onfocus="search_focus_changed(this, true)" onblur="search_focus_changed(this, false)"
-onkeydown="return search_changed(event, true, '/')"
+onkeydown="return search_changed(event, true, '/')"
onkeyup="return search_changed(event, false, '/')" />
</form>
<div class="right"></div>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -254,8 +257,8 @@
</div>
<!-- /New Search>
-
-
+
+
<!-- Expanded quicknav -->
<div id="quicknav" class="col-9">
<ul>
@@ -277,15 +280,15 @@
ru-lang="Курсы"
ko-lang="교육"
ja-lang="トレーニング"
- es-lang="Capacitación"
+ es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
ko-lang="API 가이드"
ja-lang="API ガイド"
- es-lang="Guías de la API"
+ es-lang="Guías de la API"
>API Guides</a></li>
<li><a href="/reference/packages.html"
zh-tw-lang="參考資源"
@@ -293,7 +296,7 @@
ru-lang="Справочник"
ko-lang="참조문서"
ja-lang="リファレンス"
- es-lang="Referencia"
+ es-lang="Referencia"
>Reference</a></li>
<li><a href="/tools/index.html"
zh-tw-lang="相關工具"
@@ -301,13 +304,16 @@
ru-lang="Инструменты"
ko-lang="도구"
ja-lang="ツール"
- es-lang="Herramientas"
+ es-lang="Herramientas"
>Tools</a>
<ul><li><a href="/sdk/index.html">Get the SDK</a></li></ul>
</li>
<li><a href="/google/index.html">Google Services</a>
</li>
-
+
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -326,15 +332,15 @@
</div>
</div>
<!-- /Header -->
-
-
+
+
<div id="searchResults" class="wrap" style="display:none;">
<h2 id="searchTitle">Results</h2>
<div id="leftSearchControl" class="search-control">Loading...</div>
</div>
-
-
-
+
+
+
<!-- Secondary x-nav -->
<div id="nav-x">
<div class="wrap">
@@ -345,15 +351,15 @@
ru-lang="Курсы"
ko-lang="교육"
ja-lang="トレーニング"
- es-lang="Capacitación"
+ es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
ko-lang="API 가이드"
ja-lang="API ガイド"
- es-lang="Guías de la API"
+ es-lang="Guías de la API"
>API Guides</a></li>
<li class="reference"><a href="/reference/packages.html"
zh-tw-lang="參考資源"
@@ -361,7 +367,7 @@
ru-lang="Справочник"
ko-lang="참조문서"
ja-lang="リファレンス"
- es-lang="Referencia"
+ es-lang="Referencia"
>Reference</a></li>
<li class="tools"><a href="/tools/index.html"
zh-tw-lang="相關工具"
@@ -374,21 +380,25 @@
<li class="google"><a href="/google/index.html"
>Google Services</a>
</li>
-
+
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
-
+
</div>
<!-- /Sendondary x-nav -->
-
-
-
+
+
+
<div class="wrap clearfix" id="body-content">
<div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
<div id="devdoc-nav" class="scroll-pane">
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
@@ -618,12 +631,12 @@
</script>
-
+
</div>
<script type="text/javascript">
showGoogleRefTree();
-
+
</script>
</div> <!-- end side-nav -->
<script>
@@ -633,7 +646,7 @@
</script>
-
+
@@ -643,21 +656,19 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
<div class="sum-details-links">
@@ -669,23 +680,14 @@
- <a href="#inhconstants">Inherited Constants</a>
-
-
-
- | <a href="#lfields">Fields</a>
-
- | <a href="#pubctors">Ctors</a>
-
+
+ <a href="#proctors">Protected Ctors</a>
- | <a href="#pubmethods">Methods</a>
-
-
| <a href="#inhmethods">Inherited Methods</a>
@@ -694,9 +696,9 @@
</div><!-- end sum-details-links -->
<div class="api-level">
-
-
-
+
+
+
</div>
</div><!-- end api-info-block -->
@@ -706,28 +708,27 @@
<div id="jd-header">
public
-
-
-
+
+
+ abstract
class
-<h1 itemprop="name">RecoveryDecision</h1>
+<h1 itemprop="name">OrderedMetadataField</h1>
-
- extends Object<br/>
-
-
-
-
-
- implements
-
- Parcelable
-
-
-
+
+
+
+
+ extends <a href="/reference/com/google/android/gms/drive/metadata/MetadataField.html">MetadataField</a><T><br/>
+
+
+
+
+
+
+
</div><!-- end header -->
@@ -739,18 +740,28 @@
<tr>
-
- <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
+
+ <td colspan="3" class="jd-inheritance-class-cell">java.lang.Object</td>
</tr>
-
+
<tr>
-
+
<td class="jd-inheritance-space"> ↳</td>
-
- <td colspan="1" class="jd-inheritance-class-cell">com.google.android.gms.auth.RecoveryDecision</td>
+
+ <td colspan="2" class="jd-inheritance-class-cell"><a href="/reference/com/google/android/gms/drive/metadata/MetadataField.html">com.google.android.gms.drive.metadata.MetadataField</a><T></td>
</tr>
-
+
+
+ <tr>
+
+ <td class="jd-inheritance-space"> </td>
+
+ <td class="jd-inheritance-space"> ↳</td>
+
+ <td colspan="1" class="jd-inheritance-class-cell">com.google.android.gms.drive.metadata.OrderedMetadataField<T extends java.lang.Comparable<T>></td>
+ </tr>
+
</table>
@@ -763,6 +774,36 @@
<div class="jd-descr">
+<h2>Class Overview</h2>
+<p class="caution">
+ <strong>Note:</strong> The Google Drive Android API is currently in <strong>developer
+ preview</strong>. Applications compiled using this version of the API will
+ continue to operate on devices using future versions of Google Play services;
+ however, changes to the API are expected in future releases.
+</p>
+<p itemprop="articleBody">A metadata field which holds an ordered value (such as a date) which can be used for range
+ queries. Instances of this class (such as the static values in
+ <code><a href="/reference/com/google/android/gms/drive/query/SearchableField.html">SearchableField</a></code>) can be used to create inequality
+ filters for file queries.<p><p>
+ For example, the following code will find all files that were modified in the last hour with the
+ MIME type "text/plain":<p>
+ <pre>
+ Date oneHourAgo = new Date(System.currentTimeMillis() - (60 * 60 * 1000));
+ Filter dateFilter = Filters.greaterThan(SearchableField.MODIFIED_DATE, parent);
+ Filter mimeTypeFilter = Filters.eq(SearchableField.MIME_TYPE, "text/plain");
+ Query query = new Query.Builder().addFilters(dateFilter, mimeTypeFilter).build();
+ for (Metadata metadata : Drive.DriveApi.query(apiClient, query).await().getMetadataBuffer()) {
+ System.out.println(metadata.getTitle());
+ }
+ </pre>
+ <p>
+ Note that you must pass a DateMetadataField to the <code>Filters.greaterThan</code>,
+ <code>Filters.lessThan</code>, <code>Filters.lessThanEquals</code>, or <code>Filters.greaterThanEquals</code>
+ methods; a plain <code><a href="/reference/com/google/android/gms/drive/metadata/MetadataField.html">MetadataField</a></code> cannot be used as part of an inequality query. However,
+ every <code>DateMetadataField</code> is also a <code>MetadataField</code>, so you can use a
+ <code>DateMetadataField</code> with <code>Filters.eq</code> (for example, if you want to find a file that
+ was modified at an exact time).</p>
+
@@ -804,216 +845,49 @@
-<!-- =========== ENUM CONSTANT SUMMARY =========== -->
-<table id="inhconstants" class="jd-sumtable"><tr><th>
- <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
- <div style="clear:left;">Inherited Constants</div></th></tr>
-<tr class="api apilevel-" >
-<td colspan="12">
-
- <a href="#" onclick="return toggleInherited(this, null)" id="inherited-constants-android.os.Parcelable" class="jd-expando-trigger closed"
- ><img id="inherited-constants-android.os.Parcelable-trigger"
- src="/assets/images/triangle-closed.png"
- class="jd-expando-trigger-img" /></a>From interface
-android.os.Parcelable
-<div id="inherited-constants-android.os.Parcelable">
- <div id="inherited-constants-android.os.Parcelable-list"
- class="jd-inheritedlinks">
- </div>
- <div id="inherited-constants-android.os.Parcelable-summary" style="display: none;">
- <table class="jd-sumtable-expando">
-
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol">int</td>
- <td class="jd-linkcol">CONTENTS_FILE_DESCRIPTOR</td>
- <td class="jd-descrcol" width="100%"></td>
- </tr>
-
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol">int</td>
- <td class="jd-linkcol">PARCELABLE_WRITE_RETURN_VALUE</td>
- <td class="jd-descrcol" width="100%"></td>
- </tr>
-
-
-</table>
- </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-
-
-<!-- =========== FIELD SUMMARY =========== -->
-<table id="lfields" class="jd-sumtable"><tr><th colspan="12">Fields</th></tr>
-
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
- static
- final
- <a href="/reference/com/google/android/gms/auth/RecoveryDecisionCreator.html">RecoveryDecisionCreator</a></nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#CREATOR">CREATOR</a></td>
- <td class="jd-descrcol" width="100%"></td>
- </tr>
-
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- boolean</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#isRecoveryInfoNeeded">isRecoveryInfoNeeded</a></td>
- <td class="jd-descrcol" width="100%">Is <code>true</code> if either the account has no recovery information or it
- was updated long time back (controlled by server, default 1 year).</td>
- </tr>
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- boolean</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#isRecoveryInterstitialAllowed">isRecoveryInterstitialAllowed</a></td>
- <td class="jd-descrcol" width="100%">Is <code>true</code> iff the user has permission to update the account.</td>
- </tr>
-
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- PendingIntent</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#recoveryIntent">recoveryIntent</a></td>
- <td class="jd-descrcol" width="100%">A PendingIntent to an activity that gathers recovery information for the given account.</td>
- </tr>
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- PendingIntent</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#recoveryIntentWithoutIntro">recoveryIntentWithoutIntro</a></td>
- <td class="jd-descrcol" width="100%">A PendingIntent to an activity that gathers recovery information for the given account.</td>
- </tr>
-
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- boolean</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#showRecoveryInterstitial">showRecoveryInterstitial</a></td>
- <td class="jd-descrcol" width="100%">Represents the decision and should be obeyed by the client.</td>
- </tr>
-
-
-
-</table>
-
-
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
+<table id="proctors" class="jd-sumtable"><tr><th colspan="12">Protected Constructors</th></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#RecoveryDecision()">RecoveryDecision</a></span>()</nobr>
-
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/metadata/OrderedMetadataField.html#OrderedMetadataField(java.lang.String)">OrderedMetadataField</a></span>(String fieldName)</nobr>
+
</td></tr>
-</table>
-
-
-
-
-
-
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
-
-
-
-
-
- int</nobr>
- </td>
- <td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#describeContents()">describeContents</a></span>()</nobr>
-
- </td></tr>
-
-
-
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
- int</nobr>
- </td>
- <td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#getVersionCode()">getVersionCode</a></span>()</nobr>
-
- </td></tr>
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
-
-
-
-
-
- void</nobr>
+
+
+
+ </nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#writeToParcel(android.os.Parcel, int)">writeToParcel</a></span>(Parcel out, int flags)</nobr>
-
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/metadata/OrderedMetadataField.html#OrderedMetadataField(java.lang.String, java.util.Collection<java.lang.String>)">OrderedMetadataField</a></span>(String fieldName, Collection<String> dataHolderFieldNames)</nobr>
+
</td></tr>
@@ -1026,6 +900,8 @@
+
+
<!-- ========== METHOD SUMMARY =========== -->
<table id="inhmethods" class="jd-sumtable"><tr><th>
<a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
@@ -1034,6 +910,48 @@
<tr class="api apilevel-" >
<td colspan="12">
+ <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.android.gms.drive.metadata.MetadataField" class="jd-expando-trigger closed"
+ ><img id="inherited-methods-com.google.android.gms.drive.metadata.MetadataField-trigger"
+ src="/assets/images/triangle-closed.png"
+ class="jd-expando-trigger-img" /></a>
+From class
+
+ <a href="/reference/com/google/android/gms/drive/metadata/MetadataField.html">com.google.android.gms.drive.metadata.MetadataField</a>
+
+<div id="inherited-methods-com.google.android.gms.drive.metadata.MetadataField">
+ <div id="inherited-methods-com.google.android.gms.drive.metadata.MetadataField-list"
+ class="jd-inheritedlinks">
+ </div>
+ <div id="inherited-methods-com.google.android.gms.drive.metadata.MetadataField-summary" style="display: none;">
+ <table class="jd-sumtable-expando">
+
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ String</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/metadata/MetadataField.html#toString()">toString</a></span>()</nobr>
+
+ </td></tr>
+
+
+</table>
+ </div>
+</div>
+</td></tr>
+
+
+
+<tr class="api apilevel-" >
+<td colspan="12">
<a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
><img id="inherited-methods-java.lang.Object-trigger"
src="/assets/images/triangle-closed.png"
@@ -1048,240 +966,182 @@
</div>
<div id="inherited-methods-java.lang.Object-summary" style="display: none;">
<table class="jd-sumtable-expando">
-
-
+
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
Object</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">clone</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
boolean</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">equals</span>(Object arg0)</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">finalize</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
Class<?></nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">getClass</span>()</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
int</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">hashCode</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">notify</span>()</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">notifyAll</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
String</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">toString</span>()</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">wait</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">wait</span>(long arg0)</nobr>
-
- </td></tr>
-
-</table>
- </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
- <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-android.os.Parcelable" class="jd-expando-trigger closed"
- ><img id="inherited-methods-android.os.Parcelable-trigger"
- src="/assets/images/triangle-closed.png"
- class="jd-expando-trigger-img" /></a>
-From interface
-
- android.os.Parcelable
-
-<div id="inherited-methods-android.os.Parcelable">
- <div id="inherited-methods-android.os.Parcelable-list"
- class="jd-inheritedlinks">
- </div>
- <div id="inherited-methods-android.os.Parcelable-summary" style="display: none;">
- <table class="jd-sumtable-expando">
-
-
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
- abstract
-
-
-
-
- int</nobr>
- </td>
- <td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad">describeContents</span>()</nobr>
-
- </td></tr>
-
-
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol"><nobr>
- abstract
-
-
-
-
- void</nobr>
- </td>
- <td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad">writeToParcel</span>(Parcel arg0, int arg1)</nobr>
-
</td></tr>
@@ -1317,337 +1177,81 @@
<!-- Fields -->
-<!-- ========= FIELD DETAIL ======== -->
-<h2>Fields</h2>
-
-
-
-
-<A NAME="CREATOR"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
- static
- final
- <a href="/reference/com/google/android/gms/auth/RecoveryDecisionCreator.html">RecoveryDecisionCreator</a>
- </span>
- CREATOR
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-
- </div>
-</div>
-
-
-
-<A NAME="isRecoveryInfoNeeded"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- boolean
- </span>
- isRecoveryInfoNeeded
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>Is <code>true</code> if either the account has no recovery information or it
- was updated long time back (controlled by server, default 1 year).
-</p></div>
-
-
- </div>
-</div>
-
-
-
-<A NAME="isRecoveryInterstitialAllowed"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- boolean
- </span>
- isRecoveryInterstitialAllowed
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>Is <code>true</code> iff the user has permission to update the account.
- Dasher accounts can have recovery information edit disabled by the administrator.
- Eg: @google.com
-</p></div>
-
-
- </div>
-</div>
-
-
-
-<A NAME="recoveryIntent"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- PendingIntent
- </span>
- recoveryIntent
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>A PendingIntent to an activity that gathers recovery information for the given account.
- This intent will be null iff isRecoveryInterstitialAllowed is <code>false</code>.
-</p></div>
-
-
- </div>
-</div>
-
-
-
-<A NAME="recoveryIntentWithoutIntro"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- PendingIntent
- </span>
- recoveryIntentWithoutIntro
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>A PendingIntent to an activity that gathers recovery information for the given account.
- This intent will be null iff isRecoveryInterstitialAllowed is <code>false</code>.
- This intent directly skips to the input activity without showing the intro message.
-</p></div>
-
-
- </div>
-</div>
-
-
-
-<A NAME="showRecoveryInterstitial"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- boolean
- </span>
- showRecoveryInterstitial
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>Represents the decision and should be obeyed by the client. The remaining
- two flags are provided as additional information for one off decisions. This value
- is <code>true</code> iff isRecoveryInfoNeeded is <code>true</code>, isRecoveryInterstitialAllowed is
- <code>true</code> and a specified period (controlled by server, default 2 months) has passed
- since the user was shown a prompt for recovery information on any google property
- (Android, Web, etc.)
-</p></div>
-
-
- </div>
-</div>
-
-
-
-
<!-- Public ctors -->
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<h2>Public Constructors</h2>
-
-
-
-<A NAME="RecoveryDecision()"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
-
-
-
- </span>
- <span class="sympad">RecoveryDecision</span>
- <span class="normal">()</span>
- </h4>
- <div class="api-level">
- <div></div>
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
- </div>
-</div>
-
-
-
-
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<!-- Protected ctors -->
+<h2>Protected Constructors</h2>
+
+
+
+<A NAME="OrderedMetadataField(java.lang.String)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ protected
+
+
+
+
+
+ </span>
+ <span class="sympad">OrderedMetadataField</span>
+ <span class="normal">(String fieldName)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+ </div>
+</div>
+
+
+<A NAME="OrderedMetadataField(java.lang.String, java.util.Collection<java.lang.String>)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ protected
+
+
+
+
+
+ </span>
+ <span class="sympad">OrderedMetadataField</span>
+ <span class="normal">(String fieldName, Collection<String> dataHolderFieldNames)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+ </div>
+</div>
+
+
+
<!-- ========= METHOD DETAIL ======== -->
<!-- Public methdos -->
-<h2>Public Methods</h2>
-
-
-
-<A NAME="describeContents()"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
-
-
- int
- </span>
- <span class="sympad">describeContents</span>
- <span class="normal">()</span>
- </h4>
- <div class="api-level">
- <div></div>
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
- </div>
-</div>
-
-
-<A NAME="getVersionCode()"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
-
-
- int
- </span>
- <span class="sympad">getVersionCode</span>
- <span class="normal">()</span>
- </h4>
- <div class="api-level">
- <div></div>
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
- </div>
-</div>
-
-
-<A NAME="writeToParcel(android.os.Parcel, int)"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
-
-
- void
- </span>
- <span class="sympad">writeToParcel</span>
- <span class="normal">(Parcel out, int flags)</span>
- </h4>
- <div class="api-level">
- <div></div>
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
- </div>
-</div>
-
-
-
<!-- ========= METHOD DETAIL ======== -->
@@ -1658,17 +1262,17 @@
<A NAME="navbar_top"></A>
<div id="footer" class="wrap" >
-
+
<div id="copyright">
-
+
Except as noted, this content is licensed under <a
- href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.
+ href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.
For details and restrictions, see the <a href="/license.html">
Content License</a>.
</div>
<div id="build_info">
-
+
<script src="/timestamp.js" type="text/javascript"></script>
<script>document.write(BUILD_TIMESTAMP)</script>
@@ -1676,7 +1280,7 @@
<div id="footerlinks">
-
+
<p>
<a href="/about/index.html">About Android</a> |
<a href="/legal.html">Legal</a> |
@@ -1689,7 +1293,7 @@
</div><!-- end doc-content -->
-</div> <!-- end body-content -->
+</div> <!-- end body-content -->
diff --git a/docs/html/reference/com/google/android/gms/auth/RecoveryDecision.html b/docs/html/reference/com/google/android/gms/drive/metadata/StringMetadataField.html
similarity index 62%
copy from docs/html/reference/com/google/android/gms/auth/RecoveryDecision.html
copy to docs/html/reference/com/google/android/gms/drive/metadata/StringMetadataField.html
index 59a1346..0948cd8 100644
--- a/docs/html/reference/com/google/android/gms/auth/RecoveryDecision.html
+++ b/docs/html/reference/com/google/android/gms/drive/metadata/StringMetadataField.html
@@ -83,7 +83,7 @@
<meta name="viewport" content="width=device-width" />
<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
-<title>RecoveryDecision | Android Developers</title>
+<title>StringMetadataField | Android Developers</title>
<!-- STYLESHEETS -->
<link rel="stylesheet"
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -128,7 +129,7 @@
<img src="/assets/images/dac_logo.png" width="123" height="25" alt="Android Developers" />
</a>
<div class="btn-quicknav" id="btn-quicknav">
- <a href="#" class="arrow-inactive">Quicknav</a>
+ <a href="#" class="arrow-inactive">Quicknav</a>
<a href="#" class="arrow-active">Quicknav</a>
</div>
</div>
@@ -140,7 +141,7 @@
ru-lang="Проектирование"
ko-lang="디자인"
ja-lang="設計"
- es-lang="Diseñar"
+ es-lang="Diseñar"
>Design</a></li>
<li class="develop"><a href="/develop/index.html"
zh-tw-lang="開發"
@@ -148,7 +149,7 @@
ru-lang="Разработка"
ko-lang="개발"
ja-lang="開発"
- es-lang="Desarrollar"
+ es-lang="Desarrollar"
>Develop</a></li>
<li class="distribute last"><a href="/distribute/index.html"
zh-tw-lang="發佈"
@@ -156,10 +157,10 @@
ru-lang="Распространение"
ko-lang="배포"
ja-lang="配布"
- es-lang="Distribuir"
+ es-lang="Distribuir"
>Distribute</a></li>
</ul>
-
+
<!-- New Search -->
<div class="menu-container">
<div class="moremenu">
@@ -180,9 +181,9 @@
<li class="active"><a>Android Developers</a></li>
<li><a href="http://source.android.com">Android Open Source Project</a></li>
</ul>
-
-
-
+
+
+
<div class="header">Language</div>
<div id="language" class="locales">
<select name="language" onChange="changeLangPref(this.value, true)">
@@ -200,8 +201,8 @@
loadLangPref();
//-->
</script>
-
-
+
+
<br class="clearfix" />
@@ -215,7 +216,7 @@
<form onsubmit="return submit_search()">
<input id="search_autocomplete" type="text" value="" autocomplete="off" name="q"
onfocus="search_focus_changed(this, true)" onblur="search_focus_changed(this, false)"
-onkeydown="return search_changed(event, true, '/')"
+onkeydown="return search_changed(event, true, '/')"
onkeyup="return search_changed(event, false, '/')" />
</form>
<div class="right"></div>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -254,8 +257,8 @@
</div>
<!-- /New Search>
-
-
+
+
<!-- Expanded quicknav -->
<div id="quicknav" class="col-9">
<ul>
@@ -277,15 +280,15 @@
ru-lang="Курсы"
ko-lang="교육"
ja-lang="トレーニング"
- es-lang="Capacitación"
+ es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
ko-lang="API 가이드"
ja-lang="API ガイド"
- es-lang="Guías de la API"
+ es-lang="Guías de la API"
>API Guides</a></li>
<li><a href="/reference/packages.html"
zh-tw-lang="參考資源"
@@ -293,7 +296,7 @@
ru-lang="Справочник"
ko-lang="참조문서"
ja-lang="リファレンス"
- es-lang="Referencia"
+ es-lang="Referencia"
>Reference</a></li>
<li><a href="/tools/index.html"
zh-tw-lang="相關工具"
@@ -301,13 +304,16 @@
ru-lang="Инструменты"
ko-lang="도구"
ja-lang="ツール"
- es-lang="Herramientas"
+ es-lang="Herramientas"
>Tools</a>
<ul><li><a href="/sdk/index.html">Get the SDK</a></li></ul>
</li>
<li><a href="/google/index.html">Google Services</a>
</li>
-
+
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -326,15 +332,15 @@
</div>
</div>
<!-- /Header -->
-
-
+
+
<div id="searchResults" class="wrap" style="display:none;">
<h2 id="searchTitle">Results</h2>
<div id="leftSearchControl" class="search-control">Loading...</div>
</div>
-
-
-
+
+
+
<!-- Secondary x-nav -->
<div id="nav-x">
<div class="wrap">
@@ -345,15 +351,15 @@
ru-lang="Курсы"
ko-lang="교육"
ja-lang="トレーニング"
- es-lang="Capacitación"
+ es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
ko-lang="API 가이드"
ja-lang="API ガイド"
- es-lang="Guías de la API"
+ es-lang="Guías de la API"
>API Guides</a></li>
<li class="reference"><a href="/reference/packages.html"
zh-tw-lang="參考資源"
@@ -361,7 +367,7 @@
ru-lang="Справочник"
ko-lang="참조문서"
ja-lang="リファレンス"
- es-lang="Referencia"
+ es-lang="Referencia"
>Reference</a></li>
<li class="tools"><a href="/tools/index.html"
zh-tw-lang="相關工具"
@@ -374,21 +380,25 @@
<li class="google"><a href="/google/index.html"
>Google Services</a>
</li>
-
+
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
-
+
</div>
<!-- /Sendondary x-nav -->
-
-
-
+
+
+
<div class="wrap clearfix" id="body-content">
<div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
<div id="devdoc-nav" class="scroll-pane">
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
@@ -618,12 +631,12 @@
</script>
-
+
</div>
<script type="text/javascript">
showGoogleRefTree();
-
+
</script>
</div> <!-- end side-nav -->
<script>
@@ -633,7 +646,7 @@
</script>
-
+
@@ -643,21 +656,19 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
<div class="sum-details-links">
@@ -669,22 +680,13 @@
- <a href="#inhconstants">Inherited Constants</a>
-
-
-
- | <a href="#lfields">Fields</a>
-
- | <a href="#pubctors">Ctors</a>
-
+ <a href="#pubctors">Ctors</a>
- | <a href="#pubmethods">Methods</a>
-
@@ -694,9 +696,9 @@
</div><!-- end sum-details-links -->
<div class="api-level">
-
-
-
+
+
+
</div>
</div><!-- end api-info-block -->
@@ -706,28 +708,27 @@
<div id="jd-header">
public
-
-
-
+
+ final
+
class
-<h1 itemprop="name">RecoveryDecision</h1>
+<h1 itemprop="name">StringMetadataField</h1>
-
- extends Object<br/>
-
-
-
-
-
- implements
-
- Parcelable
-
-
-
+
+
+
+
+ extends <a href="/reference/com/google/android/gms/drive/metadata/MetadataField.html">MetadataField</a><T><br/>
+
+
+
+
+
+
+
</div><!-- end header -->
@@ -739,18 +740,28 @@
<tr>
-
- <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
+
+ <td colspan="3" class="jd-inheritance-class-cell">java.lang.Object</td>
</tr>
-
+
<tr>
-
+
<td class="jd-inheritance-space"> ↳</td>
-
- <td colspan="1" class="jd-inheritance-class-cell">com.google.android.gms.auth.RecoveryDecision</td>
+
+ <td colspan="2" class="jd-inheritance-class-cell"><a href="/reference/com/google/android/gms/drive/metadata/MetadataField.html">com.google.android.gms.drive.metadata.MetadataField</a><T></td>
</tr>
-
+
+
+ <tr>
+
+ <td class="jd-inheritance-space"> </td>
+
+ <td class="jd-inheritance-space"> ↳</td>
+
+ <td colspan="1" class="jd-inheritance-class-cell">com.google.android.gms.drive.metadata.StringMetadataField</td>
+ </tr>
+
</table>
@@ -763,6 +774,32 @@
<div class="jd-descr">
+<h2>Class Overview</h2>
+<p class="caution">
+ <strong>Note:</strong> The Google Drive Android API is currently in <strong>developer
+ preview</strong>. Applications compiled using this version of the API will
+ continue to operate on devices using future versions of Google Play services;
+ however, changes to the API are expected in future releases.
+</p>
+<p itemprop="articleBody">A metadata field which holds a string value of values. Instances of this class (such as the
+ static values in <code><a href="/reference/com/google/android/gms/drive/query/SearchableField.html">SearchableField</a></code>) can be used to
+ create "substring" filters for file queries.<p><p>
+ For example, the following code will find all files with "pizza" in the title:<p>
+ <pre>
+ Filter titleFilter = Filters.substring(SearchableField.TITLE, "pizza");
+ Query query = new Query.Builder().addFilters(titleFilter).build();
+ for (Metadata metadata : Drive.DriveApi.query(apiClient, query).await().getMetadataBuffer()) {
+ System.out.println(metadata.getTitle());
+ }
+ </pre>
+ <p>
+ Note that you must pass a <code><a href="/reference/com/google/android/gms/drive/metadata/StringMetadataField.html">StringMetadataField</a></code> to the <code>Filters.substring</code> method;
+ a plain <code><a href="/reference/com/google/android/gms/drive/metadata/MetadataField.html">MetadataField</a></code> cannot be used as part of an "substring" query. However, every
+ <code>StringMetadataField</code> is also a <code>MetadataField</code>, so you can use a
+ <code>StringMetadataField</code> with <code>Filters.eq</code> (for example, if you want to find a
+ file with an exact title).
+</p>
+
@@ -804,130 +841,6 @@
-<!-- =========== ENUM CONSTANT SUMMARY =========== -->
-<table id="inhconstants" class="jd-sumtable"><tr><th>
- <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
- <div style="clear:left;">Inherited Constants</div></th></tr>
-
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-
- <a href="#" onclick="return toggleInherited(this, null)" id="inherited-constants-android.os.Parcelable" class="jd-expando-trigger closed"
- ><img id="inherited-constants-android.os.Parcelable-trigger"
- src="/assets/images/triangle-closed.png"
- class="jd-expando-trigger-img" /></a>From interface
-android.os.Parcelable
-<div id="inherited-constants-android.os.Parcelable">
- <div id="inherited-constants-android.os.Parcelable-list"
- class="jd-inheritedlinks">
- </div>
- <div id="inherited-constants-android.os.Parcelable-summary" style="display: none;">
- <table class="jd-sumtable-expando">
-
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol">int</td>
- <td class="jd-linkcol">CONTENTS_FILE_DESCRIPTOR</td>
- <td class="jd-descrcol" width="100%"></td>
- </tr>
-
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol">int</td>
- <td class="jd-linkcol">PARCELABLE_WRITE_RETURN_VALUE</td>
- <td class="jd-descrcol" width="100%"></td>
- </tr>
-
-
-</table>
- </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-
-
-<!-- =========== FIELD SUMMARY =========== -->
-<table id="lfields" class="jd-sumtable"><tr><th colspan="12">Fields</th></tr>
-
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
- static
- final
- <a href="/reference/com/google/android/gms/auth/RecoveryDecisionCreator.html">RecoveryDecisionCreator</a></nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#CREATOR">CREATOR</a></td>
- <td class="jd-descrcol" width="100%"></td>
- </tr>
-
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- boolean</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#isRecoveryInfoNeeded">isRecoveryInfoNeeded</a></td>
- <td class="jd-descrcol" width="100%">Is <code>true</code> if either the account has no recovery information or it
- was updated long time back (controlled by server, default 1 year).</td>
- </tr>
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- boolean</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#isRecoveryInterstitialAllowed">isRecoveryInterstitialAllowed</a></td>
- <td class="jd-descrcol" width="100%">Is <code>true</code> iff the user has permission to update the account.</td>
- </tr>
-
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- PendingIntent</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#recoveryIntent">recoveryIntent</a></td>
- <td class="jd-descrcol" width="100%">A PendingIntent to an activity that gathers recovery information for the given account.</td>
- </tr>
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- PendingIntent</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#recoveryIntentWithoutIntro">recoveryIntentWithoutIntro</a></td>
- <td class="jd-descrcol" width="100%">A PendingIntent to an activity that gathers recovery information for the given account.</td>
- </tr>
-
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- boolean</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#showRecoveryInterstitial">showRecoveryInterstitial</a></td>
- <td class="jd-descrcol" width="100%">Represents the decision and should be obeyed by the client.</td>
- </tr>
-
-
-
-</table>
@@ -940,19 +853,19 @@
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#RecoveryDecision()">RecoveryDecision</a></span>()</nobr>
-
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/metadata/StringMetadataField.html#StringMetadataField(java.lang.String)">StringMetadataField</a></span>(String fieldName)</nobr>
+
</td></tr>
@@ -964,63 +877,6 @@
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
-
-
-
-
-
- int</nobr>
- </td>
- <td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#describeContents()">describeContents</a></span>()</nobr>
-
- </td></tr>
-
-
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol"><nobr>
-
-
-
-
-
- int</nobr>
- </td>
- <td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#getVersionCode()">getVersionCode</a></span>()</nobr>
-
- </td></tr>
-
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
-
-
-
-
-
- void</nobr>
- </td>
- <td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#writeToParcel(android.os.Parcel, int)">writeToParcel</a></span>(Parcel out, int flags)</nobr>
-
- </td></tr>
-
-
-
-</table>
-
-
@@ -1034,6 +890,48 @@
<tr class="api apilevel-" >
<td colspan="12">
+ <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.android.gms.drive.metadata.MetadataField" class="jd-expando-trigger closed"
+ ><img id="inherited-methods-com.google.android.gms.drive.metadata.MetadataField-trigger"
+ src="/assets/images/triangle-closed.png"
+ class="jd-expando-trigger-img" /></a>
+From class
+
+ <a href="/reference/com/google/android/gms/drive/metadata/MetadataField.html">com.google.android.gms.drive.metadata.MetadataField</a>
+
+<div id="inherited-methods-com.google.android.gms.drive.metadata.MetadataField">
+ <div id="inherited-methods-com.google.android.gms.drive.metadata.MetadataField-list"
+ class="jd-inheritedlinks">
+ </div>
+ <div id="inherited-methods-com.google.android.gms.drive.metadata.MetadataField-summary" style="display: none;">
+ <table class="jd-sumtable-expando">
+
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ String</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/metadata/MetadataField.html#toString()">toString</a></span>()</nobr>
+
+ </td></tr>
+
+
+</table>
+ </div>
+</div>
+</td></tr>
+
+
+
+<tr class="api apilevel-" >
+<td colspan="12">
<a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
><img id="inherited-methods-java.lang.Object-trigger"
src="/assets/images/triangle-closed.png"
@@ -1048,240 +946,182 @@
</div>
<div id="inherited-methods-java.lang.Object-summary" style="display: none;">
<table class="jd-sumtable-expando">
-
-
+
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
Object</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">clone</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
boolean</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">equals</span>(Object arg0)</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">finalize</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
Class<?></nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">getClass</span>()</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
int</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">hashCode</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">notify</span>()</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">notifyAll</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
String</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">toString</span>()</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">wait</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">wait</span>(long arg0)</nobr>
-
- </td></tr>
-
-</table>
- </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
- <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-android.os.Parcelable" class="jd-expando-trigger closed"
- ><img id="inherited-methods-android.os.Parcelable-trigger"
- src="/assets/images/triangle-closed.png"
- class="jd-expando-trigger-img" /></a>
-From interface
-
- android.os.Parcelable
-
-<div id="inherited-methods-android.os.Parcelable">
- <div id="inherited-methods-android.os.Parcelable-list"
- class="jd-inheritedlinks">
- </div>
- <div id="inherited-methods-android.os.Parcelable-summary" style="display: none;">
- <table class="jd-sumtable-expando">
-
-
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
- abstract
-
-
-
-
- int</nobr>
- </td>
- <td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad">describeContents</span>()</nobr>
-
- </td></tr>
-
-
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol"><nobr>
- abstract
-
-
-
-
- void</nobr>
- </td>
- <td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad">writeToParcel</span>(Parcel arg0, int arg1)</nobr>
-
</td></tr>
@@ -1317,197 +1157,6 @@
<!-- Fields -->
-<!-- ========= FIELD DETAIL ======== -->
-<h2>Fields</h2>
-
-
-
-
-<A NAME="CREATOR"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
- static
- final
- <a href="/reference/com/google/android/gms/auth/RecoveryDecisionCreator.html">RecoveryDecisionCreator</a>
- </span>
- CREATOR
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-
- </div>
-</div>
-
-
-
-<A NAME="isRecoveryInfoNeeded"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- boolean
- </span>
- isRecoveryInfoNeeded
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>Is <code>true</code> if either the account has no recovery information or it
- was updated long time back (controlled by server, default 1 year).
-</p></div>
-
-
- </div>
-</div>
-
-
-
-<A NAME="isRecoveryInterstitialAllowed"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- boolean
- </span>
- isRecoveryInterstitialAllowed
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>Is <code>true</code> iff the user has permission to update the account.
- Dasher accounts can have recovery information edit disabled by the administrator.
- Eg: @google.com
-</p></div>
-
-
- </div>
-</div>
-
-
-
-<A NAME="recoveryIntent"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- PendingIntent
- </span>
- recoveryIntent
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>A PendingIntent to an activity that gathers recovery information for the given account.
- This intent will be null iff isRecoveryInterstitialAllowed is <code>false</code>.
-</p></div>
-
-
- </div>
-</div>
-
-
-
-<A NAME="recoveryIntentWithoutIntro"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- PendingIntent
- </span>
- recoveryIntentWithoutIntro
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>A PendingIntent to an activity that gathers recovery information for the given account.
- This intent will be null iff isRecoveryInterstitialAllowed is <code>false</code>.
- This intent directly skips to the input activity without showing the intro message.
-</p></div>
-
-
- </div>
-</div>
-
-
-
-<A NAME="showRecoveryInterstitial"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- boolean
- </span>
- showRecoveryInterstitial
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>Represents the decision and should be obeyed by the client. The remaining
- two flags are provided as additional information for one off decisions. This value
- is <code>true</code> iff isRecoveryInfoNeeded is <code>true</code>, isRecoveryInterstitialAllowed is
- <code>true</code> and a specified period (controlled by server, default 2 months) has passed
- since the user was shown a prompt for recovery information on any google property
- (Android, Web, etc.)
-</p></div>
-
-
- </div>
-</div>
-
-
-
-
<!-- Public ctors -->
@@ -1516,29 +1165,29 @@
-<A NAME="RecoveryDecision()"></A>
+<A NAME="StringMetadataField(java.lang.String)"></A>
-<div class="jd-details api apilevel-">
+<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
- public
-
-
-
-
-
+ public
+
+
+
+
+
</span>
- <span class="sympad">RecoveryDecision</span>
- <span class="normal">()</span>
+ <span class="sympad">StringMetadataField</span>
+ <span class="normal">(String fieldName)</span>
</h4>
<div class="api-level">
<div></div>
-
-
+
+
</div>
<div class="jd-details-descr">
-
+
<div class="jd-tagdata jd-tagdescr"><p></p></div>
</div>
@@ -1556,98 +1205,6 @@
<!-- ========= METHOD DETAIL ======== -->
<!-- Public methdos -->
-<h2>Public Methods</h2>
-
-
-
-<A NAME="describeContents()"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
-
-
- int
- </span>
- <span class="sympad">describeContents</span>
- <span class="normal">()</span>
- </h4>
- <div class="api-level">
- <div></div>
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
- </div>
-</div>
-
-
-<A NAME="getVersionCode()"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
-
-
- int
- </span>
- <span class="sympad">getVersionCode</span>
- <span class="normal">()</span>
- </h4>
- <div class="api-level">
- <div></div>
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
- </div>
-</div>
-
-
-<A NAME="writeToParcel(android.os.Parcel, int)"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
-
-
- void
- </span>
- <span class="sympad">writeToParcel</span>
- <span class="normal">(Parcel out, int flags)</span>
- </h4>
- <div class="api-level">
- <div></div>
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
- </div>
-</div>
-
-
-
<!-- ========= METHOD DETAIL ======== -->
@@ -1658,17 +1215,17 @@
<A NAME="navbar_top"></A>
<div id="footer" class="wrap" >
-
+
<div id="copyright">
-
+
Except as noted, this content is licensed under <a
- href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.
+ href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.
For details and restrictions, see the <a href="/license.html">
Content License</a>.
</div>
<div id="build_info">
-
+
<script src="/timestamp.js" type="text/javascript"></script>
<script>document.write(BUILD_TIMESTAMP)</script>
@@ -1676,7 +1233,7 @@
<div id="footerlinks">
-
+
<p>
<a href="/about/index.html">About Android</a> |
<a href="/legal.html">Legal</a> |
@@ -1689,7 +1246,7 @@
</div><!-- end doc-content -->
-</div> <!-- end body-content -->
+</div> <!-- end body-content -->
diff --git a/docs/html/reference/com/google/android/gms/drive/metadata/package-summary.html b/docs/html/reference/com/google/android/gms/drive/metadata/package-summary.html
new file mode 100644
index 0000000..0abce93
--- /dev/null
+++ b/docs/html/reference/com/google/android/gms/drive/metadata/package-summary.html
@@ -0,0 +1,757 @@
+<!DOCTYPE html>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<html>
+<head>
+
+
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<meta name="viewport" content="width=device-width" />
+
+<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
+<title>com.google.android.gms.drive.metadata | Android Developers</title>
+
+<!-- STYLESHEETS -->
+<link rel="stylesheet"
+href="//fonts.googleapis.com/css?family=Roboto:regular,medium,thin,italic,mediumitalic,bold" title="roboto">
+<link href="/assets/css/default.css" rel="stylesheet" type="text/css">
+
+
+
+<!-- JAVASCRIPT -->
+<script src="//www.google.com/jsapi" type="text/javascript"></script>
+<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
+<script type="text/javascript">
+ var toRoot = "/";
+ var metaTags = [];
+ var devsite = false;
+</script>
+<script src="/assets/js/docs.js" type="text/javascript"></script>
+
+<script type="text/javascript">
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-5831155-1']);
+ _gaq.push(['_trackPageview']);
+
+ (function() {
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+ })();
+</script>
+</head>
+
+<body class="gc-documentation google
+ develop">
+ <div id="doc-api-level" class="" style="display:none"></div>
+ <a name="top"></a>
+
+<a name="top"></a>
+
+ <!-- Header -->
+ <div id="header">
+ <div class="wrap" id="header-wrap">
+ <div class="col-3 logo">
+ <a href="/index.html">
+ <img src="/assets/images/dac_logo.png" width="123" height="25" alt="Android Developers" />
+ </a>
+ <div class="btn-quicknav" id="btn-quicknav">
+ <a href="#" class="arrow-inactive">Quicknav</a>
+ <a href="#" class="arrow-active">Quicknav</a>
+ </div>
+ </div>
+ <ul class="nav-x col-9">
+ <li class="design">
+ <a href="/design/index.html"
+ zh-tw-lang="設計"
+ zh-cn-lang="设计"
+ ru-lang="Проектирование"
+ ko-lang="디자인"
+ ja-lang="設計"
+ es-lang="Diseñar"
+ >Design</a></li>
+ <li class="develop"><a href="/develop/index.html"
+ zh-tw-lang="開發"
+ zh-cn-lang="开发"
+ ru-lang="Разработка"
+ ko-lang="개발"
+ ja-lang="開発"
+ es-lang="Desarrollar"
+ >Develop</a></li>
+ <li class="distribute last"><a href="/distribute/index.html"
+ zh-tw-lang="發佈"
+ zh-cn-lang="分发"
+ ru-lang="Распространение"
+ ko-lang="배포"
+ ja-lang="配布"
+ es-lang="Distribuir"
+ >Distribute</a></li>
+ </ul>
+
+ <!-- New Search -->
+ <div class="menu-container">
+ <div class="moremenu">
+ <div id="more-btn"></div>
+ </div>
+ <div class="morehover" id="moremenu">
+ <div class="top"></div>
+ <div class="mid">
+ <div class="header">Links</div>
+ <ul>
+ <li><a href="https://play.google.com/apps/publish/">Google Play Developer Console</a></li>
+ <li><a href="http://android-developers.blogspot.com/">Android Developers Blog</a></li>
+ <li><a href="/about/index.html">About Android</a></li>
+ </ul>
+ <div class="header">Android Sites</div>
+ <ul>
+ <li><a href="http://www.android.com">Android.com</a></li>
+ <li class="active"><a>Android Developers</a></li>
+ <li><a href="http://source.android.com">Android Open Source Project</a></li>
+ </ul>
+
+
+
+ <div class="header">Language</div>
+ <div id="language" class="locales">
+ <select name="language" onChange="changeLangPref(this.value, true)">
+ <option value="en">English</option>
+ <option value="es">Español</option>
+ <option value="ja">日本語</option>
+ <option value="ko">한국어</option>
+ <option value="ru">Русский</option>
+ <option value="zh-cn">中文 (中国)</option>
+ <option value="zh-tw">中文 (台灣)</option>
+ </select>
+ </div>
+ <script type="text/javascript">
+ <!--
+ loadLangPref();
+ //-->
+ </script>
+
+
+
+
+ <br class="clearfix" />
+ </div>
+ <div class="bottom"></div>
+ </div>
+ <div class="search" id="search-container">
+ <div class="search-inner">
+ <div id="search-btn"></div>
+ <div class="left"></div>
+ <form onsubmit="return submit_search()">
+ <input id="search_autocomplete" type="text" value="" autocomplete="off" name="q"
+onfocus="search_focus_changed(this, true)" onblur="search_focus_changed(this, false)"
+onkeydown="return search_changed(event, true, '/')"
+onkeyup="return search_changed(event, false, '/')" />
+ </form>
+ <div class="right"></div>
+ <a class="close hide">close</a>
+ <div class="left"></div>
+ <div class="right"></div>
+ </div>
+ </div>
+
+ <div class="search_filtered_wrapper reference">
+ <div class="suggest-card reference no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ </div>
+
+ <div class="search_filtered_wrapper docs">
+ <div class="suggest-card dummy no-display"> </div>
+ <div class="suggest-card develop no-display">
+ <ul class="search_filtered">
+ </ul>
+ <div class="child-card guides no-display">
+ </div>
+ <div class="child-card training no-display">
+ </div>
+ <div class="child-card samples no-display">
+ </div>
+ </div>
+ <div class="suggest-card design no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ <div class="suggest-card distribute no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ </div>
+
+ </div>
+ <!-- /New Search>
+
+
+ <!-- Expanded quicknav -->
+ <div id="quicknav" class="col-9">
+ <ul>
+ <li class="design">
+ <ul>
+ <li><a href="/design/index.html">Get Started</a></li>
+ <li><a href="/design/style/index.html">Style</a></li>
+ <li><a href="/design/patterns/index.html">Patterns</a></li>
+ <li><a href="/design/building-blocks/index.html">Building Blocks</a></li>
+ <li><a href="/design/downloads/index.html">Downloads</a></li>
+ <li><a href="/design/videos/index.html">Videos</a></li>
+ </ul>
+ </li>
+ <li class="develop">
+ <ul>
+ <li><a href="/training/index.html"
+ zh-tw-lang="訓練課程"
+ zh-cn-lang="培训"
+ ru-lang="Курсы"
+ ko-lang="교육"
+ ja-lang="トレーニング"
+ es-lang="Capacitación"
+ >Training</a></li>
+ <li><a href="/guide/index.html"
+ zh-tw-lang="API 指南"
+ zh-cn-lang="API 指南"
+ ru-lang="Руководства по API"
+ ko-lang="API 가이드"
+ ja-lang="API ガイド"
+ es-lang="Guías de la API"
+ >API Guides</a></li>
+ <li><a href="/reference/packages.html"
+ zh-tw-lang="參考資源"
+ zh-cn-lang="参考"
+ ru-lang="Справочник"
+ ko-lang="참조문서"
+ ja-lang="リファレンス"
+ es-lang="Referencia"
+ >Reference</a></li>
+ <li><a href="/tools/index.html"
+ zh-tw-lang="相關工具"
+ zh-cn-lang="工具"
+ ru-lang="Инструменты"
+ ko-lang="도구"
+ ja-lang="ツール"
+ es-lang="Herramientas"
+ >Tools</a>
+ <ul><li><a href="/sdk/index.html">Get the SDK</a></li></ul>
+ </li>
+ <li><a href="/google/index.html">Google Services</a>
+ </li>
+
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
+ </ul>
+ </li>
+ <li class="distribute last">
+ <ul>
+ <li><a href="/distribute/index.html">Google Play</a></li>
+ <li><a href="/distribute/googleplay/publish/index.html">Publishing</a></li>
+ <li><a href="/distribute/googleplay/promote/index.html">Promoting</a></li>
+ <li><a href="/distribute/googleplay/quality/index.html">App Quality</a></li>
+ <li><a href="/distribute/googleplay/spotlight/index.html">Spotlight</a></li>
+ <li><a href="/distribute/open.html">Open Distribution</a></li>
+ </ul>
+ </li>
+ </ul>
+ </div>
+ <!-- /Expanded quicknav -->
+ </div>
+ </div>
+ <!-- /Header -->
+
+
+ <div id="searchResults" class="wrap" style="display:none;">
+ <h2 id="searchTitle">Results</h2>
+ <div id="leftSearchControl" class="search-control">Loading...</div>
+ </div>
+
+
+
+ <!-- Secondary x-nav -->
+ <div id="nav-x">
+ <div class="wrap">
+ <ul class="nav-x col-9 develop" style="width:100%">
+ <li class="training"><a href="/training/index.html"
+ zh-tw-lang="訓練課程"
+ zh-cn-lang="培训"
+ ru-lang="Курсы"
+ ko-lang="교육"
+ ja-lang="トレーニング"
+ es-lang="Capacitación"
+ >Training</a></li>
+ <li class="guide"><a href="/guide/index.html"
+ zh-tw-lang="API 指南"
+ zh-cn-lang="API 指南"
+ ru-lang="Руководства по API"
+ ko-lang="API 가이드"
+ ja-lang="API ガイド"
+ es-lang="Guías de la API"
+ >API Guides</a></li>
+ <li class="reference"><a href="/reference/packages.html"
+ zh-tw-lang="參考資源"
+ zh-cn-lang="参考"
+ ru-lang="Справочник"
+ ko-lang="참조문서"
+ ja-lang="リファレンス"
+ es-lang="Referencia"
+ >Reference</a></li>
+ <li class="tools"><a href="/tools/index.html"
+ zh-tw-lang="相關工具"
+ zh-cn-lang="工具"
+ ru-lang="Инструменты"
+ ko-lang="도구"
+ ja-lang="ツール"
+ es-lang="Herramientas"
+ >Tools</a></li>
+ <li class="google"><a href="/google/index.html"
+ >Google Services</a>
+ </li>
+
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
+ </ul>
+ </div>
+
+ </div>
+ <!-- /Sendondary x-nav -->
+
+
+
+
+
+
+
+
+
+ <div class="wrap clearfix" id="body-content">
+ <div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
+ <div id="devdoc-nav" class="scroll-pane">
+<a class="totop" href="#top" data-g-event="left-nav-top">to top</a>
+
+
+
+<ul id="nav">
+
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/index.html">
+ <span class="en">Overview</span>
+ </a></div>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/games.html">
+ <span class="en">Games</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/location.html">
+ <span class="en">Location</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/plus.html">
+ <span class="en">Google+</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/maps.html">
+ <span class="en">Maps</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play-services/ads.html">
+ <span class="en">Ads</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play-services/id.html">
+ <span class="en">Advertising ID</span></a>
+ </li>
+ </ul>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/wallet.html">
+ <span class="en">Wallet</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/auth.html">
+ <span class="en">Authorization</span>
+ </a></div>
+ </li>
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play-services/index.html">
+ <span class="en">Google Play Services</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play-services/setup.html">
+ <span class="en">Setup</span></a>
+ </li>
+ <li id="gms-tree-list" class="nav-section">
+ <div class="nav-section-header">
+ <a href="/reference/gms-packages.html">
+ <span class="en">Reference</span>
+ </a>
+ <div>
+ </li>
+ </ul>
+ </li>
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/billing/index.html">
+ <span class="en">Google Play In-app Billing</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/billing/billing_overview.html">
+ <span class="en">Overview</span></a>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/api.html">
+ <span class="en">Version 3 API</span></a></div>
+ <ul>
+ <li><a href="/google/play/billing/billing_integrate.html">
+ <span class="en">Implementing the API</span></a></li>
+ <li><a href="/google/play/billing/billing_reference.html">
+ <span class="en">Reference</span></a></li>
+ </ul>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/v2/api.html">
+ <span class="en">Version 2 API</span></a></div>
+ <ul>
+ <li><a href="/google/play/billing/v2/billing_integrate.html">
+ <span class="en">Implementing the API</span></a></li>
+ <li><a href="/google/play/billing/v2/billing_subscriptions.html">
+ <span class="en">Subscriptions</span></a></li>
+ <li><a href="/google/play/billing/v2/billing_reference.html">
+ <span class="en">Reference</span></a></li>
+ </ul>
+ </li>
+ <li><a href="/google/play/billing/billing_subscriptions.html">
+ <span class="en">Subscriptions</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_best_practices.html">
+ <span class="en">Security and Design</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_testing.html">
+ <span class="en">Testing In-app Billing</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_admin.html">
+ <span class="en">Administering In-app Billing</span></a>
+ </li>
+ <li><a href="/google/play/billing/gp-purchase-status-api.html">
+ <span class="en">Purchase Status API</span></a>
+ </li>
+ <li><a href="/google/play/billing/versions.html">
+ <span class="en">Version Notes</span></a>
+ </li>
+ </ul>
+ </li>
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/gcm/index.html">
+ <span class="en">Google Cloud Messaging</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
+ <li><a href="/google/gcm/gs.html">
+ <span class="en">Getting Started</span></a>
+ </li>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
+ </li>
+ <li><a href="/google/gcm/notifications.html">
+ <span class="en">User Notifications</span></a>
+ </li>
+ <li><a href="/google/gcm/adv.html">
+ <span class="en">Advanced Topics</span></a>
+ </li>
+ <li><a href="/google/gcm/c2dm.html">
+ <span class="en">Migration</span></a>
+ </li>
+ <li id="gcm-tree-list" class="nav-section">
+ <div class="nav-section-header">
+ <a href="/reference/gcm-packages.html">
+ <span class="en">Reference</span>
+ </a>
+ <div>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/dist.html">
+ <span class="en">Google Play Distribution</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/filters.html">
+ <span class="en">Filters on Google Play</span></a>
+ </li>
+
+ <li><a href="/google/play/publishing/multiple-apks.html">
+ <span class="en">Multiple APK Support</span></a>
+ </li>
+ <li><a href="/google/play/expansion-files.html">
+ <span class="en">APK Expansion Files</span></a>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/licensing/index.html">
+ <span class="en">Application Licensing</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/licensing/overview.html">
+ <span class="en">Licensing Overview</span></a>
+ </li>
+ <li><a href="/google/play/licensing/setting-up.html">
+ <span class="en">Setting Up for Licensing</span></a>
+ </li>
+ <li><a href="/google/play/licensing/adding-licensing.html">
+ <span class="en">Adding Licensing to Your App</span></a>
+ </li>
+ <li><a href="/google/play/licensing/licensing-reference.html">
+ <span class="en">Licensing Reference</span></a>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/backup/index.html">
+ Android Backup Service</a>
+ </div>
+ <ul>
+ <li><a href="/google/backup/signup.html">
+ Register</a>
+ </li>
+ </ul>
+ </li>
+
+ </ul>
+
+</li>
+
+
+
+</ul>
+
+<script type="text/javascript">
+<!--
+ buildToggleLists();
+ changeNavLang(getLangPref());
+//-->
+</script>
+
+
+
+
+ </div>
+ <script type="text/javascript">
+ showGoogleRefTree();
+
+ </script>
+ </div> <!-- end side-nav -->
+ <script>
+ $(document).ready(function() {
+ scrollIntoView("devdoc-nav");
+ });
+ </script>
+
+
+
+
+
+
+<div class="col-12" id="doc-col">
+
+<div id="api-info-block">
+<div class="api-level">
+
+
+
+
+</div>
+</div>
+
+<div id="jd-header">
+ package
+ <h1>com.google.android.gms.drive.metadata</h1>
+</div><!-- end header -->
+
+<div id="naMessage"></div>
+
+<div id="jd-content" class="api apilevel-">
+
+
+
+
+
+
+
+
+
+
+ <h2>Classes</h2>
+ <div class="jd-sumtable">
+
+ <table class="jd-sumtable-expando">
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/drive/metadata/CollectionMetadataField.html">CollectionMetadataField</a><T></td>
+ <td class="jd-descrcol" width="100%">A metadata field which holds a collection of values. </td>
+ </tr>
+ <tr class=" api apilevel-" >
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/drive/metadata/MetadataField.html">MetadataField</a><T></td>
+ <td class="jd-descrcol" width="100%">A single metadata field that can be used as part of file queries. </td>
+ </tr>
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/drive/metadata/OrderedMetadataField.html">OrderedMetadataField</a><T extends Comparable<T>></td>
+ <td class="jd-descrcol" width="100%">A metadata field which holds an ordered value (such as a date) which can be used for range
+ queries. </td>
+ </tr>
+ <tr class=" api apilevel-" >
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/drive/metadata/StringMetadataField.html">StringMetadataField</a></td>
+ <td class="jd-descrcol" width="100%">A metadata field which holds a string value of values. </td>
+ </tr>
+ </table>
+ </div>
+
+
+
+
+
+
+
+
+
+
+
+
+<div id="footer" class="wrap" >
+
+
+ <div id="copyright">
+
+ Except as noted, this content is licensed under <a
+ href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.
+ For details and restrictions, see the <a href="/license.html">
+ Content License</a>.
+ </div>
+ <div id="build_info">
+
+<script src="/timestamp.js" type="text/javascript"></script>
+<script>document.write(BUILD_TIMESTAMP)</script>
+
+ </div>
+
+
+ <div id="footerlinks">
+
+ <p>
+ <a href="/about/index.html">About Android</a> |
+ <a href="/legal.html">Legal</a> |
+ <a href="/support.html">Support</a>
+ </p>
+ </div>
+
+</div> <!-- end footer -->
+</div><!-- end jd-content -->
+</div><!-- doc-content -->
+
+</div> <!-- end body-content -->
+
+
+
+
+
+
+</body>
+</html>
diff --git a/docs/html/reference/com/google/android/gms/drive/package-summary.html b/docs/html/reference/com/google/android/gms/drive/package-summary.html
new file mode 100644
index 0000000..aa880af
--- /dev/null
+++ b/docs/html/reference/com/google/android/gms/drive/package-summary.html
@@ -0,0 +1,873 @@
+<!DOCTYPE html>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<html>
+<head>
+
+
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<meta name="viewport" content="width=device-width" />
+
+<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
+<title>com.google.android.gms.drive | Android Developers</title>
+
+<!-- STYLESHEETS -->
+<link rel="stylesheet"
+href="//fonts.googleapis.com/css?family=Roboto:regular,medium,thin,italic,mediumitalic,bold" title="roboto">
+<link href="/assets/css/default.css" rel="stylesheet" type="text/css">
+
+
+
+<!-- JAVASCRIPT -->
+<script src="//www.google.com/jsapi" type="text/javascript"></script>
+<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
+<script type="text/javascript">
+ var toRoot = "/";
+ var metaTags = [];
+ var devsite = false;
+</script>
+<script src="/assets/js/docs.js" type="text/javascript"></script>
+
+<script type="text/javascript">
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-5831155-1']);
+ _gaq.push(['_trackPageview']);
+
+ (function() {
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+ })();
+</script>
+</head>
+
+<body class="gc-documentation google
+ develop">
+ <div id="doc-api-level" class="" style="display:none"></div>
+ <a name="top"></a>
+
+<a name="top"></a>
+
+ <!-- Header -->
+ <div id="header">
+ <div class="wrap" id="header-wrap">
+ <div class="col-3 logo">
+ <a href="/index.html">
+ <img src="/assets/images/dac_logo.png" width="123" height="25" alt="Android Developers" />
+ </a>
+ <div class="btn-quicknav" id="btn-quicknav">
+ <a href="#" class="arrow-inactive">Quicknav</a>
+ <a href="#" class="arrow-active">Quicknav</a>
+ </div>
+ </div>
+ <ul class="nav-x col-9">
+ <li class="design">
+ <a href="/design/index.html"
+ zh-tw-lang="設計"
+ zh-cn-lang="设计"
+ ru-lang="Проектирование"
+ ko-lang="디자인"
+ ja-lang="設計"
+ es-lang="Diseñar"
+ >Design</a></li>
+ <li class="develop"><a href="/develop/index.html"
+ zh-tw-lang="開發"
+ zh-cn-lang="开发"
+ ru-lang="Разработка"
+ ko-lang="개발"
+ ja-lang="開発"
+ es-lang="Desarrollar"
+ >Develop</a></li>
+ <li class="distribute last"><a href="/distribute/index.html"
+ zh-tw-lang="發佈"
+ zh-cn-lang="分发"
+ ru-lang="Распространение"
+ ko-lang="배포"
+ ja-lang="配布"
+ es-lang="Distribuir"
+ >Distribute</a></li>
+ </ul>
+
+ <!-- New Search -->
+ <div class="menu-container">
+ <div class="moremenu">
+ <div id="more-btn"></div>
+ </div>
+ <div class="morehover" id="moremenu">
+ <div class="top"></div>
+ <div class="mid">
+ <div class="header">Links</div>
+ <ul>
+ <li><a href="https://play.google.com/apps/publish/">Google Play Developer Console</a></li>
+ <li><a href="http://android-developers.blogspot.com/">Android Developers Blog</a></li>
+ <li><a href="/about/index.html">About Android</a></li>
+ </ul>
+ <div class="header">Android Sites</div>
+ <ul>
+ <li><a href="http://www.android.com">Android.com</a></li>
+ <li class="active"><a>Android Developers</a></li>
+ <li><a href="http://source.android.com">Android Open Source Project</a></li>
+ </ul>
+
+
+
+ <div class="header">Language</div>
+ <div id="language" class="locales">
+ <select name="language" onChange="changeLangPref(this.value, true)">
+ <option value="en">English</option>
+ <option value="es">Español</option>
+ <option value="ja">日本語</option>
+ <option value="ko">한국어</option>
+ <option value="ru">Русский</option>
+ <option value="zh-cn">中文 (中国)</option>
+ <option value="zh-tw">中文 (台灣)</option>
+ </select>
+ </div>
+ <script type="text/javascript">
+ <!--
+ loadLangPref();
+ //-->
+ </script>
+
+
+
+
+ <br class="clearfix" />
+ </div>
+ <div class="bottom"></div>
+ </div>
+ <div class="search" id="search-container">
+ <div class="search-inner">
+ <div id="search-btn"></div>
+ <div class="left"></div>
+ <form onsubmit="return submit_search()">
+ <input id="search_autocomplete" type="text" value="" autocomplete="off" name="q"
+onfocus="search_focus_changed(this, true)" onblur="search_focus_changed(this, false)"
+onkeydown="return search_changed(event, true, '/')"
+onkeyup="return search_changed(event, false, '/')" />
+ </form>
+ <div class="right"></div>
+ <a class="close hide">close</a>
+ <div class="left"></div>
+ <div class="right"></div>
+ </div>
+ </div>
+
+ <div class="search_filtered_wrapper reference">
+ <div class="suggest-card reference no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ </div>
+
+ <div class="search_filtered_wrapper docs">
+ <div class="suggest-card dummy no-display"> </div>
+ <div class="suggest-card develop no-display">
+ <ul class="search_filtered">
+ </ul>
+ <div class="child-card guides no-display">
+ </div>
+ <div class="child-card training no-display">
+ </div>
+ <div class="child-card samples no-display">
+ </div>
+ </div>
+ <div class="suggest-card design no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ <div class="suggest-card distribute no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ </div>
+
+ </div>
+ <!-- /New Search>
+
+
+ <!-- Expanded quicknav -->
+ <div id="quicknav" class="col-9">
+ <ul>
+ <li class="design">
+ <ul>
+ <li><a href="/design/index.html">Get Started</a></li>
+ <li><a href="/design/style/index.html">Style</a></li>
+ <li><a href="/design/patterns/index.html">Patterns</a></li>
+ <li><a href="/design/building-blocks/index.html">Building Blocks</a></li>
+ <li><a href="/design/downloads/index.html">Downloads</a></li>
+ <li><a href="/design/videos/index.html">Videos</a></li>
+ </ul>
+ </li>
+ <li class="develop">
+ <ul>
+ <li><a href="/training/index.html"
+ zh-tw-lang="訓練課程"
+ zh-cn-lang="培训"
+ ru-lang="Курсы"
+ ko-lang="교육"
+ ja-lang="トレーニング"
+ es-lang="Capacitación"
+ >Training</a></li>
+ <li><a href="/guide/index.html"
+ zh-tw-lang="API 指南"
+ zh-cn-lang="API 指南"
+ ru-lang="Руководства по API"
+ ko-lang="API 가이드"
+ ja-lang="API ガイド"
+ es-lang="Guías de la API"
+ >API Guides</a></li>
+ <li><a href="/reference/packages.html"
+ zh-tw-lang="參考資源"
+ zh-cn-lang="参考"
+ ru-lang="Справочник"
+ ko-lang="참조문서"
+ ja-lang="リファレンス"
+ es-lang="Referencia"
+ >Reference</a></li>
+ <li><a href="/tools/index.html"
+ zh-tw-lang="相關工具"
+ zh-cn-lang="工具"
+ ru-lang="Инструменты"
+ ko-lang="도구"
+ ja-lang="ツール"
+ es-lang="Herramientas"
+ >Tools</a>
+ <ul><li><a href="/sdk/index.html">Get the SDK</a></li></ul>
+ </li>
+ <li><a href="/google/index.html">Google Services</a>
+ </li>
+
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
+ </ul>
+ </li>
+ <li class="distribute last">
+ <ul>
+ <li><a href="/distribute/index.html">Google Play</a></li>
+ <li><a href="/distribute/googleplay/publish/index.html">Publishing</a></li>
+ <li><a href="/distribute/googleplay/promote/index.html">Promoting</a></li>
+ <li><a href="/distribute/googleplay/quality/index.html">App Quality</a></li>
+ <li><a href="/distribute/googleplay/spotlight/index.html">Spotlight</a></li>
+ <li><a href="/distribute/open.html">Open Distribution</a></li>
+ </ul>
+ </li>
+ </ul>
+ </div>
+ <!-- /Expanded quicknav -->
+ </div>
+ </div>
+ <!-- /Header -->
+
+
+ <div id="searchResults" class="wrap" style="display:none;">
+ <h2 id="searchTitle">Results</h2>
+ <div id="leftSearchControl" class="search-control">Loading...</div>
+ </div>
+
+
+
+ <!-- Secondary x-nav -->
+ <div id="nav-x">
+ <div class="wrap">
+ <ul class="nav-x col-9 develop" style="width:100%">
+ <li class="training"><a href="/training/index.html"
+ zh-tw-lang="訓練課程"
+ zh-cn-lang="培训"
+ ru-lang="Курсы"
+ ko-lang="교육"
+ ja-lang="トレーニング"
+ es-lang="Capacitación"
+ >Training</a></li>
+ <li class="guide"><a href="/guide/index.html"
+ zh-tw-lang="API 指南"
+ zh-cn-lang="API 指南"
+ ru-lang="Руководства по API"
+ ko-lang="API 가이드"
+ ja-lang="API ガイド"
+ es-lang="Guías de la API"
+ >API Guides</a></li>
+ <li class="reference"><a href="/reference/packages.html"
+ zh-tw-lang="參考資源"
+ zh-cn-lang="参考"
+ ru-lang="Справочник"
+ ko-lang="참조문서"
+ ja-lang="リファレンス"
+ es-lang="Referencia"
+ >Reference</a></li>
+ <li class="tools"><a href="/tools/index.html"
+ zh-tw-lang="相關工具"
+ zh-cn-lang="工具"
+ ru-lang="Инструменты"
+ ko-lang="도구"
+ ja-lang="ツール"
+ es-lang="Herramientas"
+ >Tools</a></li>
+ <li class="google"><a href="/google/index.html"
+ >Google Services</a>
+ </li>
+
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
+ </ul>
+ </div>
+
+ </div>
+ <!-- /Sendondary x-nav -->
+
+
+
+
+
+
+
+
+
+ <div class="wrap clearfix" id="body-content">
+ <div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
+ <div id="devdoc-nav" class="scroll-pane">
+<a class="totop" href="#top" data-g-event="left-nav-top">to top</a>
+
+
+
+<ul id="nav">
+
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/index.html">
+ <span class="en">Overview</span>
+ </a></div>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/games.html">
+ <span class="en">Games</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/location.html">
+ <span class="en">Location</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/plus.html">
+ <span class="en">Google+</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/maps.html">
+ <span class="en">Maps</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play-services/ads.html">
+ <span class="en">Ads</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play-services/id.html">
+ <span class="en">Advertising ID</span></a>
+ </li>
+ </ul>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/wallet.html">
+ <span class="en">Wallet</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/auth.html">
+ <span class="en">Authorization</span>
+ </a></div>
+ </li>
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play-services/index.html">
+ <span class="en">Google Play Services</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play-services/setup.html">
+ <span class="en">Setup</span></a>
+ </li>
+ <li id="gms-tree-list" class="nav-section">
+ <div class="nav-section-header">
+ <a href="/reference/gms-packages.html">
+ <span class="en">Reference</span>
+ </a>
+ <div>
+ </li>
+ </ul>
+ </li>
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/billing/index.html">
+ <span class="en">Google Play In-app Billing</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/billing/billing_overview.html">
+ <span class="en">Overview</span></a>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/api.html">
+ <span class="en">Version 3 API</span></a></div>
+ <ul>
+ <li><a href="/google/play/billing/billing_integrate.html">
+ <span class="en">Implementing the API</span></a></li>
+ <li><a href="/google/play/billing/billing_reference.html">
+ <span class="en">Reference</span></a></li>
+ </ul>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/v2/api.html">
+ <span class="en">Version 2 API</span></a></div>
+ <ul>
+ <li><a href="/google/play/billing/v2/billing_integrate.html">
+ <span class="en">Implementing the API</span></a></li>
+ <li><a href="/google/play/billing/v2/billing_subscriptions.html">
+ <span class="en">Subscriptions</span></a></li>
+ <li><a href="/google/play/billing/v2/billing_reference.html">
+ <span class="en">Reference</span></a></li>
+ </ul>
+ </li>
+ <li><a href="/google/play/billing/billing_subscriptions.html">
+ <span class="en">Subscriptions</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_best_practices.html">
+ <span class="en">Security and Design</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_testing.html">
+ <span class="en">Testing In-app Billing</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_admin.html">
+ <span class="en">Administering In-app Billing</span></a>
+ </li>
+ <li><a href="/google/play/billing/gp-purchase-status-api.html">
+ <span class="en">Purchase Status API</span></a>
+ </li>
+ <li><a href="/google/play/billing/versions.html">
+ <span class="en">Version Notes</span></a>
+ </li>
+ </ul>
+ </li>
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/gcm/index.html">
+ <span class="en">Google Cloud Messaging</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
+ <li><a href="/google/gcm/gs.html">
+ <span class="en">Getting Started</span></a>
+ </li>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
+ </li>
+ <li><a href="/google/gcm/notifications.html">
+ <span class="en">User Notifications</span></a>
+ </li>
+ <li><a href="/google/gcm/adv.html">
+ <span class="en">Advanced Topics</span></a>
+ </li>
+ <li><a href="/google/gcm/c2dm.html">
+ <span class="en">Migration</span></a>
+ </li>
+ <li id="gcm-tree-list" class="nav-section">
+ <div class="nav-section-header">
+ <a href="/reference/gcm-packages.html">
+ <span class="en">Reference</span>
+ </a>
+ <div>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/dist.html">
+ <span class="en">Google Play Distribution</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/filters.html">
+ <span class="en">Filters on Google Play</span></a>
+ </li>
+
+ <li><a href="/google/play/publishing/multiple-apks.html">
+ <span class="en">Multiple APK Support</span></a>
+ </li>
+ <li><a href="/google/play/expansion-files.html">
+ <span class="en">APK Expansion Files</span></a>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/licensing/index.html">
+ <span class="en">Application Licensing</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/licensing/overview.html">
+ <span class="en">Licensing Overview</span></a>
+ </li>
+ <li><a href="/google/play/licensing/setting-up.html">
+ <span class="en">Setting Up for Licensing</span></a>
+ </li>
+ <li><a href="/google/play/licensing/adding-licensing.html">
+ <span class="en">Adding Licensing to Your App</span></a>
+ </li>
+ <li><a href="/google/play/licensing/licensing-reference.html">
+ <span class="en">Licensing Reference</span></a>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/backup/index.html">
+ Android Backup Service</a>
+ </div>
+ <ul>
+ <li><a href="/google/backup/signup.html">
+ Register</a>
+ </li>
+ </ul>
+ </li>
+
+ </ul>
+
+</li>
+
+
+
+</ul>
+
+<script type="text/javascript">
+<!--
+ buildToggleLists();
+ changeNavLang(getLangPref());
+//-->
+</script>
+
+
+
+
+ </div>
+ <script type="text/javascript">
+ showGoogleRefTree();
+
+ </script>
+ </div> <!-- end side-nav -->
+ <script>
+ $(document).ready(function() {
+ scrollIntoView("devdoc-nav");
+ });
+ </script>
+
+
+
+
+
+
+<div class="col-12" id="doc-col">
+
+<div id="api-info-block">
+<div class="api-level">
+
+
+
+
+</div>
+</div>
+
+<div id="jd-header">
+ package
+ <h1>com.google.android.gms.drive</h1>
+</div><!-- end header -->
+
+<div id="naMessage"></div>
+
+<div id="jd-content" class="api apilevel-">
+
+ <div class="jd-descr">
+<p class="caution">
+ <strong>Note:</strong> The Google Drive Android API is currently in <strong>developer
+ preview</strong>. Applications compiled using this version of the API will
+ continue to operate on devices using future versions of Google Play services;
+ however, changes to the API are expected in future releases.
+</p>
+ </div>
+
+
+
+
+ <h2>Interfaces</h2>
+ <div class="jd-sumtable">
+
+ <table class="jd-sumtable-expando">
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/drive/DriveApi.html">DriveApi</a></td>
+ <td class="jd-descrcol" width="100%">The main entry point for interacting with Drive. </td>
+ </tr>
+ <tr class=" api apilevel-" >
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/drive/DriveApi.ContentsResult.html">DriveApi.ContentsResult</a></td>
+ <td class="jd-descrcol" width="100%">Result that contains a Contents reference. </td>
+ </tr>
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/drive/DriveApi.IntentSenderResult.html">DriveApi.IntentSenderResult</a></td>
+ <td class="jd-descrcol" width="100%">Result that contains an IntentSender reference. </td>
+ </tr>
+ <tr class=" api apilevel-" >
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/drive/DriveApi.MetadataBufferResult.html">DriveApi.MetadataBufferResult</a></td>
+ <td class="jd-descrcol" width="100%">Result that contains a MetadataBuffer. </td>
+ </tr>
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/drive/DriveApi.OnContentsDiscardedCallback.html">DriveApi.OnContentsDiscardedCallback</a></td>
+ <td class="jd-descrcol" width="100%">A callback that provides the result for a <code><a href="/reference/com/google/android/gms/drive/DriveApi.html#discardContents(com.google.android.gms.common.api.GoogleApiClient, com.google.android.gms.drive.Contents)">discardContents(GoogleApiClient, Contents)</a></code> request. </td>
+ </tr>
+ <tr class=" api apilevel-" >
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/drive/DriveApi.OnNewContentsCallback.html">DriveApi.OnNewContentsCallback</a></td>
+ <td class="jd-descrcol" width="100%">A callback that provides the result for a OpenContents request. </td>
+ </tr>
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/drive/DriveApi.OnSyncFinishCallback.html">DriveApi.OnSyncFinishCallback</a></td>
+ <td class="jd-descrcol" width="100%">A callback that provides the result for a <code><a href="/reference/com/google/android/gms/drive/DriveApi.html#requestSync(com.google.android.gms.common.api.GoogleApiClient)">requestSync(GoogleApiClient)</a></code> request. </td>
+ </tr>
+ <tr class=" api apilevel-" >
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/drive/DriveFile.html">DriveFile</a></td>
+ <td class="jd-descrcol" width="100%">A file in Drive. </td>
+ </tr>
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/drive/DriveFile.DownloadProgressListener.html">DriveFile.DownloadProgressListener</a></td>
+ <td class="jd-descrcol" width="100%">A listener that listens for progress events on an active contents download. </td>
+ </tr>
+ <tr class=" api apilevel-" >
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/drive/DriveFile.OnContentsClosedCallback.html">DriveFile.OnContentsClosedCallback</a></td>
+ <td class="jd-descrcol" width="100%">A callback that provides the result for a <code><a href="/reference/com/google/android/gms/drive/DriveFile.html#commitAndCloseContents(com.google.android.gms.common.api.GoogleApiClient, com.google.android.gms.drive.Contents)">commitAndCloseContents(GoogleApiClient, Contents)</a></code> request. </td>
+ </tr>
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/drive/DriveFile.OnContentsOpenedCallback.html">DriveFile.OnContentsOpenedCallback</a></td>
+ <td class="jd-descrcol" width="100%">A callback that provides the result for a OpenContents request. </td>
+ </tr>
+ <tr class=" api apilevel-" >
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/drive/DriveFolder.html">DriveFolder</a></td>
+ <td class="jd-descrcol" width="100%">A folder in Drive. </td>
+ </tr>
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/drive/DriveFolder.DriveFileResult.html">DriveFolder.DriveFileResult</a></td>
+ <td class="jd-descrcol" width="100%">A result that contains a DriveFile. </td>
+ </tr>
+ <tr class=" api apilevel-" >
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/drive/DriveFolder.DriveFolderResult.html">DriveFolder.DriveFolderResult</a></td>
+ <td class="jd-descrcol" width="100%">A result that contains a DriveFolder. </td>
+ </tr>
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/drive/DriveFolder.OnChildrenRetrievedCallback.html">DriveFolder.OnChildrenRetrievedCallback</a></td>
+ <td class="jd-descrcol" width="100%">A callback that provides the result for a get children request. </td>
+ </tr>
+ <tr class=" api apilevel-" >
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/drive/DriveFolder.OnCreateFileCallback.html">DriveFolder.OnCreateFileCallback</a></td>
+ <td class="jd-descrcol" width="100%">A callback that provides the result for a create file request. </td>
+ </tr>
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/drive/DriveFolder.OnCreateFolderCallback.html">DriveFolder.OnCreateFolderCallback</a></td>
+ <td class="jd-descrcol" width="100%">A callback that provides the result for a create folder request. </td>
+ </tr>
+ <tr class=" api apilevel-" >
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/drive/DriveResource.html">DriveResource</a></td>
+ <td class="jd-descrcol" width="100%">A Resource represents a file or folder in Drive. </td>
+ </tr>
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/drive/DriveResource.MetadataResult.html">DriveResource.MetadataResult</a></td>
+ <td class="jd-descrcol" width="100%">Result that is returned in response to metadata requests. </td>
+ </tr>
+ <tr class=" api apilevel-" >
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/drive/DriveResource.OnMetadataRetrievedCallback.html">DriveResource.OnMetadataRetrievedCallback</a></td>
+ <td class="jd-descrcol" width="100%">A callback that provides the result for a get request. </td>
+ </tr>
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/drive/DriveResource.OnMetadataUpdatedCallback.html">DriveResource.OnMetadataUpdatedCallback</a></td>
+ <td class="jd-descrcol" width="100%">A callback that indicates that the metadata update has completed. </td>
+ </tr>
+ </table>
+ </div>
+
+
+
+
+ <h2>Classes</h2>
+ <div class="jd-sumtable">
+
+ <table class="jd-sumtable-expando">
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/drive/Contents.html">Contents</a></td>
+ <td class="jd-descrcol" width="100%">A reference to a Drive file's contents. </td>
+ </tr>
+ <tr class=" api apilevel-" >
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/drive/CreateFileActivityBuilder.html">CreateFileActivityBuilder</a></td>
+ <td class="jd-descrcol" width="100%">A builder that is used to configure and display the create file activity. </td>
+ </tr>
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/drive/Drive.html">Drive</a></td>
+ <td class="jd-descrcol" width="100%">The Drive API provides easy access to users' Google Drive contents. </td>
+ </tr>
+ <tr class=" api apilevel-" >
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/drive/DriveId.html">DriveId</a></td>
+ <td class="jd-descrcol" width="100%">A canonical identifier for a Drive resource. </td>
+ </tr>
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/drive/Metadata.html">Metadata</a></td>
+ <td class="jd-descrcol" width="100%">The details of a Drive file or folder. </td>
+ </tr>
+ <tr class=" api apilevel-" >
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/drive/MetadataBuffer.html">MetadataBuffer</a></td>
+ <td class="jd-descrcol" width="100%">A data buffer that points to Metadata entries. </td>
+ </tr>
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/drive/MetadataChangeSet.html">MetadataChangeSet</a></td>
+ <td class="jd-descrcol" width="100%">A collection of metadata changes. </td>
+ </tr>
+ <tr class=" api apilevel-" >
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/drive/MetadataChangeSet.Builder.html">MetadataChangeSet.Builder</a></td>
+ <td class="jd-descrcol" width="100%">A builder for creating a new MetadataChangeSet. </td>
+ </tr>
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/drive/OpenFileActivityBuilder.html">OpenFileActivityBuilder</a></td>
+ <td class="jd-descrcol" width="100%">A builder that is used to configure and display the open file activity. </td>
+ </tr>
+ </table>
+ </div>
+
+
+
+
+
+
+
+
+
+
+
+
+<div id="footer" class="wrap" >
+
+
+ <div id="copyright">
+
+ Except as noted, this content is licensed under <a
+ href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.
+ For details and restrictions, see the <a href="/license.html">
+ Content License</a>.
+ </div>
+ <div id="build_info">
+
+<script src="/timestamp.js" type="text/javascript"></script>
+<script>document.write(BUILD_TIMESTAMP)</script>
+
+ </div>
+
+
+ <div id="footerlinks">
+
+ <p>
+ <a href="/about/index.html">About Android</a> |
+ <a href="/legal.html">Legal</a> |
+ <a href="/support.html">Support</a>
+ </p>
+ </div>
+
+</div> <!-- end footer -->
+</div><!-- end jd-content -->
+</div><!-- doc-content -->
+
+</div> <!-- end body-content -->
+
+
+
+
+
+
+</body>
+</html>
diff --git a/docs/html/reference/com/google/android/gms/drive/query/Filter.html b/docs/html/reference/com/google/android/gms/drive/query/Filter.html
new file mode 100644
index 0000000..fd9427e
--- /dev/null
+++ b/docs/html/reference/com/google/android/gms/drive/query/Filter.html
@@ -0,0 +1,832 @@
+<!DOCTYPE html>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<html>
+<head>
+
+
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<meta name="viewport" content="width=device-width" />
+
+<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
+<title>Filter | Android Developers</title>
+
+<!-- STYLESHEETS -->
+<link rel="stylesheet"
+href="//fonts.googleapis.com/css?family=Roboto:regular,medium,thin,italic,mediumitalic,bold" title="roboto">
+<link href="/assets/css/default.css" rel="stylesheet" type="text/css">
+
+
+
+<!-- JAVASCRIPT -->
+<script src="//www.google.com/jsapi" type="text/javascript"></script>
+<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
+<script type="text/javascript">
+ var toRoot = "/";
+ var metaTags = [];
+ var devsite = false;
+</script>
+<script src="/assets/js/docs.js" type="text/javascript"></script>
+
+<script type="text/javascript">
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-5831155-1']);
+ _gaq.push(['_trackPageview']);
+
+ (function() {
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+ })();
+</script>
+</head>
+<body class="gc-documentation google
+ develop" itemscope itemtype="http://schema.org/Article">
+ <div id="doc-api-level" class="" style="display:none"></div>
+ <a name="top"></a>
+
+<a name="top"></a>
+
+ <!-- Header -->
+ <div id="header">
+ <div class="wrap" id="header-wrap">
+ <div class="col-3 logo">
+ <a href="/index.html">
+ <img src="/assets/images/dac_logo.png" width="123" height="25" alt="Android Developers" />
+ </a>
+ <div class="btn-quicknav" id="btn-quicknav">
+ <a href="#" class="arrow-inactive">Quicknav</a>
+ <a href="#" class="arrow-active">Quicknav</a>
+ </div>
+ </div>
+ <ul class="nav-x col-9">
+ <li class="design">
+ <a href="/design/index.html"
+ zh-tw-lang="設計"
+ zh-cn-lang="设计"
+ ru-lang="Проектирование"
+ ko-lang="디자인"
+ ja-lang="設計"
+ es-lang="Diseñar"
+ >Design</a></li>
+ <li class="develop"><a href="/develop/index.html"
+ zh-tw-lang="開發"
+ zh-cn-lang="开发"
+ ru-lang="Разработка"
+ ko-lang="개발"
+ ja-lang="開発"
+ es-lang="Desarrollar"
+ >Develop</a></li>
+ <li class="distribute last"><a href="/distribute/index.html"
+ zh-tw-lang="發佈"
+ zh-cn-lang="分发"
+ ru-lang="Распространение"
+ ko-lang="배포"
+ ja-lang="配布"
+ es-lang="Distribuir"
+ >Distribute</a></li>
+ </ul>
+
+ <!-- New Search -->
+ <div class="menu-container">
+ <div class="moremenu">
+ <div id="more-btn"></div>
+ </div>
+ <div class="morehover" id="moremenu">
+ <div class="top"></div>
+ <div class="mid">
+ <div class="header">Links</div>
+ <ul>
+ <li><a href="https://play.google.com/apps/publish/">Google Play Developer Console</a></li>
+ <li><a href="http://android-developers.blogspot.com/">Android Developers Blog</a></li>
+ <li><a href="/about/index.html">About Android</a></li>
+ </ul>
+ <div class="header">Android Sites</div>
+ <ul>
+ <li><a href="http://www.android.com">Android.com</a></li>
+ <li class="active"><a>Android Developers</a></li>
+ <li><a href="http://source.android.com">Android Open Source Project</a></li>
+ </ul>
+
+
+
+ <div class="header">Language</div>
+ <div id="language" class="locales">
+ <select name="language" onChange="changeLangPref(this.value, true)">
+ <option value="en">English</option>
+ <option value="es">Español</option>
+ <option value="ja">日本語</option>
+ <option value="ko">한국어</option>
+ <option value="ru">Русский</option>
+ <option value="zh-cn">中文 (中国)</option>
+ <option value="zh-tw">中文 (台灣)</option>
+ </select>
+ </div>
+ <script type="text/javascript">
+ <!--
+ loadLangPref();
+ //-->
+ </script>
+
+
+
+
+ <br class="clearfix" />
+ </div>
+ <div class="bottom"></div>
+ </div>
+ <div class="search" id="search-container">
+ <div class="search-inner">
+ <div id="search-btn"></div>
+ <div class="left"></div>
+ <form onsubmit="return submit_search()">
+ <input id="search_autocomplete" type="text" value="" autocomplete="off" name="q"
+onfocus="search_focus_changed(this, true)" onblur="search_focus_changed(this, false)"
+onkeydown="return search_changed(event, true, '/')"
+onkeyup="return search_changed(event, false, '/')" />
+ </form>
+ <div class="right"></div>
+ <a class="close hide">close</a>
+ <div class="left"></div>
+ <div class="right"></div>
+ </div>
+ </div>
+
+ <div class="search_filtered_wrapper reference">
+ <div class="suggest-card reference no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ </div>
+
+ <div class="search_filtered_wrapper docs">
+ <div class="suggest-card dummy no-display"> </div>
+ <div class="suggest-card develop no-display">
+ <ul class="search_filtered">
+ </ul>
+ <div class="child-card guides no-display">
+ </div>
+ <div class="child-card training no-display">
+ </div>
+ <div class="child-card samples no-display">
+ </div>
+ </div>
+ <div class="suggest-card design no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ <div class="suggest-card distribute no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ </div>
+
+ </div>
+ <!-- /New Search>
+
+
+ <!-- Expanded quicknav -->
+ <div id="quicknav" class="col-9">
+ <ul>
+ <li class="design">
+ <ul>
+ <li><a href="/design/index.html">Get Started</a></li>
+ <li><a href="/design/style/index.html">Style</a></li>
+ <li><a href="/design/patterns/index.html">Patterns</a></li>
+ <li><a href="/design/building-blocks/index.html">Building Blocks</a></li>
+ <li><a href="/design/downloads/index.html">Downloads</a></li>
+ <li><a href="/design/videos/index.html">Videos</a></li>
+ </ul>
+ </li>
+ <li class="develop">
+ <ul>
+ <li><a href="/training/index.html"
+ zh-tw-lang="訓練課程"
+ zh-cn-lang="培训"
+ ru-lang="Курсы"
+ ko-lang="교육"
+ ja-lang="トレーニング"
+ es-lang="Capacitación"
+ >Training</a></li>
+ <li><a href="/guide/index.html"
+ zh-tw-lang="API 指南"
+ zh-cn-lang="API 指南"
+ ru-lang="Руководства по API"
+ ko-lang="API 가이드"
+ ja-lang="API ガイド"
+ es-lang="Guías de la API"
+ >API Guides</a></li>
+ <li><a href="/reference/packages.html"
+ zh-tw-lang="參考資源"
+ zh-cn-lang="参考"
+ ru-lang="Справочник"
+ ko-lang="참조문서"
+ ja-lang="リファレンス"
+ es-lang="Referencia"
+ >Reference</a></li>
+ <li><a href="/tools/index.html"
+ zh-tw-lang="相關工具"
+ zh-cn-lang="工具"
+ ru-lang="Инструменты"
+ ko-lang="도구"
+ ja-lang="ツール"
+ es-lang="Herramientas"
+ >Tools</a>
+ <ul><li><a href="/sdk/index.html">Get the SDK</a></li></ul>
+ </li>
+ <li><a href="/google/index.html">Google Services</a>
+ </li>
+
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
+ </ul>
+ </li>
+ <li class="distribute last">
+ <ul>
+ <li><a href="/distribute/index.html">Google Play</a></li>
+ <li><a href="/distribute/googleplay/publish/index.html">Publishing</a></li>
+ <li><a href="/distribute/googleplay/promote/index.html">Promoting</a></li>
+ <li><a href="/distribute/googleplay/quality/index.html">App Quality</a></li>
+ <li><a href="/distribute/googleplay/spotlight/index.html">Spotlight</a></li>
+ <li><a href="/distribute/open.html">Open Distribution</a></li>
+ </ul>
+ </li>
+ </ul>
+ </div>
+ <!-- /Expanded quicknav -->
+ </div>
+ </div>
+ <!-- /Header -->
+
+
+ <div id="searchResults" class="wrap" style="display:none;">
+ <h2 id="searchTitle">Results</h2>
+ <div id="leftSearchControl" class="search-control">Loading...</div>
+ </div>
+
+
+
+ <!-- Secondary x-nav -->
+ <div id="nav-x">
+ <div class="wrap">
+ <ul class="nav-x col-9 develop" style="width:100%">
+ <li class="training"><a href="/training/index.html"
+ zh-tw-lang="訓練課程"
+ zh-cn-lang="培训"
+ ru-lang="Курсы"
+ ko-lang="교육"
+ ja-lang="トレーニング"
+ es-lang="Capacitación"
+ >Training</a></li>
+ <li class="guide"><a href="/guide/index.html"
+ zh-tw-lang="API 指南"
+ zh-cn-lang="API 指南"
+ ru-lang="Руководства по API"
+ ko-lang="API 가이드"
+ ja-lang="API ガイド"
+ es-lang="Guías de la API"
+ >API Guides</a></li>
+ <li class="reference"><a href="/reference/packages.html"
+ zh-tw-lang="參考資源"
+ zh-cn-lang="参考"
+ ru-lang="Справочник"
+ ko-lang="참조문서"
+ ja-lang="リファレンス"
+ es-lang="Referencia"
+ >Reference</a></li>
+ <li class="tools"><a href="/tools/index.html"
+ zh-tw-lang="相關工具"
+ zh-cn-lang="工具"
+ ru-lang="Инструменты"
+ ko-lang="도구"
+ ja-lang="ツール"
+ es-lang="Herramientas"
+ >Tools</a></li>
+ <li class="google"><a href="/google/index.html"
+ >Google Services</a>
+ </li>
+
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
+ </ul>
+ </div>
+
+ </div>
+ <!-- /Sendondary x-nav -->
+
+
+
+
+
+
+
+
+
+ <div class="wrap clearfix" id="body-content">
+ <div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
+ <div id="devdoc-nav" class="scroll-pane">
+<a class="totop" href="#top" data-g-event="left-nav-top">to top</a>
+
+
+
+<ul id="nav">
+
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/index.html">
+ <span class="en">Overview</span>
+ </a></div>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/games.html">
+ <span class="en">Games</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/location.html">
+ <span class="en">Location</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/plus.html">
+ <span class="en">Google+</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/maps.html">
+ <span class="en">Maps</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play-services/ads.html">
+ <span class="en">Ads</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play-services/id.html">
+ <span class="en">Advertising ID</span></a>
+ </li>
+ </ul>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/wallet.html">
+ <span class="en">Wallet</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/auth.html">
+ <span class="en">Authorization</span>
+ </a></div>
+ </li>
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play-services/index.html">
+ <span class="en">Google Play Services</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play-services/setup.html">
+ <span class="en">Setup</span></a>
+ </li>
+ <li id="gms-tree-list" class="nav-section">
+ <div class="nav-section-header">
+ <a href="/reference/gms-packages.html">
+ <span class="en">Reference</span>
+ </a>
+ <div>
+ </li>
+ </ul>
+ </li>
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/billing/index.html">
+ <span class="en">Google Play In-app Billing</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/billing/billing_overview.html">
+ <span class="en">Overview</span></a>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/api.html">
+ <span class="en">Version 3 API</span></a></div>
+ <ul>
+ <li><a href="/google/play/billing/billing_integrate.html">
+ <span class="en">Implementing the API</span></a></li>
+ <li><a href="/google/play/billing/billing_reference.html">
+ <span class="en">Reference</span></a></li>
+ </ul>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/v2/api.html">
+ <span class="en">Version 2 API</span></a></div>
+ <ul>
+ <li><a href="/google/play/billing/v2/billing_integrate.html">
+ <span class="en">Implementing the API</span></a></li>
+ <li><a href="/google/play/billing/v2/billing_subscriptions.html">
+ <span class="en">Subscriptions</span></a></li>
+ <li><a href="/google/play/billing/v2/billing_reference.html">
+ <span class="en">Reference</span></a></li>
+ </ul>
+ </li>
+ <li><a href="/google/play/billing/billing_subscriptions.html">
+ <span class="en">Subscriptions</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_best_practices.html">
+ <span class="en">Security and Design</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_testing.html">
+ <span class="en">Testing In-app Billing</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_admin.html">
+ <span class="en">Administering In-app Billing</span></a>
+ </li>
+ <li><a href="/google/play/billing/gp-purchase-status-api.html">
+ <span class="en">Purchase Status API</span></a>
+ </li>
+ <li><a href="/google/play/billing/versions.html">
+ <span class="en">Version Notes</span></a>
+ </li>
+ </ul>
+ </li>
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/gcm/index.html">
+ <span class="en">Google Cloud Messaging</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
+ <li><a href="/google/gcm/gs.html">
+ <span class="en">Getting Started</span></a>
+ </li>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
+ </li>
+ <li><a href="/google/gcm/notifications.html">
+ <span class="en">User Notifications</span></a>
+ </li>
+ <li><a href="/google/gcm/adv.html">
+ <span class="en">Advanced Topics</span></a>
+ </li>
+ <li><a href="/google/gcm/c2dm.html">
+ <span class="en">Migration</span></a>
+ </li>
+ <li id="gcm-tree-list" class="nav-section">
+ <div class="nav-section-header">
+ <a href="/reference/gcm-packages.html">
+ <span class="en">Reference</span>
+ </a>
+ <div>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/dist.html">
+ <span class="en">Google Play Distribution</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/filters.html">
+ <span class="en">Filters on Google Play</span></a>
+ </li>
+
+ <li><a href="/google/play/publishing/multiple-apks.html">
+ <span class="en">Multiple APK Support</span></a>
+ </li>
+ <li><a href="/google/play/expansion-files.html">
+ <span class="en">APK Expansion Files</span></a>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/licensing/index.html">
+ <span class="en">Application Licensing</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/licensing/overview.html">
+ <span class="en">Licensing Overview</span></a>
+ </li>
+ <li><a href="/google/play/licensing/setting-up.html">
+ <span class="en">Setting Up for Licensing</span></a>
+ </li>
+ <li><a href="/google/play/licensing/adding-licensing.html">
+ <span class="en">Adding Licensing to Your App</span></a>
+ </li>
+ <li><a href="/google/play/licensing/licensing-reference.html">
+ <span class="en">Licensing Reference</span></a>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/backup/index.html">
+ Android Backup Service</a>
+ </div>
+ <ul>
+ <li><a href="/google/backup/signup.html">
+ Register</a>
+ </li>
+ </ul>
+ </li>
+
+ </ul>
+
+</li>
+
+
+
+</ul>
+
+<script type="text/javascript">
+<!--
+ buildToggleLists();
+ changeNavLang(getLangPref());
+//-->
+</script>
+
+
+
+
+ </div>
+ <script type="text/javascript">
+ showGoogleRefTree();
+
+ </script>
+ </div> <!-- end side-nav -->
+ <script>
+ $(document).ready(function() {
+ scrollIntoView("devdoc-nav");
+ });
+ </script>
+
+
+
+
+
+
+<div class="col-12" id="doc-col">
+
+<div id="api-info-block">
+
+
+
+
+<div class="sum-details-links">
+
+</div><!-- end sum-details-links -->
+<div class="api-level">
+
+
+
+
+</div>
+</div><!-- end api-info-block -->
+
+
+<!-- ======== START OF CLASS DATA ======== -->
+
+<div id="jd-header">
+ public
+
+
+
+ interface
+<h1 itemprop="name">Filter</h1>
+
+
+
+
+
+
+
+
+</div><!-- end header -->
+
+<div id="naMessage"></div>
+
+<div id="jd-content" class="api apilevel-">
+<table class="jd-inheritance-table">
+
+
+ <tr>
+
+ <td colspan="1" class="jd-inheritance-class-cell">com.google.android.gms.drive.query.Filter</td>
+ </tr>
+
+
+</table>
+
+
+
+
+
+
+
+<div class="jd-descr">
+
+
+<h2>Class Overview</h2>
+<p class="caution">
+ <strong>Note:</strong> The Google Drive Android API is currently in <strong>developer
+ preview</strong>. Applications compiled using this version of the API will
+ continue to operate on devices using future versions of Google Play services;
+ however, changes to the API are expected in future releases.
+</p>
+<p itemprop="articleBody">A query filter that can be used to restrict the results on queries.
+</p>
+
+
+
+
+
+</div><!-- jd-descr -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<div class="jd-descr">
+
+
+</div><!-- jd-descr (summary) -->
+
+<!-- Details -->
+
+
+
+
+
+
+
+
+<!-- XML Attributes -->
+
+
+<!-- Enum Values -->
+
+
+<!-- Constants -->
+
+
+<!-- Fields -->
+
+
+<!-- Public ctors -->
+
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<!-- Protected ctors -->
+
+
+
+<!-- ========= METHOD DETAIL ======== -->
+<!-- Public methdos -->
+
+
+
+<!-- ========= METHOD DETAIL ======== -->
+
+
+
+<!-- ========= END OF CLASS DATA ========= -->
+<A NAME="navbar_top"></A>
+
+<div id="footer" class="wrap" >
+
+
+ <div id="copyright">
+
+ Except as noted, this content is licensed under <a
+ href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.
+ For details and restrictions, see the <a href="/license.html">
+ Content License</a>.
+ </div>
+ <div id="build_info">
+
+<script src="/timestamp.js" type="text/javascript"></script>
+<script>document.write(BUILD_TIMESTAMP)</script>
+
+ </div>
+
+
+ <div id="footerlinks">
+
+ <p>
+ <a href="/about/index.html">About Android</a> |
+ <a href="/legal.html">Legal</a> |
+ <a href="/support.html">Support</a>
+ </p>
+ </div>
+
+</div> <!-- end footer -->
+</div> <!-- jd-content -->
+
+</div><!-- end doc-content -->
+
+</div> <!-- end body-content -->
+
+
+
+
+
+
+</body>
+</html>
diff --git a/docs/html/reference/com/google/android/gms/drive/query/Filters.html b/docs/html/reference/com/google/android/gms/drive/query/Filters.html
new file mode 100644
index 0000000..28d4e61
--- /dev/null
+++ b/docs/html/reference/com/google/android/gms/drive/query/Filters.html
@@ -0,0 +1,1830 @@
+<!DOCTYPE html>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<html>
+<head>
+
+
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<meta name="viewport" content="width=device-width" />
+
+<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
+<title>Filters | Android Developers</title>
+
+<!-- STYLESHEETS -->
+<link rel="stylesheet"
+href="//fonts.googleapis.com/css?family=Roboto:regular,medium,thin,italic,mediumitalic,bold" title="roboto">
+<link href="/assets/css/default.css" rel="stylesheet" type="text/css">
+
+
+
+<!-- JAVASCRIPT -->
+<script src="//www.google.com/jsapi" type="text/javascript"></script>
+<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
+<script type="text/javascript">
+ var toRoot = "/";
+ var metaTags = [];
+ var devsite = false;
+</script>
+<script src="/assets/js/docs.js" type="text/javascript"></script>
+
+<script type="text/javascript">
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-5831155-1']);
+ _gaq.push(['_trackPageview']);
+
+ (function() {
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+ })();
+</script>
+</head>
+<body class="gc-documentation google
+ develop" itemscope itemtype="http://schema.org/Article">
+ <div id="doc-api-level" class="" style="display:none"></div>
+ <a name="top"></a>
+
+<a name="top"></a>
+
+ <!-- Header -->
+ <div id="header">
+ <div class="wrap" id="header-wrap">
+ <div class="col-3 logo">
+ <a href="/index.html">
+ <img src="/assets/images/dac_logo.png" width="123" height="25" alt="Android Developers" />
+ </a>
+ <div class="btn-quicknav" id="btn-quicknav">
+ <a href="#" class="arrow-inactive">Quicknav</a>
+ <a href="#" class="arrow-active">Quicknav</a>
+ </div>
+ </div>
+ <ul class="nav-x col-9">
+ <li class="design">
+ <a href="/design/index.html"
+ zh-tw-lang="設計"
+ zh-cn-lang="设计"
+ ru-lang="Проектирование"
+ ko-lang="디자인"
+ ja-lang="設計"
+ es-lang="Diseñar"
+ >Design</a></li>
+ <li class="develop"><a href="/develop/index.html"
+ zh-tw-lang="開發"
+ zh-cn-lang="开发"
+ ru-lang="Разработка"
+ ko-lang="개발"
+ ja-lang="開発"
+ es-lang="Desarrollar"
+ >Develop</a></li>
+ <li class="distribute last"><a href="/distribute/index.html"
+ zh-tw-lang="發佈"
+ zh-cn-lang="分发"
+ ru-lang="Распространение"
+ ko-lang="배포"
+ ja-lang="配布"
+ es-lang="Distribuir"
+ >Distribute</a></li>
+ </ul>
+
+ <!-- New Search -->
+ <div class="menu-container">
+ <div class="moremenu">
+ <div id="more-btn"></div>
+ </div>
+ <div class="morehover" id="moremenu">
+ <div class="top"></div>
+ <div class="mid">
+ <div class="header">Links</div>
+ <ul>
+ <li><a href="https://play.google.com/apps/publish/">Google Play Developer Console</a></li>
+ <li><a href="http://android-developers.blogspot.com/">Android Developers Blog</a></li>
+ <li><a href="/about/index.html">About Android</a></li>
+ </ul>
+ <div class="header">Android Sites</div>
+ <ul>
+ <li><a href="http://www.android.com">Android.com</a></li>
+ <li class="active"><a>Android Developers</a></li>
+ <li><a href="http://source.android.com">Android Open Source Project</a></li>
+ </ul>
+
+
+
+ <div class="header">Language</div>
+ <div id="language" class="locales">
+ <select name="language" onChange="changeLangPref(this.value, true)">
+ <option value="en">English</option>
+ <option value="es">Español</option>
+ <option value="ja">日本語</option>
+ <option value="ko">한국어</option>
+ <option value="ru">Русский</option>
+ <option value="zh-cn">中文 (中国)</option>
+ <option value="zh-tw">中文 (台灣)</option>
+ </select>
+ </div>
+ <script type="text/javascript">
+ <!--
+ loadLangPref();
+ //-->
+ </script>
+
+
+
+
+ <br class="clearfix" />
+ </div>
+ <div class="bottom"></div>
+ </div>
+ <div class="search" id="search-container">
+ <div class="search-inner">
+ <div id="search-btn"></div>
+ <div class="left"></div>
+ <form onsubmit="return submit_search()">
+ <input id="search_autocomplete" type="text" value="" autocomplete="off" name="q"
+onfocus="search_focus_changed(this, true)" onblur="search_focus_changed(this, false)"
+onkeydown="return search_changed(event, true, '/')"
+onkeyup="return search_changed(event, false, '/')" />
+ </form>
+ <div class="right"></div>
+ <a class="close hide">close</a>
+ <div class="left"></div>
+ <div class="right"></div>
+ </div>
+ </div>
+
+ <div class="search_filtered_wrapper reference">
+ <div class="suggest-card reference no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ </div>
+
+ <div class="search_filtered_wrapper docs">
+ <div class="suggest-card dummy no-display"> </div>
+ <div class="suggest-card develop no-display">
+ <ul class="search_filtered">
+ </ul>
+ <div class="child-card guides no-display">
+ </div>
+ <div class="child-card training no-display">
+ </div>
+ <div class="child-card samples no-display">
+ </div>
+ </div>
+ <div class="suggest-card design no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ <div class="suggest-card distribute no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ </div>
+
+ </div>
+ <!-- /New Search>
+
+
+ <!-- Expanded quicknav -->
+ <div id="quicknav" class="col-9">
+ <ul>
+ <li class="design">
+ <ul>
+ <li><a href="/design/index.html">Get Started</a></li>
+ <li><a href="/design/style/index.html">Style</a></li>
+ <li><a href="/design/patterns/index.html">Patterns</a></li>
+ <li><a href="/design/building-blocks/index.html">Building Blocks</a></li>
+ <li><a href="/design/downloads/index.html">Downloads</a></li>
+ <li><a href="/design/videos/index.html">Videos</a></li>
+ </ul>
+ </li>
+ <li class="develop">
+ <ul>
+ <li><a href="/training/index.html"
+ zh-tw-lang="訓練課程"
+ zh-cn-lang="培训"
+ ru-lang="Курсы"
+ ko-lang="교육"
+ ja-lang="トレーニング"
+ es-lang="Capacitación"
+ >Training</a></li>
+ <li><a href="/guide/index.html"
+ zh-tw-lang="API 指南"
+ zh-cn-lang="API 指南"
+ ru-lang="Руководства по API"
+ ko-lang="API 가이드"
+ ja-lang="API ガイド"
+ es-lang="Guías de la API"
+ >API Guides</a></li>
+ <li><a href="/reference/packages.html"
+ zh-tw-lang="參考資源"
+ zh-cn-lang="参考"
+ ru-lang="Справочник"
+ ko-lang="참조문서"
+ ja-lang="リファレンス"
+ es-lang="Referencia"
+ >Reference</a></li>
+ <li><a href="/tools/index.html"
+ zh-tw-lang="相關工具"
+ zh-cn-lang="工具"
+ ru-lang="Инструменты"
+ ko-lang="도구"
+ ja-lang="ツール"
+ es-lang="Herramientas"
+ >Tools</a>
+ <ul><li><a href="/sdk/index.html">Get the SDK</a></li></ul>
+ </li>
+ <li><a href="/google/index.html">Google Services</a>
+ </li>
+
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
+ </ul>
+ </li>
+ <li class="distribute last">
+ <ul>
+ <li><a href="/distribute/index.html">Google Play</a></li>
+ <li><a href="/distribute/googleplay/publish/index.html">Publishing</a></li>
+ <li><a href="/distribute/googleplay/promote/index.html">Promoting</a></li>
+ <li><a href="/distribute/googleplay/quality/index.html">App Quality</a></li>
+ <li><a href="/distribute/googleplay/spotlight/index.html">Spotlight</a></li>
+ <li><a href="/distribute/open.html">Open Distribution</a></li>
+ </ul>
+ </li>
+ </ul>
+ </div>
+ <!-- /Expanded quicknav -->
+ </div>
+ </div>
+ <!-- /Header -->
+
+
+ <div id="searchResults" class="wrap" style="display:none;">
+ <h2 id="searchTitle">Results</h2>
+ <div id="leftSearchControl" class="search-control">Loading...</div>
+ </div>
+
+
+
+ <!-- Secondary x-nav -->
+ <div id="nav-x">
+ <div class="wrap">
+ <ul class="nav-x col-9 develop" style="width:100%">
+ <li class="training"><a href="/training/index.html"
+ zh-tw-lang="訓練課程"
+ zh-cn-lang="培训"
+ ru-lang="Курсы"
+ ko-lang="교육"
+ ja-lang="トレーニング"
+ es-lang="Capacitación"
+ >Training</a></li>
+ <li class="guide"><a href="/guide/index.html"
+ zh-tw-lang="API 指南"
+ zh-cn-lang="API 指南"
+ ru-lang="Руководства по API"
+ ko-lang="API 가이드"
+ ja-lang="API ガイド"
+ es-lang="Guías de la API"
+ >API Guides</a></li>
+ <li class="reference"><a href="/reference/packages.html"
+ zh-tw-lang="參考資源"
+ zh-cn-lang="参考"
+ ru-lang="Справочник"
+ ko-lang="참조문서"
+ ja-lang="リファレンス"
+ es-lang="Referencia"
+ >Reference</a></li>
+ <li class="tools"><a href="/tools/index.html"
+ zh-tw-lang="相關工具"
+ zh-cn-lang="工具"
+ ru-lang="Инструменты"
+ ko-lang="도구"
+ ja-lang="ツール"
+ es-lang="Herramientas"
+ >Tools</a></li>
+ <li class="google"><a href="/google/index.html"
+ >Google Services</a>
+ </li>
+
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
+ </ul>
+ </div>
+
+ </div>
+ <!-- /Sendondary x-nav -->
+
+
+
+
+
+
+
+
+
+ <div class="wrap clearfix" id="body-content">
+ <div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
+ <div id="devdoc-nav" class="scroll-pane">
+<a class="totop" href="#top" data-g-event="left-nav-top">to top</a>
+
+
+
+<ul id="nav">
+
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/index.html">
+ <span class="en">Overview</span>
+ </a></div>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/games.html">
+ <span class="en">Games</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/location.html">
+ <span class="en">Location</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/plus.html">
+ <span class="en">Google+</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/maps.html">
+ <span class="en">Maps</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play-services/ads.html">
+ <span class="en">Ads</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play-services/id.html">
+ <span class="en">Advertising ID</span></a>
+ </li>
+ </ul>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/wallet.html">
+ <span class="en">Wallet</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/auth.html">
+ <span class="en">Authorization</span>
+ </a></div>
+ </li>
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play-services/index.html">
+ <span class="en">Google Play Services</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play-services/setup.html">
+ <span class="en">Setup</span></a>
+ </li>
+ <li id="gms-tree-list" class="nav-section">
+ <div class="nav-section-header">
+ <a href="/reference/gms-packages.html">
+ <span class="en">Reference</span>
+ </a>
+ <div>
+ </li>
+ </ul>
+ </li>
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/billing/index.html">
+ <span class="en">Google Play In-app Billing</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/billing/billing_overview.html">
+ <span class="en">Overview</span></a>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/api.html">
+ <span class="en">Version 3 API</span></a></div>
+ <ul>
+ <li><a href="/google/play/billing/billing_integrate.html">
+ <span class="en">Implementing the API</span></a></li>
+ <li><a href="/google/play/billing/billing_reference.html">
+ <span class="en">Reference</span></a></li>
+ </ul>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/v2/api.html">
+ <span class="en">Version 2 API</span></a></div>
+ <ul>
+ <li><a href="/google/play/billing/v2/billing_integrate.html">
+ <span class="en">Implementing the API</span></a></li>
+ <li><a href="/google/play/billing/v2/billing_subscriptions.html">
+ <span class="en">Subscriptions</span></a></li>
+ <li><a href="/google/play/billing/v2/billing_reference.html">
+ <span class="en">Reference</span></a></li>
+ </ul>
+ </li>
+ <li><a href="/google/play/billing/billing_subscriptions.html">
+ <span class="en">Subscriptions</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_best_practices.html">
+ <span class="en">Security and Design</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_testing.html">
+ <span class="en">Testing In-app Billing</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_admin.html">
+ <span class="en">Administering In-app Billing</span></a>
+ </li>
+ <li><a href="/google/play/billing/gp-purchase-status-api.html">
+ <span class="en">Purchase Status API</span></a>
+ </li>
+ <li><a href="/google/play/billing/versions.html">
+ <span class="en">Version Notes</span></a>
+ </li>
+ </ul>
+ </li>
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/gcm/index.html">
+ <span class="en">Google Cloud Messaging</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
+ <li><a href="/google/gcm/gs.html">
+ <span class="en">Getting Started</span></a>
+ </li>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
+ </li>
+ <li><a href="/google/gcm/notifications.html">
+ <span class="en">User Notifications</span></a>
+ </li>
+ <li><a href="/google/gcm/adv.html">
+ <span class="en">Advanced Topics</span></a>
+ </li>
+ <li><a href="/google/gcm/c2dm.html">
+ <span class="en">Migration</span></a>
+ </li>
+ <li id="gcm-tree-list" class="nav-section">
+ <div class="nav-section-header">
+ <a href="/reference/gcm-packages.html">
+ <span class="en">Reference</span>
+ </a>
+ <div>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/dist.html">
+ <span class="en">Google Play Distribution</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/filters.html">
+ <span class="en">Filters on Google Play</span></a>
+ </li>
+
+ <li><a href="/google/play/publishing/multiple-apks.html">
+ <span class="en">Multiple APK Support</span></a>
+ </li>
+ <li><a href="/google/play/expansion-files.html">
+ <span class="en">APK Expansion Files</span></a>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/licensing/index.html">
+ <span class="en">Application Licensing</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/licensing/overview.html">
+ <span class="en">Licensing Overview</span></a>
+ </li>
+ <li><a href="/google/play/licensing/setting-up.html">
+ <span class="en">Setting Up for Licensing</span></a>
+ </li>
+ <li><a href="/google/play/licensing/adding-licensing.html">
+ <span class="en">Adding Licensing to Your App</span></a>
+ </li>
+ <li><a href="/google/play/licensing/licensing-reference.html">
+ <span class="en">Licensing Reference</span></a>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/backup/index.html">
+ Android Backup Service</a>
+ </div>
+ <ul>
+ <li><a href="/google/backup/signup.html">
+ Register</a>
+ </li>
+ </ul>
+ </li>
+
+ </ul>
+
+</li>
+
+
+
+</ul>
+
+<script type="text/javascript">
+<!--
+ buildToggleLists();
+ changeNavLang(getLangPref());
+//-->
+</script>
+
+
+
+
+ </div>
+ <script type="text/javascript">
+ showGoogleRefTree();
+
+ </script>
+ </div> <!-- end side-nav -->
+ <script>
+ $(document).ready(function() {
+ scrollIntoView("devdoc-nav");
+ });
+ </script>
+
+
+
+
+
+
+<div class="col-12" id="doc-col">
+
+<div id="api-info-block">
+
+
+
+
+
+
+
+
+
+
+
+<div class="sum-details-links">
+
+Summary:
+
+
+
+
+
+
+
+
+
+ <a href="#pubctors">Ctors</a>
+
+
+
+
+ | <a href="#pubmethods">Methods</a>
+
+
+
+
+ | <a href="#inhmethods">Inherited Methods</a>
+
+| <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
+
+</div><!-- end sum-details-links -->
+<div class="api-level">
+
+
+
+
+</div>
+</div><!-- end api-info-block -->
+
+
+<!-- ======== START OF CLASS DATA ======== -->
+
+<div id="jd-header">
+ public
+
+
+
+ class
+<h1 itemprop="name">Filters</h1>
+
+
+
+
+ extends Object<br/>
+
+
+
+
+
+
+
+
+
+</div><!-- end header -->
+
+<div id="naMessage"></div>
+
+<div id="jd-content" class="api apilevel-">
+<table class="jd-inheritance-table">
+
+
+ <tr>
+
+ <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
+ </tr>
+
+
+ <tr>
+
+ <td class="jd-inheritance-space"> ↳</td>
+
+ <td colspan="1" class="jd-inheritance-class-cell">com.google.android.gms.drive.query.Filters</td>
+ </tr>
+
+
+</table>
+
+
+
+
+
+
+
+<div class="jd-descr">
+
+
+<h2>Class Overview</h2>
+<p class="caution">
+ <strong>Note:</strong> The Google Drive Android API is currently in <strong>developer
+ preview</strong>. Applications compiled using this version of the API will
+ continue to operate on devices using future versions of Google Play services;
+ however, changes to the API are expected in future releases.
+</p>
+<p itemprop="articleBody">A factory for creating filters that are used to construct a Query.
+</p>
+
+
+
+
+
+</div><!-- jd-descr -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<div class="jd-descr">
+
+
+<h2>Summary</h2>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
+
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ </nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/query/Filters.html#Filters()">Filters</a></span>()</nobr>
+
+ </td></tr>
+
+
+
+</table>
+
+
+
+
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
+
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+ static
+
+ <a href="/reference/com/google/android/gms/drive/query/Filter.html">Filter</a></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/query/Filters.html#and(com.google.android.gms.drive.query.Filter, com.google.android.gms.drive.query.Filter...)">and</a></span>(<a href="/reference/com/google/android/gms/drive/query/Filter.html">Filter</a> filter, <a href="/reference/com/google/android/gms/drive/query/Filter.html">Filter...</a> additionalFilters)</nobr>
+
+ <div class="jd-descrdiv">Returns a logical expression which combines filters with the 'AND' operator.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+ static
+
+ <a href="/reference/com/google/android/gms/drive/query/Filter.html">Filter</a></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/query/Filters.html#and(java.util.List<com.google.android.gms.drive.query.Filter>)">and</a></span>(List<<a href="/reference/com/google/android/gms/drive/query/Filter.html">Filter</a>> filters)</nobr>
+
+ <div class="jd-descrdiv">Returns a filter that matches items which are matched by every element of <code>filters</code>.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+ static
+
+ <a href="/reference/com/google/android/gms/drive/query/Filter.html">Filter</a></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/query/Filters.html#contains(com.google.android.gms.drive.metadata.MetadataField<java.lang.String>, java.lang.String)">contains</a></span>(<a href="/reference/com/google/android/gms/drive/metadata/MetadataField.html">MetadataField</a><String> field, String value)</nobr>
+
+ <div class="jd-descrdiv">Returns a filter that matches items which are matched by all of the provided filter
+ parameters.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+ static
+ <T>
+ <a href="/reference/com/google/android/gms/drive/query/Filter.html">Filter</a></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/query/Filters.html#eq(com.google.android.gms.drive.metadata.MetadataField<T>, T)">eq</a></span>(<a href="/reference/com/google/android/gms/drive/metadata/MetadataField.html">MetadataField</a><T> field, T value)</nobr>
+
+ <div class="jd-descrdiv">Returns a filter which checks if the value of <code>field</code> equals <code>value</code>.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+ static
+ <T extends Comparable<T>>
+ <a href="/reference/com/google/android/gms/drive/query/Filter.html">Filter</a></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/query/Filters.html#greaterThan(com.google.android.gms.drive.metadata.OrderedMetadataField<T>, T)">greaterThan</a></span>(<a href="/reference/com/google/android/gms/drive/metadata/OrderedMetadataField.html">OrderedMetadataField</a><T> field, T value)</nobr>
+
+ <div class="jd-descrdiv">Returns a filter which checks if the value of <code>field</code> is greater than <code>value</code>.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+ static
+ <T extends Comparable<T>>
+ <a href="/reference/com/google/android/gms/drive/query/Filter.html">Filter</a></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/query/Filters.html#greaterThanEquals(com.google.android.gms.drive.metadata.OrderedMetadataField<T>, T)">greaterThanEquals</a></span>(<a href="/reference/com/google/android/gms/drive/metadata/OrderedMetadataField.html">OrderedMetadataField</a><T> field, T value)</nobr>
+
+ <div class="jd-descrdiv">Returns a filter which checks if the value of <code>field</code> is greater than or equal to
+ <code>value</code>.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+ static
+ <T>
+ <a href="/reference/com/google/android/gms/drive/query/Filter.html">Filter</a></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/query/Filters.html#in(com.google.android.gms.drive.metadata.CollectionMetadataField<T>, T)">in</a></span>(<a href="/reference/com/google/android/gms/drive/metadata/CollectionMetadataField.html">CollectionMetadataField</a><T> field, T value)</nobr>
+
+ <div class="jd-descrdiv">Returns a filter which checks whether <code>value</code> is an element of <code>field</code>.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+ static
+ <T extends Comparable<T>>
+ <a href="/reference/com/google/android/gms/drive/query/Filter.html">Filter</a></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/query/Filters.html#lessThan(com.google.android.gms.drive.metadata.OrderedMetadataField<T>, T)">lessThan</a></span>(<a href="/reference/com/google/android/gms/drive/metadata/OrderedMetadataField.html">OrderedMetadataField</a><T> field, T value)</nobr>
+
+ <div class="jd-descrdiv">Returns a filter which checks if the value of <code>field</code> is less than <code>value</code>.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+ static
+ <T extends Comparable<T>>
+ <a href="/reference/com/google/android/gms/drive/query/Filter.html">Filter</a></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/query/Filters.html#lessThanEquals(com.google.android.gms.drive.metadata.OrderedMetadataField<T>, T)">lessThanEquals</a></span>(<a href="/reference/com/google/android/gms/drive/metadata/OrderedMetadataField.html">OrderedMetadataField</a><T> field, T value)</nobr>
+
+ <div class="jd-descrdiv">Returns a filter which checks if the value of <code>field</code> is less than or equal to
+ <code>value</code>.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+ static
+
+ <a href="/reference/com/google/android/gms/drive/query/Filter.html">Filter</a></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/query/Filters.html#not(com.google.android.gms.drive.query.Filter)">not</a></span>(<a href="/reference/com/google/android/gms/drive/query/Filter.html">Filter</a> toNegate)</nobr>
+
+ <div class="jd-descrdiv">Returns the negation of an filter.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+ static
+
+ <a href="/reference/com/google/android/gms/drive/query/Filter.html">Filter</a></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/query/Filters.html#or(java.util.List<com.google.android.gms.drive.query.Filter>)">or</a></span>(List<<a href="/reference/com/google/android/gms/drive/query/Filter.html">Filter</a>> filters)</nobr>
+
+ <div class="jd-descrdiv">Returns a filter that matches items which are matched by any element of <code>filters</code>.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+ static
+
+ <a href="/reference/com/google/android/gms/drive/query/Filter.html">Filter</a></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/query/Filters.html#or(com.google.android.gms.drive.query.Filter, com.google.android.gms.drive.query.Filter...)">or</a></span>(<a href="/reference/com/google/android/gms/drive/query/Filter.html">Filter</a> filter, <a href="/reference/com/google/android/gms/drive/query/Filter.html">Filter...</a> additionalFilters)</nobr>
+
+ <div class="jd-descrdiv">Returns a filter that matches items which are matched by any of the provided filter
+ parameters.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+ static
+
+ <a href="/reference/com/google/android/gms/drive/query/Filter.html">Filter</a></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/query/Filters.html#sharedWithMe()">sharedWithMe</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Returns a filter that matches only items that are shared with the current user.</div>
+
+ </td></tr>
+
+
+
+</table>
+
+
+
+
+
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+<table id="inhmethods" class="jd-sumtable"><tr><th>
+ <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
+ <div style="clear:left;">Inherited Methods</div></th></tr>
+
+
+<tr class="api apilevel-" >
+<td colspan="12">
+ <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
+ ><img id="inherited-methods-java.lang.Object-trigger"
+ src="/assets/images/triangle-closed.png"
+ class="jd-expando-trigger-img" /></a>
+From class
+
+ java.lang.Object
+
+<div id="inherited-methods-java.lang.Object">
+ <div id="inherited-methods-java.lang.Object-list"
+ class="jd-inheritedlinks">
+ </div>
+ <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
+ <table class="jd-sumtable-expando">
+
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ Object</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">clone</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">equals</span>(Object arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">finalize</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ Class<?></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getClass</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">hashCode</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">notify</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">notifyAll</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ String</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">toString</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">wait</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">wait</span>(long arg0)</nobr>
+
+ </td></tr>
+
+
+</table>
+ </div>
+</div>
+</td></tr>
+
+
+</table>
+
+
+</div><!-- jd-descr (summary) -->
+
+<!-- Details -->
+
+
+
+
+
+
+
+
+<!-- XML Attributes -->
+
+
+<!-- Enum Values -->
+
+
+<!-- Constants -->
+
+
+<!-- Fields -->
+
+
+<!-- Public ctors -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<h2>Public Constructors</h2>
+
+
+
+<A NAME="Filters()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+
+ </span>
+ <span class="sympad">Filters</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+ </div>
+</div>
+
+
+
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<!-- Protected ctors -->
+
+
+
+<!-- ========= METHOD DETAIL ======== -->
+<!-- Public methdos -->
+
+<h2>Public Methods</h2>
+
+
+
+<A NAME="and(com.google.android.gms.drive.query.Filter, com.google.android.gms.drive.query.Filter...)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+ static
+
+
+
+ <a href="/reference/com/google/android/gms/drive/query/Filter.html">Filter</a>
+ </span>
+ <span class="sympad">and</span>
+ <span class="normal">(<a href="/reference/com/google/android/gms/drive/query/Filter.html">Filter</a> filter, <a href="/reference/com/google/android/gms/drive/query/Filter.html">Filter...</a> additionalFilters)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Returns a logical expression which combines filters with the 'AND' operator.
+</p></div>
+
+ </div>
+</div>
+
+
+<A NAME="and(java.util.List<com.google.android.gms.drive.query.Filter>)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+ static
+
+
+
+ <a href="/reference/com/google/android/gms/drive/query/Filter.html">Filter</a>
+ </span>
+ <span class="sympad">and</span>
+ <span class="normal">(List<<a href="/reference/com/google/android/gms/drive/query/Filter.html">Filter</a>> filters)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Returns a filter that matches items which are matched by every element of <code>filters</code>.
+</p></div>
+
+ </div>
+</div>
+
+
+<A NAME="contains(com.google.android.gms.drive.metadata.MetadataField<java.lang.String>, java.lang.String)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+ static
+
+
+
+ <a href="/reference/com/google/android/gms/drive/query/Filter.html">Filter</a>
+ </span>
+ <span class="sympad">contains</span>
+ <span class="normal">(<a href="/reference/com/google/android/gms/drive/metadata/MetadataField.html">MetadataField</a><String> field, String value)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Returns a filter that matches items which are matched by all of the provided filter
+ parameters.
+</p></div>
+
+ </div>
+</div>
+
+
+<A NAME="eq(com.google.android.gms.drive.metadata.MetadataField<T>, T)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+ static
+
+
+
+ <a href="/reference/com/google/android/gms/drive/query/Filter.html">Filter</a>
+ </span>
+ <span class="sympad">eq</span>
+ <span class="normal">(<a href="/reference/com/google/android/gms/drive/metadata/MetadataField.html">MetadataField</a><T> field, T value)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Returns a filter which checks if the value of <code>field</code> equals <code>value</code>.
+</p></div>
+
+ </div>
+</div>
+
+
+<A NAME="greaterThan(com.google.android.gms.drive.metadata.OrderedMetadataField<T>, T)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+ static
+
+
+
+ <a href="/reference/com/google/android/gms/drive/query/Filter.html">Filter</a>
+ </span>
+ <span class="sympad">greaterThan</span>
+ <span class="normal">(<a href="/reference/com/google/android/gms/drive/metadata/OrderedMetadataField.html">OrderedMetadataField</a><T> field, T value)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Returns a filter which checks if the value of <code>field</code> is greater than <code>value</code>.
+ This filter can only be used with fields that have a sort order.
+</p></div>
+
+ </div>
+</div>
+
+
+<A NAME="greaterThanEquals(com.google.android.gms.drive.metadata.OrderedMetadataField<T>, T)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+ static
+
+
+
+ <a href="/reference/com/google/android/gms/drive/query/Filter.html">Filter</a>
+ </span>
+ <span class="sympad">greaterThanEquals</span>
+ <span class="normal">(<a href="/reference/com/google/android/gms/drive/metadata/OrderedMetadataField.html">OrderedMetadataField</a><T> field, T value)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Returns a filter which checks if the value of <code>field</code> is greater than or equal to
+ <code>value</code>.
+</p></div>
+
+ </div>
+</div>
+
+
+<A NAME="in(com.google.android.gms.drive.metadata.CollectionMetadataField<T>, T)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+ static
+
+
+
+ <a href="/reference/com/google/android/gms/drive/query/Filter.html">Filter</a>
+ </span>
+ <span class="sympad">in</span>
+ <span class="normal">(<a href="/reference/com/google/android/gms/drive/metadata/CollectionMetadataField.html">CollectionMetadataField</a><T> field, T value)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Returns a filter which checks whether <code>value</code> is an element of <code>field</code>.
+ This filter can only be used with fields that contain a collection value.
+</p></div>
+
+ </div>
+</div>
+
+
+<A NAME="lessThan(com.google.android.gms.drive.metadata.OrderedMetadataField<T>, T)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+ static
+
+
+
+ <a href="/reference/com/google/android/gms/drive/query/Filter.html">Filter</a>
+ </span>
+ <span class="sympad">lessThan</span>
+ <span class="normal">(<a href="/reference/com/google/android/gms/drive/metadata/OrderedMetadataField.html">OrderedMetadataField</a><T> field, T value)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Returns a filter which checks if the value of <code>field</code> is less than <code>value</code>. This
+ filter can only be used with fields that have a sort order.
+</p></div>
+
+ </div>
+</div>
+
+
+<A NAME="lessThanEquals(com.google.android.gms.drive.metadata.OrderedMetadataField<T>, T)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+ static
+
+
+
+ <a href="/reference/com/google/android/gms/drive/query/Filter.html">Filter</a>
+ </span>
+ <span class="sympad">lessThanEquals</span>
+ <span class="normal">(<a href="/reference/com/google/android/gms/drive/metadata/OrderedMetadataField.html">OrderedMetadataField</a><T> field, T value)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Returns a filter which checks if the value of <code>field</code> is less than or equal to
+ <code>value</code>. This filter can only be used with fields that have a sort order.
+</p></div>
+
+ </div>
+</div>
+
+
+<A NAME="not(com.google.android.gms.drive.query.Filter)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+ static
+
+
+
+ <a href="/reference/com/google/android/gms/drive/query/Filter.html">Filter</a>
+ </span>
+ <span class="sympad">not</span>
+ <span class="normal">(<a href="/reference/com/google/android/gms/drive/query/Filter.html">Filter</a> toNegate)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Returns the negation of an filter.
+</p></div>
+
+ </div>
+</div>
+
+
+<A NAME="or(java.util.List<com.google.android.gms.drive.query.Filter>)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+ static
+
+
+
+ <a href="/reference/com/google/android/gms/drive/query/Filter.html">Filter</a>
+ </span>
+ <span class="sympad">or</span>
+ <span class="normal">(List<<a href="/reference/com/google/android/gms/drive/query/Filter.html">Filter</a>> filters)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Returns a filter that matches items which are matched by any element of <code>filters</code>.
+</p></div>
+
+ </div>
+</div>
+
+
+<A NAME="or(com.google.android.gms.drive.query.Filter, com.google.android.gms.drive.query.Filter...)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+ static
+
+
+
+ <a href="/reference/com/google/android/gms/drive/query/Filter.html">Filter</a>
+ </span>
+ <span class="sympad">or</span>
+ <span class="normal">(<a href="/reference/com/google/android/gms/drive/query/Filter.html">Filter</a> filter, <a href="/reference/com/google/android/gms/drive/query/Filter.html">Filter...</a> additionalFilters)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Returns a filter that matches items which are matched by any of the provided filter
+ parameters.
+</p></div>
+
+ </div>
+</div>
+
+
+<A NAME="sharedWithMe()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+ static
+
+
+
+ <a href="/reference/com/google/android/gms/drive/query/Filter.html">Filter</a>
+ </span>
+ <span class="sympad">sharedWithMe</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Returns a filter that matches only items that are shared with the current user.
+</p></div>
+
+ </div>
+</div>
+
+
+
+
+
+<!-- ========= METHOD DETAIL ======== -->
+
+
+
+<!-- ========= END OF CLASS DATA ========= -->
+<A NAME="navbar_top"></A>
+
+<div id="footer" class="wrap" >
+
+
+ <div id="copyright">
+
+ Except as noted, this content is licensed under <a
+ href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.
+ For details and restrictions, see the <a href="/license.html">
+ Content License</a>.
+ </div>
+ <div id="build_info">
+
+<script src="/timestamp.js" type="text/javascript"></script>
+<script>document.write(BUILD_TIMESTAMP)</script>
+
+ </div>
+
+
+ <div id="footerlinks">
+
+ <p>
+ <a href="/about/index.html">About Android</a> |
+ <a href="/legal.html">Legal</a> |
+ <a href="/support.html">Support</a>
+ </p>
+ </div>
+
+</div> <!-- end footer -->
+</div> <!-- jd-content -->
+
+</div><!-- end doc-content -->
+
+</div> <!-- end body-content -->
+
+
+
+
+
+
+</body>
+</html>
diff --git a/docs/html/reference/com/google/android/gms/auth/RecoveryDecision.html b/docs/html/reference/com/google/android/gms/drive/query/Query.Builder.html
similarity index 65%
copy from docs/html/reference/com/google/android/gms/auth/RecoveryDecision.html
copy to docs/html/reference/com/google/android/gms/drive/query/Query.Builder.html
index 59a1346..81dc78c9 100644
--- a/docs/html/reference/com/google/android/gms/auth/RecoveryDecision.html
+++ b/docs/html/reference/com/google/android/gms/drive/query/Query.Builder.html
@@ -83,7 +83,7 @@
<meta name="viewport" content="width=device-width" />
<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
-<title>RecoveryDecision | Android Developers</title>
+<title>Query.Builder | Android Developers</title>
<!-- STYLESHEETS -->
<link rel="stylesheet"
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -128,7 +129,7 @@
<img src="/assets/images/dac_logo.png" width="123" height="25" alt="Android Developers" />
</a>
<div class="btn-quicknav" id="btn-quicknav">
- <a href="#" class="arrow-inactive">Quicknav</a>
+ <a href="#" class="arrow-inactive">Quicknav</a>
<a href="#" class="arrow-active">Quicknav</a>
</div>
</div>
@@ -140,7 +141,7 @@
ru-lang="Проектирование"
ko-lang="디자인"
ja-lang="設計"
- es-lang="Diseñar"
+ es-lang="Diseñar"
>Design</a></li>
<li class="develop"><a href="/develop/index.html"
zh-tw-lang="開發"
@@ -148,7 +149,7 @@
ru-lang="Разработка"
ko-lang="개발"
ja-lang="開発"
- es-lang="Desarrollar"
+ es-lang="Desarrollar"
>Develop</a></li>
<li class="distribute last"><a href="/distribute/index.html"
zh-tw-lang="發佈"
@@ -156,10 +157,10 @@
ru-lang="Распространение"
ko-lang="배포"
ja-lang="配布"
- es-lang="Distribuir"
+ es-lang="Distribuir"
>Distribute</a></li>
</ul>
-
+
<!-- New Search -->
<div class="menu-container">
<div class="moremenu">
@@ -180,9 +181,9 @@
<li class="active"><a>Android Developers</a></li>
<li><a href="http://source.android.com">Android Open Source Project</a></li>
</ul>
-
-
-
+
+
+
<div class="header">Language</div>
<div id="language" class="locales">
<select name="language" onChange="changeLangPref(this.value, true)">
@@ -200,8 +201,8 @@
loadLangPref();
//-->
</script>
-
-
+
+
<br class="clearfix" />
@@ -215,7 +216,7 @@
<form onsubmit="return submit_search()">
<input id="search_autocomplete" type="text" value="" autocomplete="off" name="q"
onfocus="search_focus_changed(this, true)" onblur="search_focus_changed(this, false)"
-onkeydown="return search_changed(event, true, '/')"
+onkeydown="return search_changed(event, true, '/')"
onkeyup="return search_changed(event, false, '/')" />
</form>
<div class="right"></div>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -254,8 +257,8 @@
</div>
<!-- /New Search>
-
-
+
+
<!-- Expanded quicknav -->
<div id="quicknav" class="col-9">
<ul>
@@ -277,15 +280,15 @@
ru-lang="Курсы"
ko-lang="교육"
ja-lang="トレーニング"
- es-lang="Capacitación"
+ es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
ko-lang="API 가이드"
ja-lang="API ガイド"
- es-lang="Guías de la API"
+ es-lang="Guías de la API"
>API Guides</a></li>
<li><a href="/reference/packages.html"
zh-tw-lang="參考資源"
@@ -293,7 +296,7 @@
ru-lang="Справочник"
ko-lang="참조문서"
ja-lang="リファレンス"
- es-lang="Referencia"
+ es-lang="Referencia"
>Reference</a></li>
<li><a href="/tools/index.html"
zh-tw-lang="相關工具"
@@ -301,13 +304,16 @@
ru-lang="Инструменты"
ko-lang="도구"
ja-lang="ツール"
- es-lang="Herramientas"
+ es-lang="Herramientas"
>Tools</a>
<ul><li><a href="/sdk/index.html">Get the SDK</a></li></ul>
</li>
<li><a href="/google/index.html">Google Services</a>
</li>
-
+
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -326,15 +332,15 @@
</div>
</div>
<!-- /Header -->
-
-
+
+
<div id="searchResults" class="wrap" style="display:none;">
<h2 id="searchTitle">Results</h2>
<div id="leftSearchControl" class="search-control">Loading...</div>
</div>
-
-
-
+
+
+
<!-- Secondary x-nav -->
<div id="nav-x">
<div class="wrap">
@@ -345,15 +351,15 @@
ru-lang="Курсы"
ko-lang="교육"
ja-lang="トレーニング"
- es-lang="Capacitación"
+ es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
ko-lang="API 가이드"
ja-lang="API ガイド"
- es-lang="Guías de la API"
+ es-lang="Guías de la API"
>API Guides</a></li>
<li class="reference"><a href="/reference/packages.html"
zh-tw-lang="參考資源"
@@ -361,7 +367,7 @@
ru-lang="Справочник"
ko-lang="참조문서"
ja-lang="リファレンス"
- es-lang="Referencia"
+ es-lang="Referencia"
>Reference</a></li>
<li class="tools"><a href="/tools/index.html"
zh-tw-lang="相關工具"
@@ -374,21 +380,25 @@
<li class="google"><a href="/google/index.html"
>Google Services</a>
</li>
-
+
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
-
+
</div>
<!-- /Sendondary x-nav -->
-
-
-
+
+
+
<div class="wrap clearfix" id="body-content">
<div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
<div id="devdoc-nav" class="scroll-pane">
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
@@ -618,12 +631,12 @@
</script>
-
+
</div>
<script type="text/javascript">
showGoogleRefTree();
-
+
</script>
</div> <!-- end side-nav -->
<script>
@@ -633,7 +646,7 @@
</script>
-
+
@@ -643,21 +656,12 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
<div class="sum-details-links">
@@ -669,22 +673,16 @@
- <a href="#inhconstants">Inherited Constants</a>
-
-
-
- | <a href="#lfields">Fields</a>
-
- | <a href="#pubctors">Ctors</a>
-
+ <a href="#pubctors">Ctors</a>
+
| <a href="#pubmethods">Methods</a>
-
+
@@ -694,9 +692,9 @@
</div><!-- end sum-details-links -->
<div class="api-level">
-
-
-
+
+
+
</div>
</div><!-- end api-info-block -->
@@ -706,28 +704,23 @@
<div id="jd-header">
public
-
-
-
+ static
+
+
class
-<h1 itemprop="name">RecoveryDecision</h1>
+<h1 itemprop="name">Query.Builder</h1>
-
+
extends Object<br/>
-
-
-
-
-
- implements
-
- Parcelable
-
-
-
+
+
+
+
+
+
</div><!-- end header -->
@@ -739,18 +732,18 @@
<tr>
-
+
<td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
</tr>
-
+
<tr>
-
+
<td class="jd-inheritance-space"> ↳</td>
-
- <td colspan="1" class="jd-inheritance-class-cell">com.google.android.gms.auth.RecoveryDecision</td>
+
+ <td colspan="1" class="jd-inheritance-class-cell">com.google.android.gms.drive.query.Query.Builder</td>
</tr>
-
+
</table>
@@ -763,6 +756,16 @@
<div class="jd-descr">
+<h2>Class Overview</h2>
+<p class="caution">
+ <strong>Note:</strong> The Google Drive Android API is currently in <strong>developer
+ preview</strong>. Applications compiled using this version of the API will
+ continue to operate on devices using future versions of Google Play services;
+ however, changes to the API are expected in future releases.
+</p>
+<p itemprop="articleBody">A builder for creating queries.
+</p>
+
@@ -804,130 +807,6 @@
-<!-- =========== ENUM CONSTANT SUMMARY =========== -->
-<table id="inhconstants" class="jd-sumtable"><tr><th>
- <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
- <div style="clear:left;">Inherited Constants</div></th></tr>
-
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-
- <a href="#" onclick="return toggleInherited(this, null)" id="inherited-constants-android.os.Parcelable" class="jd-expando-trigger closed"
- ><img id="inherited-constants-android.os.Parcelable-trigger"
- src="/assets/images/triangle-closed.png"
- class="jd-expando-trigger-img" /></a>From interface
-android.os.Parcelable
-<div id="inherited-constants-android.os.Parcelable">
- <div id="inherited-constants-android.os.Parcelable-list"
- class="jd-inheritedlinks">
- </div>
- <div id="inherited-constants-android.os.Parcelable-summary" style="display: none;">
- <table class="jd-sumtable-expando">
-
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol">int</td>
- <td class="jd-linkcol">CONTENTS_FILE_DESCRIPTOR</td>
- <td class="jd-descrcol" width="100%"></td>
- </tr>
-
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol">int</td>
- <td class="jd-linkcol">PARCELABLE_WRITE_RETURN_VALUE</td>
- <td class="jd-descrcol" width="100%"></td>
- </tr>
-
-
-</table>
- </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-
-
-<!-- =========== FIELD SUMMARY =========== -->
-<table id="lfields" class="jd-sumtable"><tr><th colspan="12">Fields</th></tr>
-
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
- static
- final
- <a href="/reference/com/google/android/gms/auth/RecoveryDecisionCreator.html">RecoveryDecisionCreator</a></nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#CREATOR">CREATOR</a></td>
- <td class="jd-descrcol" width="100%"></td>
- </tr>
-
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- boolean</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#isRecoveryInfoNeeded">isRecoveryInfoNeeded</a></td>
- <td class="jd-descrcol" width="100%">Is <code>true</code> if either the account has no recovery information or it
- was updated long time back (controlled by server, default 1 year).</td>
- </tr>
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- boolean</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#isRecoveryInterstitialAllowed">isRecoveryInterstitialAllowed</a></td>
- <td class="jd-descrcol" width="100%">Is <code>true</code> iff the user has permission to update the account.</td>
- </tr>
-
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- PendingIntent</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#recoveryIntent">recoveryIntent</a></td>
- <td class="jd-descrcol" width="100%">A PendingIntent to an activity that gathers recovery information for the given account.</td>
- </tr>
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- PendingIntent</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#recoveryIntentWithoutIntro">recoveryIntentWithoutIntro</a></td>
- <td class="jd-descrcol" width="100%">A PendingIntent to an activity that gathers recovery information for the given account.</td>
- </tr>
-
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- boolean</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#showRecoveryInterstitial">showRecoveryInterstitial</a></td>
- <td class="jd-descrcol" width="100%">Represents the decision and should be obeyed by the client.</td>
- </tr>
-
-
-
-</table>
@@ -940,19 +819,19 @@
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#RecoveryDecision()">RecoveryDecision</a></span>()</nobr>
-
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/query/Query.Builder.html#Query.Builder()">Query.Builder</a></span>()</nobr>
+
</td></tr>
@@ -969,51 +848,55 @@
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
- int</nobr>
+
+
+
+
+
+ <a href="/reference/com/google/android/gms/drive/query/Query.Builder.html">Query.Builder</a></nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#describeContents()">describeContents</a></span>()</nobr>
-
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/query/Query.Builder.html#addFilter(com.google.android.gms.drive.query.Filter)">addFilter</a></span>(<a href="/reference/com/google/android/gms/drive/query/Filter.html">Filter</a> filter)</nobr>
+
+ <div class="jd-descrdiv">Adds a search filter to the query.</div>
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
- int</nobr>
+
+
+
+
+
+ <a href="/reference/com/google/android/gms/drive/query/Query.html">Query</a></nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#getVersionCode()">getVersionCode</a></span>()</nobr>
-
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/query/Query.Builder.html#build()">build</a></span>()</nobr>
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
- void</nobr>
+
+
+
+
+
+ <a href="/reference/com/google/android/gms/drive/query/Query.Builder.html">Query.Builder</a></nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#writeToParcel(android.os.Parcel, int)">writeToParcel</a></span>(Parcel out, int flags)</nobr>
-
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/query/Query.Builder.html#setPageToken(java.lang.String)">setPageToken</a></span>(String token)</nobr>
+
+ <div class="jd-descrdiv">Set the page token to retrieve the next page of results.</div>
+
</td></tr>
@@ -1048,240 +931,182 @@
</div>
<div id="inherited-methods-java.lang.Object-summary" style="display: none;">
<table class="jd-sumtable-expando">
-
-
+
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
Object</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">clone</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
boolean</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">equals</span>(Object arg0)</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">finalize</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
Class<?></nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">getClass</span>()</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
int</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">hashCode</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">notify</span>()</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">notifyAll</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
String</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">toString</span>()</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">wait</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">wait</span>(long arg0)</nobr>
-
- </td></tr>
-
-</table>
- </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
- <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-android.os.Parcelable" class="jd-expando-trigger closed"
- ><img id="inherited-methods-android.os.Parcelable-trigger"
- src="/assets/images/triangle-closed.png"
- class="jd-expando-trigger-img" /></a>
-From interface
-
- android.os.Parcelable
-
-<div id="inherited-methods-android.os.Parcelable">
- <div id="inherited-methods-android.os.Parcelable-list"
- class="jd-inheritedlinks">
- </div>
- <div id="inherited-methods-android.os.Parcelable-summary" style="display: none;">
- <table class="jd-sumtable-expando">
-
-
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
- abstract
-
-
-
-
- int</nobr>
- </td>
- <td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad">describeContents</span>()</nobr>
-
- </td></tr>
-
-
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol"><nobr>
- abstract
-
-
-
-
- void</nobr>
- </td>
- <td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad">writeToParcel</span>(Parcel arg0, int arg1)</nobr>
-
</td></tr>
@@ -1317,197 +1142,6 @@
<!-- Fields -->
-<!-- ========= FIELD DETAIL ======== -->
-<h2>Fields</h2>
-
-
-
-
-<A NAME="CREATOR"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
- static
- final
- <a href="/reference/com/google/android/gms/auth/RecoveryDecisionCreator.html">RecoveryDecisionCreator</a>
- </span>
- CREATOR
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-
- </div>
-</div>
-
-
-
-<A NAME="isRecoveryInfoNeeded"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- boolean
- </span>
- isRecoveryInfoNeeded
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>Is <code>true</code> if either the account has no recovery information or it
- was updated long time back (controlled by server, default 1 year).
-</p></div>
-
-
- </div>
-</div>
-
-
-
-<A NAME="isRecoveryInterstitialAllowed"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- boolean
- </span>
- isRecoveryInterstitialAllowed
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>Is <code>true</code> iff the user has permission to update the account.
- Dasher accounts can have recovery information edit disabled by the administrator.
- Eg: @google.com
-</p></div>
-
-
- </div>
-</div>
-
-
-
-<A NAME="recoveryIntent"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- PendingIntent
- </span>
- recoveryIntent
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>A PendingIntent to an activity that gathers recovery information for the given account.
- This intent will be null iff isRecoveryInterstitialAllowed is <code>false</code>.
-</p></div>
-
-
- </div>
-</div>
-
-
-
-<A NAME="recoveryIntentWithoutIntro"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- PendingIntent
- </span>
- recoveryIntentWithoutIntro
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>A PendingIntent to an activity that gathers recovery information for the given account.
- This intent will be null iff isRecoveryInterstitialAllowed is <code>false</code>.
- This intent directly skips to the input activity without showing the intro message.
-</p></div>
-
-
- </div>
-</div>
-
-
-
-<A NAME="showRecoveryInterstitial"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- boolean
- </span>
- showRecoveryInterstitial
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>Represents the decision and should be obeyed by the client. The remaining
- two flags are provided as additional information for one off decisions. This value
- is <code>true</code> iff isRecoveryInfoNeeded is <code>true</code>, isRecoveryInterstitialAllowed is
- <code>true</code> and a specified period (controlled by server, default 2 months) has passed
- since the user was shown a prompt for recovery information on any google property
- (Android, Web, etc.)
-</p></div>
-
-
- </div>
-</div>
-
-
-
-
<!-- Public ctors -->
@@ -1516,29 +1150,29 @@
-<A NAME="RecoveryDecision()"></A>
+<A NAME="Query.Builder()"></A>
-<div class="jd-details api apilevel-">
+<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
- public
-
-
-
-
-
+ public
+
+
+
+
+
</span>
- <span class="sympad">RecoveryDecision</span>
+ <span class="sympad">Query.Builder</span>
<span class="normal">()</span>
</h4>
<div class="api-level">
<div></div>
-
-
+
+
</div>
<div class="jd-details-descr">
-
+
<div class="jd-tagdata jd-tagdescr"><p></p></div>
</div>
@@ -1560,88 +1194,95 @@
-<A NAME="describeContents()"></A>
+<A NAME="addFilter(com.google.android.gms.drive.query.Filter)"></A>
-<div class="jd-details api apilevel-">
+<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
- public
-
-
-
-
- int
+ public
+
+
+
+
+ <a href="/reference/com/google/android/gms/drive/query/Query.Builder.html">Query.Builder</a>
</span>
- <span class="sympad">describeContents</span>
+ <span class="sympad">addFilter</span>
+ <span class="normal">(<a href="/reference/com/google/android/gms/drive/query/Filter.html">Filter</a> filter)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Adds a search filter to the query. If more than one filter is added, they are combined
+ with a logical AND.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">See Also</h5>
+ <ul class="nolist"><li><code><a href="/reference/com/google/android/gms/drive/query/Filters.html">Filters</a></code></li>
+ </ul>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="build()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ <a href="/reference/com/google/android/gms/drive/query/Query.html">Query</a>
+ </span>
+ <span class="sympad">build</span>
<span class="normal">()</span>
</h4>
<div class="api-level">
<div></div>
-
-
+
+
</div>
<div class="jd-details-descr">
-
+
<div class="jd-tagdata jd-tagdescr"><p></p></div>
</div>
</div>
-<A NAME="getVersionCode()"></A>
+<A NAME="setPageToken(java.lang.String)"></A>
-<div class="jd-details api apilevel-">
+<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
- public
-
-
-
-
- int
+ public
+
+
+
+
+ <a href="/reference/com/google/android/gms/drive/query/Query.Builder.html">Query.Builder</a>
</span>
- <span class="sympad">getVersionCode</span>
- <span class="normal">()</span>
+ <span class="sympad">setPageToken</span>
+ <span class="normal">(String token)</span>
</h4>
<div class="api-level">
<div></div>
-
-
+
+
</div>
<div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p></p></div>
- </div>
-</div>
-
-
-<A NAME="writeToParcel(android.os.Parcel, int)"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
-
-
- void
- </span>
- <span class="sympad">writeToParcel</span>
- <span class="normal">(Parcel out, int flags)</span>
- </h4>
- <div class="api-level">
- <div></div>
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p></p></div>
+ <div class="jd-tagdata jd-tagdescr"><p>Set the page token to retrieve the next page of results.
+</p></div>
</div>
</div>
@@ -1658,17 +1299,17 @@
<A NAME="navbar_top"></A>
<div id="footer" class="wrap" >
-
+
<div id="copyright">
-
+
Except as noted, this content is licensed under <a
- href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.
+ href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.
For details and restrictions, see the <a href="/license.html">
Content License</a>.
</div>
<div id="build_info">
-
+
<script src="/timestamp.js" type="text/javascript"></script>
<script>document.write(BUILD_TIMESTAMP)</script>
@@ -1676,7 +1317,7 @@
<div id="footerlinks">
-
+
<p>
<a href="/about/index.html">About Android</a> |
<a href="/legal.html">Legal</a> |
@@ -1689,7 +1330,7 @@
</div><!-- end doc-content -->
-</div> <!-- end body-content -->
+</div> <!-- end body-content -->
diff --git a/docs/html/reference/com/google/android/gms/auth/RecoveryDecision.html b/docs/html/reference/com/google/android/gms/drive/query/Query.html
similarity index 73%
copy from docs/html/reference/com/google/android/gms/auth/RecoveryDecision.html
copy to docs/html/reference/com/google/android/gms/drive/query/Query.html
index 59a1346..c5ce31b 100644
--- a/docs/html/reference/com/google/android/gms/auth/RecoveryDecision.html
+++ b/docs/html/reference/com/google/android/gms/drive/query/Query.html
@@ -83,7 +83,7 @@
<meta name="viewport" content="width=device-width" />
<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
-<title>RecoveryDecision | Android Developers</title>
+<title>Query | Android Developers</title>
<!-- STYLESHEETS -->
<link rel="stylesheet"
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -128,7 +129,7 @@
<img src="/assets/images/dac_logo.png" width="123" height="25" alt="Android Developers" />
</a>
<div class="btn-quicknav" id="btn-quicknav">
- <a href="#" class="arrow-inactive">Quicknav</a>
+ <a href="#" class="arrow-inactive">Quicknav</a>
<a href="#" class="arrow-active">Quicknav</a>
</div>
</div>
@@ -140,7 +141,7 @@
ru-lang="Проектирование"
ko-lang="디자인"
ja-lang="設計"
- es-lang="Diseñar"
+ es-lang="Diseñar"
>Design</a></li>
<li class="develop"><a href="/develop/index.html"
zh-tw-lang="開發"
@@ -148,7 +149,7 @@
ru-lang="Разработка"
ko-lang="개발"
ja-lang="開発"
- es-lang="Desarrollar"
+ es-lang="Desarrollar"
>Develop</a></li>
<li class="distribute last"><a href="/distribute/index.html"
zh-tw-lang="發佈"
@@ -156,10 +157,10 @@
ru-lang="Распространение"
ko-lang="배포"
ja-lang="配布"
- es-lang="Distribuir"
+ es-lang="Distribuir"
>Distribute</a></li>
</ul>
-
+
<!-- New Search -->
<div class="menu-container">
<div class="moremenu">
@@ -180,9 +181,9 @@
<li class="active"><a>Android Developers</a></li>
<li><a href="http://source.android.com">Android Open Source Project</a></li>
</ul>
-
-
-
+
+
+
<div class="header">Language</div>
<div id="language" class="locales">
<select name="language" onChange="changeLangPref(this.value, true)">
@@ -200,8 +201,8 @@
loadLangPref();
//-->
</script>
-
-
+
+
<br class="clearfix" />
@@ -215,7 +216,7 @@
<form onsubmit="return submit_search()">
<input id="search_autocomplete" type="text" value="" autocomplete="off" name="q"
onfocus="search_focus_changed(this, true)" onblur="search_focus_changed(this, false)"
-onkeydown="return search_changed(event, true, '/')"
+onkeydown="return search_changed(event, true, '/')"
onkeyup="return search_changed(event, false, '/')" />
</form>
<div class="right"></div>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -254,8 +257,8 @@
</div>
<!-- /New Search>
-
-
+
+
<!-- Expanded quicknav -->
<div id="quicknav" class="col-9">
<ul>
@@ -277,15 +280,15 @@
ru-lang="Курсы"
ko-lang="교육"
ja-lang="トレーニング"
- es-lang="Capacitación"
+ es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
ko-lang="API 가이드"
ja-lang="API ガイド"
- es-lang="Guías de la API"
+ es-lang="Guías de la API"
>API Guides</a></li>
<li><a href="/reference/packages.html"
zh-tw-lang="參考資源"
@@ -293,7 +296,7 @@
ru-lang="Справочник"
ko-lang="참조문서"
ja-lang="リファレンス"
- es-lang="Referencia"
+ es-lang="Referencia"
>Reference</a></li>
<li><a href="/tools/index.html"
zh-tw-lang="相關工具"
@@ -301,13 +304,16 @@
ru-lang="Инструменты"
ko-lang="도구"
ja-lang="ツール"
- es-lang="Herramientas"
+ es-lang="Herramientas"
>Tools</a>
<ul><li><a href="/sdk/index.html">Get the SDK</a></li></ul>
</li>
<li><a href="/google/index.html">Google Services</a>
</li>
-
+
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -326,15 +332,15 @@
</div>
</div>
<!-- /Header -->
-
-
+
+
<div id="searchResults" class="wrap" style="display:none;">
<h2 id="searchTitle">Results</h2>
<div id="leftSearchControl" class="search-control">Loading...</div>
</div>
-
-
-
+
+
+
<!-- Secondary x-nav -->
<div id="nav-x">
<div class="wrap">
@@ -345,15 +351,15 @@
ru-lang="Курсы"
ko-lang="교육"
ja-lang="トレーニング"
- es-lang="Capacitación"
+ es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
ko-lang="API 가이드"
ja-lang="API ガイド"
- es-lang="Guías de la API"
+ es-lang="Guías de la API"
>API Guides</a></li>
<li class="reference"><a href="/reference/packages.html"
zh-tw-lang="參考資源"
@@ -361,7 +367,7 @@
ru-lang="Справочник"
ko-lang="참조문서"
ja-lang="リファレンス"
- es-lang="Referencia"
+ es-lang="Referencia"
>Reference</a></li>
<li class="tools"><a href="/tools/index.html"
zh-tw-lang="相關工具"
@@ -374,21 +380,25 @@
<li class="google"><a href="/google/index.html"
>Google Services</a>
</li>
-
+
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
-
+
</div>
<!-- /Sendondary x-nav -->
-
-
-
+
+
+
<div class="wrap clearfix" id="body-content">
<div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
<div id="devdoc-nav" class="scroll-pane">
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
@@ -618,12 +631,12 @@
</script>
-
+
</div>
<script type="text/javascript">
showGoogleRefTree();
-
+
</script>
</div> <!-- end side-nav -->
<script>
@@ -633,7 +646,7 @@
</script>
-
+
@@ -643,48 +656,48 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
<div class="sum-details-links">
Summary:
+ <a href="#nestedclasses">Nested Classes</a>
- <a href="#inhconstants">Inherited Constants</a>
-
+
+
+ | <a href="#inhconstants">Inherited Constants</a>
+
| <a href="#lfields">Fields</a>
-
- | <a href="#pubctors">Ctors</a>
-
| <a href="#pubmethods">Methods</a>
-
+
@@ -694,9 +707,9 @@
</div><!-- end sum-details-links -->
<div class="api-level">
-
-
-
+
+
+
</div>
</div><!-- end api-info-block -->
@@ -706,28 +719,28 @@
<div id="jd-header">
public
-
-
-
+
+
+
class
-<h1 itemprop="name">RecoveryDecision</h1>
+<h1 itemprop="name">Query</h1>
-
+
extends Object<br/>
-
-
-
-
-
- implements
-
- Parcelable
-
-
-
+
+
+
+
+
+ implements
+
+ Parcelable
+
+
+
</div><!-- end header -->
@@ -739,18 +752,18 @@
<tr>
-
+
<td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
</tr>
-
+
<tr>
-
+
<td class="jd-inheritance-space"> ↳</td>
-
- <td colspan="1" class="jd-inheritance-class-cell">com.google.android.gms.auth.RecoveryDecision</td>
+
+ <td colspan="1" class="jd-inheritance-class-cell">com.google.android.gms.drive.query.Query</td>
</tr>
-
+
</table>
@@ -763,6 +776,17 @@
<div class="jd-descr">
+<h2>Class Overview</h2>
+<p class="caution">
+ <strong>Note:</strong> The Google Drive Android API is currently in <strong>developer
+ preview</strong>. Applications compiled using this version of the API will
+ continue to operate on devices using future versions of Google Play services;
+ however, changes to the API are expected in future releases.
+</p>
+<p itemprop="articleBody">The query object specifies constraints on a query result, including filters and paging
+ information.
+</p>
+
@@ -791,6 +815,26 @@
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<table id="nestedclasses" class="jd-sumtable"><tr><th colspan="12">Nested Classes</th></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+ class</nobr></td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/drive/query/Query.Builder.html">Query.Builder</a></td>
+ <td class="jd-descrcol" width="100%">A builder for creating queries. </td>
+ </tr>
+
+
+
+
+
@@ -826,23 +870,23 @@
</div>
<div id="inherited-constants-android.os.Parcelable-summary" style="display: none;">
<table class="jd-sumtable-expando">
-
-
+
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol">CONTENTS_FILE_DESCRIPTOR</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
-
-
+
+
<tr class=" api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol">PARCELABLE_WRITE_RETURN_VALUE</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
-
-
+
+
</table>
</div>
</div>
@@ -858,102 +902,16 @@
<table id="lfields" class="jd-sumtable"><tr><th colspan="12">Fields</th></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
public
static
final
- <a href="/reference/com/google/android/gms/auth/RecoveryDecisionCreator.html">RecoveryDecisionCreator</a></nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#CREATOR">CREATOR</a></td>
+ Creator<<a href="/reference/com/google/android/gms/drive/query/Query.html">Query</a>></nobr></td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/drive/query/Query.html#CREATOR">CREATOR</a></td>
<td class="jd-descrcol" width="100%"></td>
</tr>
-
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- boolean</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#isRecoveryInfoNeeded">isRecoveryInfoNeeded</a></td>
- <td class="jd-descrcol" width="100%">Is <code>true</code> if either the account has no recovery information or it
- was updated long time back (controlled by server, default 1 year).</td>
- </tr>
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- boolean</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#isRecoveryInterstitialAllowed">isRecoveryInterstitialAllowed</a></td>
- <td class="jd-descrcol" width="100%">Is <code>true</code> iff the user has permission to update the account.</td>
- </tr>
-
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- PendingIntent</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#recoveryIntent">recoveryIntent</a></td>
- <td class="jd-descrcol" width="100%">A PendingIntent to an activity that gathers recovery information for the given account.</td>
- </tr>
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- PendingIntent</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#recoveryIntentWithoutIntro">recoveryIntentWithoutIntro</a></td>
- <td class="jd-descrcol" width="100%">A PendingIntent to an activity that gathers recovery information for the given account.</td>
- </tr>
-
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- boolean</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#showRecoveryInterstitial">showRecoveryInterstitial</a></td>
- <td class="jd-descrcol" width="100%">Represents the decision and should be obeyed by the client.</td>
- </tr>
-
-
-
-</table>
-
-
-
-
-
-
-
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
-
-
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
-
-
-
-
-
- </nobr>
- </td>
- <td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#RecoveryDecision()">RecoveryDecision</a></span>()</nobr>
-
- </td></tr>
@@ -964,56 +922,81 @@
+
+
+
+
+
<!-- ========== METHOD SUMMARY =========== -->
<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
int</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#describeContents()">describeContents</a></span>()</nobr>
-
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/query/Query.html#describeContents()">describeContents</a></span>()</nobr>
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
- int</nobr>
+
+
+
+
+
+ <a href="/reference/com/google/android/gms/drive/query/Filter.html">Filter</a></nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#getVersionCode()">getVersionCode</a></span>()</nobr>
-
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/query/Query.html#getFilter()">getFilter</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Get the filters that will restrict the query results.</div>
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
+ String</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/query/Query.html#getPageToken()">getPageToken</a></span>()</nobr>
+
+ <div class="jd-descrdiv">A token that indicates the next page of results to retrieve.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#writeToParcel(android.os.Parcel, int)">writeToParcel</a></span>(Parcel out, int flags)</nobr>
-
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/query/Query.html#writeToParcel(android.os.Parcel, int)">writeToParcel</a></span>(Parcel out, int flags)</nobr>
+
</td></tr>
@@ -1048,182 +1031,182 @@
</div>
<div id="inherited-methods-java.lang.Object-summary" style="display: none;">
<table class="jd-sumtable-expando">
-
-
+
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
Object</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">clone</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
boolean</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">equals</span>(Object arg0)</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">finalize</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
Class<?></nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">getClass</span>()</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
int</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">hashCode</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">notify</span>()</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">notifyAll</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
String</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">toString</span>()</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">wait</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">wait</span>(long arg0)</nobr>
-
+
</td></tr>
@@ -1250,38 +1233,38 @@
</div>
<div id="inherited-methods-android.os.Parcelable-summary" style="display: none;">
<table class="jd-sumtable-expando">
-
-
+
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
abstract
-
-
-
-
+
+
+
+
int</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">describeContents</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
abstract
-
-
-
-
+
+
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">writeToParcel</span>(Parcel arg0, int arg1)</nobr>
-
+
</td></tr>
@@ -1325,183 +1308,27 @@
<A NAME="CREATOR"></A>
-<div class="jd-details api apilevel-">
+<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
- public
- static
- final
- <a href="/reference/com/google/android/gms/auth/RecoveryDecisionCreator.html">RecoveryDecisionCreator</a>
+ public
+ static
+ final
+ Creator<<a href="/reference/com/google/android/gms/drive/query/Query.html">Query</a>>
</span>
CREATOR
</h4>
<div class="api-level">
-
-
-
+
+
+
</div>
<div class="jd-details-descr">
-
+
<div class="jd-tagdata jd-tagdescr"><p></p></div>
-
- </div>
-</div>
-
-
-<A NAME="isRecoveryInfoNeeded"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- boolean
- </span>
- isRecoveryInfoNeeded
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>Is <code>true</code> if either the account has no recovery information or it
- was updated long time back (controlled by server, default 1 year).
-</p></div>
-
-
- </div>
-</div>
-
-
-
-<A NAME="isRecoveryInterstitialAllowed"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- boolean
- </span>
- isRecoveryInterstitialAllowed
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>Is <code>true</code> iff the user has permission to update the account.
- Dasher accounts can have recovery information edit disabled by the administrator.
- Eg: @google.com
-</p></div>
-
-
- </div>
-</div>
-
-
-
-<A NAME="recoveryIntent"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- PendingIntent
- </span>
- recoveryIntent
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>A PendingIntent to an activity that gathers recovery information for the given account.
- This intent will be null iff isRecoveryInterstitialAllowed is <code>false</code>.
-</p></div>
-
-
- </div>
-</div>
-
-
-
-<A NAME="recoveryIntentWithoutIntro"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- PendingIntent
- </span>
- recoveryIntentWithoutIntro
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>A PendingIntent to an activity that gathers recovery information for the given account.
- This intent will be null iff isRecoveryInterstitialAllowed is <code>false</code>.
- This intent directly skips to the input activity without showing the intro message.
-</p></div>
-
-
- </div>
-</div>
-
-
-
-<A NAME="showRecoveryInterstitial"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- boolean
- </span>
- showRecoveryInterstitial
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>Represents the decision and should be obeyed by the client. The remaining
- two flags are provided as additional information for one off decisions. This value
- is <code>true</code> iff isRecoveryInfoNeeded is <code>true</code>, isRecoveryInterstitialAllowed is
- <code>true</code> and a specified period (controlled by server, default 2 months) has passed
- since the user was shown a prompt for recovery information on any google property
- (Android, Web, etc.)
-</p></div>
-
-
</div>
</div>
@@ -1511,42 +1338,6 @@
<!-- Public ctors -->
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<h2>Public Constructors</h2>
-
-
-
-<A NAME="RecoveryDecision()"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
-
-
-
- </span>
- <span class="sympad">RecoveryDecision</span>
- <span class="normal">()</span>
- </h4>
- <div class="api-level">
- <div></div>
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
- </div>
-</div>
-
-
-
-
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<!-- Protected ctors -->
@@ -1562,14 +1353,14 @@
<A NAME="describeContents()"></A>
-<div class="jd-details api apilevel-">
+<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
- public
-
-
-
-
+ public
+
+
+
+
int
</span>
<span class="sympad">describeContents</span>
@@ -1577,42 +1368,74 @@
</h4>
<div class="api-level">
<div></div>
-
-
+
+
</div>
<div class="jd-details-descr">
-
+
<div class="jd-tagdata jd-tagdescr"><p></p></div>
</div>
</div>
-<A NAME="getVersionCode()"></A>
+<A NAME="getFilter()"></A>
-<div class="jd-details api apilevel-">
+<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
- public
-
-
-
-
- int
+ public
+
+
+
+
+ <a href="/reference/com/google/android/gms/drive/query/Filter.html">Filter</a>
</span>
- <span class="sympad">getVersionCode</span>
+ <span class="sympad">getFilter</span>
<span class="normal">()</span>
</h4>
<div class="api-level">
<div></div>
-
-
+
+
</div>
<div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+ <div class="jd-tagdata jd-tagdescr"><p>Get the filters that will restrict the query results.
+</p></div>
+
+ </div>
+</div>
+
+
+<A NAME="getPageToken()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ String
+ </span>
+ <span class="sympad">getPageToken</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>A token that indicates the next page of results to retrieve. This should be a token
+ that was returned in a previous query.
+</p></div>
</div>
</div>
@@ -1620,14 +1443,14 @@
<A NAME="writeToParcel(android.os.Parcel, int)"></A>
-<div class="jd-details api apilevel-">
+<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
- public
-
-
-
-
+ public
+
+
+
+
void
</span>
<span class="sympad">writeToParcel</span>
@@ -1635,12 +1458,12 @@
</h4>
<div class="api-level">
<div></div>
-
-
+
+
</div>
<div class="jd-details-descr">
-
+
<div class="jd-tagdata jd-tagdescr"><p></p></div>
</div>
@@ -1658,17 +1481,17 @@
<A NAME="navbar_top"></A>
<div id="footer" class="wrap" >
-
+
<div id="copyright">
-
+
Except as noted, this content is licensed under <a
- href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.
+ href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.
For details and restrictions, see the <a href="/license.html">
Content License</a>.
</div>
<div id="build_info">
-
+
<script src="/timestamp.js" type="text/javascript"></script>
<script>document.write(BUILD_TIMESTAMP)</script>
@@ -1676,7 +1499,7 @@
<div id="footerlinks">
-
+
<p>
<a href="/about/index.html">About Android</a> |
<a href="/legal.html">Legal</a> |
@@ -1689,7 +1512,7 @@
</div><!-- end doc-content -->
-</div> <!-- end body-content -->
+</div> <!-- end body-content -->
diff --git a/docs/html/reference/com/google/android/gms/auth/RecoveryDecision.html b/docs/html/reference/com/google/android/gms/drive/query/SearchableField.html
similarity index 67%
copy from docs/html/reference/com/google/android/gms/auth/RecoveryDecision.html
copy to docs/html/reference/com/google/android/gms/drive/query/SearchableField.html
index 59a1346..7016c72 100644
--- a/docs/html/reference/com/google/android/gms/auth/RecoveryDecision.html
+++ b/docs/html/reference/com/google/android/gms/drive/query/SearchableField.html
@@ -83,7 +83,7 @@
<meta name="viewport" content="width=device-width" />
<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
-<title>RecoveryDecision | Android Developers</title>
+<title>SearchableField | Android Developers</title>
<!-- STYLESHEETS -->
<link rel="stylesheet"
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -128,7 +129,7 @@
<img src="/assets/images/dac_logo.png" width="123" height="25" alt="Android Developers" />
</a>
<div class="btn-quicknav" id="btn-quicknav">
- <a href="#" class="arrow-inactive">Quicknav</a>
+ <a href="#" class="arrow-inactive">Quicknav</a>
<a href="#" class="arrow-active">Quicknav</a>
</div>
</div>
@@ -140,7 +141,7 @@
ru-lang="Проектирование"
ko-lang="디자인"
ja-lang="設計"
- es-lang="Diseñar"
+ es-lang="Diseñar"
>Design</a></li>
<li class="develop"><a href="/develop/index.html"
zh-tw-lang="開發"
@@ -148,7 +149,7 @@
ru-lang="Разработка"
ko-lang="개발"
ja-lang="開発"
- es-lang="Desarrollar"
+ es-lang="Desarrollar"
>Develop</a></li>
<li class="distribute last"><a href="/distribute/index.html"
zh-tw-lang="發佈"
@@ -156,10 +157,10 @@
ru-lang="Распространение"
ko-lang="배포"
ja-lang="配布"
- es-lang="Distribuir"
+ es-lang="Distribuir"
>Distribute</a></li>
</ul>
-
+
<!-- New Search -->
<div class="menu-container">
<div class="moremenu">
@@ -180,9 +181,9 @@
<li class="active"><a>Android Developers</a></li>
<li><a href="http://source.android.com">Android Open Source Project</a></li>
</ul>
-
-
-
+
+
+
<div class="header">Language</div>
<div id="language" class="locales">
<select name="language" onChange="changeLangPref(this.value, true)">
@@ -200,8 +201,8 @@
loadLangPref();
//-->
</script>
-
-
+
+
<br class="clearfix" />
@@ -215,7 +216,7 @@
<form onsubmit="return submit_search()">
<input id="search_autocomplete" type="text" value="" autocomplete="off" name="q"
onfocus="search_focus_changed(this, true)" onblur="search_focus_changed(this, false)"
-onkeydown="return search_changed(event, true, '/')"
+onkeydown="return search_changed(event, true, '/')"
onkeyup="return search_changed(event, false, '/')" />
</form>
<div class="right"></div>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -254,8 +257,8 @@
</div>
<!-- /New Search>
-
-
+
+
<!-- Expanded quicknav -->
<div id="quicknav" class="col-9">
<ul>
@@ -277,15 +280,15 @@
ru-lang="Курсы"
ko-lang="교육"
ja-lang="トレーニング"
- es-lang="Capacitación"
+ es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
ko-lang="API 가이드"
ja-lang="API ガイド"
- es-lang="Guías de la API"
+ es-lang="Guías de la API"
>API Guides</a></li>
<li><a href="/reference/packages.html"
zh-tw-lang="參考資源"
@@ -293,7 +296,7 @@
ru-lang="Справочник"
ko-lang="참조문서"
ja-lang="リファレンス"
- es-lang="Referencia"
+ es-lang="Referencia"
>Reference</a></li>
<li><a href="/tools/index.html"
zh-tw-lang="相關工具"
@@ -301,13 +304,16 @@
ru-lang="Инструменты"
ko-lang="도구"
ja-lang="ツール"
- es-lang="Herramientas"
+ es-lang="Herramientas"
>Tools</a>
<ul><li><a href="/sdk/index.html">Get the SDK</a></li></ul>
</li>
<li><a href="/google/index.html">Google Services</a>
</li>
-
+
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -326,15 +332,15 @@
</div>
</div>
<!-- /Header -->
-
-
+
+
<div id="searchResults" class="wrap" style="display:none;">
<h2 id="searchTitle">Results</h2>
<div id="leftSearchControl" class="search-control">Loading...</div>
</div>
-
-
-
+
+
+
<!-- Secondary x-nav -->
<div id="nav-x">
<div class="wrap">
@@ -345,15 +351,15 @@
ru-lang="Курсы"
ko-lang="교육"
ja-lang="トレーニング"
- es-lang="Capacitación"
+ es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
ko-lang="API 가이드"
ja-lang="API ガイド"
- es-lang="Guías de la API"
+ es-lang="Guías de la API"
>API Guides</a></li>
<li class="reference"><a href="/reference/packages.html"
zh-tw-lang="參考資源"
@@ -361,7 +367,7 @@
ru-lang="Справочник"
ko-lang="참조문서"
ja-lang="リファレンス"
- es-lang="Referencia"
+ es-lang="Referencia"
>Reference</a></li>
<li class="tools"><a href="/tools/index.html"
zh-tw-lang="相關工具"
@@ -374,21 +380,25 @@
<li class="google"><a href="/google/index.html"
>Google Services</a>
</li>
-
+
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
-
+
</div>
<!-- /Sendondary x-nav -->
-
-
-
+
+
+
<div class="wrap clearfix" id="body-content">
<div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
<div id="devdoc-nav" class="scroll-pane">
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
@@ -618,12 +631,12 @@
</script>
-
+
</div>
<script type="text/javascript">
showGoogleRefTree();
-
+
</script>
</div> <!-- end side-nav -->
<script>
@@ -633,7 +646,7 @@
</script>
-
+
@@ -643,21 +656,12 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
<div class="sum-details-links">
@@ -669,22 +673,16 @@
- <a href="#inhconstants">Inherited Constants</a>
-
+ <a href="#lfields">Fields</a>
- | <a href="#lfields">Fields</a>
-
| <a href="#pubctors">Ctors</a>
-
- | <a href="#pubmethods">Methods</a>
-
@@ -694,9 +692,9 @@
</div><!-- end sum-details-links -->
<div class="api-level">
-
-
-
+
+
+
</div>
</div><!-- end api-info-block -->
@@ -706,28 +704,23 @@
<div id="jd-header">
public
-
-
-
+
+
+
class
-<h1 itemprop="name">RecoveryDecision</h1>
+<h1 itemprop="name">SearchableField</h1>
-
+
extends Object<br/>
-
-
-
-
-
- implements
-
- Parcelable
-
-
-
+
+
+
+
+
+
</div><!-- end header -->
@@ -739,18 +732,18 @@
<tr>
-
+
<td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
</tr>
-
+
<tr>
-
+
<td class="jd-inheritance-space"> ↳</td>
-
- <td colspan="1" class="jd-inheritance-class-cell">com.google.android.gms.auth.RecoveryDecision</td>
+
+ <td colspan="1" class="jd-inheritance-class-cell">com.google.android.gms.drive.query.SearchableField</td>
</tr>
-
+
</table>
@@ -763,6 +756,16 @@
<div class="jd-descr">
+<h2>Class Overview</h2>
+<p class="caution">
+ <strong>Note:</strong> The Google Drive Android API is currently in <strong>developer
+ preview</strong>. Applications compiled using this version of the API will
+ continue to operate on devices using future versions of Google Play services;
+ however, changes to the API are expected in future releases.
+</p>
+<p itemprop="articleBody">An attribute of the file that is to be searched.
+</p>
+
@@ -804,128 +807,79 @@
-<!-- =========== ENUM CONSTANT SUMMARY =========== -->
-<table id="inhconstants" class="jd-sumtable"><tr><th>
- <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
- <div style="clear:left;">Inherited Constants</div></th></tr>
-
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-
- <a href="#" onclick="return toggleInherited(this, null)" id="inherited-constants-android.os.Parcelable" class="jd-expando-trigger closed"
- ><img id="inherited-constants-android.os.Parcelable-trigger"
- src="/assets/images/triangle-closed.png"
- class="jd-expando-trigger-img" /></a>From interface
-android.os.Parcelable
-<div id="inherited-constants-android.os.Parcelable">
- <div id="inherited-constants-android.os.Parcelable-list"
- class="jd-inheritedlinks">
- </div>
- <div id="inherited-constants-android.os.Parcelable-summary" style="display: none;">
- <table class="jd-sumtable-expando">
-
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol">int</td>
- <td class="jd-linkcol">CONTENTS_FILE_DESCRIPTOR</td>
- <td class="jd-descrcol" width="100%"></td>
- </tr>
-
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol">int</td>
- <td class="jd-linkcol">PARCELABLE_WRITE_RETURN_VALUE</td>
- <td class="jd-descrcol" width="100%"></td>
- </tr>
-
-
-</table>
- </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
<!-- =========== FIELD SUMMARY =========== -->
<table id="lfields" class="jd-sumtable"><tr><th colspan="12">Fields</th></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
public
static
final
- <a href="/reference/com/google/android/gms/auth/RecoveryDecisionCreator.html">RecoveryDecisionCreator</a></nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#CREATOR">CREATOR</a></td>
- <td class="jd-descrcol" width="100%"></td>
+ <a href="/reference/com/google/android/gms/drive/metadata/MetadataField.html">MetadataField</a><String></nobr></td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/drive/query/SearchableField.html#MIME_TYPE">MIME_TYPE</a></td>
+ <td class="jd-descrcol" width="100%">The MIME type of the item.</td>
</tr>
-
-
+
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
public
-
-
- boolean</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#isRecoveryInfoNeeded">isRecoveryInfoNeeded</a></td>
- <td class="jd-descrcol" width="100%">Is <code>true</code> if either the account has no recovery information or it
- was updated long time back (controlled by server, default 1 year).</td>
+ static
+ final
+ <a href="/reference/com/google/android/gms/drive/metadata/OrderedMetadataField.html">OrderedMetadataField</a><Date></nobr></td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/drive/query/SearchableField.html#MODIFIED_DATE">MODIFIED_DATE</a></td>
+ <td class="jd-descrcol" width="100%">The date when the item was most recently modified.</td>
</tr>
-
-
+
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
public
-
-
- boolean</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#isRecoveryInterstitialAllowed">isRecoveryInterstitialAllowed</a></td>
- <td class="jd-descrcol" width="100%">Is <code>true</code> iff the user has permission to update the account.</td>
+ static
+ final
+ <a href="/reference/com/google/android/gms/drive/metadata/CollectionMetadataField.html">CollectionMetadataField</a><<a href="/reference/com/google/android/gms/drive/DriveId.html">DriveId</a>></nobr></td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/drive/query/SearchableField.html#PARENTS">PARENTS</a></td>
+ <td class="jd-descrcol" width="100%">The IDs of the parent folders (if any) of the item.</td>
</tr>
-
-
+
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
public
-
-
- PendingIntent</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#recoveryIntent">recoveryIntent</a></td>
- <td class="jd-descrcol" width="100%">A PendingIntent to an activity that gathers recovery information for the given account.</td>
+ static
+ final
+ <a href="/reference/com/google/android/gms/drive/metadata/MetadataField.html">MetadataField</a><Boolean></nobr></td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/drive/query/SearchableField.html#STARRED">STARRED</a></td>
+ <td class="jd-descrcol" width="100%">Whether the user has starred the item.</td>
</tr>
-
-
+
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
public
-
-
- PendingIntent</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#recoveryIntentWithoutIntro">recoveryIntentWithoutIntro</a></td>
- <td class="jd-descrcol" width="100%">A PendingIntent to an activity that gathers recovery information for the given account.</td>
+ static
+ final
+ <a href="/reference/com/google/android/gms/drive/metadata/MetadataField.html">MetadataField</a><String></nobr></td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/drive/query/SearchableField.html#TITLE">TITLE</a></td>
+ <td class="jd-descrcol" width="100%">The title of the item.</td>
</tr>
-
-
+
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
public
-
-
- boolean</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#showRecoveryInterstitial">showRecoveryInterstitial</a></td>
- <td class="jd-descrcol" width="100%">Represents the decision and should be obeyed by the client.</td>
+ static
+ final
+ <a href="/reference/com/google/android/gms/drive/metadata/MetadataField.html">MetadataField</a><Boolean></nobr></td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/drive/query/SearchableField.html#TRASHED">TRASHED</a></td>
+ <td class="jd-descrcol" width="100%">Whether the item is in the trash.</td>
</tr>
-
-
+
+
</table>
@@ -940,19 +894,19 @@
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#RecoveryDecision()">RecoveryDecision</a></span>()</nobr>
-
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/query/SearchableField.html#SearchableField()">SearchableField</a></span>()</nobr>
+
</td></tr>
@@ -964,63 +918,6 @@
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
-
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
-
-
-
-
-
- int</nobr>
- </td>
- <td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#describeContents()">describeContents</a></span>()</nobr>
-
- </td></tr>
-
-
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol"><nobr>
-
-
-
-
-
- int</nobr>
- </td>
- <td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#getVersionCode()">getVersionCode</a></span>()</nobr>
-
- </td></tr>
-
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
-
-
-
-
-
- void</nobr>
- </td>
- <td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#writeToParcel(android.os.Parcel, int)">writeToParcel</a></span>(Parcel out, int flags)</nobr>
-
- </td></tr>
-
-
-
-</table>
-
-
@@ -1048,240 +945,182 @@
</div>
<div id="inherited-methods-java.lang.Object-summary" style="display: none;">
<table class="jd-sumtable-expando">
-
-
+
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
Object</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">clone</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
boolean</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">equals</span>(Object arg0)</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">finalize</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
Class<?></nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">getClass</span>()</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
int</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">hashCode</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">notify</span>()</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">notifyAll</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
String</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">toString</span>()</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">wait</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">wait</span>(long arg0)</nobr>
-
- </td></tr>
-
-</table>
- </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
- <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-android.os.Parcelable" class="jd-expando-trigger closed"
- ><img id="inherited-methods-android.os.Parcelable-trigger"
- src="/assets/images/triangle-closed.png"
- class="jd-expando-trigger-img" /></a>
-From interface
-
- android.os.Parcelable
-
-<div id="inherited-methods-android.os.Parcelable">
- <div id="inherited-methods-android.os.Parcelable-list"
- class="jd-inheritedlinks">
- </div>
- <div id="inherited-methods-android.os.Parcelable-summary" style="display: none;">
- <table class="jd-sumtable-expando">
-
-
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
- abstract
-
-
-
-
- int</nobr>
- </td>
- <td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad">describeContents</span>()</nobr>
-
- </td></tr>
-
-
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol"><nobr>
- abstract
-
-
-
-
- void</nobr>
- </td>
- <td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad">writeToParcel</span>(Parcel arg0, int arg1)</nobr>
-
</td></tr>
@@ -1323,185 +1162,175 @@
-<A NAME="CREATOR"></A>
+<A NAME="MIME_TYPE"></A>
-<div class="jd-details api apilevel-">
+<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
- public
- static
- final
- <a href="/reference/com/google/android/gms/auth/RecoveryDecisionCreator.html">RecoveryDecisionCreator</a>
+ public
+ static
+ final
+ <a href="/reference/com/google/android/gms/drive/metadata/MetadataField.html">MetadataField</a><String>
</span>
- CREATOR
+ MIME_TYPE
</h4>
<div class="api-level">
-
-
-
+
+
+
</div>
<div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
+ <div class="jd-tagdata jd-tagdescr"><p>The MIME type of the item.
+</p></div>
+
+
</div>
</div>
-<A NAME="isRecoveryInfoNeeded"></A>
+<A NAME="MODIFIED_DATE"></A>
-<div class="jd-details api apilevel-">
+<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
- public
-
-
- boolean
+ public
+ static
+ final
+ <a href="/reference/com/google/android/gms/drive/metadata/OrderedMetadataField.html">OrderedMetadataField</a><Date>
</span>
- isRecoveryInfoNeeded
+ MODIFIED_DATE
</h4>
<div class="api-level">
-
-
-
+
+
+
</div>
<div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>Is <code>true</code> if either the account has no recovery information or it
- was updated long time back (controlled by server, default 1 year).
+
+ <div class="jd-tagdata jd-tagdescr"><p>The date when the item was most recently modified.
</p></div>
-
+
</div>
</div>
-<A NAME="isRecoveryInterstitialAllowed"></A>
+<A NAME="PARENTS"></A>
-<div class="jd-details api apilevel-">
+<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
- public
-
-
- boolean
+ public
+ static
+ final
+ <a href="/reference/com/google/android/gms/drive/metadata/CollectionMetadataField.html">CollectionMetadataField</a><<a href="/reference/com/google/android/gms/drive/DriveId.html">DriveId</a>>
</span>
- isRecoveryInterstitialAllowed
+ PARENTS
</h4>
<div class="api-level">
-
-
-
+
+
+
</div>
<div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>Is <code>true</code> iff the user has permission to update the account.
- Dasher accounts can have recovery information edit disabled by the administrator.
- Eg: @google.com
+
+ <div class="jd-tagdata jd-tagdescr"><p>The IDs of the parent folders (if any) of the item.
</p></div>
-
+
</div>
</div>
-<A NAME="recoveryIntent"></A>
+<A NAME="STARRED"></A>
-<div class="jd-details api apilevel-">
+<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
- public
-
-
- PendingIntent
+ public
+ static
+ final
+ <a href="/reference/com/google/android/gms/drive/metadata/MetadataField.html">MetadataField</a><Boolean>
</span>
- recoveryIntent
+ STARRED
</h4>
<div class="api-level">
-
-
-
+
+
+
</div>
<div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>A PendingIntent to an activity that gathers recovery information for the given account.
- This intent will be null iff isRecoveryInterstitialAllowed is <code>false</code>.
+
+ <div class="jd-tagdata jd-tagdescr"><p>Whether the user has starred the item.
</p></div>
-
+
</div>
</div>
-<A NAME="recoveryIntentWithoutIntro"></A>
+<A NAME="TITLE"></A>
-<div class="jd-details api apilevel-">
+<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
- public
-
-
- PendingIntent
+ public
+ static
+ final
+ <a href="/reference/com/google/android/gms/drive/metadata/MetadataField.html">MetadataField</a><String>
</span>
- recoveryIntentWithoutIntro
+ TITLE
</h4>
<div class="api-level">
-
-
-
+
+
+
</div>
<div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>A PendingIntent to an activity that gathers recovery information for the given account.
- This intent will be null iff isRecoveryInterstitialAllowed is <code>false</code>.
- This intent directly skips to the input activity without showing the intro message.
+
+ <div class="jd-tagdata jd-tagdescr"><p>The title of the item.
</p></div>
-
+
</div>
</div>
-<A NAME="showRecoveryInterstitial"></A>
+<A NAME="TRASHED"></A>
-<div class="jd-details api apilevel-">
+<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
- public
-
-
- boolean
+ public
+ static
+ final
+ <a href="/reference/com/google/android/gms/drive/metadata/MetadataField.html">MetadataField</a><Boolean>
</span>
- showRecoveryInterstitial
+ TRASHED
</h4>
<div class="api-level">
-
-
-
+
+
+
</div>
<div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>Represents the decision and should be obeyed by the client. The remaining
- two flags are provided as additional information for one off decisions. This value
- is <code>true</code> iff isRecoveryInfoNeeded is <code>true</code>, isRecoveryInterstitialAllowed is
- <code>true</code> and a specified period (controlled by server, default 2 months) has passed
- since the user was shown a prompt for recovery information on any google property
- (Android, Web, etc.)
+
+ <div class="jd-tagdata jd-tagdescr"><p>Whether the item is in the trash.
</p></div>
-
+
</div>
</div>
@@ -1516,29 +1345,29 @@
-<A NAME="RecoveryDecision()"></A>
+<A NAME="SearchableField()"></A>
-<div class="jd-details api apilevel-">
+<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
- public
-
-
-
-
-
+ public
+
+
+
+
+
</span>
- <span class="sympad">RecoveryDecision</span>
+ <span class="sympad">SearchableField</span>
<span class="normal">()</span>
</h4>
<div class="api-level">
<div></div>
-
-
+
+
</div>
<div class="jd-details-descr">
-
+
<div class="jd-tagdata jd-tagdescr"><p></p></div>
</div>
@@ -1556,98 +1385,6 @@
<!-- ========= METHOD DETAIL ======== -->
<!-- Public methdos -->
-<h2>Public Methods</h2>
-
-
-
-<A NAME="describeContents()"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
-
-
- int
- </span>
- <span class="sympad">describeContents</span>
- <span class="normal">()</span>
- </h4>
- <div class="api-level">
- <div></div>
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
- </div>
-</div>
-
-
-<A NAME="getVersionCode()"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
-
-
- int
- </span>
- <span class="sympad">getVersionCode</span>
- <span class="normal">()</span>
- </h4>
- <div class="api-level">
- <div></div>
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
- </div>
-</div>
-
-
-<A NAME="writeToParcel(android.os.Parcel, int)"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
-
-
- void
- </span>
- <span class="sympad">writeToParcel</span>
- <span class="normal">(Parcel out, int flags)</span>
- </h4>
- <div class="api-level">
- <div></div>
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
- </div>
-</div>
-
-
-
<!-- ========= METHOD DETAIL ======== -->
@@ -1658,17 +1395,17 @@
<A NAME="navbar_top"></A>
<div id="footer" class="wrap" >
-
+
<div id="copyright">
-
+
Except as noted, this content is licensed under <a
- href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.
+ href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.
For details and restrictions, see the <a href="/license.html">
Content License</a>.
</div>
<div id="build_info">
-
+
<script src="/timestamp.js" type="text/javascript"></script>
<script>document.write(BUILD_TIMESTAMP)</script>
@@ -1676,7 +1413,7 @@
<div id="footerlinks">
-
+
<p>
<a href="/about/index.html">About Android</a> |
<a href="/legal.html">Legal</a> |
@@ -1689,7 +1426,7 @@
</div><!-- end doc-content -->
-</div> <!-- end body-content -->
+</div> <!-- end body-content -->
diff --git a/docs/html/reference/com/google/android/gms/drive/query/package-summary.html b/docs/html/reference/com/google/android/gms/drive/query/package-summary.html
new file mode 100644
index 0000000..338f77e
--- /dev/null
+++ b/docs/html/reference/com/google/android/gms/drive/query/package-summary.html
@@ -0,0 +1,768 @@
+<!DOCTYPE html>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<html>
+<head>
+
+
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<meta name="viewport" content="width=device-width" />
+
+<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
+<title>com.google.android.gms.drive.query | Android Developers</title>
+
+<!-- STYLESHEETS -->
+<link rel="stylesheet"
+href="//fonts.googleapis.com/css?family=Roboto:regular,medium,thin,italic,mediumitalic,bold" title="roboto">
+<link href="/assets/css/default.css" rel="stylesheet" type="text/css">
+
+
+
+<!-- JAVASCRIPT -->
+<script src="//www.google.com/jsapi" type="text/javascript"></script>
+<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
+<script type="text/javascript">
+ var toRoot = "/";
+ var metaTags = [];
+ var devsite = false;
+</script>
+<script src="/assets/js/docs.js" type="text/javascript"></script>
+
+<script type="text/javascript">
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-5831155-1']);
+ _gaq.push(['_trackPageview']);
+
+ (function() {
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+ })();
+</script>
+</head>
+
+<body class="gc-documentation google
+ develop">
+ <div id="doc-api-level" class="" style="display:none"></div>
+ <a name="top"></a>
+
+<a name="top"></a>
+
+ <!-- Header -->
+ <div id="header">
+ <div class="wrap" id="header-wrap">
+ <div class="col-3 logo">
+ <a href="/index.html">
+ <img src="/assets/images/dac_logo.png" width="123" height="25" alt="Android Developers" />
+ </a>
+ <div class="btn-quicknav" id="btn-quicknav">
+ <a href="#" class="arrow-inactive">Quicknav</a>
+ <a href="#" class="arrow-active">Quicknav</a>
+ </div>
+ </div>
+ <ul class="nav-x col-9">
+ <li class="design">
+ <a href="/design/index.html"
+ zh-tw-lang="設計"
+ zh-cn-lang="设计"
+ ru-lang="Проектирование"
+ ko-lang="디자인"
+ ja-lang="設計"
+ es-lang="Diseñar"
+ >Design</a></li>
+ <li class="develop"><a href="/develop/index.html"
+ zh-tw-lang="開發"
+ zh-cn-lang="开发"
+ ru-lang="Разработка"
+ ko-lang="개발"
+ ja-lang="開発"
+ es-lang="Desarrollar"
+ >Develop</a></li>
+ <li class="distribute last"><a href="/distribute/index.html"
+ zh-tw-lang="發佈"
+ zh-cn-lang="分发"
+ ru-lang="Распространение"
+ ko-lang="배포"
+ ja-lang="配布"
+ es-lang="Distribuir"
+ >Distribute</a></li>
+ </ul>
+
+ <!-- New Search -->
+ <div class="menu-container">
+ <div class="moremenu">
+ <div id="more-btn"></div>
+ </div>
+ <div class="morehover" id="moremenu">
+ <div class="top"></div>
+ <div class="mid">
+ <div class="header">Links</div>
+ <ul>
+ <li><a href="https://play.google.com/apps/publish/">Google Play Developer Console</a></li>
+ <li><a href="http://android-developers.blogspot.com/">Android Developers Blog</a></li>
+ <li><a href="/about/index.html">About Android</a></li>
+ </ul>
+ <div class="header">Android Sites</div>
+ <ul>
+ <li><a href="http://www.android.com">Android.com</a></li>
+ <li class="active"><a>Android Developers</a></li>
+ <li><a href="http://source.android.com">Android Open Source Project</a></li>
+ </ul>
+
+
+
+ <div class="header">Language</div>
+ <div id="language" class="locales">
+ <select name="language" onChange="changeLangPref(this.value, true)">
+ <option value="en">English</option>
+ <option value="es">Español</option>
+ <option value="ja">日本語</option>
+ <option value="ko">한국어</option>
+ <option value="ru">Русский</option>
+ <option value="zh-cn">中文 (中国)</option>
+ <option value="zh-tw">中文 (台灣)</option>
+ </select>
+ </div>
+ <script type="text/javascript">
+ <!--
+ loadLangPref();
+ //-->
+ </script>
+
+
+
+
+ <br class="clearfix" />
+ </div>
+ <div class="bottom"></div>
+ </div>
+ <div class="search" id="search-container">
+ <div class="search-inner">
+ <div id="search-btn"></div>
+ <div class="left"></div>
+ <form onsubmit="return submit_search()">
+ <input id="search_autocomplete" type="text" value="" autocomplete="off" name="q"
+onfocus="search_focus_changed(this, true)" onblur="search_focus_changed(this, false)"
+onkeydown="return search_changed(event, true, '/')"
+onkeyup="return search_changed(event, false, '/')" />
+ </form>
+ <div class="right"></div>
+ <a class="close hide">close</a>
+ <div class="left"></div>
+ <div class="right"></div>
+ </div>
+ </div>
+
+ <div class="search_filtered_wrapper reference">
+ <div class="suggest-card reference no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ </div>
+
+ <div class="search_filtered_wrapper docs">
+ <div class="suggest-card dummy no-display"> </div>
+ <div class="suggest-card develop no-display">
+ <ul class="search_filtered">
+ </ul>
+ <div class="child-card guides no-display">
+ </div>
+ <div class="child-card training no-display">
+ </div>
+ <div class="child-card samples no-display">
+ </div>
+ </div>
+ <div class="suggest-card design no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ <div class="suggest-card distribute no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ </div>
+
+ </div>
+ <!-- /New Search>
+
+
+ <!-- Expanded quicknav -->
+ <div id="quicknav" class="col-9">
+ <ul>
+ <li class="design">
+ <ul>
+ <li><a href="/design/index.html">Get Started</a></li>
+ <li><a href="/design/style/index.html">Style</a></li>
+ <li><a href="/design/patterns/index.html">Patterns</a></li>
+ <li><a href="/design/building-blocks/index.html">Building Blocks</a></li>
+ <li><a href="/design/downloads/index.html">Downloads</a></li>
+ <li><a href="/design/videos/index.html">Videos</a></li>
+ </ul>
+ </li>
+ <li class="develop">
+ <ul>
+ <li><a href="/training/index.html"
+ zh-tw-lang="訓練課程"
+ zh-cn-lang="培训"
+ ru-lang="Курсы"
+ ko-lang="교육"
+ ja-lang="トレーニング"
+ es-lang="Capacitación"
+ >Training</a></li>
+ <li><a href="/guide/index.html"
+ zh-tw-lang="API 指南"
+ zh-cn-lang="API 指南"
+ ru-lang="Руководства по API"
+ ko-lang="API 가이드"
+ ja-lang="API ガイド"
+ es-lang="Guías de la API"
+ >API Guides</a></li>
+ <li><a href="/reference/packages.html"
+ zh-tw-lang="參考資源"
+ zh-cn-lang="参考"
+ ru-lang="Справочник"
+ ko-lang="참조문서"
+ ja-lang="リファレンス"
+ es-lang="Referencia"
+ >Reference</a></li>
+ <li><a href="/tools/index.html"
+ zh-tw-lang="相關工具"
+ zh-cn-lang="工具"
+ ru-lang="Инструменты"
+ ko-lang="도구"
+ ja-lang="ツール"
+ es-lang="Herramientas"
+ >Tools</a>
+ <ul><li><a href="/sdk/index.html">Get the SDK</a></li></ul>
+ </li>
+ <li><a href="/google/index.html">Google Services</a>
+ </li>
+
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
+ </ul>
+ </li>
+ <li class="distribute last">
+ <ul>
+ <li><a href="/distribute/index.html">Google Play</a></li>
+ <li><a href="/distribute/googleplay/publish/index.html">Publishing</a></li>
+ <li><a href="/distribute/googleplay/promote/index.html">Promoting</a></li>
+ <li><a href="/distribute/googleplay/quality/index.html">App Quality</a></li>
+ <li><a href="/distribute/googleplay/spotlight/index.html">Spotlight</a></li>
+ <li><a href="/distribute/open.html">Open Distribution</a></li>
+ </ul>
+ </li>
+ </ul>
+ </div>
+ <!-- /Expanded quicknav -->
+ </div>
+ </div>
+ <!-- /Header -->
+
+
+ <div id="searchResults" class="wrap" style="display:none;">
+ <h2 id="searchTitle">Results</h2>
+ <div id="leftSearchControl" class="search-control">Loading...</div>
+ </div>
+
+
+
+ <!-- Secondary x-nav -->
+ <div id="nav-x">
+ <div class="wrap">
+ <ul class="nav-x col-9 develop" style="width:100%">
+ <li class="training"><a href="/training/index.html"
+ zh-tw-lang="訓練課程"
+ zh-cn-lang="培训"
+ ru-lang="Курсы"
+ ko-lang="교육"
+ ja-lang="トレーニング"
+ es-lang="Capacitación"
+ >Training</a></li>
+ <li class="guide"><a href="/guide/index.html"
+ zh-tw-lang="API 指南"
+ zh-cn-lang="API 指南"
+ ru-lang="Руководства по API"
+ ko-lang="API 가이드"
+ ja-lang="API ガイド"
+ es-lang="Guías de la API"
+ >API Guides</a></li>
+ <li class="reference"><a href="/reference/packages.html"
+ zh-tw-lang="參考資源"
+ zh-cn-lang="参考"
+ ru-lang="Справочник"
+ ko-lang="참조문서"
+ ja-lang="リファレンス"
+ es-lang="Referencia"
+ >Reference</a></li>
+ <li class="tools"><a href="/tools/index.html"
+ zh-tw-lang="相關工具"
+ zh-cn-lang="工具"
+ ru-lang="Инструменты"
+ ko-lang="도구"
+ ja-lang="ツール"
+ es-lang="Herramientas"
+ >Tools</a></li>
+ <li class="google"><a href="/google/index.html"
+ >Google Services</a>
+ </li>
+
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
+ </ul>
+ </div>
+
+ </div>
+ <!-- /Sendondary x-nav -->
+
+
+
+
+
+
+
+
+
+ <div class="wrap clearfix" id="body-content">
+ <div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
+ <div id="devdoc-nav" class="scroll-pane">
+<a class="totop" href="#top" data-g-event="left-nav-top">to top</a>
+
+
+
+<ul id="nav">
+
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/index.html">
+ <span class="en">Overview</span>
+ </a></div>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/games.html">
+ <span class="en">Games</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/location.html">
+ <span class="en">Location</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/plus.html">
+ <span class="en">Google+</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/maps.html">
+ <span class="en">Maps</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play-services/ads.html">
+ <span class="en">Ads</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play-services/id.html">
+ <span class="en">Advertising ID</span></a>
+ </li>
+ </ul>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/wallet.html">
+ <span class="en">Wallet</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/auth.html">
+ <span class="en">Authorization</span>
+ </a></div>
+ </li>
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play-services/index.html">
+ <span class="en">Google Play Services</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play-services/setup.html">
+ <span class="en">Setup</span></a>
+ </li>
+ <li id="gms-tree-list" class="nav-section">
+ <div class="nav-section-header">
+ <a href="/reference/gms-packages.html">
+ <span class="en">Reference</span>
+ </a>
+ <div>
+ </li>
+ </ul>
+ </li>
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/billing/index.html">
+ <span class="en">Google Play In-app Billing</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/billing/billing_overview.html">
+ <span class="en">Overview</span></a>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/api.html">
+ <span class="en">Version 3 API</span></a></div>
+ <ul>
+ <li><a href="/google/play/billing/billing_integrate.html">
+ <span class="en">Implementing the API</span></a></li>
+ <li><a href="/google/play/billing/billing_reference.html">
+ <span class="en">Reference</span></a></li>
+ </ul>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/v2/api.html">
+ <span class="en">Version 2 API</span></a></div>
+ <ul>
+ <li><a href="/google/play/billing/v2/billing_integrate.html">
+ <span class="en">Implementing the API</span></a></li>
+ <li><a href="/google/play/billing/v2/billing_subscriptions.html">
+ <span class="en">Subscriptions</span></a></li>
+ <li><a href="/google/play/billing/v2/billing_reference.html">
+ <span class="en">Reference</span></a></li>
+ </ul>
+ </li>
+ <li><a href="/google/play/billing/billing_subscriptions.html">
+ <span class="en">Subscriptions</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_best_practices.html">
+ <span class="en">Security and Design</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_testing.html">
+ <span class="en">Testing In-app Billing</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_admin.html">
+ <span class="en">Administering In-app Billing</span></a>
+ </li>
+ <li><a href="/google/play/billing/gp-purchase-status-api.html">
+ <span class="en">Purchase Status API</span></a>
+ </li>
+ <li><a href="/google/play/billing/versions.html">
+ <span class="en">Version Notes</span></a>
+ </li>
+ </ul>
+ </li>
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/gcm/index.html">
+ <span class="en">Google Cloud Messaging</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
+ <li><a href="/google/gcm/gs.html">
+ <span class="en">Getting Started</span></a>
+ </li>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
+ </li>
+ <li><a href="/google/gcm/notifications.html">
+ <span class="en">User Notifications</span></a>
+ </li>
+ <li><a href="/google/gcm/adv.html">
+ <span class="en">Advanced Topics</span></a>
+ </li>
+ <li><a href="/google/gcm/c2dm.html">
+ <span class="en">Migration</span></a>
+ </li>
+ <li id="gcm-tree-list" class="nav-section">
+ <div class="nav-section-header">
+ <a href="/reference/gcm-packages.html">
+ <span class="en">Reference</span>
+ </a>
+ <div>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/dist.html">
+ <span class="en">Google Play Distribution</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/filters.html">
+ <span class="en">Filters on Google Play</span></a>
+ </li>
+
+ <li><a href="/google/play/publishing/multiple-apks.html">
+ <span class="en">Multiple APK Support</span></a>
+ </li>
+ <li><a href="/google/play/expansion-files.html">
+ <span class="en">APK Expansion Files</span></a>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/licensing/index.html">
+ <span class="en">Application Licensing</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/licensing/overview.html">
+ <span class="en">Licensing Overview</span></a>
+ </li>
+ <li><a href="/google/play/licensing/setting-up.html">
+ <span class="en">Setting Up for Licensing</span></a>
+ </li>
+ <li><a href="/google/play/licensing/adding-licensing.html">
+ <span class="en">Adding Licensing to Your App</span></a>
+ </li>
+ <li><a href="/google/play/licensing/licensing-reference.html">
+ <span class="en">Licensing Reference</span></a>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/backup/index.html">
+ Android Backup Service</a>
+ </div>
+ <ul>
+ <li><a href="/google/backup/signup.html">
+ Register</a>
+ </li>
+ </ul>
+ </li>
+
+ </ul>
+
+</li>
+
+
+
+</ul>
+
+<script type="text/javascript">
+<!--
+ buildToggleLists();
+ changeNavLang(getLangPref());
+//-->
+</script>
+
+
+
+
+ </div>
+ <script type="text/javascript">
+ showGoogleRefTree();
+
+ </script>
+ </div> <!-- end side-nav -->
+ <script>
+ $(document).ready(function() {
+ scrollIntoView("devdoc-nav");
+ });
+ </script>
+
+
+
+
+
+
+<div class="col-12" id="doc-col">
+
+<div id="api-info-block">
+<div class="api-level">
+
+
+
+
+</div>
+</div>
+
+<div id="jd-header">
+ package
+ <h1>com.google.android.gms.drive.query</h1>
+</div><!-- end header -->
+
+<div id="naMessage"></div>
+
+<div id="jd-content" class="api apilevel-">
+
+
+
+
+
+
+
+ <h2>Interfaces</h2>
+ <div class="jd-sumtable">
+
+ <table class="jd-sumtable-expando">
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/drive/query/Filter.html">Filter</a></td>
+ <td class="jd-descrcol" width="100%">A query filter that can be used to restrict the results on queries. </td>
+ </tr>
+ </table>
+ </div>
+
+
+
+
+ <h2>Classes</h2>
+ <div class="jd-sumtable">
+
+ <table class="jd-sumtable-expando">
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/drive/query/Filters.html">Filters</a></td>
+ <td class="jd-descrcol" width="100%">A factory for creating filters that are used to construct a Query. </td>
+ </tr>
+ <tr class=" api apilevel-" >
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/drive/query/Query.html">Query</a></td>
+ <td class="jd-descrcol" width="100%">The query object specifies constraints on a query result, including filters and paging
+ information. </td>
+ </tr>
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/drive/query/Query.Builder.html">Query.Builder</a></td>
+ <td class="jd-descrcol" width="100%">A builder for creating queries. </td>
+ </tr>
+ <tr class=" api apilevel-" >
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/drive/query/SearchableField.html">SearchableField</a></td>
+ <td class="jd-descrcol" width="100%">An attribute of the file that is to be searched. </td>
+ </tr>
+ </table>
+ </div>
+
+
+
+
+
+
+
+
+
+
+
+
+<div id="footer" class="wrap" >
+
+
+ <div id="copyright">
+
+ Except as noted, this content is licensed under <a
+ href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.
+ For details and restrictions, see the <a href="/license.html">
+ Content License</a>.
+ </div>
+ <div id="build_info">
+
+<script src="/timestamp.js" type="text/javascript"></script>
+<script>document.write(BUILD_TIMESTAMP)</script>
+
+ </div>
+
+
+ <div id="footerlinks">
+
+ <p>
+ <a href="/about/index.html">About Android</a> |
+ <a href="/legal.html">Legal</a> |
+ <a href="/support.html">Support</a>
+ </p>
+ </div>
+
+</div> <!-- end footer -->
+</div><!-- end jd-content -->
+</div><!-- doc-content -->
+
+</div> <!-- end body-content -->
+
+
+
+
+
+
+</body>
+</html>
diff --git a/docs/html/reference/com/google/android/gms/drive/widget/DataBufferAdapter.html b/docs/html/reference/com/google/android/gms/drive/widget/DataBufferAdapter.html
new file mode 100644
index 0000000..ced0fb0
--- /dev/null
+++ b/docs/html/reference/com/google/android/gms/drive/widget/DataBufferAdapter.html
@@ -0,0 +1,2592 @@
+<!DOCTYPE html>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<html>
+<head>
+
+
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<meta name="viewport" content="width=device-width" />
+
+<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
+<title>DataBufferAdapter | Android Developers</title>
+
+<!-- STYLESHEETS -->
+<link rel="stylesheet"
+href="//fonts.googleapis.com/css?family=Roboto:regular,medium,thin,italic,mediumitalic,bold" title="roboto">
+<link href="/assets/css/default.css" rel="stylesheet" type="text/css">
+
+
+
+<!-- JAVASCRIPT -->
+<script src="//www.google.com/jsapi" type="text/javascript"></script>
+<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
+<script type="text/javascript">
+ var toRoot = "/";
+ var metaTags = [];
+ var devsite = false;
+</script>
+<script src="/assets/js/docs.js" type="text/javascript"></script>
+
+<script type="text/javascript">
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-5831155-1']);
+ _gaq.push(['_trackPageview']);
+
+ (function() {
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+ })();
+</script>
+</head>
+<body class="gc-documentation google
+ develop" itemscope itemtype="http://schema.org/Article">
+ <div id="doc-api-level" class="" style="display:none"></div>
+ <a name="top"></a>
+
+<a name="top"></a>
+
+ <!-- Header -->
+ <div id="header">
+ <div class="wrap" id="header-wrap">
+ <div class="col-3 logo">
+ <a href="/index.html">
+ <img src="/assets/images/dac_logo.png" width="123" height="25" alt="Android Developers" />
+ </a>
+ <div class="btn-quicknav" id="btn-quicknav">
+ <a href="#" class="arrow-inactive">Quicknav</a>
+ <a href="#" class="arrow-active">Quicknav</a>
+ </div>
+ </div>
+ <ul class="nav-x col-9">
+ <li class="design">
+ <a href="/design/index.html"
+ zh-tw-lang="設計"
+ zh-cn-lang="设计"
+ ru-lang="Проектирование"
+ ko-lang="디자인"
+ ja-lang="設計"
+ es-lang="Diseñar"
+ >Design</a></li>
+ <li class="develop"><a href="/develop/index.html"
+ zh-tw-lang="開發"
+ zh-cn-lang="开发"
+ ru-lang="Разработка"
+ ko-lang="개발"
+ ja-lang="開発"
+ es-lang="Desarrollar"
+ >Develop</a></li>
+ <li class="distribute last"><a href="/distribute/index.html"
+ zh-tw-lang="發佈"
+ zh-cn-lang="分发"
+ ru-lang="Распространение"
+ ko-lang="배포"
+ ja-lang="配布"
+ es-lang="Distribuir"
+ >Distribute</a></li>
+ </ul>
+
+ <!-- New Search -->
+ <div class="menu-container">
+ <div class="moremenu">
+ <div id="more-btn"></div>
+ </div>
+ <div class="morehover" id="moremenu">
+ <div class="top"></div>
+ <div class="mid">
+ <div class="header">Links</div>
+ <ul>
+ <li><a href="https://play.google.com/apps/publish/">Google Play Developer Console</a></li>
+ <li><a href="http://android-developers.blogspot.com/">Android Developers Blog</a></li>
+ <li><a href="/about/index.html">About Android</a></li>
+ </ul>
+ <div class="header">Android Sites</div>
+ <ul>
+ <li><a href="http://www.android.com">Android.com</a></li>
+ <li class="active"><a>Android Developers</a></li>
+ <li><a href="http://source.android.com">Android Open Source Project</a></li>
+ </ul>
+
+
+
+ <div class="header">Language</div>
+ <div id="language" class="locales">
+ <select name="language" onChange="changeLangPref(this.value, true)">
+ <option value="en">English</option>
+ <option value="es">Español</option>
+ <option value="ja">日本語</option>
+ <option value="ko">한국어</option>
+ <option value="ru">Русский</option>
+ <option value="zh-cn">中文 (中国)</option>
+ <option value="zh-tw">中文 (台灣)</option>
+ </select>
+ </div>
+ <script type="text/javascript">
+ <!--
+ loadLangPref();
+ //-->
+ </script>
+
+
+
+
+ <br class="clearfix" />
+ </div>
+ <div class="bottom"></div>
+ </div>
+ <div class="search" id="search-container">
+ <div class="search-inner">
+ <div id="search-btn"></div>
+ <div class="left"></div>
+ <form onsubmit="return submit_search()">
+ <input id="search_autocomplete" type="text" value="" autocomplete="off" name="q"
+onfocus="search_focus_changed(this, true)" onblur="search_focus_changed(this, false)"
+onkeydown="return search_changed(event, true, '/')"
+onkeyup="return search_changed(event, false, '/')" />
+ </form>
+ <div class="right"></div>
+ <a class="close hide">close</a>
+ <div class="left"></div>
+ <div class="right"></div>
+ </div>
+ </div>
+
+ <div class="search_filtered_wrapper reference">
+ <div class="suggest-card reference no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ </div>
+
+ <div class="search_filtered_wrapper docs">
+ <div class="suggest-card dummy no-display"> </div>
+ <div class="suggest-card develop no-display">
+ <ul class="search_filtered">
+ </ul>
+ <div class="child-card guides no-display">
+ </div>
+ <div class="child-card training no-display">
+ </div>
+ <div class="child-card samples no-display">
+ </div>
+ </div>
+ <div class="suggest-card design no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ <div class="suggest-card distribute no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ </div>
+
+ </div>
+ <!-- /New Search>
+
+
+ <!-- Expanded quicknav -->
+ <div id="quicknav" class="col-9">
+ <ul>
+ <li class="design">
+ <ul>
+ <li><a href="/design/index.html">Get Started</a></li>
+ <li><a href="/design/style/index.html">Style</a></li>
+ <li><a href="/design/patterns/index.html">Patterns</a></li>
+ <li><a href="/design/building-blocks/index.html">Building Blocks</a></li>
+ <li><a href="/design/downloads/index.html">Downloads</a></li>
+ <li><a href="/design/videos/index.html">Videos</a></li>
+ </ul>
+ </li>
+ <li class="develop">
+ <ul>
+ <li><a href="/training/index.html"
+ zh-tw-lang="訓練課程"
+ zh-cn-lang="培训"
+ ru-lang="Курсы"
+ ko-lang="교육"
+ ja-lang="トレーニング"
+ es-lang="Capacitación"
+ >Training</a></li>
+ <li><a href="/guide/index.html"
+ zh-tw-lang="API 指南"
+ zh-cn-lang="API 指南"
+ ru-lang="Руководства по API"
+ ko-lang="API 가이드"
+ ja-lang="API ガイド"
+ es-lang="Guías de la API"
+ >API Guides</a></li>
+ <li><a href="/reference/packages.html"
+ zh-tw-lang="參考資源"
+ zh-cn-lang="参考"
+ ru-lang="Справочник"
+ ko-lang="참조문서"
+ ja-lang="リファレンス"
+ es-lang="Referencia"
+ >Reference</a></li>
+ <li><a href="/tools/index.html"
+ zh-tw-lang="相關工具"
+ zh-cn-lang="工具"
+ ru-lang="Инструменты"
+ ko-lang="도구"
+ ja-lang="ツール"
+ es-lang="Herramientas"
+ >Tools</a>
+ <ul><li><a href="/sdk/index.html">Get the SDK</a></li></ul>
+ </li>
+ <li><a href="/google/index.html">Google Services</a>
+ </li>
+
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
+ </ul>
+ </li>
+ <li class="distribute last">
+ <ul>
+ <li><a href="/distribute/index.html">Google Play</a></li>
+ <li><a href="/distribute/googleplay/publish/index.html">Publishing</a></li>
+ <li><a href="/distribute/googleplay/promote/index.html">Promoting</a></li>
+ <li><a href="/distribute/googleplay/quality/index.html">App Quality</a></li>
+ <li><a href="/distribute/googleplay/spotlight/index.html">Spotlight</a></li>
+ <li><a href="/distribute/open.html">Open Distribution</a></li>
+ </ul>
+ </li>
+ </ul>
+ </div>
+ <!-- /Expanded quicknav -->
+ </div>
+ </div>
+ <!-- /Header -->
+
+
+ <div id="searchResults" class="wrap" style="display:none;">
+ <h2 id="searchTitle">Results</h2>
+ <div id="leftSearchControl" class="search-control">Loading...</div>
+ </div>
+
+
+
+ <!-- Secondary x-nav -->
+ <div id="nav-x">
+ <div class="wrap">
+ <ul class="nav-x col-9 develop" style="width:100%">
+ <li class="training"><a href="/training/index.html"
+ zh-tw-lang="訓練課程"
+ zh-cn-lang="培训"
+ ru-lang="Курсы"
+ ko-lang="교육"
+ ja-lang="トレーニング"
+ es-lang="Capacitación"
+ >Training</a></li>
+ <li class="guide"><a href="/guide/index.html"
+ zh-tw-lang="API 指南"
+ zh-cn-lang="API 指南"
+ ru-lang="Руководства по API"
+ ko-lang="API 가이드"
+ ja-lang="API ガイド"
+ es-lang="Guías de la API"
+ >API Guides</a></li>
+ <li class="reference"><a href="/reference/packages.html"
+ zh-tw-lang="參考資源"
+ zh-cn-lang="参考"
+ ru-lang="Справочник"
+ ko-lang="참조문서"
+ ja-lang="リファレンス"
+ es-lang="Referencia"
+ >Reference</a></li>
+ <li class="tools"><a href="/tools/index.html"
+ zh-tw-lang="相關工具"
+ zh-cn-lang="工具"
+ ru-lang="Инструменты"
+ ko-lang="도구"
+ ja-lang="ツール"
+ es-lang="Herramientas"
+ >Tools</a></li>
+ <li class="google"><a href="/google/index.html"
+ >Google Services</a>
+ </li>
+
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
+ </ul>
+ </div>
+
+ </div>
+ <!-- /Sendondary x-nav -->
+
+
+
+
+
+
+
+
+
+ <div class="wrap clearfix" id="body-content">
+ <div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
+ <div id="devdoc-nav" class="scroll-pane">
+<a class="totop" href="#top" data-g-event="left-nav-top">to top</a>
+
+
+
+<ul id="nav">
+
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/index.html">
+ <span class="en">Overview</span>
+ </a></div>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/games.html">
+ <span class="en">Games</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/location.html">
+ <span class="en">Location</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/plus.html">
+ <span class="en">Google+</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/maps.html">
+ <span class="en">Maps</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play-services/ads.html">
+ <span class="en">Ads</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play-services/id.html">
+ <span class="en">Advertising ID</span></a>
+ </li>
+ </ul>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/wallet.html">
+ <span class="en">Wallet</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/auth.html">
+ <span class="en">Authorization</span>
+ </a></div>
+ </li>
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play-services/index.html">
+ <span class="en">Google Play Services</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play-services/setup.html">
+ <span class="en">Setup</span></a>
+ </li>
+ <li id="gms-tree-list" class="nav-section">
+ <div class="nav-section-header">
+ <a href="/reference/gms-packages.html">
+ <span class="en">Reference</span>
+ </a>
+ <div>
+ </li>
+ </ul>
+ </li>
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/billing/index.html">
+ <span class="en">Google Play In-app Billing</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/billing/billing_overview.html">
+ <span class="en">Overview</span></a>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/api.html">
+ <span class="en">Version 3 API</span></a></div>
+ <ul>
+ <li><a href="/google/play/billing/billing_integrate.html">
+ <span class="en">Implementing the API</span></a></li>
+ <li><a href="/google/play/billing/billing_reference.html">
+ <span class="en">Reference</span></a></li>
+ </ul>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/v2/api.html">
+ <span class="en">Version 2 API</span></a></div>
+ <ul>
+ <li><a href="/google/play/billing/v2/billing_integrate.html">
+ <span class="en">Implementing the API</span></a></li>
+ <li><a href="/google/play/billing/v2/billing_subscriptions.html">
+ <span class="en">Subscriptions</span></a></li>
+ <li><a href="/google/play/billing/v2/billing_reference.html">
+ <span class="en">Reference</span></a></li>
+ </ul>
+ </li>
+ <li><a href="/google/play/billing/billing_subscriptions.html">
+ <span class="en">Subscriptions</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_best_practices.html">
+ <span class="en">Security and Design</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_testing.html">
+ <span class="en">Testing In-app Billing</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_admin.html">
+ <span class="en">Administering In-app Billing</span></a>
+ </li>
+ <li><a href="/google/play/billing/gp-purchase-status-api.html">
+ <span class="en">Purchase Status API</span></a>
+ </li>
+ <li><a href="/google/play/billing/versions.html">
+ <span class="en">Version Notes</span></a>
+ </li>
+ </ul>
+ </li>
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/gcm/index.html">
+ <span class="en">Google Cloud Messaging</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
+ <li><a href="/google/gcm/gs.html">
+ <span class="en">Getting Started</span></a>
+ </li>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
+ </li>
+ <li><a href="/google/gcm/notifications.html">
+ <span class="en">User Notifications</span></a>
+ </li>
+ <li><a href="/google/gcm/adv.html">
+ <span class="en">Advanced Topics</span></a>
+ </li>
+ <li><a href="/google/gcm/c2dm.html">
+ <span class="en">Migration</span></a>
+ </li>
+ <li id="gcm-tree-list" class="nav-section">
+ <div class="nav-section-header">
+ <a href="/reference/gcm-packages.html">
+ <span class="en">Reference</span>
+ </a>
+ <div>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/dist.html">
+ <span class="en">Google Play Distribution</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/filters.html">
+ <span class="en">Filters on Google Play</span></a>
+ </li>
+
+ <li><a href="/google/play/publishing/multiple-apks.html">
+ <span class="en">Multiple APK Support</span></a>
+ </li>
+ <li><a href="/google/play/expansion-files.html">
+ <span class="en">APK Expansion Files</span></a>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/licensing/index.html">
+ <span class="en">Application Licensing</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/licensing/overview.html">
+ <span class="en">Licensing Overview</span></a>
+ </li>
+ <li><a href="/google/play/licensing/setting-up.html">
+ <span class="en">Setting Up for Licensing</span></a>
+ </li>
+ <li><a href="/google/play/licensing/adding-licensing.html">
+ <span class="en">Adding Licensing to Your App</span></a>
+ </li>
+ <li><a href="/google/play/licensing/licensing-reference.html">
+ <span class="en">Licensing Reference</span></a>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/backup/index.html">
+ Android Backup Service</a>
+ </div>
+ <ul>
+ <li><a href="/google/backup/signup.html">
+ Register</a>
+ </li>
+ </ul>
+ </li>
+
+ </ul>
+
+</li>
+
+
+
+</ul>
+
+<script type="text/javascript">
+<!--
+ buildToggleLists();
+ changeNavLang(getLangPref());
+//-->
+</script>
+
+
+
+
+ </div>
+ <script type="text/javascript">
+ showGoogleRefTree();
+
+ </script>
+ </div> <!-- end side-nav -->
+ <script>
+ $(document).ready(function() {
+ scrollIntoView("devdoc-nav");
+ });
+ </script>
+
+
+
+
+
+
+<div class="col-12" id="doc-col">
+
+<div id="api-info-block">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<div class="sum-details-links">
+
+Summary:
+
+
+
+
+
+
+ <a href="#inhconstants">Inherited Constants</a>
+
+
+
+
+
+ | <a href="#pubctors">Ctors</a>
+
+
+
+
+ | <a href="#pubmethods">Methods</a>
+
+
+
+
+ | <a href="#inhmethods">Inherited Methods</a>
+
+| <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
+
+</div><!-- end sum-details-links -->
+<div class="api-level">
+
+
+
+
+</div>
+</div><!-- end api-info-block -->
+
+
+<!-- ======== START OF CLASS DATA ======== -->
+
+<div id="jd-header">
+ public
+
+
+
+ class
+<h1 itemprop="name">DataBufferAdapter</h1>
+
+
+
+
+
+
+
+
+ extends BaseAdapter<br/>
+
+
+
+
+
+
+
+
+
+</div><!-- end header -->
+
+<div id="naMessage"></div>
+
+<div id="jd-content" class="api apilevel-">
+<table class="jd-inheritance-table">
+
+
+ <tr>
+
+ <td colspan="3" class="jd-inheritance-class-cell">java.lang.Object</td>
+ </tr>
+
+
+ <tr>
+
+ <td class="jd-inheritance-space"> ↳</td>
+
+ <td colspan="2" class="jd-inheritance-class-cell">android.widget.BaseAdapter</td>
+ </tr>
+
+
+ <tr>
+
+ <td class="jd-inheritance-space"> </td>
+
+ <td class="jd-inheritance-space"> ↳</td>
+
+ <td colspan="1" class="jd-inheritance-class-cell">com.google.android.gms.drive.widget.DataBufferAdapter<T></td>
+ </tr>
+
+
+</table>
+
+
+
+
+
+
+
+<div class="jd-descr">
+
+
+<h2>Class Overview</h2>
+<p class="caution">
+ <strong>Note:</strong> The Google Drive Android API is currently in <strong>developer
+ preview</strong>. Applications compiled using this version of the API will
+ continue to operate on devices using future versions of Google Play services;
+ however, changes to the API are expected in future releases.
+</p>
+<p itemprop="articleBody"><p>A concrete BaseAdapter that is backed by concatenated DataBuffers. The assumptions and
+ behaviors of this adapter parallel those of the ArrayAdapter:
+
+ <ul>
+ <li>that the provided resource id in the simple constructors references a single TextView
+ <li>that more complex layouts use constructors taking a field id that references a TextView in
+ the larger layout resource
+ <li>that the objects in the DataBuffer have an appropriate toString() method, which will be used
+ to populate the TextView
+ </ul>
+
+ <p>If you need to modify how the objects display in the TextView, override their toString()
+ method.
+
+ <p>In addition, any DataBuffers added to this adapter are managed entirely by this adapter,
+ including their life cycle. Be sure to call <code><a href="/reference/com/google/android/gms/drive/widget/DataBufferAdapter.html#clear()">clear()</a></code> anywhere you would otherwise close
+ the data buffers used here, and if you want to manage their life cycles more granularly, you will
+ need to override the behavior of clear(), as well as add your own management methods to
+ ensure resources are properly managed within your application.
+
+ <p>If you need something other than a single TextView for the data in this adapter, override
+ <code><a href="/reference/com/google/android/gms/drive/widget/DataBufferAdapter.html#getView(int, android.view.View, android.view.ViewGroup)">getView(int, View, ViewGroup)</a></code> to populate and return the type of view you want.</p>
+
+
+
+
+
+</div><!-- jd-descr -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<div class="jd-descr">
+
+
+<h2>Summary</h2>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<!-- =========== ENUM CONSTANT SUMMARY =========== -->
+<table id="inhconstants" class="jd-sumtable"><tr><th>
+ <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
+ <div style="clear:left;">Inherited Constants</div></th></tr>
+
+
+
+
+
+
+<tr class="api apilevel-" >
+<td colspan="12">
+
+ <a href="#" onclick="return toggleInherited(this, null)" id="inherited-constants-android.widget.Adapter" class="jd-expando-trigger closed"
+ ><img id="inherited-constants-android.widget.Adapter-trigger"
+ src="/assets/images/triangle-closed.png"
+ class="jd-expando-trigger-img" /></a>From interface
+android.widget.Adapter
+<div id="inherited-constants-android.widget.Adapter">
+ <div id="inherited-constants-android.widget.Adapter-list"
+ class="jd-inheritedlinks">
+ </div>
+ <div id="inherited-constants-android.widget.Adapter-summary" style="display: none;">
+ <table class="jd-sumtable-expando">
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">IGNORE_ITEM_VIEW_TYPE</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">NO_SELECTION</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+</table>
+ </div>
+</div>
+</td></tr>
+
+
+
+
+
+
+</table>
+
+
+
+
+
+
+
+
+
+<!-- ======== CONSTRUCTOR SUMMARY ======== -->
+<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
+
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ </nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/widget/DataBufferAdapter.html#DataBufferAdapter(android.content.Context, int, int, java.util.List<com.google.android.gms.common.data.DataBuffer<T>>)">DataBufferAdapter</a></span>(Context context, int resource, int textViewResourceId, List<<a href="/reference/com/google/android/gms/common/data/DataBuffer.html">DataBuffer</a><T>> objects)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ </nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/widget/DataBufferAdapter.html#DataBufferAdapter(android.content.Context, int, int)">DataBufferAdapter</a></span>(Context context, int resource, int textViewResourceId)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ </nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/widget/DataBufferAdapter.html#DataBufferAdapter(android.content.Context, int, java.util.List<com.google.android.gms.common.data.DataBuffer<T>>)">DataBufferAdapter</a></span>(Context context, int resource, List<<a href="/reference/com/google/android/gms/common/data/DataBuffer.html">DataBuffer</a><T>> objects)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ </nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/widget/DataBufferAdapter.html#DataBufferAdapter(android.content.Context, int)">DataBufferAdapter</a></span>(Context context, int resource)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ </nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/widget/DataBufferAdapter.html#DataBufferAdapter(android.content.Context, int, int, com.google.android.gms.common.data.DataBuffer<T>...)">DataBufferAdapter</a></span>(Context context, int resource, int textViewResourceId, <a href="/reference/com/google/android/gms/common/data/DataBuffer.html">DataBuffer...</a><T> buffers)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ </nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/widget/DataBufferAdapter.html#DataBufferAdapter(android.content.Context, int, com.google.android.gms.common.data.DataBuffer<T>...)">DataBufferAdapter</a></span>(Context context, int resource, <a href="/reference/com/google/android/gms/common/data/DataBuffer.html">DataBuffer...</a><T> buffers)</nobr>
+
+ </td></tr>
+
+
+
+</table>
+
+
+
+
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
+
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/widget/DataBufferAdapter.html#append(com.google.android.gms.common.data.DataBuffer<T>)">append</a></span>(<a href="/reference/com/google/android/gms/common/data/DataBuffer.html">DataBuffer</a><T> buffer)</nobr>
+
+ <div class="jd-descrdiv">Appends the specified buffer to the end of the adapter.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/widget/DataBufferAdapter.html#clear()">clear</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Closes and removes all buffers, and so all elements, from the adapter.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ Context</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/widget/DataBufferAdapter.html#getContext()">getContext</a></span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/widget/DataBufferAdapter.html#getCount()">getCount</a></span>()</nobr>
+
+ <div class="jd-descrdiv">
+</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ View</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/widget/DataBufferAdapter.html#getDropDownView(int, android.view.View, android.view.ViewGroup)">getDropDownView</a></span>(int position, View convertView, ViewGroup parent)</nobr>
+
+ <div class="jd-descrdiv">
+</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ T</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/widget/DataBufferAdapter.html#getItem(int)">getItem</a></span>(int position)</nobr>
+
+ <div class="jd-descrdiv">
+</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ long</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/widget/DataBufferAdapter.html#getItemId(int)">getItemId</a></span>(int position)</nobr>
+
+ <div class="jd-descrdiv">
+</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ View</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/widget/DataBufferAdapter.html#getView(int, android.view.View, android.view.ViewGroup)">getView</a></span>(int position, View convertView, ViewGroup parent)</nobr>
+
+ <div class="jd-descrdiv">
+</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/widget/DataBufferAdapter.html#notifyDataSetChanged()">notifyDataSetChanged</a></span>()</nobr>
+
+ <div class="jd-descrdiv">
+
+ This will also re-enable automatic notifications.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/widget/DataBufferAdapter.html#setDropDownViewResource(int)">setDropDownViewResource</a></span>(int resource)</nobr>
+
+ <div class="jd-descrdiv">Sets the layout resource to create the drop down views.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/drive/widget/DataBufferAdapter.html#setNotifyOnChange(boolean)">setNotifyOnChange</a></span>(boolean notifyOnChange)</nobr>
+
+ <div class="jd-descrdiv"><p>Control whether methods that change the list (<code><a href="/reference/com/google/android/gms/drive/widget/DataBufferAdapter.html#append(com.google.android.gms.common.data.DataBuffer<T>)">append(DataBuffer<T>)</a></code>, <code><a href="/reference/com/google/android/gms/drive/widget/DataBufferAdapter.html#clear()">clear()</a></code>)
+ automatically call <code><a href="/reference/com/google/android/gms/drive/widget/DataBufferAdapter.html#notifyDataSetChanged()">notifyDataSetChanged()</a></code>.</div>
+
+ </td></tr>
+
+
+
+</table>
+
+
+
+
+
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+<table id="inhmethods" class="jd-sumtable"><tr><th>
+ <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
+ <div style="clear:left;">Inherited Methods</div></th></tr>
+
+
+<tr class="api apilevel-" >
+<td colspan="12">
+ <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-android.widget.BaseAdapter" class="jd-expando-trigger closed"
+ ><img id="inherited-methods-android.widget.BaseAdapter-trigger"
+ src="/assets/images/triangle-closed.png"
+ class="jd-expando-trigger-img" /></a>
+From class
+
+ android.widget.BaseAdapter
+
+<div id="inherited-methods-android.widget.BaseAdapter">
+ <div id="inherited-methods-android.widget.BaseAdapter-list"
+ class="jd-inheritedlinks">
+ </div>
+ <div id="inherited-methods-android.widget.BaseAdapter-summary" style="display: none;">
+ <table class="jd-sumtable-expando">
+
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">areAllItemsEnabled</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ View</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getDropDownView</span>(int arg0, View arg1, ViewGroup arg2)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getItemViewType</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getViewTypeCount</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">hasStableIds</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">isEmpty</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">isEnabled</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">notifyDataSetChanged</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">notifyDataSetInvalidated</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">registerDataSetObserver</span>(DataSetObserver arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">unregisterDataSetObserver</span>(DataSetObserver arg0)</nobr>
+
+ </td></tr>
+
+
+</table>
+ </div>
+</div>
+</td></tr>
+
+
+
+<tr class="api apilevel-" >
+<td colspan="12">
+ <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
+ ><img id="inherited-methods-java.lang.Object-trigger"
+ src="/assets/images/triangle-closed.png"
+ class="jd-expando-trigger-img" /></a>
+From class
+
+ java.lang.Object
+
+<div id="inherited-methods-java.lang.Object">
+ <div id="inherited-methods-java.lang.Object-list"
+ class="jd-inheritedlinks">
+ </div>
+ <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
+ <table class="jd-sumtable-expando">
+
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ Object</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">clone</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">equals</span>(Object arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">finalize</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ Class<?></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getClass</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">hashCode</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">notify</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">notifyAll</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ String</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">toString</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">wait</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">wait</span>(long arg0)</nobr>
+
+ </td></tr>
+
+
+</table>
+ </div>
+</div>
+</td></tr>
+
+
+
+<tr class="api apilevel-" >
+<td colspan="12">
+ <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-android.widget.Adapter" class="jd-expando-trigger closed"
+ ><img id="inherited-methods-android.widget.Adapter-trigger"
+ src="/assets/images/triangle-closed.png"
+ class="jd-expando-trigger-img" /></a>
+From interface
+
+ android.widget.Adapter
+
+<div id="inherited-methods-android.widget.Adapter">
+ <div id="inherited-methods-android.widget.Adapter-list"
+ class="jd-inheritedlinks">
+ </div>
+ <div id="inherited-methods-android.widget.Adapter-summary" style="display: none;">
+ <table class="jd-sumtable-expando">
+
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getCount</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ Object</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getItem</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ long</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getItemId</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getItemViewType</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ View</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getView</span>(int arg0, View arg1, ViewGroup arg2)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getViewTypeCount</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">hasStableIds</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">isEmpty</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">registerDataSetObserver</span>(DataSetObserver arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">unregisterDataSetObserver</span>(DataSetObserver arg0)</nobr>
+
+ </td></tr>
+
+
+</table>
+ </div>
+</div>
+</td></tr>
+
+
+
+<tr class="api apilevel-" >
+<td colspan="12">
+ <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-android.widget.ListAdapter" class="jd-expando-trigger closed"
+ ><img id="inherited-methods-android.widget.ListAdapter-trigger"
+ src="/assets/images/triangle-closed.png"
+ class="jd-expando-trigger-img" /></a>
+From interface
+
+ android.widget.ListAdapter
+
+<div id="inherited-methods-android.widget.ListAdapter">
+ <div id="inherited-methods-android.widget.ListAdapter-list"
+ class="jd-inheritedlinks">
+ </div>
+ <div id="inherited-methods-android.widget.ListAdapter-summary" style="display: none;">
+ <table class="jd-sumtable-expando">
+
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">areAllItemsEnabled</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">isEnabled</span>(int arg0)</nobr>
+
+ </td></tr>
+
+
+</table>
+ </div>
+</div>
+</td></tr>
+
+
+
+<tr class="api apilevel-" >
+<td colspan="12">
+ <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-android.widget.SpinnerAdapter" class="jd-expando-trigger closed"
+ ><img id="inherited-methods-android.widget.SpinnerAdapter-trigger"
+ src="/assets/images/triangle-closed.png"
+ class="jd-expando-trigger-img" /></a>
+From interface
+
+ android.widget.SpinnerAdapter
+
+<div id="inherited-methods-android.widget.SpinnerAdapter">
+ <div id="inherited-methods-android.widget.SpinnerAdapter-list"
+ class="jd-inheritedlinks">
+ </div>
+ <div id="inherited-methods-android.widget.SpinnerAdapter-summary" style="display: none;">
+ <table class="jd-sumtable-expando">
+
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ View</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getDropDownView</span>(int arg0, View arg1, ViewGroup arg2)</nobr>
+
+ </td></tr>
+
+
+</table>
+ </div>
+</div>
+</td></tr>
+
+
+</table>
+
+
+</div><!-- jd-descr (summary) -->
+
+<!-- Details -->
+
+
+
+
+
+
+
+
+<!-- XML Attributes -->
+
+
+<!-- Enum Values -->
+
+
+<!-- Constants -->
+
+
+<!-- Fields -->
+
+
+<!-- Public ctors -->
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<h2>Public Constructors</h2>
+
+
+
+<A NAME="DataBufferAdapter(android.content.Context, int, int, java.util.List<com.google.android.gms.common.data.DataBuffer<T>>)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+
+ </span>
+ <span class="sympad">DataBufferAdapter</span>
+ <span class="normal">(Context context, int resource, int textViewResourceId, List<<a href="/reference/com/google/android/gms/common/data/DataBuffer.html">DataBuffer</a><T>> objects)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+ </div>
+</div>
+
+
+<A NAME="DataBufferAdapter(android.content.Context, int, int)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+
+ </span>
+ <span class="sympad">DataBufferAdapter</span>
+ <span class="normal">(Context context, int resource, int textViewResourceId)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+ </div>
+</div>
+
+
+<A NAME="DataBufferAdapter(android.content.Context, int, java.util.List<com.google.android.gms.common.data.DataBuffer<T>>)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+
+ </span>
+ <span class="sympad">DataBufferAdapter</span>
+ <span class="normal">(Context context, int resource, List<<a href="/reference/com/google/android/gms/common/data/DataBuffer.html">DataBuffer</a><T>> objects)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+ </div>
+</div>
+
+
+<A NAME="DataBufferAdapter(android.content.Context, int)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+
+ </span>
+ <span class="sympad">DataBufferAdapter</span>
+ <span class="normal">(Context context, int resource)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+ </div>
+</div>
+
+
+<A NAME="DataBufferAdapter(android.content.Context, int, int, com.google.android.gms.common.data.DataBuffer<T>...)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+
+ </span>
+ <span class="sympad">DataBufferAdapter</span>
+ <span class="normal">(Context context, int resource, int textViewResourceId, <a href="/reference/com/google/android/gms/common/data/DataBuffer.html">DataBuffer...</a><T> buffers)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+ </div>
+</div>
+
+
+<A NAME="DataBufferAdapter(android.content.Context, int, com.google.android.gms.common.data.DataBuffer<T>...)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+
+ </span>
+ <span class="sympad">DataBufferAdapter</span>
+ <span class="normal">(Context context, int resource, <a href="/reference/com/google/android/gms/common/data/DataBuffer.html">DataBuffer...</a><T> buffers)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+ </div>
+</div>
+
+
+
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<!-- Protected ctors -->
+
+
+
+<!-- ========= METHOD DETAIL ======== -->
+<!-- Public methdos -->
+
+<h2>Public Methods</h2>
+
+
+
+<A NAME="append(com.google.android.gms.common.data.DataBuffer<T>)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ void
+ </span>
+ <span class="sympad">append</span>
+ <span class="normal">(<a href="/reference/com/google/android/gms/common/data/DataBuffer.html">DataBuffer</a><T> buffer)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Appends the specified buffer to the end of the adapter.
+</p></div>
+
+ </div>
+</div>
+
+
+<A NAME="clear()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ void
+ </span>
+ <span class="sympad">clear</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Closes and removes all buffers, and so all elements, from the adapter.
+</p></div>
+
+ </div>
+</div>
+
+
+<A NAME="getContext()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ Context
+ </span>
+ <span class="sympad">getContext</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+ </div>
+</div>
+
+
+<A NAME="getCount()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ int
+ </span>
+ <span class="sympad">getCount</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>
+</p></div>
+
+ </div>
+</div>
+
+
+<A NAME="getDropDownView(int, android.view.View, android.view.ViewGroup)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ View
+ </span>
+ <span class="sympad">getDropDownView</span>
+ <span class="normal">(int position, View convertView, ViewGroup parent)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>
+</p></div>
+
+ </div>
+</div>
+
+
+<A NAME="getItem(int)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ T
+ </span>
+ <span class="sympad">getItem</span>
+ <span class="normal">(int position)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>
+</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Throws</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>CursorIndexOutOfBoundsException</td>
+ <td></td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="getItemId(int)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ long
+ </span>
+ <span class="sympad">getItemId</span>
+ <span class="normal">(int position)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>
+</p></div>
+
+ </div>
+</div>
+
+
+<A NAME="getView(int, android.view.View, android.view.ViewGroup)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ View
+ </span>
+ <span class="sympad">getView</span>
+ <span class="normal">(int position, View convertView, ViewGroup parent)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>
+</p></div>
+
+ </div>
+</div>
+
+
+<A NAME="notifyDataSetChanged()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ void
+ </span>
+ <span class="sympad">notifyDataSetChanged</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>
+
+ This will also re-enable automatic notifications. Pairing this with <code><a href="/reference/com/google/android/gms/drive/widget/DataBufferAdapter.html#setNotifyOnChange(boolean)">setNotifyOnChange(boolean)</a></code>
+ gives the ability to make a series of changes to the adapter without triggering multiple
+ notifications at the same time. Use these two methods together to temporarily disable
+ notifications for the purpose of batching operations on the adapter.
+</p></div>
+
+ </div>
+</div>
+
+
+<A NAME="setDropDownViewResource(int)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ void
+ </span>
+ <span class="sympad">setDropDownViewResource</span>
+ <span class="normal">(int resource)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Sets the layout resource to create the drop down views.
+</p></div>
+
+ </div>
+</div>
+
+
+<A NAME="setNotifyOnChange(boolean)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ void
+ </span>
+ <span class="sympad">setNotifyOnChange</span>
+ <span class="normal">(boolean notifyOnChange)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p><p>Control whether methods that change the list (<code><a href="/reference/com/google/android/gms/drive/widget/DataBufferAdapter.html#append(com.google.android.gms.common.data.DataBuffer<T>)">append(DataBuffer<T>)</a></code>, <code><a href="/reference/com/google/android/gms/drive/widget/DataBufferAdapter.html#clear()">clear()</a></code>)
+ automatically call <code><a href="/reference/com/google/android/gms/drive/widget/DataBufferAdapter.html#notifyDataSetChanged()">notifyDataSetChanged()</a></code>. If set to false, caller must manually call
+ notifyDataSetChanged() to have the changes reflected in the attached view.
+
+ <p>The default is true, and calling notifyDataSetChanged() resets the flag to true. Use this
+ method if you want to make several changes to the adapter in a row, and don't need the view
+ to update in between changes. This reduces the processing load for each operation
+ significantly.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>notifyOnChange</td>
+ <td>if true, modifications to the list will automatically call <code><a href="/reference/com/google/android/gms/drive/widget/DataBufferAdapter.html#notifyDataSetChanged()">notifyDataSetChanged()</a></code>
+</td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
+
+
+
+<!-- ========= METHOD DETAIL ======== -->
+
+
+
+<!-- ========= END OF CLASS DATA ========= -->
+<A NAME="navbar_top"></A>
+
+<div id="footer" class="wrap" >
+
+
+ <div id="copyright">
+
+ Except as noted, this content is licensed under <a
+ href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.
+ For details and restrictions, see the <a href="/license.html">
+ Content License</a>.
+ </div>
+ <div id="build_info">
+
+<script src="/timestamp.js" type="text/javascript"></script>
+<script>document.write(BUILD_TIMESTAMP)</script>
+
+ </div>
+
+
+ <div id="footerlinks">
+
+ <p>
+ <a href="/about/index.html">About Android</a> |
+ <a href="/legal.html">Legal</a> |
+ <a href="/support.html">Support</a>
+ </p>
+ </div>
+
+</div> <!-- end footer -->
+</div> <!-- jd-content -->
+
+</div><!-- end doc-content -->
+
+</div> <!-- end body-content -->
+
+
+
+
+
+
+</body>
+</html>
diff --git a/docs/html/reference/com/google/android/gms/drive/widget/package-summary.html b/docs/html/reference/com/google/android/gms/drive/widget/package-summary.html
new file mode 100644
index 0000000..fb04eaf
--- /dev/null
+++ b/docs/html/reference/com/google/android/gms/drive/widget/package-summary.html
@@ -0,0 +1,744 @@
+<!DOCTYPE html>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<html>
+<head>
+
+
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<meta name="viewport" content="width=device-width" />
+
+<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
+<title>com.google.android.gms.drive.widget | Android Developers</title>
+
+<!-- STYLESHEETS -->
+<link rel="stylesheet"
+href="//fonts.googleapis.com/css?family=Roboto:regular,medium,thin,italic,mediumitalic,bold" title="roboto">
+<link href="/assets/css/default.css" rel="stylesheet" type="text/css">
+
+
+
+<!-- JAVASCRIPT -->
+<script src="//www.google.com/jsapi" type="text/javascript"></script>
+<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
+<script type="text/javascript">
+ var toRoot = "/";
+ var metaTags = [];
+ var devsite = false;
+</script>
+<script src="/assets/js/docs.js" type="text/javascript"></script>
+
+<script type="text/javascript">
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-5831155-1']);
+ _gaq.push(['_trackPageview']);
+
+ (function() {
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+ })();
+</script>
+</head>
+
+<body class="gc-documentation google
+ develop">
+ <div id="doc-api-level" class="" style="display:none"></div>
+ <a name="top"></a>
+
+<a name="top"></a>
+
+ <!-- Header -->
+ <div id="header">
+ <div class="wrap" id="header-wrap">
+ <div class="col-3 logo">
+ <a href="/index.html">
+ <img src="/assets/images/dac_logo.png" width="123" height="25" alt="Android Developers" />
+ </a>
+ <div class="btn-quicknav" id="btn-quicknav">
+ <a href="#" class="arrow-inactive">Quicknav</a>
+ <a href="#" class="arrow-active">Quicknav</a>
+ </div>
+ </div>
+ <ul class="nav-x col-9">
+ <li class="design">
+ <a href="/design/index.html"
+ zh-tw-lang="設計"
+ zh-cn-lang="设计"
+ ru-lang="Проектирование"
+ ko-lang="디자인"
+ ja-lang="設計"
+ es-lang="Diseñar"
+ >Design</a></li>
+ <li class="develop"><a href="/develop/index.html"
+ zh-tw-lang="開發"
+ zh-cn-lang="开发"
+ ru-lang="Разработка"
+ ko-lang="개발"
+ ja-lang="開発"
+ es-lang="Desarrollar"
+ >Develop</a></li>
+ <li class="distribute last"><a href="/distribute/index.html"
+ zh-tw-lang="發佈"
+ zh-cn-lang="分发"
+ ru-lang="Распространение"
+ ko-lang="배포"
+ ja-lang="配布"
+ es-lang="Distribuir"
+ >Distribute</a></li>
+ </ul>
+
+ <!-- New Search -->
+ <div class="menu-container">
+ <div class="moremenu">
+ <div id="more-btn"></div>
+ </div>
+ <div class="morehover" id="moremenu">
+ <div class="top"></div>
+ <div class="mid">
+ <div class="header">Links</div>
+ <ul>
+ <li><a href="https://play.google.com/apps/publish/">Google Play Developer Console</a></li>
+ <li><a href="http://android-developers.blogspot.com/">Android Developers Blog</a></li>
+ <li><a href="/about/index.html">About Android</a></li>
+ </ul>
+ <div class="header">Android Sites</div>
+ <ul>
+ <li><a href="http://www.android.com">Android.com</a></li>
+ <li class="active"><a>Android Developers</a></li>
+ <li><a href="http://source.android.com">Android Open Source Project</a></li>
+ </ul>
+
+
+
+ <div class="header">Language</div>
+ <div id="language" class="locales">
+ <select name="language" onChange="changeLangPref(this.value, true)">
+ <option value="en">English</option>
+ <option value="es">Español</option>
+ <option value="ja">日本語</option>
+ <option value="ko">한국어</option>
+ <option value="ru">Русский</option>
+ <option value="zh-cn">中文 (中国)</option>
+ <option value="zh-tw">中文 (台灣)</option>
+ </select>
+ </div>
+ <script type="text/javascript">
+ <!--
+ loadLangPref();
+ //-->
+ </script>
+
+
+
+
+ <br class="clearfix" />
+ </div>
+ <div class="bottom"></div>
+ </div>
+ <div class="search" id="search-container">
+ <div class="search-inner">
+ <div id="search-btn"></div>
+ <div class="left"></div>
+ <form onsubmit="return submit_search()">
+ <input id="search_autocomplete" type="text" value="" autocomplete="off" name="q"
+onfocus="search_focus_changed(this, true)" onblur="search_focus_changed(this, false)"
+onkeydown="return search_changed(event, true, '/')"
+onkeyup="return search_changed(event, false, '/')" />
+ </form>
+ <div class="right"></div>
+ <a class="close hide">close</a>
+ <div class="left"></div>
+ <div class="right"></div>
+ </div>
+ </div>
+
+ <div class="search_filtered_wrapper reference">
+ <div class="suggest-card reference no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ </div>
+
+ <div class="search_filtered_wrapper docs">
+ <div class="suggest-card dummy no-display"> </div>
+ <div class="suggest-card develop no-display">
+ <ul class="search_filtered">
+ </ul>
+ <div class="child-card guides no-display">
+ </div>
+ <div class="child-card training no-display">
+ </div>
+ <div class="child-card samples no-display">
+ </div>
+ </div>
+ <div class="suggest-card design no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ <div class="suggest-card distribute no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ </div>
+
+ </div>
+ <!-- /New Search>
+
+
+ <!-- Expanded quicknav -->
+ <div id="quicknav" class="col-9">
+ <ul>
+ <li class="design">
+ <ul>
+ <li><a href="/design/index.html">Get Started</a></li>
+ <li><a href="/design/style/index.html">Style</a></li>
+ <li><a href="/design/patterns/index.html">Patterns</a></li>
+ <li><a href="/design/building-blocks/index.html">Building Blocks</a></li>
+ <li><a href="/design/downloads/index.html">Downloads</a></li>
+ <li><a href="/design/videos/index.html">Videos</a></li>
+ </ul>
+ </li>
+ <li class="develop">
+ <ul>
+ <li><a href="/training/index.html"
+ zh-tw-lang="訓練課程"
+ zh-cn-lang="培训"
+ ru-lang="Курсы"
+ ko-lang="교육"
+ ja-lang="トレーニング"
+ es-lang="Capacitación"
+ >Training</a></li>
+ <li><a href="/guide/index.html"
+ zh-tw-lang="API 指南"
+ zh-cn-lang="API 指南"
+ ru-lang="Руководства по API"
+ ko-lang="API 가이드"
+ ja-lang="API ガイド"
+ es-lang="Guías de la API"
+ >API Guides</a></li>
+ <li><a href="/reference/packages.html"
+ zh-tw-lang="參考資源"
+ zh-cn-lang="参考"
+ ru-lang="Справочник"
+ ko-lang="참조문서"
+ ja-lang="リファレンス"
+ es-lang="Referencia"
+ >Reference</a></li>
+ <li><a href="/tools/index.html"
+ zh-tw-lang="相關工具"
+ zh-cn-lang="工具"
+ ru-lang="Инструменты"
+ ko-lang="도구"
+ ja-lang="ツール"
+ es-lang="Herramientas"
+ >Tools</a>
+ <ul><li><a href="/sdk/index.html">Get the SDK</a></li></ul>
+ </li>
+ <li><a href="/google/index.html">Google Services</a>
+ </li>
+
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
+ </ul>
+ </li>
+ <li class="distribute last">
+ <ul>
+ <li><a href="/distribute/index.html">Google Play</a></li>
+ <li><a href="/distribute/googleplay/publish/index.html">Publishing</a></li>
+ <li><a href="/distribute/googleplay/promote/index.html">Promoting</a></li>
+ <li><a href="/distribute/googleplay/quality/index.html">App Quality</a></li>
+ <li><a href="/distribute/googleplay/spotlight/index.html">Spotlight</a></li>
+ <li><a href="/distribute/open.html">Open Distribution</a></li>
+ </ul>
+ </li>
+ </ul>
+ </div>
+ <!-- /Expanded quicknav -->
+ </div>
+ </div>
+ <!-- /Header -->
+
+
+ <div id="searchResults" class="wrap" style="display:none;">
+ <h2 id="searchTitle">Results</h2>
+ <div id="leftSearchControl" class="search-control">Loading...</div>
+ </div>
+
+
+
+ <!-- Secondary x-nav -->
+ <div id="nav-x">
+ <div class="wrap">
+ <ul class="nav-x col-9 develop" style="width:100%">
+ <li class="training"><a href="/training/index.html"
+ zh-tw-lang="訓練課程"
+ zh-cn-lang="培训"
+ ru-lang="Курсы"
+ ko-lang="교육"
+ ja-lang="トレーニング"
+ es-lang="Capacitación"
+ >Training</a></li>
+ <li class="guide"><a href="/guide/index.html"
+ zh-tw-lang="API 指南"
+ zh-cn-lang="API 指南"
+ ru-lang="Руководства по API"
+ ko-lang="API 가이드"
+ ja-lang="API ガイド"
+ es-lang="Guías de la API"
+ >API Guides</a></li>
+ <li class="reference"><a href="/reference/packages.html"
+ zh-tw-lang="參考資源"
+ zh-cn-lang="参考"
+ ru-lang="Справочник"
+ ko-lang="참조문서"
+ ja-lang="リファレンス"
+ es-lang="Referencia"
+ >Reference</a></li>
+ <li class="tools"><a href="/tools/index.html"
+ zh-tw-lang="相關工具"
+ zh-cn-lang="工具"
+ ru-lang="Инструменты"
+ ko-lang="도구"
+ ja-lang="ツール"
+ es-lang="Herramientas"
+ >Tools</a></li>
+ <li class="google"><a href="/google/index.html"
+ >Google Services</a>
+ </li>
+
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
+ </ul>
+ </div>
+
+ </div>
+ <!-- /Sendondary x-nav -->
+
+
+
+
+
+
+
+
+
+ <div class="wrap clearfix" id="body-content">
+ <div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
+ <div id="devdoc-nav" class="scroll-pane">
+<a class="totop" href="#top" data-g-event="left-nav-top">to top</a>
+
+
+
+<ul id="nav">
+
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/index.html">
+ <span class="en">Overview</span>
+ </a></div>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/games.html">
+ <span class="en">Games</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/location.html">
+ <span class="en">Location</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/plus.html">
+ <span class="en">Google+</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/maps.html">
+ <span class="en">Maps</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play-services/ads.html">
+ <span class="en">Ads</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play-services/id.html">
+ <span class="en">Advertising ID</span></a>
+ </li>
+ </ul>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/wallet.html">
+ <span class="en">Wallet</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/auth.html">
+ <span class="en">Authorization</span>
+ </a></div>
+ </li>
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play-services/index.html">
+ <span class="en">Google Play Services</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play-services/setup.html">
+ <span class="en">Setup</span></a>
+ </li>
+ <li id="gms-tree-list" class="nav-section">
+ <div class="nav-section-header">
+ <a href="/reference/gms-packages.html">
+ <span class="en">Reference</span>
+ </a>
+ <div>
+ </li>
+ </ul>
+ </li>
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/billing/index.html">
+ <span class="en">Google Play In-app Billing</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/billing/billing_overview.html">
+ <span class="en">Overview</span></a>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/api.html">
+ <span class="en">Version 3 API</span></a></div>
+ <ul>
+ <li><a href="/google/play/billing/billing_integrate.html">
+ <span class="en">Implementing the API</span></a></li>
+ <li><a href="/google/play/billing/billing_reference.html">
+ <span class="en">Reference</span></a></li>
+ </ul>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/v2/api.html">
+ <span class="en">Version 2 API</span></a></div>
+ <ul>
+ <li><a href="/google/play/billing/v2/billing_integrate.html">
+ <span class="en">Implementing the API</span></a></li>
+ <li><a href="/google/play/billing/v2/billing_subscriptions.html">
+ <span class="en">Subscriptions</span></a></li>
+ <li><a href="/google/play/billing/v2/billing_reference.html">
+ <span class="en">Reference</span></a></li>
+ </ul>
+ </li>
+ <li><a href="/google/play/billing/billing_subscriptions.html">
+ <span class="en">Subscriptions</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_best_practices.html">
+ <span class="en">Security and Design</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_testing.html">
+ <span class="en">Testing In-app Billing</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_admin.html">
+ <span class="en">Administering In-app Billing</span></a>
+ </li>
+ <li><a href="/google/play/billing/gp-purchase-status-api.html">
+ <span class="en">Purchase Status API</span></a>
+ </li>
+ <li><a href="/google/play/billing/versions.html">
+ <span class="en">Version Notes</span></a>
+ </li>
+ </ul>
+ </li>
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/gcm/index.html">
+ <span class="en">Google Cloud Messaging</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
+ <li><a href="/google/gcm/gs.html">
+ <span class="en">Getting Started</span></a>
+ </li>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
+ </li>
+ <li><a href="/google/gcm/notifications.html">
+ <span class="en">User Notifications</span></a>
+ </li>
+ <li><a href="/google/gcm/adv.html">
+ <span class="en">Advanced Topics</span></a>
+ </li>
+ <li><a href="/google/gcm/c2dm.html">
+ <span class="en">Migration</span></a>
+ </li>
+ <li id="gcm-tree-list" class="nav-section">
+ <div class="nav-section-header">
+ <a href="/reference/gcm-packages.html">
+ <span class="en">Reference</span>
+ </a>
+ <div>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/dist.html">
+ <span class="en">Google Play Distribution</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/filters.html">
+ <span class="en">Filters on Google Play</span></a>
+ </li>
+
+ <li><a href="/google/play/publishing/multiple-apks.html">
+ <span class="en">Multiple APK Support</span></a>
+ </li>
+ <li><a href="/google/play/expansion-files.html">
+ <span class="en">APK Expansion Files</span></a>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/licensing/index.html">
+ <span class="en">Application Licensing</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/licensing/overview.html">
+ <span class="en">Licensing Overview</span></a>
+ </li>
+ <li><a href="/google/play/licensing/setting-up.html">
+ <span class="en">Setting Up for Licensing</span></a>
+ </li>
+ <li><a href="/google/play/licensing/adding-licensing.html">
+ <span class="en">Adding Licensing to Your App</span></a>
+ </li>
+ <li><a href="/google/play/licensing/licensing-reference.html">
+ <span class="en">Licensing Reference</span></a>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/backup/index.html">
+ Android Backup Service</a>
+ </div>
+ <ul>
+ <li><a href="/google/backup/signup.html">
+ Register</a>
+ </li>
+ </ul>
+ </li>
+
+ </ul>
+
+</li>
+
+
+
+</ul>
+
+<script type="text/javascript">
+<!--
+ buildToggleLists();
+ changeNavLang(getLangPref());
+//-->
+</script>
+
+
+
+
+ </div>
+ <script type="text/javascript">
+ showGoogleRefTree();
+
+ </script>
+ </div> <!-- end side-nav -->
+ <script>
+ $(document).ready(function() {
+ scrollIntoView("devdoc-nav");
+ });
+ </script>
+
+
+
+
+
+
+<div class="col-12" id="doc-col">
+
+<div id="api-info-block">
+<div class="api-level">
+
+
+
+
+</div>
+</div>
+
+<div id="jd-header">
+ package
+ <h1>com.google.android.gms.drive.widget</h1>
+</div><!-- end header -->
+
+<div id="naMessage"></div>
+
+<div id="jd-content" class="api apilevel-">
+
+
+
+
+
+
+
+
+
+
+ <h2>Classes</h2>
+ <div class="jd-sumtable">
+
+ <table class="jd-sumtable-expando">
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/drive/widget/DataBufferAdapter.html">DataBufferAdapter</a><T></td>
+ <td class="jd-descrcol" width="100%"><p>A concrete BaseAdapter that is backed by concatenated DataBuffers. </td>
+ </tr>
+ </table>
+ </div>
+
+
+
+
+
+
+
+
+
+
+
+
+<div id="footer" class="wrap" >
+
+
+ <div id="copyright">
+
+ Except as noted, this content is licensed under <a
+ href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.
+ For details and restrictions, see the <a href="/license.html">
+ Content License</a>.
+ </div>
+ <div id="build_info">
+
+<script src="/timestamp.js" type="text/javascript"></script>
+<script>document.write(BUILD_TIMESTAMP)</script>
+
+ </div>
+
+
+ <div id="footerlinks">
+
+ <p>
+ <a href="/about/index.html">About Android</a> |
+ <a href="/legal.html">Legal</a> |
+ <a href="/support.html">Support</a>
+ </p>
+ </div>
+
+</div> <!-- end footer -->
+</div><!-- end jd-content -->
+</div><!-- doc-content -->
+
+</div> <!-- end body-content -->
+
+
+
+
+
+
+</body>
+</html>
diff --git a/docs/html/reference/com/google/android/gms/games/Game.html b/docs/html/reference/com/google/android/gms/games/Game.html
index c26ce43..bb46109 100644
--- a/docs/html/reference/com/google/android/gms/games/Game.html
+++ b/docs/html/reference/com/google/android/gms/games/Game.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
@@ -1139,6 +1152,42 @@
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/Game.html#isRealTimeMultiplayerEnabled()">isRealTimeMultiplayerEnabled</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Indicates whether or not this game supports real-time multiplayer.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/Game.html#isTurnBasedMultiplayerEnabled()">isTurnBasedMultiplayerEnabled</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Indicates whether or not this game supports turn-based multiplayer.</div>
+
+ </td></tr>
+
+
+
</table>
@@ -1816,6 +1865,74 @@
</div>
+<A NAME="isRealTimeMultiplayerEnabled()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+ abstract
+
+ boolean
+ </span>
+ <span class="sympad">isRealTimeMultiplayerEnabled</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Indicates whether or not this game supports real-time multiplayer.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>Whether or not this game supports real-time mulitplayer.
+</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="isTurnBasedMultiplayerEnabled()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+ abstract
+
+ boolean
+ </span>
+ <span class="sympad">isTurnBasedMultiplayerEnabled</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Indicates whether or not this game supports turn-based multiplayer.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>Whether or not this game supports turn-based mulitplayer.
+</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
diff --git a/docs/html/reference/com/google/android/gms/games/GameBuffer.html b/docs/html/reference/com/google/android/gms/games/GameBuffer.html
index dbd040e..8501126 100644
--- a/docs/html/reference/com/google/android/gms/games/GameBuffer.html
+++ b/docs/html/reference/com/google/android/gms/games/GameBuffer.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/games/GameEntity.html b/docs/html/reference/com/google/android/gms/games/GameEntity.html
index 60d1867..489b2a9 100644
--- a/docs/html/reference/com/google/android/gms/games/GameEntity.html
+++ b/docs/html/reference/com/google/android/gms/games/GameEntity.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
@@ -1321,6 +1334,42 @@
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/GameEntity.html#isRealTimeMultiplayerEnabled()">isRealTimeMultiplayerEnabled</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Indicates whether or not this game supports real-time multiplayer.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/GameEntity.html#isTurnBasedMultiplayerEnabled()">isTurnBasedMultiplayerEnabled</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Indicates whether or not this game supports turn-based multiplayer.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
String</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
@@ -1954,6 +2003,42 @@
</td></tr>
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/Game.html#isRealTimeMultiplayerEnabled()">isRealTimeMultiplayerEnabled</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Indicates whether or not this game supports real-time multiplayer.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/Game.html#isTurnBasedMultiplayerEnabled()">isTurnBasedMultiplayerEnabled</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Indicates whether or not this game supports turn-based multiplayer.</div>
+
+ </td></tr>
+
+
</table>
</div>
</div>
@@ -2825,6 +2910,74 @@
</div>
+<A NAME="isRealTimeMultiplayerEnabled()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ boolean
+ </span>
+ <span class="sympad">isRealTimeMultiplayerEnabled</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Indicates whether or not this game supports real-time multiplayer.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>Whether or not this game supports real-time mulitplayer.
+</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="isTurnBasedMultiplayerEnabled()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ boolean
+ </span>
+ <span class="sympad">isTurnBasedMultiplayerEnabled</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Indicates whether or not this game supports turn-based multiplayer.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>Whether or not this game supports turn-based mulitplayer.
+</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
<A NAME="toString()"></A>
<div class="jd-details api apilevel-">
diff --git a/docs/html/reference/com/google/android/gms/games/GamesActivityResultCodes.html b/docs/html/reference/com/google/android/gms/games/GamesActivityResultCodes.html
index 1213a32..2db368a 100644
--- a/docs/html/reference/com/google/android/gms/games/GamesActivityResultCodes.html
+++ b/docs/html/reference/com/google/android/gms/games/GamesActivityResultCodes.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
@@ -813,12 +826,20 @@
<tr class=" api apilevel-" >
<td class="jd-typecol">int</td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/GamesActivityResultCodes.html#RESULT_NETWORK_FAILURE">RESULT_NETWORK_FAILURE</a></td>
+ <td class="jd-descrcol" width="100%">Result code sent back to the calling Activity when the server request resulted in a network
+ error.</td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/GamesActivityResultCodes.html#RESULT_RECONNECT_REQUIRED">RESULT_RECONNECT_REQUIRED</a></td>
<td class="jd-descrcol" width="100%">Result code sent back to the calling Activity when a reconnect is required.</td>
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/GamesActivityResultCodes.html#RESULT_SIGN_IN_FAILED">RESULT_SIGN_IN_FAILED</a></td>
<td class="jd-descrcol" width="100%">Result code sent back to the calling Activity when signing in fails.</td>
@@ -1153,7 +1174,7 @@
case.)</p></div>
<div class="jd-tagdata">
<h5 class="jd-tagtitle">See Also</h5>
- <ul class="nolist"><li><code><a href="/reference/com/google/android/gms/games/GamesClient.html#getRealTimeWaitingRoomIntent(com.google.android.gms.games.multiplayer.realtime.Room, int)">getRealTimeWaitingRoomIntent(Room, int)</a></code></li>
+ <ul class="nolist"><li><code><a href="/reference/com/google/android/gms/games/GamesClient.html#getRealTimeWaitingRoomIntent(com.google.android.gms.games.multiplayer.realtime.Room, int)">getRealTimeWaitingRoomIntent(Room, int)</a></code></li>
</ul>
</div>
@@ -1212,6 +1233,46 @@
+<A NAME="RESULT_NETWORK_FAILURE"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+ static
+ final
+ int
+ </span>
+ RESULT_NETWORK_FAILURE
+ </h4>
+ <div class="api-level">
+
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Result code sent back to the calling Activity when the server request resulted in a network
+ error.
+</p></div>
+
+
+ <div class="jd-tagdata">
+ <span class="jd-tagtitle">Constant Value: </span>
+ <span>
+
+ 10006
+ (0x00002716)
+
+ </span>
+ </div>
+
+ </div>
+</div>
+
+
+
<A NAME="RESULT_RECONNECT_REQUIRED"></A>
<div class="jd-details api apilevel-">
@@ -1234,7 +1295,7 @@
<div class="jd-tagdata jd-tagdescr"><p>Result code sent back to the calling Activity when a reconnect is required.
<p>
- The <code><a href="/reference/com/google/android/gms/games/GamesClient.html">GamesClient</a></code> is in an inconsistent state and must reconnect to the service to
+ The <code><a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html">GoogleApiClient</a></code> is in an inconsistent state and must reconnect to the service to
resolve the issue. Further calls to the service using the current connection are unlikely to
succeed.
</p></div>
diff --git a/docs/html/reference/com/google/android/gms/games/GamesClient.Builder.html b/docs/html/reference/com/google/android/gms/games/GamesClient.Builder.html
index 0de7ffa..c4f8a67 100644
--- a/docs/html/reference/com/google/android/gms/games/GamesClient.Builder.html
+++ b/docs/html/reference/com/google/android/gms/games/GamesClient.Builder.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
@@ -916,6 +929,44 @@
<a href="/reference/com/google/android/gms/games/GamesClient.Builder.html">GamesClient.Builder</a></nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.Builder.html#setShowConnectingPopup(boolean)">setShowConnectingPopup</a></span>(boolean showConnectingPopup)</nobr>
+
+ <div class="jd-descrdiv">Sets whether a "connecting" popup should be displayed automatically at the start of the
+ sign-in flow.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ <a href="/reference/com/google/android/gms/games/GamesClient.Builder.html">GamesClient.Builder</a></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.Builder.html#setShowConnectingPopup(boolean, int)">setShowConnectingPopup</a></span>(boolean showConnectingPopup, int gravity)</nobr>
+
+ <div class="jd-descrdiv">Sets whether a "connecting" popup should be displayed automatically at the start of the
+ sign-in flow.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ <a href="/reference/com/google/android/gms/games/GamesClient.Builder.html">GamesClient.Builder</a></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
<span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.Builder.html#setViewForPopups(android.view.View)">setViewForPopups</a></span>(View gamesContentView)</nobr>
<div class="jd-descrdiv">Sets the <code><a href="/reference/android/view/View.html">View</a></code> to use as a content view for popups.</div>
@@ -1423,6 +1474,106 @@
</div>
+<A NAME="setShowConnectingPopup(boolean)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ <a href="/reference/com/google/android/gms/games/GamesClient.Builder.html">GamesClient.Builder</a>
+ </span>
+ <span class="sympad">setShowConnectingPopup</span>
+ <span class="normal">(boolean showConnectingPopup)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Sets whether a "connecting" popup should be displayed automatically at the start of the
+ sign-in flow. By default this is enabled.
+ <p>
+ Note that this call will use the default gravity for the "connecting" popup, which will
+ display the popup at the center of the screen. If you prefer that the popup appear in a
+ different section of the screen, you can use
+ <code><a href="/reference/com/google/android/gms/games/GamesClient.Builder.html#setShowConnectingPopup(boolean, int)">setShowConnectingPopup(boolean, int)</a></code>, and provide a <code>Gravity</code> value.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>showConnectingPopup</td>
+ <td>Whether or not to show a "connecting" popup at the beginning
+ of the sign-in flow. Default behavior is for this to be true.</td>
+ </tr>
+ </table>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>This Builder.
+</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="setShowConnectingPopup(boolean, int)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ <a href="/reference/com/google/android/gms/games/GamesClient.Builder.html">GamesClient.Builder</a>
+ </span>
+ <span class="sympad">setShowConnectingPopup</span>
+ <span class="normal">(boolean showConnectingPopup, int gravity)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Sets whether a "connecting" popup should be displayed automatically at the start of the
+ sign-in flow. By default this is enabled.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>showConnectingPopup</td>
+ <td>Whether or not to show a "connecting" popup at the beginning
+ of the sign-in flow. Default behavior is for this to be true.</td>
+ </tr>
+ <tr>
+ <th>gravity</td>
+ <td>The <code><a href="/reference/android/view/Gravity.html">Gravity</a></code> which controls where the "connecting" popup should be
+ displayed during sign-in.</td>
+ </tr>
+ </table>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>This Builder.
+</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
<A NAME="setViewForPopups(android.view.View)"></A>
<div class="jd-details api apilevel-">
diff --git a/docs/html/reference/com/google/android/gms/games/GamesClient.html b/docs/html/reference/com/google/android/gms/games/GamesClient.html
index cb89c93..0c93005 100644
--- a/docs/html/reference/com/google/android/gms/games/GamesClient.html
+++ b/docs/html/reference/com/google/android/gms/games/GamesClient.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
@@ -759,7 +772,7 @@
<h2>Class Overview</h2>
-<p itemprop="articleBody">Main public API entry point for the games client.
+<p itemprop="articleBody">Main public entry point for Games APIs.
</p>
@@ -862,11 +875,25 @@
<tr class=" api apilevel-" >
<td class="jd-typecol">String</td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/GamesClient.html#EXTRA_PLAYER_SEARCH_RESULTS">EXTRA_PLAYER_SEARCH_RESULTS</a></td>
+ <td class="jd-descrcol" width="100%">Used by the Player Search UI to return a list of parceled Player objects.</td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">String</td>
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/GamesClient.html#EXTRA_ROOM">EXTRA_ROOM</a></td>
<td class="jd-descrcol" width="100%">Used to return a <code><a href="/reference/com/google/android/gms/games/multiplayer/realtime/Room.html">Room</a></code>.</td>
</tr>
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">String</td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/GamesClient.html#EXTRA_TURN_BASED_MATCH">EXTRA_TURN_BASED_MATCH</a></td>
+ <td class="jd-descrcol" width="100%">Used to return a <code><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html">TurnBasedMatch</a></code>.</td>
+ </tr>
+
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/GamesClient.html#MAX_RELIABLE_MESSAGE_LEN">MAX_RELIABLE_MESSAGE_LEN</a></td>
@@ -906,20 +933,27 @@
<tr class=" api apilevel-" >
<td class="jd-typecol">int</td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/GamesClient.html#NOTIFICATION_TYPE_MATCH_UPDATE">NOTIFICATION_TYPE_MATCH_UPDATE</a></td>
+ <td class="jd-descrcol" width="100%">Notification type for updates to match information.</td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_ACHIEVEMENT_NOT_INCREMENTAL">STATUS_ACHIEVEMENT_NOT_INCREMENTAL</a></td>
<td class="jd-descrcol" width="100%">Indicates that the call to increment achievement failed since the achievement is not an
incremental achievement.</td>
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_ACHIEVEMENT_UNKNOWN">STATUS_ACHIEVEMENT_UNKNOWN</a></td>
<td class="jd-descrcol" width="100%">Could not find the achievement, so the operation to update the achievement failed.</td>
</tr>
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_ACHIEVEMENT_UNLOCKED">STATUS_ACHIEVEMENT_UNLOCKED</a></td>
<td class="jd-descrcol" width="100%">Indicates that the incremental achievement was also unlocked when the call was made to
@@ -927,7 +961,7 @@
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_ACHIEVEMENT_UNLOCK_FAILURE">STATUS_ACHIEVEMENT_UNLOCK_FAILURE</a></td>
<td class="jd-descrcol" width="100%">An incremental achievement cannot be unlocked directly, so the call to unlock achievement
@@ -935,14 +969,14 @@
</tr>
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_APP_MISCONFIGURED">STATUS_APP_MISCONFIGURED</a></td>
<td class="jd-descrcol" width="100%">The developer has misconfigured their application in some way.</td>
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_CLIENT_RECONNECT_REQUIRED">STATUS_CLIENT_RECONNECT_REQUIRED</a></td>
<td class="jd-descrcol" width="100%">The GamesClient is in an inconsistent state and must reconnect to the service to resolve the
@@ -950,6 +984,13 @@
</tr>
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_GAME_NOT_FOUND">STATUS_GAME_NOT_FOUND</a></td>
+ <td class="jd-descrcol" width="100%">The specified game ID was not recognized by the server.</td>
+ </tr>
+
+
<tr class=" api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_INTERNAL_ERROR">STATUS_INTERNAL_ERROR</a></td>
@@ -974,19 +1015,96 @@
<tr class="alt-color api apilevel-" >
<td class="jd-typecol">int</td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_MATCH_ERROR_ALREADY_REMATCHED">STATUS_MATCH_ERROR_ALREADY_REMATCHED</a></td>
+ <td class="jd-descrcol" width="100%">The specified match has already had a rematch created.</td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_MATCH_ERROR_INACTIVE_MATCH">STATUS_MATCH_ERROR_INACTIVE_MATCH</a></td>
+ <td class="jd-descrcol" width="100%">The match is not currently active.</td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_MATCH_ERROR_INVALID_MATCH_RESULTS">STATUS_MATCH_ERROR_INVALID_MATCH_RESULTS</a></td>
+ <td class="jd-descrcol" width="100%">The match results provided in this API call are invalid.</td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_MATCH_ERROR_INVALID_MATCH_STATE">STATUS_MATCH_ERROR_INVALID_MATCH_STATE</a></td>
+ <td class="jd-descrcol" width="100%">The match is not in the correct state to perform the specified action.</td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_MATCH_ERROR_INVALID_PARTICIPANT_STATE">STATUS_MATCH_ERROR_INVALID_PARTICIPANT_STATE</a></td>
+ <td class="jd-descrcol" width="100%">One or more participants in this match are not in valid states.</td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_MATCH_ERROR_LOCALLY_MODIFIED">STATUS_MATCH_ERROR_LOCALLY_MODIFIED</a></td>
+ <td class="jd-descrcol" width="100%">The specified match has already been modified locally.</td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_MATCH_ERROR_OUT_OF_DATE_VERSION">STATUS_MATCH_ERROR_OUT_OF_DATE_VERSION</a></td>
+ <td class="jd-descrcol" width="100%">The match data is out of date.</td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_MATCH_NOT_FOUND">STATUS_MATCH_NOT_FOUND</a></td>
+ <td class="jd-descrcol" width="100%">The specified match cannot be found.</td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_MULTIPLAYER_DISABLED">STATUS_MULTIPLAYER_DISABLED</a></td>
+ <td class="jd-descrcol" width="100%">This game does not support multiplayer.</td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_MULTIPLAYER_ERROR_CREATION_NOT_ALLOWED">STATUS_MULTIPLAYER_ERROR_CREATION_NOT_ALLOWED</a></td>
<td class="jd-descrcol" width="100%">The user is not allowed to create a new multiplayer game at this time.</td>
</tr>
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_MULTIPLAYER_ERROR_INVALID_MULTIPLAYER_TYPE">STATUS_MULTIPLAYER_ERROR_INVALID_MULTIPLAYER_TYPE</a></td>
+ <td class="jd-descrcol" width="100%">The match is not the right type to perform this action on.</td>
+ </tr>
+
+
<tr class=" api apilevel-" >
<td class="jd-typecol">int</td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_MULTIPLAYER_ERROR_INVALID_OPERATION">STATUS_MULTIPLAYER_ERROR_INVALID_OPERATION</a></td>
+ <td class="jd-descrcol" width="100%">This multiplayer operation is not valid, and the server rejected it.</td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_MULTIPLAYER_ERROR_NOT_TRUSTED_TESTER">STATUS_MULTIPLAYER_ERROR_NOT_TRUSTED_TESTER</a></td>
<td class="jd-descrcol" width="100%">The user attempted to invite another user who was not authorized to see the game.</td>
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_NETWORK_ERROR_NO_DATA">STATUS_NETWORK_ERROR_NO_DATA</a></td>
<td class="jd-descrcol" width="100%">A network error occurred while attempting to retrieve fresh data, and no data was available
@@ -994,7 +1112,7 @@
</tr>
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_NETWORK_ERROR_OPERATION_DEFERRED">STATUS_NETWORK_ERROR_OPERATION_DEFERRED</a></td>
<td class="jd-descrcol" width="100%">A network error occurred while attempting to modify data, but the data was successfully
@@ -1003,7 +1121,7 @@
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_NETWORK_ERROR_OPERATION_FAILED">STATUS_NETWORK_ERROR_OPERATION_FAILED</a></td>
<td class="jd-descrcol" width="100%">A network error occurred while attempting to perform an operation that requires network
@@ -1011,7 +1129,7 @@
</tr>
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_NETWORK_ERROR_STALE_DATA">STATUS_NETWORK_ERROR_STALE_DATA</a></td>
<td class="jd-descrcol" width="100%">A network error occurred while attempting to retrieve fresh data, but some locally cached
@@ -1019,13 +1137,20 @@
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_OK">STATUS_OK</a></td>
<td class="jd-descrcol" width="100%">The operation was successful.</td>
</tr>
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_OPERATION_IN_FLIGHT">STATUS_OPERATION_IN_FLIGHT</a></td>
+ <td class="jd-descrcol" width="100%">Trying to start a join/create operation while another is already in flight.</td>
+ </tr>
+
+
<tr class=" api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_PARTICIPANT_NOT_CONNECTED">STATUS_PARTICIPANT_NOT_CONNECTED</a></td>
@@ -1106,6 +1231,60 @@
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.html#acceptTurnBasedInvitation(com.google.android.gms.games.multiplayer.turnbased.OnTurnBasedMatchInitiatedListener, java.lang.String)">acceptTurnBasedInvitation</a></span>(<a href="/reference/com/google/android/gms/games/multiplayer/turnbased/OnTurnBasedMatchInitiatedListener.html">OnTurnBasedMatchInitiatedListener</a> listener, String invitationId)</nobr>
+
+ <div class="jd-descrdiv">Accept an invitation for a turn-based match.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.html#cancelTurnBasedMatch(java.lang.String)">cancelTurnBasedMatch</a></span>(String matchId)</nobr>
+
+ <div class="jd-descrdiv">Cancels a turn-based match.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.html#cancelTurnBasedMatch(com.google.android.gms.games.multiplayer.turnbased.OnTurnBasedMatchCanceledListener, java.lang.String)">cancelTurnBasedMatch</a></span>(<a href="/reference/com/google/android/gms/games/multiplayer/turnbased/OnTurnBasedMatchCanceledListener.html">OnTurnBasedMatchCanceledListener</a> listener, String matchId)</nobr>
+
+ <div class="jd-descrdiv">Cancels a turn-based match.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
<span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.html#clearAllNotifications()">clearAllNotifications</a></span>()</nobr>
<div class="jd-descrdiv">Clear all notifications for the current game and signed-in player.</div>
@@ -1114,7 +1293,7 @@
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
@@ -1132,7 +1311,7 @@
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
@@ -1150,7 +1329,7 @@
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
@@ -1168,6 +1347,24 @@
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.html#createTurnBasedMatch(com.google.android.gms.games.multiplayer.turnbased.OnTurnBasedMatchInitiatedListener, com.google.android.gms.games.multiplayer.turnbased.TurnBasedMatchConfig)">createTurnBasedMatch</a></span>(<a href="/reference/com/google/android/gms/games/multiplayer/turnbased/OnTurnBasedMatchInitiatedListener.html">OnTurnBasedMatchInitiatedListener</a> listener, <a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatchConfig.html">TurnBasedMatchConfig</a> config)</nobr>
+
+ <div class="jd-descrdiv">Create a turn-based match for the current game.</div>
+
+ </td></tr>
+
+
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
@@ -1196,9 +1393,9 @@
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.html#disconnect()">disconnect</a></span>()</nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.html#declineTurnBasedInvitation(java.lang.String)">declineTurnBasedInvitation</a></span>(String invitationId)</nobr>
- <div class="jd-descrdiv">Closes the connection to Google Play services.</div>
+ <div class="jd-descrdiv">Decline an invitation for a turn-based match.</div>
</td></tr>
@@ -1214,9 +1411,117 @@
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.html#disconnect()">disconnect</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Closes the connection to Google Play services.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
<span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.html#dismissRoomInvitation(java.lang.String)">dismissRoomInvitation</a></span>(String invitationId)</nobr>
<div class="jd-descrdiv">Dismiss an invitation to a real-time room.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.html#dismissTurnBasedInvitation(java.lang.String)">dismissTurnBasedInvitation</a></span>(String invitationId)</nobr>
+
+ <div class="jd-descrdiv">Dismiss an invitation to a turn-based match.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.html#dismissTurnBasedMatch(java.lang.String)">dismissTurnBasedMatch</a></span>(String matchId)</nobr>
+
+ <div class="jd-descrdiv">Delete a match from the server and local storage.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.html#finishTurnBasedMatch(com.google.android.gms.games.multiplayer.turnbased.OnTurnBasedMatchUpdatedListener, java.lang.String, byte[], java.util.List<com.google.android.gms.games.multiplayer.ParticipantResult>)">finishTurnBasedMatch</a></span>(<a href="/reference/com/google/android/gms/games/multiplayer/turnbased/OnTurnBasedMatchUpdatedListener.html">OnTurnBasedMatchUpdatedListener</a> listener, String matchId, byte[] matchData, List<<a href="/reference/com/google/android/gms/games/multiplayer/ParticipantResult.html">ParticipantResult</a>> results)</nobr>
+
+ <div class="jd-descrdiv">Mark a match as finished.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.html#finishTurnBasedMatch(com.google.android.gms.games.multiplayer.turnbased.OnTurnBasedMatchUpdatedListener, java.lang.String)">finishTurnBasedMatch</a></span>(<a href="/reference/com/google/android/gms/games/multiplayer/turnbased/OnTurnBasedMatchUpdatedListener.html">OnTurnBasedMatchUpdatedListener</a> listener, String matchId)</nobr>
+
+ <div class="jd-descrdiv">Indicate that a participant is finished with a match.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.html#finishTurnBasedMatch(com.google.android.gms.games.multiplayer.turnbased.OnTurnBasedMatchUpdatedListener, java.lang.String, byte[], com.google.android.gms.games.multiplayer.ParticipantResult...)">finishTurnBasedMatch</a></span>(<a href="/reference/com/google/android/gms/games/multiplayer/turnbased/OnTurnBasedMatchUpdatedListener.html">OnTurnBasedMatchUpdatedListener</a> listener, String matchId, byte[] matchData, <a href="/reference/com/google/android/gms/games/multiplayer/ParticipantResult.html">ParticipantResult...</a> results)</nobr>
+
+ <div class="jd-descrdiv">Mark a match as finished.</div>
</td></tr>
@@ -1385,6 +1690,62 @@
+ Intent</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.html#getMatchInboxIntent()">getMatchInboxIntent</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Returns an intent that will let the user see and manage any outstanding invitations and
+ matches.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.html#getMaxTurnBasedMatchDataSize()">getMaxTurnBasedMatchDataSize</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Gets the maximum data size per match in bytes.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ Intent</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.html#getPlayerSearchIntent()">getPlayerSearchIntent</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Returns an intent that will display a screen where the user can search for people
+ on Google+.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
<a href="/reference/com/google/android/gms/games/multiplayer/realtime/RealTimeSocket.html">RealTimeSocket</a></nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
@@ -1396,7 +1757,7 @@
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
@@ -1415,7 +1776,7 @@
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
@@ -1433,6 +1794,24 @@
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ Intent</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.html#getSelectPlayersIntent(int, int, boolean)">getSelectPlayersIntent</a></span>(int minPlayers, int maxPlayers, boolean allowAutomatch)</nobr>
+
+ <div class="jd-descrdiv">Returns an intent that will let the user select players to send an invitation to.</div>
+
+ </td></tr>
+
+
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
@@ -1462,6 +1841,24 @@
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.html#getTurnBasedMatch(com.google.android.gms.games.multiplayer.turnbased.OnTurnBasedMatchLoadedListener, java.lang.String)">getTurnBasedMatch</a></span>(<a href="/reference/com/google/android/gms/games/multiplayer/turnbased/OnTurnBasedMatchLoadedListener.html">OnTurnBasedMatchLoadedListener</a> listener, String matchId)</nobr>
+
+ <div class="jd-descrdiv">Load a specified turn-based match.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
<span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.html#incrementAchievement(java.lang.String, int)">incrementAchievement</a></span>(String id, int numSteps)</nobr>
<div class="jd-descrdiv">Increments an achievement by the given number of steps.</div>
@@ -1470,7 +1867,7 @@
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
@@ -1488,7 +1885,7 @@
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
@@ -1507,7 +1904,7 @@
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
@@ -1525,7 +1922,7 @@
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
@@ -1544,7 +1941,7 @@
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
@@ -1563,7 +1960,7 @@
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
@@ -1581,7 +1978,7 @@
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
@@ -1599,6 +1996,24 @@
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.html#leaveTurnBasedMatch(com.google.android.gms.games.multiplayer.turnbased.OnTurnBasedMatchLeftListener, java.lang.String)">leaveTurnBasedMatch</a></span>(<a href="/reference/com/google/android/gms/games/multiplayer/turnbased/OnTurnBasedMatchLeftListener.html">OnTurnBasedMatchLeftListener</a> listener, String matchId)</nobr>
+
+ <div class="jd-descrdiv">Leave the specified match when it is not the current player's turn.</div>
+
+ </td></tr>
+
+
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
@@ -1609,6 +2024,24 @@
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.html#leaveTurnBasedMatchDuringTurn(com.google.android.gms.games.multiplayer.turnbased.OnTurnBasedMatchLeftListener, java.lang.String, java.lang.String)">leaveTurnBasedMatchDuringTurn</a></span>(<a href="/reference/com/google/android/gms/games/multiplayer/turnbased/OnTurnBasedMatchLeftListener.html">OnTurnBasedMatchLeftListener</a> listener, String matchId, String pendingParticipantId)</nobr>
+
+ <div class="jd-descrdiv">Leave the specified match during the current player's turn.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
<span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.html#loadAchievements(com.google.android.gms.games.achievement.OnAchievementsLoadedListener, boolean)">loadAchievements</a></span>(<a href="/reference/com/google/android/gms/games/achievement/OnAchievementsLoadedListener.html">OnAchievementsLoadedListener</a> listener, boolean forceReload)</nobr>
<div class="jd-descrdiv">Asynchronously load achievement data for the currently signed in player.</div>
@@ -1617,6 +2050,24 @@
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.html#loadCurrentPlayerLeaderboardScore(com.google.android.gms.games.leaderboard.OnPlayerLeaderboardScoreLoadedListener, java.lang.String, int, int)">loadCurrentPlayerLeaderboardScore</a></span>(<a href="/reference/com/google/android/gms/games/leaderboard/OnPlayerLeaderboardScoreLoadedListener.html">OnPlayerLeaderboardScoreLoadedListener</a> listener, String leaderboardId, int span, int leaderboardCollection)</nobr>
+
+ <div class="jd-descrdiv">Asynchronously load the currently signed in player's score for a given leaderboard.</div>
+
+ </td></tr>
+
+
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
@@ -1700,42 +2151,6 @@
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.html#loadLeaderboardMetadata(com.google.android.gms.games.leaderboard.OnLeaderboardMetadataLoadedListener, java.lang.String)">loadLeaderboardMetadata</a></span>(<a href="/reference/com/google/android/gms/games/leaderboard/OnLeaderboardMetadataLoadedListener.html">OnLeaderboardMetadataLoadedListener</a> listener, String leaderboardId)</nobr>
-
- <div class="jd-descrdiv">Asynchronously load a specific leaderboard's metadata for this game.</div>
-
- </td></tr>
-
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
-
-
-
-
-
- void</nobr>
- </td>
- <td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.html#loadLeaderboardMetadata(com.google.android.gms.games.leaderboard.OnLeaderboardMetadataLoadedListener)">loadLeaderboardMetadata</a></span>(<a href="/reference/com/google/android/gms/games/leaderboard/OnLeaderboardMetadataLoadedListener.html">OnLeaderboardMetadataLoadedListener</a> listener)</nobr>
-
- <div class="jd-descrdiv">Asynchronously load the list of leaderboard metadata for this game.</div>
-
- </td></tr>
-
-
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol"><nobr>
-
-
-
-
-
- void</nobr>
- </td>
- <td class="jd-linkcol" width="100%"><nobr>
<span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.html#loadLeaderboardMetadata(com.google.android.gms.games.leaderboard.OnLeaderboardMetadataLoadedListener, java.lang.String, boolean)">loadLeaderboardMetadata</a></span>(<a href="/reference/com/google/android/gms/games/leaderboard/OnLeaderboardMetadataLoadedListener.html">OnLeaderboardMetadataLoadedListener</a> listener, String leaderboardId, boolean forceReload)</nobr>
<div class="jd-descrdiv">Asynchronously load a specific leaderboard's metadata for this game.</div>
@@ -1880,6 +2295,24 @@
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.html#loadTurnBasedMatches(com.google.android.gms.games.multiplayer.turnbased.OnTurnBasedMatchesLoadedListener, int...)">loadTurnBasedMatches</a></span>(<a href="/reference/com/google/android/gms/games/multiplayer/turnbased/OnTurnBasedMatchesLoadedListener.html">OnTurnBasedMatchesLoadedListener</a> listener, int... matchTurnStatuses)</nobr>
+
+ <div class="jd-descrdiv">Asynchronously load turn-based matches for the current game.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
<span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.html#reconnect()">reconnect</a></span>()</nobr>
<div class="jd-descrdiv">Closes the current connection to Google Play services and creates a new connection.</div>
@@ -1888,7 +2321,7 @@
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
@@ -1906,7 +2339,7 @@
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
@@ -1925,7 +2358,7 @@
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
@@ -1943,6 +2376,24 @@
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.html#registerMatchUpdateListener(com.google.android.gms.games.multiplayer.turnbased.OnTurnBasedMatchUpdateReceivedListener)">registerMatchUpdateListener</a></span>(<a href="/reference/com/google/android/gms/games/multiplayer/turnbased/OnTurnBasedMatchUpdateReceivedListener.html">OnTurnBasedMatchUpdateReceivedListener</a> listener)</nobr>
+
+ <div class="jd-descrdiv">Register a listener to intercept incoming match updates for the currently signed-in user.</div>
+
+ </td></tr>
+
+
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
@@ -1953,6 +2404,24 @@
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.html#rematchTurnBasedMatch(com.google.android.gms.games.multiplayer.turnbased.OnTurnBasedMatchInitiatedListener, java.lang.String)">rematchTurnBasedMatch</a></span>(<a href="/reference/com/google/android/gms/games/multiplayer/turnbased/OnTurnBasedMatchInitiatedListener.html">OnTurnBasedMatchInitiatedListener</a> listener, String matchId)</nobr>
+
+ <div class="jd-descrdiv">Create a rematch of a previously completed turn-based match.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
<span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.html#revealAchievement(java.lang.String)">revealAchievement</a></span>(String id)</nobr>
<div class="jd-descrdiv">Reveal a hidden achievement to the currently signed in player.</div>
@@ -1961,7 +2430,7 @@
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
@@ -1979,7 +2448,7 @@
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
@@ -1996,26 +2465,26 @@
</td></tr>
-
- <tr class="alt-color api apilevel-" >
+
+ <tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
int</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.html#sendUnreliableRealTimeMessage(byte[], java.lang.String, java.util.List<java.lang.String>)">sendUnreliableRealTimeMessage</a></span>(byte[] messageData, String roomId, List<String> recipientParticipantIds)</nobr>
-
+
<div class="jd-descrdiv">Send a message to one or more participants in a real-time room.</div>
-
+
</td></tr>
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
@@ -2028,12 +2497,12 @@
<span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.html#sendUnreliableRealTimeMessage(byte[], java.lang.String, java.lang.String)">sendUnreliableRealTimeMessage</a></span>(byte[] messageData, String roomId, String recipientParticipantId)</nobr>
<div class="jd-descrdiv">Send a message to a participant in a real-time room.</div>
-
+
</td></tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
@@ -2046,25 +2515,7 @@
<span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.html#sendUnreliableRealTimeMessageToAll(byte[], java.lang.String)">sendUnreliableRealTimeMessageToAll</a></span>(byte[] messageData, String roomId)</nobr>
<div class="jd-descrdiv">Send a message to all participants in a real-time room.</div>
-
- </td></tr>
-
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol"><nobr>
-
-
-
-
-
- void</nobr>
- </td>
- <td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.html#setAchievementSteps(java.lang.String, int)">setAchievementSteps</a></span>(String id, int numSteps)</nobr>
-
- <div class="jd-descrdiv">Set an achievement to have at least the given number of steps completed.</div>
-
</td></tr>
@@ -2079,10 +2530,10 @@
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.html#setAchievementStepsImmediate(com.google.android.gms.games.achievement.OnAchievementUpdatedListener, java.lang.String, int)">setAchievementStepsImmediate</a></span>(<a href="/reference/com/google/android/gms/games/achievement/OnAchievementUpdatedListener.html">OnAchievementUpdatedListener</a> listener, String id, int numSteps)</nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.html#setAchievementSteps(java.lang.String, int)">setAchievementSteps</a></span>(String id, int numSteps)</nobr>
<div class="jd-descrdiv">Set an achievement to have at least the given number of steps completed.</div>
-
+
</td></tr>
@@ -2093,6 +2544,24 @@
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.html#setAchievementStepsImmediate(com.google.android.gms.games.achievement.OnAchievementUpdatedListener, java.lang.String, int)">setAchievementStepsImmediate</a></span>(<a href="/reference/com/google/android/gms/games/achievement/OnAchievementUpdatedListener.html">OnAchievementUpdatedListener</a> listener, String id, int numSteps)</nobr>
+
+ <div class="jd-descrdiv">Set an achievement to have at least the given number of steps completed.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
void</nobr>
</td>
@@ -2101,26 +2570,7 @@
<div class="jd-descrdiv">Specifies the part of the screen at which games service popups (for example, "welcome back"
or "achievement unlocked" popups) will be displayed using gravity.</div>
-
- </td></tr>
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
-
-
-
-
-
- void</nobr>
- </td>
- <td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.html#setUseNewPlayerNotificationsFirstParty(boolean)">setUseNewPlayerNotificationsFirstParty</a></span>(boolean newPlayerStyle)</nobr>
-
- <div class="jd-descrdiv">Set whether or not to use the "new player" style notifications for the invitation inbox or
- destination app.</div>
-
</td></tr>
@@ -2129,7 +2579,7 @@
<td class="jd-typecol"><nobr>
-
+
void</nobr>
@@ -2138,7 +2588,7 @@
<span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.html#setViewForPopups(android.view.View)">setViewForPopups</a></span>(View gamesContentView)</nobr>
<div class="jd-descrdiv">Sets the <code><a href="/reference/android/view/View.html">View</a></code> to use as a content view for popups.</div>
-
+
</td></tr>
@@ -2147,7 +2597,7 @@
<td class="jd-typecol"><nobr>
-
+
void</nobr>
@@ -2156,7 +2606,7 @@
<span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.html#signOut(com.google.android.gms.games.OnSignOutCompleteListener)">signOut</a></span>(<a href="/reference/com/google/android/gms/games/OnSignOutCompleteListener.html">OnSignOutCompleteListener</a> listener)</nobr>
<div class="jd-descrdiv">Asynchronously signs the current user out.</div>
-
+
</td></tr>
@@ -2174,7 +2624,7 @@
<span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.html#signOut()">signOut</a></span>()</nobr>
<div class="jd-descrdiv">Asynchronously signs the current user out.</div>
-
+
</td></tr>
@@ -2183,7 +2633,7 @@
<td class="jd-typecol"><nobr>
-
+
void</nobr>
@@ -2192,7 +2642,7 @@
<span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.html#submitScore(java.lang.String, long, java.lang.String)">submitScore</a></span>(String leaderboardId, long score, String scoreTag)</nobr>
<div class="jd-descrdiv">Submit a score to a leaderboard for the currently signed in player.</div>
-
+
</td></tr>
@@ -2201,7 +2651,7 @@
<td class="jd-typecol"><nobr>
-
+
void</nobr>
@@ -2210,7 +2660,7 @@
<span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.html#submitScore(java.lang.String, long)">submitScore</a></span>(String leaderboardId, long score)</nobr>
<div class="jd-descrdiv">Submit a score to a leaderboard for the currently signed in player.</div>
-
+
</td></tr>
@@ -2219,7 +2669,7 @@
<td class="jd-typecol"><nobr>
-
+
void</nobr>
@@ -2228,14 +2678,14 @@
<span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.html#submitScoreImmediate(com.google.android.gms.games.leaderboard.OnScoreSubmittedListener, java.lang.String, long, java.lang.String)">submitScoreImmediate</a></span>(<a href="/reference/com/google/android/gms/games/leaderboard/OnScoreSubmittedListener.html">OnScoreSubmittedListener</a> listener, String leaderboardId, long score, String scoreTag)</nobr>
<div class="jd-descrdiv">Submit a score to a leaderboard for the currently signed in player.</div>
-
+
</td></tr>
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
+
@@ -2253,7 +2703,7 @@
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
+
@@ -2261,9 +2711,9 @@
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.html#unlockAchievement(java.lang.String)">unlockAchievement</a></span>(String id)</nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.html#takeTurn(com.google.android.gms.games.multiplayer.turnbased.OnTurnBasedMatchUpdatedListener, java.lang.String, byte[], java.lang.String)">takeTurn</a></span>(<a href="/reference/com/google/android/gms/games/multiplayer/turnbased/OnTurnBasedMatchUpdatedListener.html">OnTurnBasedMatchUpdatedListener</a> listener, String matchId, byte[] matchData, String pendingParticipantId)</nobr>
- <div class="jd-descrdiv">Unlock an achievement for the currently signed in player.</div>
+ <div class="jd-descrdiv">Update a match with new turn data.</div>
</td></tr>
@@ -2275,7 +2725,61 @@
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.html#takeTurn(com.google.android.gms.games.multiplayer.turnbased.OnTurnBasedMatchUpdatedListener, java.lang.String, byte[], java.lang.String, com.google.android.gms.games.multiplayer.ParticipantResult...)">takeTurn</a></span>(<a href="/reference/com/google/android/gms/games/multiplayer/turnbased/OnTurnBasedMatchUpdatedListener.html">OnTurnBasedMatchUpdatedListener</a> listener, String matchId, byte[] matchData, String pendingParticipantId, <a href="/reference/com/google/android/gms/games/multiplayer/ParticipantResult.html">ParticipantResult...</a> results)</nobr>
+
+ <div class="jd-descrdiv">Update a match with new turn data.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.html#takeTurn(com.google.android.gms.games.multiplayer.turnbased.OnTurnBasedMatchUpdatedListener, java.lang.String, byte[], java.lang.String, java.util.List<com.google.android.gms.games.multiplayer.ParticipantResult>)">takeTurn</a></span>(<a href="/reference/com/google/android/gms/games/multiplayer/turnbased/OnTurnBasedMatchUpdatedListener.html">OnTurnBasedMatchUpdatedListener</a> listener, String matchId, byte[] matchData, String pendingParticipantId, List<<a href="/reference/com/google/android/gms/games/multiplayer/ParticipantResult.html">ParticipantResult</a>> results)</nobr>
+
+ <div class="jd-descrdiv">Update a match with new turn data.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.html#unlockAchievement(java.lang.String)">unlockAchievement</a></span>(String id)</nobr>
+
+ <div class="jd-descrdiv">Unlock an achievement for the currently signed in player.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
@@ -2287,9 +2791,9 @@
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
+
@@ -2305,9 +2809,9 @@
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
+
@@ -2323,9 +2827,9 @@
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
+
@@ -2340,6 +2844,24 @@
</td></tr>
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/GamesClient.html#unregisterMatchUpdateListener()">unregisterMatchUpdateListener</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Unregisters this client's match update listener, if any.</div>
+
+ </td></tr>
+
+
</table>
@@ -2371,182 +2893,182 @@
</div>
<div id="inherited-methods-java.lang.Object-summary" style="display: none;">
<table class="jd-sumtable-expando">
-
-
+
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
Object</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">clone</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
boolean</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">equals</span>(Object arg0)</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">finalize</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
Class<?></nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">getClass</span>()</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
int</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">hashCode</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">notify</span>()</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">notifyAll</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
String</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">toString</span>()</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">wait</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">wait</span>(long arg0)</nobr>
-
+
</td></tr>
@@ -2573,190 +3095,190 @@
</div>
<div id="inherited-methods-com.google.android.gms.common.GooglePlayServicesClient-summary" style="display: none;">
<table class="jd-sumtable-expando">
-
-
+
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
abstract
-
-
-
-
+
+
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad"><a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.html#connect()">connect</a></span>()</nobr>
-
+
<div class="jd-descrdiv">Connects the client to Google Play services.</div>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
abstract
-
-
-
-
+
+
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad"><a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.html#disconnect()">disconnect</a></span>()</nobr>
-
+
<div class="jd-descrdiv">Closes the connection to Google Play services.</div>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
abstract
-
-
-
-
+
+
+
+
boolean</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad"><a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.html#isConnected()">isConnected</a></span>()</nobr>
-
+
<div class="jd-descrdiv">Checks if the client is currently connected to the service, so that
requests to other methods will succeed.</div>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
abstract
-
-
-
-
+
+
+
+
boolean</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad"><a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.html#isConnecting()">isConnecting</a></span>()</nobr>
-
+
<div class="jd-descrdiv">Checks if the client is attempting to connect to the service.</div>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
abstract
-
-
-
-
+
+
+
+
boolean</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad"><a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.html#isConnectionCallbacksRegistered(com.google.android.gms.common.GooglePlayServicesClient.ConnectionCallbacks)">isConnectionCallbacksRegistered</a></span>(<a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.ConnectionCallbacks.html">GooglePlayServicesClient.ConnectionCallbacks</a> listener)</nobr>
-
+
<div class="jd-descrdiv">Returns true if the specified listener is currently registered to
receive connection events.</div>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
abstract
-
-
-
-
+
+
+
+
boolean</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad"><a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.html#isConnectionFailedListenerRegistered(com.google.android.gms.common.GooglePlayServicesClient.OnConnectionFailedListener)">isConnectionFailedListenerRegistered</a></span>(<a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.OnConnectionFailedListener.html">GooglePlayServicesClient.OnConnectionFailedListener</a> listener)</nobr>
-
+
<div class="jd-descrdiv">Returns true if the specified listener is currently registered to
receive connection failed events.</div>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
abstract
-
-
-
-
+
+
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad"><a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.html#registerConnectionCallbacks(com.google.android.gms.common.GooglePlayServicesClient.ConnectionCallbacks)">registerConnectionCallbacks</a></span>(<a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.ConnectionCallbacks.html">GooglePlayServicesClient.ConnectionCallbacks</a> listener)</nobr>
-
+
<div class="jd-descrdiv">Registers a listener to receive connection events from this <code>GooglePlayServicesClient</code>.</div>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
abstract
-
-
-
-
+
+
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad"><a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.html#registerConnectionFailedListener(com.google.android.gms.common.GooglePlayServicesClient.OnConnectionFailedListener)">registerConnectionFailedListener</a></span>(<a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.OnConnectionFailedListener.html">GooglePlayServicesClient.OnConnectionFailedListener</a> listener)</nobr>
-
+
<div class="jd-descrdiv">Registers a listener to receive connection failed events from this
<code>GooglePlayServicesClient</code>.</div>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
abstract
-
-
-
-
+
+
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad"><a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.html#unregisterConnectionCallbacks(com.google.android.gms.common.GooglePlayServicesClient.ConnectionCallbacks)">unregisterConnectionCallbacks</a></span>(<a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.ConnectionCallbacks.html">GooglePlayServicesClient.ConnectionCallbacks</a> listener)</nobr>
-
+
<div class="jd-descrdiv">Removes a connection listener from this <code>GooglePlayServicesClient</code>.</div>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
abstract
-
-
-
-
+
+
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad"><a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.html#unregisterConnectionFailedListener(com.google.android.gms.common.GooglePlayServicesClient.OnConnectionFailedListener)">unregisterConnectionFailedListener</a></span>(<a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.OnConnectionFailedListener.html">GooglePlayServicesClient.OnConnectionFailedListener</a> listener)</nobr>
-
+
<div class="jd-descrdiv">Removes a connection failed listener from the <code>GooglePlayServicesClient</code>.</div>
-
+
</td></tr>
@@ -2797,37 +3319,37 @@
<A NAME="EXTRA_EXCLUSIVE_BIT_MASK"></A>
-<div class="jd-details api apilevel-">
+<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
- public
- static
- final
+ public
+ static
+ final
String
</span>
EXTRA_EXCLUSIVE_BIT_MASK
</h4>
<div class="api-level">
-
-
-
+
+
+
</div>
<div class="jd-details-descr">
-
+
<div class="jd-tagdata jd-tagdescr"><p>Used to bundle the exclusive bit mask of the player for auto-match criteria.
</p></div>
-
+
<div class="jd-tagdata">
<span class="jd-tagtitle">Constant Value: </span>
<span>
-
+
"exclusive_bit_mask"
-
+
</span>
</div>
-
+
</div>
</div>
@@ -2835,38 +3357,38 @@
<A NAME="EXTRA_INVITATION"></A>
-<div class="jd-details api apilevel-">
+<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
- public
- static
- final
+ public
+ static
+ final
String
</span>
EXTRA_INVITATION
</h4>
<div class="api-level">
-
-
-
+
+
+
</div>
<div class="jd-details-descr">
-
+
<div class="jd-tagdata jd-tagdescr"><p>Used to return an <code><a href="/reference/com/google/android/gms/games/multiplayer/Invitation.html">Invitation</a></code>. Retrieve with <code><a href="/reference/android/content/Intent.html#getParcelableExtra(java.lang.String)">getParcelableExtra(String)</a></code>
or <code><a href="/reference/android/os/Bundle.html#getParcelable(java.lang.String)">getParcelable(String)</a></code>.
</p></div>
-
+
<div class="jd-tagdata">
<span class="jd-tagtitle">Constant Value: </span>
<span>
-
+
"invitation"
-
+
</span>
</div>
-
+
</div>
</div>
@@ -2874,24 +3396,24 @@
<A NAME="EXTRA_MAX_AUTOMATCH_PLAYERS"></A>
-<div class="jd-details api apilevel-">
+<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
- public
- static
- final
+ public
+ static
+ final
String
</span>
EXTRA_MAX_AUTOMATCH_PLAYERS
</h4>
<div class="api-level">
-
-
-
+
+
+
</div>
<div class="jd-details-descr">
-
+
<div class="jd-tagdata jd-tagdescr"><p>Used to return the maximum number of players that should be added to a room by auto-matching.
Retrieve with <code><a href="/reference/android/content/Intent.html#getIntExtra(java.lang.String, int)">getIntExtra(String, int)</a></code>.</p></div>
<div class="jd-tagdata">
@@ -2900,16 +3422,16 @@
</ul>
</div>
-
+
<div class="jd-tagdata">
<span class="jd-tagtitle">Constant Value: </span>
<span>
-
+
"max_automatch_players"
-
+
</span>
</div>
-
+
</div>
</div>
@@ -2917,24 +3439,24 @@
<A NAME="EXTRA_MIN_AUTOMATCH_PLAYERS"></A>
-<div class="jd-details api apilevel-">
+<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
- public
- static
- final
+ public
+ static
+ final
String
</span>
EXTRA_MIN_AUTOMATCH_PLAYERS
</h4>
<div class="api-level">
-
-
-
+
+
+
</div>
<div class="jd-details-descr">
-
+
<div class="jd-tagdata jd-tagdescr"><p>Used to return the minimum number of players that should be added to a room by auto-matching.
Retrieve with <code><a href="/reference/android/content/Intent.html#getIntExtra(java.lang.String, int)">getIntExtra(String, int)</a></code>.</p></div>
<div class="jd-tagdata">
@@ -2943,16 +3465,16 @@
</ul>
</div>
-
+
<div class="jd-tagdata">
<span class="jd-tagtitle">Constant Value: </span>
<span>
-
+
"min_automatch_players"
-
+
</span>
</div>
-
+
</div>
</div>
@@ -2960,24 +3482,24 @@
<A NAME="EXTRA_PLAYERS"></A>
-<div class="jd-details api apilevel-">
+<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
- public
- static
- final
+ public
+ static
+ final
String
</span>
EXTRA_PLAYERS
</h4>
<div class="api-level">
-
-
-
+
+
+
</div>
<div class="jd-details-descr">
-
+
<div class="jd-tagdata jd-tagdescr"><p>Used to return a list of player IDs. Retrieve with
<code><a href="/reference/android/content/Intent.html#getStringArrayListExtra(java.lang.String)">getStringArrayListExtra(String)</a></code>.</p></div>
<div class="jd-tagdata">
@@ -2986,16 +3508,59 @@
</ul>
</div>
-
+
<div class="jd-tagdata">
<span class="jd-tagtitle">Constant Value: </span>
<span>
-
+
"players"
-
+
</span>
</div>
-
+
+ </div>
+</div>
+
+
+
+<A NAME="EXTRA_PLAYER_SEARCH_RESULTS"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+ static
+ final
+ String
+ </span>
+ EXTRA_PLAYER_SEARCH_RESULTS
+ </h4>
+ <div class="api-level">
+
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Used by the Player Search UI to return a list of parceled Player objects.
+ Retrieve with <code><a href="/reference/android/content/Intent.html#getParcelableArrayListExtra(java.lang.String)">getParcelableArrayListExtra(String)</a></code>.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">See Also</h5>
+ <ul class="nolist"><li><code><a href="/reference/com/google/android/gms/games/GamesClient.html#getPlayerSearchIntent()">getPlayerSearchIntent()</a></code></li>
+ </ul>
+ </div>
+
+
+ <div class="jd-tagdata">
+ <span class="jd-tagtitle">Constant Value: </span>
+ <span>
+
+ "player_search_results"
+
+ </span>
+ </div>
+
</div>
</div>
@@ -3003,37 +3568,76 @@
<A NAME="EXTRA_ROOM"></A>
-<div class="jd-details api apilevel-">
+<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
- public
- static
- final
+ public
+ static
+ final
String
</span>
EXTRA_ROOM
</h4>
<div class="api-level">
-
-
-
+
+
+
</div>
<div class="jd-details-descr">
-
+
<div class="jd-tagdata jd-tagdescr"><p>Used to return a <code><a href="/reference/com/google/android/gms/games/multiplayer/realtime/Room.html">Room</a></code>. Retrieve with <code><a href="/reference/android/content/Intent.html#getParcelableExtra(java.lang.String)">getParcelableExtra(String)</a></code>.
</p></div>
-
+
<div class="jd-tagdata">
<span class="jd-tagtitle">Constant Value: </span>
<span>
-
+
"room"
-
+
</span>
</div>
-
+
+ </div>
+</div>
+
+
+
+<A NAME="EXTRA_TURN_BASED_MATCH"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+ static
+ final
+ String
+ </span>
+ EXTRA_TURN_BASED_MATCH
+ </h4>
+ <div class="api-level">
+
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Used to return a <code><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html">TurnBasedMatch</a></code>. Retrieve with
+ <code><a href="/reference/android/content/Intent.html#getParcelableExtra(java.lang.String)">getParcelableExtra(String)</a></code> or <code><a href="/reference/android/os/Bundle.html#getParcelable(java.lang.String)">getParcelable(String)</a></code>.
+</p></div>
+
+
+ <div class="jd-tagdata">
+ <span class="jd-tagtitle">Constant Value: </span>
+ <span>
+
+ "turn_based_match"
+
+ </span>
+ </div>
+
</div>
</div>
@@ -3041,39 +3645,39 @@
<A NAME="MAX_RELIABLE_MESSAGE_LEN"></A>
-<div class="jd-details api apilevel-">
+<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
- public
- static
- final
+ public
+ static
+ final
int
</span>
MAX_RELIABLE_MESSAGE_LEN
</h4>
<div class="api-level">
-
-
-
+
+
+
</div>
<div class="jd-details-descr">
-
+
<div class="jd-tagdata jd-tagdescr"><p>This gives the maximum message size supported via the <code><a href="/reference/com/google/android/gms/games/GamesClient.html#sendReliableRealTimeMessage(com.google.android.gms.games.multiplayer.realtime.RealTimeReliableMessageSentListener, byte[], java.lang.String, java.lang.String)">sendReliableRealTimeMessage(RealTimeReliableMessageSentListener, byte[], String, String)</a></code>
methods (excluding protocol headers).
</p></div>
-
+
<div class="jd-tagdata">
<span class="jd-tagtitle">Constant Value: </span>
<span>
-
+
1400
(0x00000578)
-
+
</span>
</div>
-
+
</div>
</div>
@@ -3081,39 +3685,39 @@
<A NAME="MAX_UNRELIABLE_MESSAGE_LEN"></A>
-<div class="jd-details api apilevel-">
+<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
- public
- static
- final
+ public
+ static
+ final
int
</span>
MAX_UNRELIABLE_MESSAGE_LEN
</h4>
<div class="api-level">
-
-
-
+
+
+
</div>
<div class="jd-details-descr">
-
+
<div class="jd-tagdata jd-tagdescr"><p>This gives the maximum (unfragmented) message size supported via the
<code><a href="/reference/com/google/android/gms/games/GamesClient.html#sendUnreliableRealTimeMessage(byte[], java.lang.String, java.lang.String)">sendUnreliableRealTimeMessage(byte[], String, String)</a></code> methods (excluding protocol headers).
</p></div>
-
+
<div class="jd-tagdata">
<span class="jd-tagtitle">Constant Value: </span>
<span>
-
+
1168
(0x00000490)
-
+
</span>
</div>
-
+
</div>
</div>
@@ -3121,37 +3725,37 @@
<A NAME="NOTIFICATION_TYPES_ALL"></A>
-<div class="jd-details api apilevel-">
+<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
- public
- static
- final
+ public
+ static
+ final
int
</span>
NOTIFICATION_TYPES_ALL
</h4>
<div class="api-level">
-
-
-
+
+
+
</div>
<div class="jd-details-descr">
-
+
<div class="jd-tagdata jd-tagdescr"><p>Notification types for any notification. </p></div>
-
+
<div class="jd-tagdata">
<span class="jd-tagtitle">Constant Value: </span>
<span>
-
+
-1
(0xffffffff)
-
+
</span>
</div>
-
+
</div>
</div>
@@ -3159,37 +3763,37 @@
<A NAME="NOTIFICATION_TYPES_MULTIPLAYER"></A>
-<div class="jd-details api apilevel-">
+<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
- public
- static
- final
+ public
+ static
+ final
int
</span>
NOTIFICATION_TYPES_MULTIPLAYER
</h4>
<div class="api-level">
-
-
-
+
+
+
</div>
<div class="jd-details-descr">
-
+
<div class="jd-tagdata jd-tagdescr"><p>Notification types for multiplayer notifications. </p></div>
-
+
<div class="jd-tagdata">
<span class="jd-tagtitle">Constant Value: </span>
<span>
-
- 1
- (0x00000001)
-
+
+ 3
+ (0x00000003)
+
</span>
</div>
-
+
</div>
</div>
@@ -3197,37 +3801,75 @@
<A NAME="NOTIFICATION_TYPE_INVITATION"></A>
-<div class="jd-details api apilevel-">
+<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
- public
- static
- final
+ public
+ static
+ final
int
</span>
NOTIFICATION_TYPE_INVITATION
</h4>
<div class="api-level">
-
-
-
+
+
+
</div>
<div class="jd-details-descr">
-
+
<div class="jd-tagdata jd-tagdescr"><p>Notification type for invites to multiplayer games. </p></div>
-
+
<div class="jd-tagdata">
<span class="jd-tagtitle">Constant Value: </span>
<span>
-
+
1
(0x00000001)
-
+
</span>
</div>
-
+
+ </div>
+</div>
+
+
+
+<A NAME="NOTIFICATION_TYPE_MATCH_UPDATE"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+ static
+ final
+ int
+ </span>
+ NOTIFICATION_TYPE_MATCH_UPDATE
+ </h4>
+ <div class="api-level">
+
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Notification type for updates to match information. </p></div>
+
+
+ <div class="jd-tagdata">
+ <span class="jd-tagtitle">Constant Value: </span>
+ <span>
+
+ 2
+ (0x00000002)
+
+ </span>
+ </div>
+
</div>
</div>
@@ -3235,39 +3877,39 @@
<A NAME="STATUS_ACHIEVEMENT_NOT_INCREMENTAL"></A>
-<div class="jd-details api apilevel-">
+<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
- public
- static
- final
+ public
+ static
+ final
int
</span>
STATUS_ACHIEVEMENT_NOT_INCREMENTAL
</h4>
<div class="api-level">
-
-
-
+
+
+
</div>
<div class="jd-details-descr">
-
+
<div class="jd-tagdata jd-tagdescr"><p>Indicates that the call to increment achievement failed since the achievement is not an
incremental achievement.
</p></div>
-
+
<div class="jd-tagdata">
<span class="jd-tagtitle">Constant Value: </span>
<span>
-
+
3002
(0x00000bba)
-
+
</span>
</div>
-
+
</div>
</div>
@@ -3275,38 +3917,38 @@
<A NAME="STATUS_ACHIEVEMENT_UNKNOWN"></A>
-<div class="jd-details api apilevel-">
+<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
- public
- static
- final
+ public
+ static
+ final
int
</span>
STATUS_ACHIEVEMENT_UNKNOWN
</h4>
<div class="api-level">
-
-
-
+
+
+
</div>
<div class="jd-details-descr">
-
+
<div class="jd-tagdata jd-tagdescr"><p>Could not find the achievement, so the operation to update the achievement failed.
</p></div>
-
+
<div class="jd-tagdata">
<span class="jd-tagtitle">Constant Value: </span>
<span>
-
+
3001
(0x00000bb9)
-
+
</span>
</div>
-
+
</div>
</div>
@@ -3314,39 +3956,39 @@
<A NAME="STATUS_ACHIEVEMENT_UNLOCKED"></A>
-<div class="jd-details api apilevel-">
+<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
- public
- static
- final
+ public
+ static
+ final
int
</span>
STATUS_ACHIEVEMENT_UNLOCKED
</h4>
<div class="api-level">
-
-
-
+
+
+
</div>
<div class="jd-details-descr">
-
+
<div class="jd-tagdata jd-tagdescr"><p>Indicates that the incremental achievement was also unlocked when the call was made to
increment the achievement.
</p></div>
-
+
<div class="jd-tagdata">
<span class="jd-tagtitle">Constant Value: </span>
<span>
-
+
3003
(0x00000bbb)
-
+
</span>
</div>
-
+
</div>
</div>
@@ -3354,39 +3996,39 @@
<A NAME="STATUS_ACHIEVEMENT_UNLOCK_FAILURE"></A>
-<div class="jd-details api apilevel-">
+<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
- public
- static
- final
+ public
+ static
+ final
int
</span>
STATUS_ACHIEVEMENT_UNLOCK_FAILURE
</h4>
<div class="api-level">
-
-
-
+
+
+
</div>
<div class="jd-details-descr">
-
+
<div class="jd-tagdata jd-tagdescr"><p>An incremental achievement cannot be unlocked directly, so the call to unlock achievement
failed.
</p></div>
-
+
<div class="jd-tagdata">
<span class="jd-tagtitle">Constant Value: </span>
<span>
-
+
3000
(0x00000bb8)
-
+
</span>
</div>
-
+
</div>
</div>
@@ -3394,39 +4036,39 @@
<A NAME="STATUS_APP_MISCONFIGURED"></A>
-<div class="jd-details api apilevel-">
+<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
- public
- static
- final
+ public
+ static
+ final
int
</span>
STATUS_APP_MISCONFIGURED
</h4>
<div class="api-level">
-
-
-
+
+
+
</div>
<div class="jd-details-descr">
-
+
<div class="jd-tagdata jd-tagdescr"><p>The developer has misconfigured their application in some way. The logs will contain more
data about the error and the appropriate resolution.
</p></div>
-
+
<div class="jd-tagdata">
<span class="jd-tagtitle">Constant Value: </span>
<span>
-
+
8
(0x00000008)
-
+
</span>
</div>
-
+
</div>
</div>
@@ -3434,39 +4076,78 @@
<A NAME="STATUS_CLIENT_RECONNECT_REQUIRED"></A>
-<div class="jd-details api apilevel-">
+<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
- public
- static
- final
+ public
+ static
+ final
int
</span>
STATUS_CLIENT_RECONNECT_REQUIRED
</h4>
<div class="api-level">
-
-
-
+
+
+
</div>
<div class="jd-details-descr">
-
+
<div class="jd-tagdata jd-tagdescr"><p>The GamesClient is in an inconsistent state and must reconnect to the service to resolve the
issue. Further calls to the service using the current connection are unlikely to succeed.
</p></div>
-
+
<div class="jd-tagdata">
<span class="jd-tagtitle">Constant Value: </span>
<span>
-
+
2
(0x00000002)
-
+
</span>
</div>
-
+
+ </div>
+</div>
+
+
+
+<A NAME="STATUS_GAME_NOT_FOUND"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+ static
+ final
+ int
+ </span>
+ STATUS_GAME_NOT_FOUND
+ </h4>
+ <div class="api-level">
+
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>The specified game ID was not recognized by the server.
+</p></div>
+
+
+ <div class="jd-tagdata">
+ <span class="jd-tagtitle">Constant Value: </span>
+ <span>
+
+ 9
+ (0x00000009)
+
+ </span>
+ </div>
+
</div>
</div>
@@ -3474,39 +4155,39 @@
<A NAME="STATUS_INTERNAL_ERROR"></A>
-<div class="jd-details api apilevel-">
+<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
- public
- static
- final
+ public
+ static
+ final
int
</span>
STATUS_INTERNAL_ERROR
</h4>
<div class="api-level">
-
-
-
+
+
+
</div>
<div class="jd-details-descr">
-
+
<div class="jd-tagdata jd-tagdescr"><p>An unspecified error occurred; no more specific information is available. The device logs may
provide additional data.
</p></div>
-
+
<div class="jd-tagdata">
<span class="jd-tagtitle">Constant Value: </span>
<span>
-
+
1
(0x00000001)
-
+
</span>
</div>
-
+
</div>
</div>
@@ -3514,35 +4195,273 @@
<A NAME="STATUS_INVALID_REAL_TIME_ROOM_ID"></A>
-<div class="jd-details api apilevel-">
+<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
- public
- static
- final
+ public
+ static
+ final
int
</span>
STATUS_INVALID_REAL_TIME_ROOM_ID
</h4>
<div class="api-level">
-
-
-
+
+
+
</div>
<div class="jd-details-descr">
-
+
<div class="jd-tagdata jd-tagdescr"><p>Constant indicating that the real-time room ID provided to the operation was not valid, or
does not correspond to the currently active real-time room.
</p></div>
+
+ <div class="jd-tagdata">
+ <span class="jd-tagtitle">Constant Value: </span>
+ <span>
+
+ 7002
+ (0x00001b5a)
+
+ </span>
+ </div>
+
+ </div>
+</div>
+
+
+
+<A NAME="STATUS_LICENSE_CHECK_FAILED"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+ static
+ final
+ int
+ </span>
+ STATUS_LICENSE_CHECK_FAILED
+ </h4>
+ <div class="api-level">
+
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>The game is not licensed to the user. Further calls will return the same code.
+</p></div>
+
+
+ <div class="jd-tagdata">
+ <span class="jd-tagtitle">Constant Value: </span>
+ <span>
+
+ 7
+ (0x00000007)
+
+ </span>
+ </div>
+
+ </div>
+</div>
+
+
+
+<A NAME="STATUS_MATCH_ERROR_ALREADY_REMATCHED"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+ static
+ final
+ int
+ </span>
+ STATUS_MATCH_ERROR_ALREADY_REMATCHED
+ </h4>
+ <div class="api-level">
+
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>The specified match has already had a rematch created. Only one rematch may be created for
+ any initial match.
+</p></div>
+
+
+ <div class="jd-tagdata">
+ <span class="jd-tagtitle">Constant Value: </span>
+ <span>
+
+ 6505
+ (0x00001969)
+
+ </span>
+ </div>
+
+ </div>
+</div>
+
+
+
+<A NAME="STATUS_MATCH_ERROR_INACTIVE_MATCH"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+ static
+ final
+ int
+ </span>
+ STATUS_MATCH_ERROR_INACTIVE_MATCH
+ </h4>
+ <div class="api-level">
+
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>The match is not currently active. This action cannot be performed on an inactive match.
+</p></div>
+
+
+ <div class="jd-tagdata">
+ <span class="jd-tagtitle">Constant Value: </span>
+ <span>
+
+ 6501
+ (0x00001965)
+
+ </span>
+ </div>
+
+ </div>
+</div>
+
+
+
+<A NAME="STATUS_MATCH_ERROR_INVALID_MATCH_RESULTS"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+ static
+ final
+ int
+ </span>
+ STATUS_MATCH_ERROR_INVALID_MATCH_RESULTS
+ </h4>
+ <div class="api-level">
+
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>The match results provided in this API call are invalid. This covers cases of duplicate
+ results, results for players who are not in the match, etc.
+</p></div>
+
+
+ <div class="jd-tagdata">
+ <span class="jd-tagtitle">Constant Value: </span>
+ <span>
+
+ 6504
+ (0x00001968)
+
+ </span>
+ </div>
+
+ </div>
+</div>
+
+
+
+<A NAME="STATUS_MATCH_ERROR_INVALID_MATCH_STATE"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+ static
+ final
+ int
+ </span>
+ STATUS_MATCH_ERROR_INVALID_MATCH_STATE
+ </h4>
+ <div class="api-level">
+
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>The match is not in the correct state to perform the specified action.
+</p></div>
+
+
+ <div class="jd-tagdata">
+ <span class="jd-tagtitle">Constant Value: </span>
+ <span>
+
+ 6502
+ (0x00001966)
+
+ </span>
+ </div>
+
+ </div>
+</div>
+
+
+
+<A NAME="STATUS_MATCH_ERROR_INVALID_PARTICIPANT_STATE"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+ static
+ final
+ int
+ </span>
+ STATUS_MATCH_ERROR_INVALID_PARTICIPANT_STATE
+ </h4>
+ <div class="api-level">
+
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>One or more participants in this match are not in valid states. This could occur if a
+ specified participant is not actually a participant of the match, or is invalid, or is in an
+ incorrect state to make the API call. Check the logs for more detailed information.
+</p></div>
+
<div class="jd-tagdata">
<span class="jd-tagtitle">Constant Value: </span>
<span>
- 7002
- (0x00001b5a)
+ 6500
+ (0x00001964)
</span>
</div>
@@ -3552,7 +4471,7 @@
-<A NAME="STATUS_LICENSE_CHECK_FAILED"></A>
+<A NAME="STATUS_MATCH_ERROR_LOCALLY_MODIFIED"></A>
<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
@@ -3562,7 +4481,7 @@
final
int
</span>
- STATUS_LICENSE_CHECK_FAILED
+ STATUS_MATCH_ERROR_LOCALLY_MODIFIED
</h4>
<div class="api-level">
@@ -3572,7 +4491,8 @@
</div>
<div class="jd-details-descr">
- <div class="jd-tagdata jd-tagdescr"><p>The game is not licensed to the user. Further calls will return the same code.
+ <div class="jd-tagdata jd-tagdescr"><p>The specified match has already been modified locally. This operation cannot be performed
+ until the match has been sent to the server.
</p></div>
@@ -3580,8 +4500,128 @@
<span class="jd-tagtitle">Constant Value: </span>
<span>
- 7
- (0x00000007)
+ 6507
+ (0x0000196b)
+
+ </span>
+ </div>
+
+ </div>
+</div>
+
+
+
+<A NAME="STATUS_MATCH_ERROR_OUT_OF_DATE_VERSION"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+ static
+ final
+ int
+ </span>
+ STATUS_MATCH_ERROR_OUT_OF_DATE_VERSION
+ </h4>
+ <div class="api-level">
+
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>The match data is out of date. Someone else has modified the data on the server, so the
+ request could not be completed safely.
+</p></div>
+
+
+ <div class="jd-tagdata">
+ <span class="jd-tagtitle">Constant Value: </span>
+ <span>
+
+ 6503
+ (0x00001967)
+
+ </span>
+ </div>
+
+ </div>
+</div>
+
+
+
+<A NAME="STATUS_MATCH_NOT_FOUND"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+ static
+ final
+ int
+ </span>
+ STATUS_MATCH_NOT_FOUND
+ </h4>
+ <div class="api-level">
+
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>The specified match cannot be found. The provided match ID does not correspond to any known
+ match.
+</p></div>
+
+
+ <div class="jd-tagdata">
+ <span class="jd-tagtitle">Constant Value: </span>
+ <span>
+
+ 6506
+ (0x0000196a)
+
+ </span>
+ </div>
+
+ </div>
+</div>
+
+
+
+<A NAME="STATUS_MULTIPLAYER_DISABLED"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+ static
+ final
+ int
+ </span>
+ STATUS_MULTIPLAYER_DISABLED
+ </h4>
+ <div class="api-level">
+
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>This game does not support multiplayer. This could occur if the linked app is not configured
+ appropriately in the developer console.
+</p></div>
+
+
+ <div class="jd-tagdata">
+ <span class="jd-tagtitle">Constant Value: </span>
+ <span>
+
+ 6003
+ (0x00001773)
</span>
</div>
@@ -3631,6 +4671,86 @@
+<A NAME="STATUS_MULTIPLAYER_ERROR_INVALID_MULTIPLAYER_TYPE"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+ static
+ final
+ int
+ </span>
+ STATUS_MULTIPLAYER_ERROR_INVALID_MULTIPLAYER_TYPE
+ </h4>
+ <div class="api-level">
+
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>The match is not the right type to perform this action on. For example, this error will be
+ returned when trying to take a turn in a real-time match.
+</p></div>
+
+
+ <div class="jd-tagdata">
+ <span class="jd-tagtitle">Constant Value: </span>
+ <span>
+
+ 6002
+ (0x00001772)
+
+ </span>
+ </div>
+
+ </div>
+</div>
+
+
+
+<A NAME="STATUS_MULTIPLAYER_ERROR_INVALID_OPERATION"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+ static
+ final
+ int
+ </span>
+ STATUS_MULTIPLAYER_ERROR_INVALID_OPERATION
+ </h4>
+ <div class="api-level">
+
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>This multiplayer operation is not valid, and the server rejected it. Check the logs for more
+ information.
+</p></div>
+
+
+ <div class="jd-tagdata">
+ <span class="jd-tagtitle">Constant Value: </span>
+ <span>
+
+ 6004
+ (0x00001774)
+
+ </span>
+ </div>
+
+ </div>
+</div>
+
+
+
<A NAME="STATUS_MULTIPLAYER_ERROR_NOT_TRUSTED_TESTER"></A>
<div class="jd-details api apilevel-">
@@ -3872,6 +4992,45 @@
+<A NAME="STATUS_OPERATION_IN_FLIGHT"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+ static
+ final
+ int
+ </span>
+ STATUS_OPERATION_IN_FLIGHT
+ </h4>
+ <div class="api-level">
+
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Trying to start a join/create operation while another is already in flight.
+</p></div>
+
+
+ <div class="jd-tagdata">
+ <span class="jd-tagtitle">Constant Value: </span>
+ <span>
+
+ 7007
+ (0x00001b5f)
+
+ </span>
+ </div>
+
+ </div>
+</div>
+
+
+
<A NAME="STATUS_PARTICIPANT_NOT_CONNECTED"></A>
<div class="jd-details api apilevel-">
@@ -4130,16 +5289,149 @@
-<A NAME="clearAllNotifications()"></A>
+<A NAME="acceptTurnBasedInvitation(com.google.android.gms.games.multiplayer.turnbased.OnTurnBasedMatchInitiatedListener, java.lang.String)"></A>
<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
public
-
-
-
-
+
+
+
+
+ void
+ </span>
+ <span class="sympad">acceptTurnBasedInvitation</span>
+ <span class="normal">(<a href="/reference/com/google/android/gms/games/multiplayer/turnbased/OnTurnBasedMatchInitiatedListener.html">OnTurnBasedMatchInitiatedListener</a> listener, String invitationId)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Accept an invitation for a turn-based match.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>listener</td>
+ <td>The listener that is called when the match has been accepted. The listener is
+ called on the main thread.</td>
+ </tr>
+ <tr>
+ <th>invitationId</td>
+ <td>The ID of the invitation to be accepted.
+</td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="cancelTurnBasedMatch(java.lang.String)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ void
+ </span>
+ <span class="sympad">cancelTurnBasedMatch</span>
+ <span class="normal">(String matchId)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Cancels a turn-based match. Once this call succeeds, the match will be removed from local
+ storage. Note that this will cancel the match completely, forcing it to end for all players
+ involved. See <code><a href="/reference/com/google/android/gms/games/GamesClient.html#leaveTurnBasedMatch(com.google.android.gms.games.multiplayer.turnbased.OnTurnBasedMatchLeftListener, java.lang.String)">leaveTurnBasedMatch(OnTurnBasedMatchLeftListener, String)</a></code> for a
+ different alternative.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>matchId</td>
+ <td>The ID of the match to cancel.
+</td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="cancelTurnBasedMatch(com.google.android.gms.games.multiplayer.turnbased.OnTurnBasedMatchCanceledListener, java.lang.String)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ void
+ </span>
+ <span class="sympad">cancelTurnBasedMatch</span>
+ <span class="normal">(<a href="/reference/com/google/android/gms/games/multiplayer/turnbased/OnTurnBasedMatchCanceledListener.html">OnTurnBasedMatchCanceledListener</a> listener, String matchId)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Cancels a turn-based match. Once this call succeeds, the match will be removed from local
+ storage. Note that this will cancel the match completely, forcing it to end for all players
+ involved. See <code><a href="/reference/com/google/android/gms/games/GamesClient.html#leaveTurnBasedMatch(com.google.android.gms.games.multiplayer.turnbased.OnTurnBasedMatchLeftListener, java.lang.String)">leaveTurnBasedMatch(OnTurnBasedMatchLeftListener, String)</a></code> for a
+ different alternative.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>listener</td>
+ <td>The listener that is called after the match has been canceled. The listener
+ is called on the main thread.</td>
+ </tr>
+ <tr>
+ <th>matchId</td>
+ <td>The ID of the match to cancel.
+</td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="clearAllNotifications()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
void
</span>
<span class="sympad">clearAllNotifications</span>
@@ -4152,7 +5444,7 @@
</div>
<div class="jd-details-descr">
-
+
<div class="jd-tagdata jd-tagdescr"><p>Clear all notifications for the current game and signed-in player.
</p></div>
@@ -4166,10 +5458,10 @@
<h4 class="jd-details-title">
<span class="normal">
public
-
-
-
-
+
+
+
+
void
</span>
<span class="sympad">clearNotifications</span>
@@ -4208,10 +5500,10 @@
<h4 class="jd-details-title">
<span class="normal">
public
-
-
-
-
+
+
+
+
void
</span>
<span class="sympad">connect</span>
@@ -4240,6 +5532,9 @@
<li><code><a href="/reference/com/google/android/gms/games/GamesClient.html#EXTRA_INVITATION">EXTRA_INVITATION</a></code> if the user wanted to accept an invitation to a multiplayer
game. The value contained here is an <code><a href="/reference/com/google/android/gms/games/multiplayer/Invitation.html">Invitation</a></code> which can be accessed with
<code><a href="/reference/android/os/Bundle.html#getParcelable(java.lang.String)">getParcelable(String)</a></code>.</li>
+ <li><code><a href="/reference/com/google/android/gms/games/GamesClient.html#EXTRA_TURN_BASED_MATCH">EXTRA_TURN_BASED_MATCH</a></code> if the user wanted to take action in a turn-based match.
+ The value contained here is a <code><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html">TurnBasedMatch</a></code> which can be accessed with
+ <code><a href="/reference/android/os/Bundle.html#getParcelable(java.lang.String)">getParcelable(String)</a></code>.</li>
</ul></p></div>
<div class="jd-tagdata">
<h5 class="jd-tagtitle">See Also</h5>
@@ -4257,10 +5552,10 @@
<h4 class="jd-details-title">
<span class="normal">
public
-
-
-
-
+
+
+
+
void
</span>
<span class="sympad">createRoom</span>
@@ -4295,16 +5590,64 @@
</div>
+<A NAME="createTurnBasedMatch(com.google.android.gms.games.multiplayer.turnbased.OnTurnBasedMatchInitiatedListener, com.google.android.gms.games.multiplayer.turnbased.TurnBasedMatchConfig)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ void
+ </span>
+ <span class="sympad">createTurnBasedMatch</span>
+ <span class="normal">(<a href="/reference/com/google/android/gms/games/multiplayer/turnbased/OnTurnBasedMatchInitiatedListener.html">OnTurnBasedMatchInitiatedListener</a> listener, <a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatchConfig.html">TurnBasedMatchConfig</a> config)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Create a turn-based match for the current game.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>listener</td>
+ <td>The listener that is called when the match has been created. The listener is
+ called on the main thread.</td>
+ </tr>
+ <tr>
+ <th>config</td>
+ <td>The configuration parameters for the match to create.</td>
+ </tr>
+ </table>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">See Also</h5>
+ <ul class="nolist"><li><code><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatchConfig.html">TurnBasedMatchConfig</a></code></li>
+ </ul>
+ </div>
+
+ </div>
+</div>
+
+
<A NAME="declineRoomInvitation(java.lang.String)"></A>
<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
public
-
-
-
-
+
+
+
+
void
</span>
<span class="sympad">declineRoomInvitation</span>
@@ -4334,6 +5677,45 @@
</div>
+<A NAME="declineTurnBasedInvitation(java.lang.String)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ void
+ </span>
+ <span class="sympad">declineTurnBasedInvitation</span>
+ <span class="normal">(String invitationId)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Decline an invitation for a turn-based match.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>invitationId</td>
+ <td>The ID of the invitation to decline.
+</td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
<A NAME="disconnect()"></A>
<div class="jd-details api apilevel-">
@@ -4404,6 +5786,260 @@
</div>
+<A NAME="dismissTurnBasedInvitation(java.lang.String)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ void
+ </span>
+ <span class="sympad">dismissTurnBasedInvitation</span>
+ <span class="normal">(String invitationId)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Dismiss an invitation to a turn-based match. Dismissing an invitation will not change the
+ state of the match for the other participants.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>invitationId</td>
+ <td>The ID of the invitation to dismiss.
+</td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="dismissTurnBasedMatch(java.lang.String)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ void
+ </span>
+ <span class="sympad">dismissTurnBasedMatch</span>
+ <span class="normal">(String matchId)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Delete a match from the server and local storage. Dismissing a match will not change the
+ state of the match for the other participants, but dismissed matches will never be shown to
+ the dismissing player again.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>matchId</td>
+ <td>The ID of the match to dismiss.
+</td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="finishTurnBasedMatch(com.google.android.gms.games.multiplayer.turnbased.OnTurnBasedMatchUpdatedListener, java.lang.String, byte[], java.util.List<com.google.android.gms.games.multiplayer.ParticipantResult>)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ void
+ </span>
+ <span class="sympad">finishTurnBasedMatch</span>
+ <span class="normal">(<a href="/reference/com/google/android/gms/games/multiplayer/turnbased/OnTurnBasedMatchUpdatedListener.html">OnTurnBasedMatchUpdatedListener</a> listener, String matchId, byte[] matchData, List<<a href="/reference/com/google/android/gms/games/multiplayer/ParticipantResult.html">ParticipantResult</a>> results)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Mark a match as finished. This should be called when the match is over and all participants
+ have results to be reported (if appropriate). Note that the last client to update a match is
+ responsible for calling finish on that match.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>listener</td>
+ <td>The listener that is called when the match has been updated. The listener is
+ called on the main thread.</td>
+ </tr>
+ <tr>
+ <th>matchId</td>
+ <td>ID of the match to finish.</td>
+ </tr>
+ <tr>
+ <th>matchData</td>
+ <td>Data representing the new state of the match after this update. Limited to a
+ maximum of <code><a href="/reference/com/google/android/gms/games/GamesClient.html#getMaxTurnBasedMatchDataSize()">getMaxTurnBasedMatchDataSize()</a></code> bytes.</td>
+ </tr>
+ <tr>
+ <th>results</td>
+ <td>List of <code><a href="/reference/com/google/android/gms/games/multiplayer/ParticipantResult.html">ParticipantResult</a></code> objects for this match. The client which
+ calls <code>finishMatch</code> is responsible for reporting the results for all
+ appropriate participants in the match. Not every participant is required to have a
+ result, but providing results for participants who are not in the match is an
+ error.
+</td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="finishTurnBasedMatch(com.google.android.gms.games.multiplayer.turnbased.OnTurnBasedMatchUpdatedListener, java.lang.String)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ void
+ </span>
+ <span class="sympad">finishTurnBasedMatch</span>
+ <span class="normal">(<a href="/reference/com/google/android/gms/games/multiplayer/turnbased/OnTurnBasedMatchUpdatedListener.html">OnTurnBasedMatchUpdatedListener</a> listener, String matchId)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Indicate that a participant is finished with a match. This will not change the data of the
+ match, but it will transition the match into state
+ <code><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html#MATCH_STATUS_COMPLETE">MATCH_STATUS_COMPLETE</a></code> if the match is not already in that state. This
+ method is most commonly used to report that a participant has finished any post-processing
+ steps the game might have and has seen their results in the match.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>listener</td>
+ <td>The listener that is called when the match has been updated. The listener is
+ called on the main thread.</td>
+ </tr>
+ <tr>
+ <th>matchId</td>
+ <td>ID of the match to finish.
+</td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="finishTurnBasedMatch(com.google.android.gms.games.multiplayer.turnbased.OnTurnBasedMatchUpdatedListener, java.lang.String, byte[], com.google.android.gms.games.multiplayer.ParticipantResult...)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ void
+ </span>
+ <span class="sympad">finishTurnBasedMatch</span>
+ <span class="normal">(<a href="/reference/com/google/android/gms/games/multiplayer/turnbased/OnTurnBasedMatchUpdatedListener.html">OnTurnBasedMatchUpdatedListener</a> listener, String matchId, byte[] matchData, <a href="/reference/com/google/android/gms/games/multiplayer/ParticipantResult.html">ParticipantResult...</a> results)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Mark a match as finished. This should be called when the match is over and all participants
+ have results to be reported (if appropriate). Note that the last client to update a match is
+ responsible for calling finish on that match.
+ <p>
+ On the last turn of the match, the client should call this method instead of
+ <code><a href="/reference/com/google/android/gms/games/GamesClient.html#takeTurn(com.google.android.gms.games.multiplayer.turnbased.OnTurnBasedMatchUpdatedListener, java.lang.String, byte[], java.lang.String)">takeTurn(OnTurnBasedMatchUpdatedListener, String, byte[], String)</a></code>.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>listener</td>
+ <td>The listener that is called when the match has been updated. The listener is
+ called on the main thread.</td>
+ </tr>
+ <tr>
+ <th>matchId</td>
+ <td>ID of the match to finish.</td>
+ </tr>
+ <tr>
+ <th>matchData</td>
+ <td>Data representing the new state of the match after this update. Limited to a
+ maximum of <code><a href="/reference/com/google/android/gms/games/GamesClient.html#getMaxTurnBasedMatchDataSize()">getMaxTurnBasedMatchDataSize()</a></code> bytes.</td>
+ </tr>
+ <tr>
+ <th>results</td>
+ <td>List of <code><a href="/reference/com/google/android/gms/games/multiplayer/ParticipantResult.html">ParticipantResult</a></code> objects for this match. The client which
+ calls <code>finishMatch</code> is responsible for reporting the results for all
+ appropriate participants in the match. Not every participant is required to have a
+ result, but providing results for participants who are not in the match is an
+ error.</td>
+ </tr>
+ </table>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">See Also</h5>
+ <ul class="nolist"><li><code><a href="/reference/com/google/android/gms/games/GamesClient.html#takeTurn(com.google.android.gms.games.multiplayer.turnbased.OnTurnBasedMatchUpdatedListener, java.lang.String, byte[], java.lang.String)">takeTurn(OnTurnBasedMatchUpdatedListener, String, byte[], String)</a></code></li>
+ </ul>
+ </div>
+
+ </div>
+</div>
+
+
<A NAME="getAchievementsIntent()"></A>
<div class="jd-details api apilevel-">
@@ -4656,12 +6292,12 @@
</h4>
<div class="api-level">
<div></div>
-
-
+
+
</div>
<div class="jd-details-descr">
-
+
<div class="jd-tagdata jd-tagdescr"><p></p></div>
<div class="jd-tagdata">
<h5 class="jd-tagtitle">Returns</h5>
@@ -4676,14 +6312,14 @@
<A NAME="getInvitationInboxIntent()"></A>
-<div class="jd-details api apilevel-">
+<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
- public
-
-
-
-
+ public
+
+
+
+
Intent
</span>
<span class="sympad">getInvitationInboxIntent</span>
@@ -4691,12 +6327,12 @@
</h4>
<div class="api-level">
<div></div>
-
-
+
+
</div>
<div class="jd-details-descr">
-
+
<div class="jd-tagdata jd-tagdescr"><p>Returns an intent that will let the user see and manage any outstanding invitations. Note
that this must be invoked using <code><a href="/reference/android/app/Activity.html#startActivityForResult(android.content.Intent, int)">startActivityForResult(Intent, int)</a></code> so that
the identity of the calling package can be established.
@@ -4717,14 +6353,14 @@
<A NAME="getLeaderboardIntent(java.lang.String)"></A>
-<div class="jd-details api apilevel-">
+<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
- public
-
-
-
-
+ public
+
+
+
+
Intent
</span>
<span class="sympad">getLeaderboardIntent</span>
@@ -4732,12 +6368,12 @@
</h4>
<div class="api-level">
<div></div>
-
-
+
+
</div>
<div class="jd-details-descr">
-
+
<div class="jd-tagdata jd-tagdescr"><p>Gets an intent to show a leaderboard for a game. Note that this must be invoked with
<code><a href="/reference/android/app/Activity.html#startActivityForResult(android.content.Intent, int)">startActivityForResult(Intent, int)</a></code>, so that the identity of the calling
package can be established.
@@ -4764,6 +6400,135 @@
</div>
+<A NAME="getMatchInboxIntent()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ Intent
+ </span>
+ <span class="sympad">getMatchInboxIntent</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Returns an intent that will let the user see and manage any outstanding invitations and
+ matches. Note that this must be invoked using
+ <code><a href="/reference/android/app/Activity.html#startActivityForResult(android.content.Intent, int)">startActivityForResult(Intent, int)</a></code> so that the identity of the calling
+ package can be established.
+ <p>
+ If the user canceled the result will be <code><a href="/reference/android/app/Activity.html#RESULT_CANCELED">RESULT_CANCELED</a></code>. If the user
+ selected an invitation or a match to accept, the result will be <code><a href="/reference/android/app/Activity.html#RESULT_OK">RESULT_OK</a></code>
+ and the data intent will contain the selected invitation/match as a parcelable extra in the
+ extras. Based on the type of the match, the result will include either
+ <code><a href="/reference/com/google/android/gms/games/GamesClient.html#EXTRA_TURN_BASED_MATCH">EXTRA_TURN_BASED_MATCH</a></code> or <code><a href="/reference/com/google/android/gms/games/GamesClient.html#EXTRA_INVITATION">EXTRA_INVITATION</a></code>.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>An <code><a href="/reference/android/content/Intent.html">Intent</a></code> that can be started to view the match inbox.
+</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="getMaxTurnBasedMatchDataSize()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ int
+ </span>
+ <span class="sympad">getMaxTurnBasedMatchDataSize</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Gets the maximum data size per match in bytes. Guaranteed to be at least 128 KB. May increase
+ in the future.
+ <p>
+ If the service cannot be reached for some reason, this will return
+ <code><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_CLIENT_RECONNECT_REQUIRED">STATUS_CLIENT_RECONNECT_REQUIRED</a></code>. In this case, no further operations should be
+ attempted until after the client has reconnected.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>The maximum data size per match in bytes.
+</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="getPlayerSearchIntent()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ Intent
+ </span>
+ <span class="sympad">getPlayerSearchIntent</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Returns an intent that will display a screen where the user can search for people
+ on Google+. Note that this must be invoked with
+ <code><a href="/reference/android/app/Activity.html#startActivityForResult(android.content.Intent, int)">startActivityForResult(Intent, int)</a></code>, so that the identity of the
+ calling package can be established.
+ <p>
+ If the user canceled, the result will be <code><a href="/reference/android/app/Activity.html#RESULT_CANCELED">RESULT_CANCELED</a></code>. If the
+ user selected any players from the search results list, the result will be
+ <code><a href="/reference/android/app/Activity.html#RESULT_OK">RESULT_OK</a></code>, and the data intent will contain a list of parceled
+ Player objects in <code><a href="/reference/com/google/android/gms/games/GamesClient.html#EXTRA_PLAYER_SEARCH_RESULTS">EXTRA_PLAYER_SEARCH_RESULTS</a></code>.
+ <p>
+ Note that the current Player Search UI only allows a single selection, so the
+ returned list of parceled Player objects will currently contain at most one
+ Player. The Player Search UI may allow multiple selections in a future release,
+ though.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>An <code><a href="/reference/android/content/Intent.html">Intent</a></code> that can be started to display the player selector.
+</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
<A NAME="getRealTimeSocketForParticipant(java.lang.String, java.lang.String)"></A>
<div class="jd-details api apilevel-">
@@ -4938,7 +6703,10 @@
contain the selected player IDs in <code><a href="/reference/com/google/android/gms/games/GamesClient.html#EXTRA_PLAYERS">EXTRA_PLAYERS</a></code> and the minimum and maximum numbers
of additional auto-match players in <code><a href="/reference/com/google/android/gms/games/GamesClient.html#EXTRA_MIN_AUTOMATCH_PLAYERS">EXTRA_MIN_AUTOMATCH_PLAYERS</a></code> and
<code><a href="/reference/com/google/android/gms/games/GamesClient.html#EXTRA_MAX_AUTOMATCH_PLAYERS">EXTRA_MAX_AUTOMATCH_PLAYERS</a></code> respectively. The player IDs in <code><a href="/reference/com/google/android/gms/games/GamesClient.html#EXTRA_PLAYERS">EXTRA_PLAYERS</a></code>
- will include only the other players selected, not the current player.</p></div>
+ will include only the other players selected, not the current player.
+ <p>
+ This method is the equivalent of calling <code><a href="/reference/com/google/android/gms/games/GamesClient.html#getSelectPlayersIntent(int, int, boolean)">getSelectPlayersIntent(int, int, boolean)</a></code>
+ with the <code>allowAutomatch</code> parameter set to true.</p></div>
<div class="jd-tagdata">
<h5 class="jd-tagtitle">Parameters</h5>
<table class="jd-tagtable">
@@ -4958,7 +6726,79 @@
</div>
<div class="jd-tagdata">
<h5 class="jd-tagtitle">See Also</h5>
- <ul class="nolist"><li><code><a href="/reference/com/google/android/gms/games/GamesClient.html#createRoom(com.google.android.gms.games.multiplayer.realtime.RoomConfig)">createRoom(RoomConfig)</a></code></li>
+ <ul class="nolist"><li><code><a href="/reference/com/google/android/gms/games/GamesClient.html#createTurnBasedMatch(com.google.android.gms.games.multiplayer.turnbased.OnTurnBasedMatchInitiatedListener, com.google.android.gms.games.multiplayer.turnbased.TurnBasedMatchConfig)">createTurnBasedMatch(OnTurnBasedMatchInitiatedListener, TurnBasedMatchConfig)</a></code></li><li><code><a href="/reference/com/google/android/gms/games/GamesClient.html#createRoom(com.google.android.gms.games.multiplayer.realtime.RoomConfig)">createRoom(RoomConfig)</a></code></li>
+ </ul>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="getSelectPlayersIntent(int, int, boolean)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ Intent
+ </span>
+ <span class="sympad">getSelectPlayersIntent</span>
+ <span class="normal">(int minPlayers, int maxPlayers, boolean allowAutomatch)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Returns an intent that will let the user select players to send an invitation to. Note that
+ this must be invoked with <code><a href="/reference/android/app/Activity.html#startActivityForResult(android.content.Intent, int)">startActivityForResult(Intent, int)</a></code>, so that the
+ identity of the calling package can be established.
+ <p>
+ The number of players passed in should be the desired number of additional players to select,
+ not including the current player. So, for a game that can handle between 2 and 4 players,
+ <code>minPlayers</code> would be 1 and <code>maxPlayers</code> would be 3.
+ <p>
+ If the user canceled, the result will be <code><a href="/reference/android/app/Activity.html#RESULT_CANCELED">RESULT_CANCELED</a></code>. If the user
+ selected players, the result will be <code><a href="/reference/android/app/Activity.html#RESULT_OK">RESULT_OK</a></code>, and the data intent will
+ contain the selected player IDs in <code><a href="/reference/com/google/android/gms/games/GamesClient.html#EXTRA_PLAYERS">EXTRA_PLAYERS</a></code> and the minimum and maximum numbers
+ of additional auto-match players in <code><a href="/reference/com/google/android/gms/games/GamesClient.html#EXTRA_MIN_AUTOMATCH_PLAYERS">EXTRA_MIN_AUTOMATCH_PLAYERS</a></code> and
+ <code><a href="/reference/com/google/android/gms/games/GamesClient.html#EXTRA_MAX_AUTOMATCH_PLAYERS">EXTRA_MAX_AUTOMATCH_PLAYERS</a></code> respectively. The player IDs in <code><a href="/reference/com/google/android/gms/games/GamesClient.html#EXTRA_PLAYERS">EXTRA_PLAYERS</a></code>
+ will include only the other players selected, not the current player.
+ <p>
+ If the <code>allowAutomatch</code> parameter is set to false, the UI will not display an option
+ for selecting automatch players. Set this to false if your game does not support
+ automatching.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>minPlayers</td>
+ <td>The minimum number of players to select (not including the current player).</td>
+ </tr>
+ <tr>
+ <th>maxPlayers</td>
+ <td>The maximum number of players to select (not including the current player).</td>
+ </tr>
+ <tr>
+ <th>allowAutomatch</td>
+ <td>Whether or not to display an option for selecting automatch players.</td>
+ </tr>
+ </table>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>An <code><a href="/reference/android/content/Intent.html">Intent</a></code> that can be started to display the player selector.</li></ul>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">See Also</h5>
+ <ul class="nolist"><li><code><a href="/reference/com/google/android/gms/games/GamesClient.html#createTurnBasedMatch(com.google.android.gms.games.multiplayer.turnbased.OnTurnBasedMatchInitiatedListener, com.google.android.gms.games.multiplayer.turnbased.TurnBasedMatchConfig)">createTurnBasedMatch(OnTurnBasedMatchInitiatedListener, TurnBasedMatchConfig)</a></code></li><li><code><a href="/reference/com/google/android/gms/games/GamesClient.html#createRoom(com.google.android.gms.games.multiplayer.realtime.RoomConfig)">createRoom(RoomConfig)</a></code></li>
</ul>
</div>
@@ -5011,6 +6851,50 @@
</div>
+<A NAME="getTurnBasedMatch(com.google.android.gms.games.multiplayer.turnbased.OnTurnBasedMatchLoadedListener, java.lang.String)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ void
+ </span>
+ <span class="sympad">getTurnBasedMatch</span>
+ <span class="normal">(<a href="/reference/com/google/android/gms/games/multiplayer/turnbased/OnTurnBasedMatchLoadedListener.html">OnTurnBasedMatchLoadedListener</a> listener, String matchId)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Load a specified turn-based match.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>listener</td>
+ <td>The listener that is called when the load is complete. The listener is called
+ on the main thread.</td>
+ </tr>
+ <tr>
+ <th>matchId</td>
+ <td>The ID of the match to retreive.
+</td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
<A NAME="incrementAchievement(java.lang.String, int)"></A>
<div class="jd-details api apilevel-">
@@ -5371,6 +7255,112 @@
</div>
+<A NAME="leaveTurnBasedMatch(com.google.android.gms.games.multiplayer.turnbased.OnTurnBasedMatchLeftListener, java.lang.String)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ void
+ </span>
+ <span class="sympad">leaveTurnBasedMatch</span>
+ <span class="normal">(<a href="/reference/com/google/android/gms/games/multiplayer/turnbased/OnTurnBasedMatchLeftListener.html">OnTurnBasedMatchLeftListener</a> listener, String matchId)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Leave the specified match when it is not the current player's turn. If this takes the match
+ to fewer than two participants, the match will be canceled.
+ <p>
+ See <code><a href="/reference/com/google/android/gms/games/GamesClient.html#leaveTurnBasedMatchDuringTurn(com.google.android.gms.games.multiplayer.turnbased.OnTurnBasedMatchLeftListener, java.lang.String, java.lang.String)">leaveTurnBasedMatchDuringTurn(OnTurnBasedMatchLeftListener, String, String)</a></code> for
+ the form of the API to call during the current player's turn.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>listener</td>
+ <td>The listener that is called after the match has been left. The listener is
+ called on the main thread.</td>
+ </tr>
+ <tr>
+ <th>matchId</td>
+ <td>ID of the match to leave.
+</td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="leaveTurnBasedMatchDuringTurn(com.google.android.gms.games.multiplayer.turnbased.OnTurnBasedMatchLeftListener, java.lang.String, java.lang.String)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ void
+ </span>
+ <span class="sympad">leaveTurnBasedMatchDuringTurn</span>
+ <span class="normal">(<a href="/reference/com/google/android/gms/games/multiplayer/turnbased/OnTurnBasedMatchLeftListener.html">OnTurnBasedMatchLeftListener</a> listener, String matchId, String pendingParticipantId)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Leave the specified match during the current player's turn. If this takes the match to fewer
+ than two participants, the match will be canceled. The provided <code>pendingParticipantId</code>
+ will be used to determine which participant should act next. If no pending participant is
+ provided and the match has available auto-match slots, the match will wait for additional
+ players to be found. If there are no auto-match slots available for this match, a pending
+ participant ID is required.
+ <p>
+ See <code><a href="/reference/com/google/android/gms/games/GamesClient.html#leaveTurnBasedMatch(com.google.android.gms.games.multiplayer.turnbased.OnTurnBasedMatchLeftListener, java.lang.String)">leaveTurnBasedMatch(OnTurnBasedMatchLeftListener, String)</a></code> for the form of the
+ API to call when it is not the current player's turn.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>listener</td>
+ <td>The listener that is called after the match has been left. The listener is
+ called on the main thread.</td>
+ </tr>
+ <tr>
+ <th>matchId</td>
+ <td>ID of the match to leave.</td>
+ </tr>
+ <tr>
+ <th>pendingParticipantId</td>
+ <td>ID of the participant who will be set to pending after this
+ update succeeds, or <code>null</code> to wait for additional automatched players (if
+ possible).
+</td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
<A NAME="loadAchievements(com.google.android.gms.games.achievement.OnAchievementsLoadedListener, boolean)"></A>
<div class="jd-details api apilevel-">
@@ -5421,6 +7411,63 @@
</div>
+<A NAME="loadCurrentPlayerLeaderboardScore(com.google.android.gms.games.leaderboard.OnPlayerLeaderboardScoreLoadedListener, java.lang.String, int, int)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ void
+ </span>
+ <span class="sympad">loadCurrentPlayerLeaderboardScore</span>
+ <span class="normal">(<a href="/reference/com/google/android/gms/games/leaderboard/OnPlayerLeaderboardScoreLoadedListener.html">OnPlayerLeaderboardScoreLoadedListener</a> listener, String leaderboardId, int span, int leaderboardCollection)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Asynchronously load the currently signed in player's score for a given leaderboard.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>listener</td>
+ <td>The listener that is called when the load is complete. The listener is called
+ on the main thread.</td>
+ </tr>
+ <tr>
+ <th>leaderboardId</td>
+ <td>ID of the leaderboard to load the score from.</td>
+ </tr>
+ <tr>
+ <th>span</td>
+ <td>Time span to retrieve data for. Valid values are
+ <code><a href="/reference/com/google/android/gms/games/leaderboard/LeaderboardVariant.html#TIME_SPAN_DAILY">TIME_SPAN_DAILY</a></code>,
+ <code><a href="/reference/com/google/android/gms/games/leaderboard/LeaderboardVariant.html#TIME_SPAN_WEEKLY">TIME_SPAN_WEEKLY</a></code>, or
+ <code><a href="/reference/com/google/android/gms/games/leaderboard/LeaderboardVariant.html#TIME_SPAN_ALL_TIME">TIME_SPAN_ALL_TIME</a></code>.</td>
+ </tr>
+ <tr>
+ <th>leaderboardCollection</td>
+ <td>The leaderboard collection to retrieve scores for. Valid values
+ are either <code><a href="/reference/com/google/android/gms/games/leaderboard/LeaderboardVariant.html#COLLECTION_PUBLIC">COLLECTION_PUBLIC</a></code> or
+ <code><a href="/reference/com/google/android/gms/games/leaderboard/LeaderboardVariant.html#COLLECTION_SOCIAL">COLLECTION_SOCIAL</a></code>.
+</td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
<A NAME="loadGame(com.google.android.gms.games.OnGamesLoadedListener)"></A>
<div class="jd-details api apilevel-">
@@ -5612,103 +7659,6 @@
</div>
-<A NAME="loadLeaderboardMetadata(com.google.android.gms.games.leaderboard.OnLeaderboardMetadataLoadedListener, java.lang.String)"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
-
-
- void
- </span>
- <span class="sympad">loadLeaderboardMetadata</span>
- <span class="normal">(<a href="/reference/com/google/android/gms/games/leaderboard/OnLeaderboardMetadataLoadedListener.html">OnLeaderboardMetadataLoadedListener</a> listener, String leaderboardId)</span>
- </h4>
- <div class="api-level">
- <div></div>
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>Asynchronously load a specific leaderboard's metadata for this game.
- <p>
- The result is delivered to the given listener on the main thread. If <code><a href="/reference/com/google/android/gms/games/GamesClient.html#disconnect()">disconnect()</a></code> is
- called before the result is ready it will not be delivered.
- <p>
- This form of the API is deprecated and will be removed in a future release. Please use
- <code><a href="/reference/com/google/android/gms/games/GamesClient.html#loadLeaderboardMetadata(com.google.android.gms.games.leaderboard.OnLeaderboardMetadataLoadedListener, java.lang.String, boolean)">loadLeaderboardMetadata(OnLeaderboardMetadataLoadedListener, String, boolean)</a></code>
- instead.</p></div>
- <div class="jd-tagdata">
- <h5 class="jd-tagtitle">Parameters</h5>
- <table class="jd-tagtable">
- <tr>
- <th>listener</td>
- <td>The listener that is called when the load is complete. The listener is called
- on the main thread.</td>
- </tr>
- <tr>
- <th>leaderboardId</td>
- <td>ID of the leaderboard to load metadata for.
-</td>
- </tr>
- </table>
- </div>
-
- </div>
-</div>
-
-
-<A NAME="loadLeaderboardMetadata(com.google.android.gms.games.leaderboard.OnLeaderboardMetadataLoadedListener)"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
-
-
- void
- </span>
- <span class="sympad">loadLeaderboardMetadata</span>
- <span class="normal">(<a href="/reference/com/google/android/gms/games/leaderboard/OnLeaderboardMetadataLoadedListener.html">OnLeaderboardMetadataLoadedListener</a> listener)</span>
- </h4>
- <div class="api-level">
- <div></div>
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>Asynchronously load the list of leaderboard metadata for this game.
- <p>
- The result is delivered to the given listener on the main thread. If <code><a href="/reference/com/google/android/gms/games/GamesClient.html#disconnect()">disconnect()</a></code> is
- called before the result is ready it will not be delivered.
- <p>
- This form of the API is deprecated and will be removed in a future release. Please use
- <code><a href="/reference/com/google/android/gms/games/GamesClient.html#loadLeaderboardMetadata(com.google.android.gms.games.leaderboard.OnLeaderboardMetadataLoadedListener, boolean)">loadLeaderboardMetadata(OnLeaderboardMetadataLoadedListener, boolean)</a></code> instead.</p></div>
- <div class="jd-tagdata">
- <h5 class="jd-tagtitle">Parameters</h5>
- <table class="jd-tagtable">
- <tr>
- <th>listener</td>
- <td>The listener that is called when the load is complete. The listener is called
- on the main thread.
-</td>
- </tr>
- </table>
- </div>
-
- </div>
-</div>
-
-
<A NAME="loadLeaderboardMetadata(com.google.android.gms.games.leaderboard.OnLeaderboardMetadataLoadedListener, java.lang.String, boolean)"></A>
<div class="jd-details api apilevel-">
@@ -6189,6 +8139,62 @@
</div>
+<A NAME="loadTurnBasedMatches(com.google.android.gms.games.multiplayer.turnbased.OnTurnBasedMatchesLoadedListener, int...)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ void
+ </span>
+ <span class="sympad">loadTurnBasedMatches</span>
+ <span class="normal">(<a href="/reference/com/google/android/gms/games/multiplayer/turnbased/OnTurnBasedMatchesLoadedListener.html">OnTurnBasedMatchesLoadedListener</a> listener, int... matchTurnStatuses)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Asynchronously load turn-based matches for the current game. Matches with any specified turn
+ status codes will be returned to the provided listener.
+ <p>
+ Valid turn status values are <code><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html#MATCH_TURN_STATUS_INVITED">MATCH_TURN_STATUS_INVITED</a></code>,
+ <code><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html#MATCH_TURN_STATUS_MY_TURN">MATCH_TURN_STATUS_MY_TURN</a></code>,
+ <code><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html#MATCH_TURN_STATUS_THEIR_TURN">MATCH_TURN_STATUS_THEIR_TURN</a></code>, or
+ <code><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html#MATCH_TURN_STATUS_COMPLETE">MATCH_TURN_STATUS_COMPLETE</a></code>. Note that if your game implements both
+ turn-based and real-time multiplayer, requesting
+ <code><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html#MATCH_TURN_STATUS_INVITED">MATCH_TURN_STATUS_INVITED</a></code> will return invitations for both turn-based
+ matches and real-time matches.
+ <p>
+ The result is delivered to the given listener on the main thread. If <code><a href="/reference/com/google/android/gms/games/GamesClient.html#disconnect()">disconnect()</a></code> is
+ called before the result is ready it will not be delivered.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>listener</td>
+ <td>The listener that is called when the load is complete. The listener is called
+ on the main thread.</td>
+ </tr>
+ <tr>
+ <th>matchTurnStatuses</td>
+ <td>List of turn statuses to request.
+</td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
<A NAME="reconnect()"></A>
<div class="jd-details api apilevel-">
@@ -6217,10 +8223,10 @@
This method closes the current connection then returns immediately and reconnects to the
service in the background.
<p>
- This method will call <code><a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.ConnectionCallbacks.html#onDisconnected()">onDisconnected()</a></code>
- followed by either <code><a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.ConnectionCallbacks.html#onConnected(android.os.Bundle)">onConnected(Bundle)</a></code>
- if the connection is successful or
- <code><a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.OnConnectionFailedListener.html#onConnectionFailed(com.google.android.gms.common.ConnectionResult)">onConnectionFailed(ConnectionResult)</a></code> on a failure.</p></div>
+ As with a regular <code><a href="/reference/com/google/android/gms/games/GamesClient.html#connect()">connect()</a></code> call, a call to this method will be followed by either
+ <code><a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.ConnectionCallbacks.html#onConnected(android.os.Bundle)">onConnected(Bundle)</a></code> if the connection is
+ successful or <code><a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.OnConnectionFailedListener.html#onConnectionFailed(com.google.android.gms.common.ConnectionResult)">onConnectionFailed(ConnectionResult)</a></code>
+ on a failure.</p></div>
<div class="jd-tagdata">
<h5 class="jd-tagtitle">See Also</h5>
<ul class="nolist"><li><code><a href="/reference/com/google/android/gms/games/GamesClient.html#connect()">connect()</a></code></li><li><code><a href="/reference/com/google/android/gms/games/GamesClient.html#disconnect()">disconnect()</a></code></li><li><code><a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.html#connect()">connect()</a></code></li>
@@ -6233,14 +8239,14 @@
<A NAME="registerConnectionCallbacks(com.google.android.gms.common.GooglePlayServicesClient.ConnectionCallbacks)"></A>
-<div class="jd-details api apilevel-">
+<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
- public
-
-
-
-
+ public
+
+
+
+
void
</span>
<span class="sympad">registerConnectionCallbacks</span>
@@ -6248,12 +8254,12 @@
</h4>
<div class="api-level">
<div></div>
-
-
+
+
</div>
<div class="jd-details-descr">
-
+
<div class="jd-tagdata jd-tagdescr"><p>Registers a listener to receive connection events from this <code>GooglePlayServicesClient</code>.
If the service is already connected, the listener's <code><a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.ConnectionCallbacks.html#onConnected(android.os.Bundle)">onConnected(Bundle)</a></code>
method will be called immediately. Applications should balance calls to this method with
@@ -6285,14 +8291,14 @@
<A NAME="registerConnectionFailedListener(com.google.android.gms.common.GooglePlayServicesClient.OnConnectionFailedListener)"></A>
-<div class="jd-details api apilevel-">
+<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
- public
-
-
-
-
+ public
+
+
+
+
void
</span>
<span class="sympad">registerConnectionFailedListener</span>
@@ -6300,12 +8306,12 @@
</h4>
<div class="api-level">
<div></div>
-
-
+
+
</div>
<div class="jd-details-descr">
-
+
<div class="jd-tagdata jd-tagdescr"><p>Registers a listener to receive connection failed events from this
<code>GooglePlayServicesClient</code>. Unlike <code><a href="/reference/com/google/android/gms/common/GooglePlayServicesClient.html#registerConnectionCallbacks(com.google.android.gms.common.GooglePlayServicesClient.ConnectionCallbacks)">registerConnectionCallbacks(GooglePlayServicesClient.ConnectionCallbacks)</a></code>, if the service
is not already connected, the listener's
@@ -6362,8 +8368,9 @@
listener is registered by this method, the incoming invitation will not generate a status bar
notification as long as this client remains connected.
<p>
- Note that only one listener may be active at a time. Calling this method while another
- listener was previously registered will replace the original listener with the new one.</p></div>
+ Note that only one invitation listener may be active at a time. Calling this method while
+ another invitation listener was previously registered will replace the original listener with
+ the new one.</p></div>
<div class="jd-tagdata">
<h5 class="jd-tagtitle">Parameters</h5>
<table class="jd-tagtable">
@@ -6380,6 +8387,98 @@
</div>
+<A NAME="registerMatchUpdateListener(com.google.android.gms.games.multiplayer.turnbased.OnTurnBasedMatchUpdateReceivedListener)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ void
+ </span>
+ <span class="sympad">registerMatchUpdateListener</span>
+ <span class="normal">(<a href="/reference/com/google/android/gms/games/multiplayer/turnbased/OnTurnBasedMatchUpdateReceivedListener.html">OnTurnBasedMatchUpdateReceivedListener</a> listener)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Register a listener to intercept incoming match updates for the currently signed-in user. If
+ a listener is registered by this method, the incoming match update will not generate a status
+ bar notification as long as this client remains connected.
+ <p>
+ Note that only one match update listener may be active at a time. Calling this method while
+ another match update listener was previously registered will replace the original listener
+ with the new one.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>listener</td>
+ <td>The listener that is called when a match update is received. The listener is
+ called on the main thread.
+</td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="rematchTurnBasedMatch(com.google.android.gms.games.multiplayer.turnbased.OnTurnBasedMatchInitiatedListener, java.lang.String)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ void
+ </span>
+ <span class="sympad">rematchTurnBasedMatch</span>
+ <span class="normal">(<a href="/reference/com/google/android/gms/games/multiplayer/turnbased/OnTurnBasedMatchInitiatedListener.html">OnTurnBasedMatchInitiatedListener</a> listener, String matchId)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Create a rematch of a previously completed turn-based match. The new match will have the same
+ participants as the previous match. Note that only one rematch may be created from any single
+ completed match.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>listener</td>
+ <td>The listener that is called when the match has been created. The listener is
+ called on the main thread.</td>
+ </tr>
+ <tr>
+ <th>matchId</td>
+ <td>The ID of the previous match to re-create.
+</td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
<A NAME="revealAchievement(java.lang.String)"></A>
<div class="jd-details api apilevel-">
@@ -6867,46 +8966,6 @@
</div>
-<A NAME="setUseNewPlayerNotificationsFirstParty(boolean)"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
-
-
- void
- </span>
- <span class="sympad">setUseNewPlayerNotificationsFirstParty</span>
- <span class="normal">(boolean newPlayerStyle)</span>
- </h4>
- <div class="api-level">
- <div></div>
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>Set whether or not to use the "new player" style notifications for the invitation inbox or
- destination app.</p></div>
- <div class="jd-tagdata">
- <h5 class="jd-tagtitle">Parameters</h5>
- <table class="jd-tagtable">
- <tr>
- <th>newPlayerStyle</td>
- <td>Whether or not to use "new player" notifications.
-</td>
- </tr>
- </table>
- </div>
-
- </div>
-</div>
-
-
<A NAME="setViewForPopups(android.view.View)"></A>
<div class="jd-details api apilevel-">
@@ -7319,6 +9378,224 @@
</div>
+<A NAME="takeTurn(com.google.android.gms.games.multiplayer.turnbased.OnTurnBasedMatchUpdatedListener, java.lang.String, byte[], java.lang.String)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ void
+ </span>
+ <span class="sympad">takeTurn</span>
+ <span class="normal">(<a href="/reference/com/google/android/gms/games/multiplayer/turnbased/OnTurnBasedMatchUpdatedListener.html">OnTurnBasedMatchUpdatedListener</a> listener, String matchId, byte[] matchData, String pendingParticipantId)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Update a match with new turn data. The participant that is passed in as the pending
+ participant will be notified that it is their turn to take action. If no pending participant
+ is provided and the match has available auto-match slots, the match will wait for additional
+ players to be found. If there are no auto-match slots available for this match, a pending
+ participant ID is required.
+ <p>
+ For the final turn of the match, there is no need to call this method. Instead, call
+ <code><a href="/reference/com/google/android/gms/games/GamesClient.html#finishTurnBasedMatch(com.google.android.gms.games.multiplayer.turnbased.OnTurnBasedMatchUpdatedListener, java.lang.String)">finishTurnBasedMatch(OnTurnBasedMatchUpdatedListener, String)</a></code> directly.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>listener</td>
+ <td>The listener that is called when the match has been updated. The listener is
+ called on the main thread.</td>
+ </tr>
+ <tr>
+ <th>matchId</td>
+ <td>ID of the match to update.</td>
+ </tr>
+ <tr>
+ <th>matchData</td>
+ <td>Data representing the new state of the match after this update. Limited to a
+ maximum of <code><a href="/reference/com/google/android/gms/games/GamesClient.html#getMaxTurnBasedMatchDataSize()">getMaxTurnBasedMatchDataSize()</a></code> bytes.</td>
+ </tr>
+ <tr>
+ <th>pendingParticipantId</td>
+ <td>ID of the participant who will be set to pending after this
+ update succeeds, or <code>null</code> to wait for additional automatched players (if
+ possible).</td>
+ </tr>
+ </table>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">See Also</h5>
+ <ul class="nolist"><li><code><a href="/reference/com/google/android/gms/games/GamesClient.html#finishTurnBasedMatch(com.google.android.gms.games.multiplayer.turnbased.OnTurnBasedMatchUpdatedListener, java.lang.String, byte[], java.util.List<com.google.android.gms.games.multiplayer.ParticipantResult>)">finishTurnBasedMatch(OnTurnBasedMatchUpdatedListener, String, byte[], List)</a></code></li>
+ </ul>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="takeTurn(com.google.android.gms.games.multiplayer.turnbased.OnTurnBasedMatchUpdatedListener, java.lang.String, byte[], java.lang.String, com.google.android.gms.games.multiplayer.ParticipantResult...)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ void
+ </span>
+ <span class="sympad">takeTurn</span>
+ <span class="normal">(<a href="/reference/com/google/android/gms/games/multiplayer/turnbased/OnTurnBasedMatchUpdatedListener.html">OnTurnBasedMatchUpdatedListener</a> listener, String matchId, byte[] matchData, String pendingParticipantId, <a href="/reference/com/google/android/gms/games/multiplayer/ParticipantResult.html">ParticipantResult...</a> results)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Update a match with new turn data. The participant that is passed in as the pending
+ participant will be notified that it is their turn to take action. If no pending participant
+ is provided and the match has available auto-match slots, the match will wait for additional
+ players to be found. If there are no auto-match slots available for this match, a pending
+ participant ID is required.
+ <p>
+ For the final turn of the match, there is no need to call this method. Instead, call
+ <code><a href="/reference/com/google/android/gms/games/GamesClient.html#finishTurnBasedMatch(com.google.android.gms.games.multiplayer.turnbased.OnTurnBasedMatchUpdatedListener, java.lang.String)">finishTurnBasedMatch(OnTurnBasedMatchUpdatedListener, String)</a></code> directly.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>listener</td>
+ <td>The listener that is called when the match has been updated. The listener is
+ called on the main thread.</td>
+ </tr>
+ <tr>
+ <th>matchId</td>
+ <td>ID of the match to update.</td>
+ </tr>
+ <tr>
+ <th>matchData</td>
+ <td>Data representing the new state of the match after this update. Limited to a
+ maximum of <code><a href="/reference/com/google/android/gms/games/GamesClient.html#getMaxTurnBasedMatchDataSize()">getMaxTurnBasedMatchDataSize()</a></code> bytes.</td>
+ </tr>
+ <tr>
+ <th>pendingParticipantId</td>
+ <td>ID of the participant who will be set to pending after this
+ update succeeds, or <code>null</code> to wait for additional automatched players (if
+ possible).</td>
+ </tr>
+ <tr>
+ <th>results</td>
+ <td>Optional list of <code><a href="/reference/com/google/android/gms/games/multiplayer/ParticipantResult.html">ParticipantResult</a></code> objects for this match. Note that
+ the results reported here should be final - if results reported later conflict
+ with these values, the returned value will indicate a conflicted result by
+ returning <code><a href="/reference/com/google/android/gms/games/multiplayer/ParticipantResult.html#MATCH_RESULT_DISAGREED">MATCH_RESULT_DISAGREED</a></code>. This is most useful
+ for cases where a participant knows their results early. For example, a single
+ elimination game where participants are eliminated as the game continues might
+ wish to specify results for the eliminated participants here.</td>
+ </tr>
+ </table>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">See Also</h5>
+ <ul class="nolist"><li><code><a href="/reference/com/google/android/gms/games/GamesClient.html#finishTurnBasedMatch(com.google.android.gms.games.multiplayer.turnbased.OnTurnBasedMatchUpdatedListener, java.lang.String, byte[], java.util.List<com.google.android.gms.games.multiplayer.ParticipantResult>)">finishTurnBasedMatch(OnTurnBasedMatchUpdatedListener, String, byte[], List)</a></code></li>
+ </ul>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="takeTurn(com.google.android.gms.games.multiplayer.turnbased.OnTurnBasedMatchUpdatedListener, java.lang.String, byte[], java.lang.String, java.util.List<com.google.android.gms.games.multiplayer.ParticipantResult>)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ void
+ </span>
+ <span class="sympad">takeTurn</span>
+ <span class="normal">(<a href="/reference/com/google/android/gms/games/multiplayer/turnbased/OnTurnBasedMatchUpdatedListener.html">OnTurnBasedMatchUpdatedListener</a> listener, String matchId, byte[] matchData, String pendingParticipantId, List<<a href="/reference/com/google/android/gms/games/multiplayer/ParticipantResult.html">ParticipantResult</a>> results)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Update a match with new turn data. The participant that is passed in as the pending
+ participant will be notified that it is their turn to take action. If no pending participant
+ is provided and the match has available auto-match slots, the match will wait for additional
+ players to be found. If there are no auto-match slots available for this match, a pending
+ participant ID is required.
+ <p>
+ For the final turn of the match, there is no need to call this method. Instead, call
+ <code><a href="/reference/com/google/android/gms/games/GamesClient.html#finishTurnBasedMatch(com.google.android.gms.games.multiplayer.turnbased.OnTurnBasedMatchUpdatedListener, java.lang.String)">finishTurnBasedMatch(OnTurnBasedMatchUpdatedListener, String)</a></code> directly.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>listener</td>
+ <td>The listener that is called when the match has been updated. The listener is
+ called on the main thread.</td>
+ </tr>
+ <tr>
+ <th>matchId</td>
+ <td>ID of the match to update.</td>
+ </tr>
+ <tr>
+ <th>matchData</td>
+ <td>Data representing the new state of the match after this update. Limited to a
+ maximum of <code><a href="/reference/com/google/android/gms/games/GamesClient.html#getMaxTurnBasedMatchDataSize()">getMaxTurnBasedMatchDataSize()</a></code> bytes.</td>
+ </tr>
+ <tr>
+ <th>pendingParticipantId</td>
+ <td>ID of the participant who will be set to pending after this
+ update succeeds, or <code>null</code> to wait for additional automatched players (if
+ possible).</td>
+ </tr>
+ <tr>
+ <th>results</td>
+ <td>Optional list of <code><a href="/reference/com/google/android/gms/games/multiplayer/ParticipantResult.html">ParticipantResult</a></code> objects for this match. Note that
+ the results reported here should be final - if results reported later conflict
+ with these values, the returned value will indicate a conflicted result by
+ returning <code><a href="/reference/com/google/android/gms/games/multiplayer/ParticipantResult.html#MATCH_RESULT_DISAGREED">MATCH_RESULT_DISAGREED</a></code>. This is most useful
+ for cases where a participant knows their results early. For example, a single
+ elimination game where participants are eliminated as the game continues might
+ wish to specify results for the eliminated participants here.</td>
+ </tr>
+ </table>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">See Also</h5>
+ <ul class="nolist"><li><code><a href="/reference/com/google/android/gms/games/GamesClient.html#finishTurnBasedMatch(com.google.android.gms.games.multiplayer.turnbased.OnTurnBasedMatchUpdatedListener, java.lang.String, byte[], java.util.List<com.google.android.gms.games.multiplayer.ParticipantResult>)">finishTurnBasedMatch(OnTurnBasedMatchUpdatedListener, String, byte[], List)</a></code></li>
+ </ul>
+ </div>
+
+ </div>
+</div>
+
+
<A NAME="unlockAchievement(java.lang.String)"></A>
<div class="jd-details api apilevel-">
@@ -7543,6 +9820,37 @@
</div>
+<A NAME="unregisterMatchUpdateListener()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ void
+ </span>
+ <span class="sympad">unregisterMatchUpdateListener</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Unregisters this client's match update listener, if any. Any new match updates will generate
+ status bar notifications as normal.
+</p></div>
+
+ </div>
+</div>
+
+
diff --git a/docs/html/reference/com/google/android/gms/games/OnGamesLoadedListener.html b/docs/html/reference/com/google/android/gms/games/OnGamesLoadedListener.html
index d6068df..971af40 100644
--- a/docs/html/reference/com/google/android/gms/games/OnGamesLoadedListener.html
+++ b/docs/html/reference/com/google/android/gms/games/OnGamesLoadedListener.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
@@ -853,10 +866,13 @@
Possible status codes include:
<ul>
<li><code><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_OK">STATUS_OK</a></code> if data was successfully loaded and is up-to-date.</li>
+ <li><code><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_NETWORK_ERROR_NO_DATA">STATUS_NETWORK_ERROR_NO_DATA</a></code> if the device was unable to retrieve any
+ data from the network and has no data cached locally.</li>
<li><code><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_NETWORK_ERROR_STALE_DATA">STATUS_NETWORK_ERROR_STALE_DATA</a></code> if the device was unable to retrieve
- the latest data from the network.</li>
- <li><code><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_CLIENT_RECONNECT_REQUIRED">STATUS_CLIENT_RECONNECT_REQUIRED</a></code> if the <code><a href="/reference/com/google/android/gms/games/GamesClient.html">GamesClient</a></code> needs to
- reconnect to the service to access this data.</li>
+ the latest data from the network, but has some data cached locally.</li>
+ <li><code><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_CLIENT_RECONNECT_REQUIRED">STATUS_CLIENT_RECONNECT_REQUIRED</a></code> if the client needs to reconnect to
+ the service to access this data.</li>
+ <li><code><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_GAME_NOT_FOUND">STATUS_GAME_NOT_FOUND</a></code> if the game could not be found.</li>
<li><code><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_LICENSE_CHECK_FAILED">STATUS_LICENSE_CHECK_FAILED</a></code> if the game is not licensed to the user.
</li>
<li><code><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_INTERNAL_ERROR">STATUS_INTERNAL_ERROR</a></code> if an unexpected error occurred in the service.
diff --git a/docs/html/reference/com/google/android/gms/games/OnPlayersLoadedListener.html b/docs/html/reference/com/google/android/gms/games/OnPlayersLoadedListener.html
index 58e3ecb..e246e5ea 100644
--- a/docs/html/reference/com/google/android/gms/games/OnPlayersLoadedListener.html
+++ b/docs/html/reference/com/google/android/gms/games/OnPlayersLoadedListener.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
@@ -853,8 +866,10 @@
Possible status codes include:
<ul>
<li><code><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_OK">STATUS_OK</a></code> if data was successfully loaded and is up-to-date.</li>
+ <li><code><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_NETWORK_ERROR_NO_DATA">STATUS_NETWORK_ERROR_NO_DATA</a></code> if the device was unable to retrieve any
+ data from the network and has no data cached locally.</li>
<li><code><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_NETWORK_ERROR_STALE_DATA">STATUS_NETWORK_ERROR_STALE_DATA</a></code> if the device was unable to retrieve
- the latest data from the network.</li>
+ the latest data from the network, but has some data cached locally.</li>
<li><code><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_CLIENT_RECONNECT_REQUIRED">STATUS_CLIENT_RECONNECT_REQUIRED</a></code> if the <code><a href="/reference/com/google/android/gms/games/GamesClient.html">GamesClient</a></code> needs to
reconnect to the service to access this data.</li>
<li><code><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_LICENSE_CHECK_FAILED">STATUS_LICENSE_CHECK_FAILED</a></code> if the game is not licensed to the user.
diff --git a/docs/html/reference/com/google/android/gms/games/OnSignOutCompleteListener.html b/docs/html/reference/com/google/android/gms/games/OnSignOutCompleteListener.html
index 0d0248e..730358b 100644
--- a/docs/html/reference/com/google/android/gms/games/OnSignOutCompleteListener.html
+++ b/docs/html/reference/com/google/android/gms/games/OnSignOutCompleteListener.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/games/PageDirection.html b/docs/html/reference/com/google/android/gms/games/PageDirection.html
index 844d321..ae94e57 100644
--- a/docs/html/reference/com/google/android/gms/games/PageDirection.html
+++ b/docs/html/reference/com/google/android/gms/games/PageDirection.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/games/Player.html b/docs/html/reference/com/google/android/gms/games/Player.html
index 6669fcc..d964c96 100644
--- a/docs/html/reference/com/google/android/gms/games/Player.html
+++ b/docs/html/reference/com/google/android/gms/games/Player.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/games/PlayerBuffer.html b/docs/html/reference/com/google/android/gms/games/PlayerBuffer.html
index 55b119e..6d2f42d 100644
--- a/docs/html/reference/com/google/android/gms/games/PlayerBuffer.html
+++ b/docs/html/reference/com/google/android/gms/games/PlayerBuffer.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/games/PlayerEntity.html b/docs/html/reference/com/google/android/gms/games/PlayerEntity.html
index 09f383e..9ca32df 100644
--- a/docs/html/reference/com/google/android/gms/games/PlayerEntity.html
+++ b/docs/html/reference/com/google/android/gms/games/PlayerEntity.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/games/achievement/Achievement.html b/docs/html/reference/com/google/android/gms/games/achievement/Achievement.html
index be51769..c60e477 100644
--- a/docs/html/reference/com/google/android/gms/games/achievement/Achievement.html
+++ b/docs/html/reference/com/google/android/gms/games/achievement/Achievement.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/games/achievement/AchievementBuffer.html b/docs/html/reference/com/google/android/gms/games/achievement/AchievementBuffer.html
index 1f3ead1..668a5a5 100644
--- a/docs/html/reference/com/google/android/gms/games/achievement/AchievementBuffer.html
+++ b/docs/html/reference/com/google/android/gms/games/achievement/AchievementBuffer.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/games/achievement/OnAchievementUpdatedListener.html b/docs/html/reference/com/google/android/gms/games/achievement/OnAchievementUpdatedListener.html
index c464922..65dcc4c 100644
--- a/docs/html/reference/com/google/android/gms/games/achievement/OnAchievementUpdatedListener.html
+++ b/docs/html/reference/com/google/android/gms/games/achievement/OnAchievementUpdatedListener.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
@@ -699,8 +712,8 @@
<h2>Class Overview</h2>
-<p itemprop="articleBody">Listener for receiving callbacks when achievement data has been updated
- (revealed, unlocked or incremented).
+<p itemprop="articleBody">Listener for receiving callbacks when achievement data has been updated (revealed, unlocked or
+ incremented).
</p>
diff --git a/docs/html/reference/com/google/android/gms/games/achievement/OnAchievementsLoadedListener.html b/docs/html/reference/com/google/android/gms/games/achievement/OnAchievementsLoadedListener.html
index 9d38268..f1d9943 100644
--- a/docs/html/reference/com/google/android/gms/games/achievement/OnAchievementsLoadedListener.html
+++ b/docs/html/reference/com/google/android/gms/games/achievement/OnAchievementsLoadedListener.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/games/achievement/package-summary.html b/docs/html/reference/com/google/android/gms/games/achievement/package-summary.html
index ce00f68..3474b87 100644
--- a/docs/html/reference/com/google/android/gms/games/achievement/package-summary.html
+++ b/docs/html/reference/com/google/android/gms/games/achievement/package-summary.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -242,6 +243,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -280,7 +283,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -309,6 +312,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -348,7 +354,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -376,6 +382,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -518,29 +528,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
@@ -683,8 +696,8 @@
</tr>
<tr class="alt-color api apilevel-" >
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/achievement/OnAchievementUpdatedListener.html">OnAchievementUpdatedListener</a></td>
- <td class="jd-descrcol" width="100%">Listener for receiving callbacks when achievement data has been updated
- (revealed, unlocked or incremented). </td>
+ <td class="jd-descrcol" width="100%">Listener for receiving callbacks when achievement data has been updated (revealed, unlocked or
+ incremented). </td>
</tr>
</table>
</div>
diff --git a/docs/html/reference/com/google/android/gms/games/leaderboard/Leaderboard.html b/docs/html/reference/com/google/android/gms/games/leaderboard/Leaderboard.html
index adc0a63..4e9dece 100644
--- a/docs/html/reference/com/google/android/gms/games/leaderboard/Leaderboard.html
+++ b/docs/html/reference/com/google/android/gms/games/leaderboard/Leaderboard.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
@@ -644,8 +657,39 @@
+
+
+
+
+
+
+
<div class="sum-details-links">
+Summary:
+
+
+
+
+
+ <a href="#constants">Constants</a>
+
+
+
+
+
+
+
+
+ | <a href="#pubmethods">Methods</a>
+
+
+
+
+ | <a href="#inhmethods">Inherited Methods</a>
+
+| <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
+
</div><!-- end sum-details-links -->
<div class="api-level">
@@ -670,6 +714,11 @@
+ implements
+
+ <a href="/reference/com/google/android/gms/common/data/Freezable.html">Freezable</a><T>
+
+
@@ -900,6 +949,76 @@
+<!-- ========== METHOD SUMMARY =========== -->
+<table id="inhmethods" class="jd-sumtable"><tr><th>
+ <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
+ <div style="clear:left;">Inherited Methods</div></th></tr>
+
+
+<tr class="api apilevel-" >
+<td colspan="12">
+ <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.android.gms.common.data.Freezable" class="jd-expando-trigger closed"
+ ><img id="inherited-methods-com.google.android.gms.common.data.Freezable-trigger"
+ src="/assets/images/triangle-closed.png"
+ class="jd-expando-trigger-img" /></a>
+From interface
+
+ <a href="/reference/com/google/android/gms/common/data/Freezable.html">com.google.android.gms.common.data.Freezable</a>
+
+<div id="inherited-methods-com.google.android.gms.common.data.Freezable">
+ <div id="inherited-methods-com.google.android.gms.common.data.Freezable-list"
+ class="jd-inheritedlinks">
+ </div>
+ <div id="inherited-methods-com.google.android.gms.common.data.Freezable-summary" style="display: none;">
+ <table class="jd-sumtable-expando">
+
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ T</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/common/data/Freezable.html#freeze()">freeze</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Freeze a volatile representation into an immutable representation.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/common/data/Freezable.html#isDataValid()">isDataValid</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Check to see if this object is valid for use.</div>
+
+ </td></tr>
+
+
+</table>
+ </div>
+</div>
+</td></tr>
+
+
+</table>
+
+
</div><!-- jd-descr (summary) -->
<!-- Details -->
diff --git a/docs/html/reference/com/google/android/gms/games/leaderboard/LeaderboardBuffer.html b/docs/html/reference/com/google/android/gms/games/leaderboard/LeaderboardBuffer.html
index 37f0760..cc90375 100644
--- a/docs/html/reference/com/google/android/gms/games/leaderboard/LeaderboardBuffer.html
+++ b/docs/html/reference/com/google/android/gms/games/leaderboard/LeaderboardBuffer.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/games/leaderboard/LeaderboardScore.html b/docs/html/reference/com/google/android/gms/games/leaderboard/LeaderboardScore.html
index 71a4266..5a29c13 100644
--- a/docs/html/reference/com/google/android/gms/games/leaderboard/LeaderboardScore.html
+++ b/docs/html/reference/com/google/android/gms/games/leaderboard/LeaderboardScore.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
@@ -659,13 +672,16 @@
+ <a href="#constants">Constants</a>
- <a href="#pubmethods">Methods</a>
+
+
+ | <a href="#pubmethods">Methods</a>
@@ -773,6 +789,22 @@
+<!-- =========== ENUM CONSTANT SUMMARY =========== -->
+<table id="constants" class="jd-sumtable"><tr><th colspan="12">Constants</th></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/leaderboard/LeaderboardScore.html#LEADERBOARD_RANK_UNKNOWN">LEADERBOARD_RANK_UNKNOWN</a></td>
+ <td class="jd-descrcol" width="100%">Constant indicating that the score holder's rank was not known.</td>
+ </tr>
+
+
+
+</table>
+
+
@@ -1126,6 +1158,52 @@
<!-- Constants -->
+<!-- ========= ENUM CONSTANTS DETAIL ======== -->
+<h2>Constants</h2>
+
+
+
+
+<A NAME="LEADERBOARD_RANK_UNKNOWN"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+ static
+ final
+ int
+ </span>
+ LEADERBOARD_RANK_UNKNOWN
+ </h4>
+ <div class="api-level">
+
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Constant indicating that the score holder's rank was not known.
+</p></div>
+
+
+ <div class="jd-tagdata">
+ <span class="jd-tagtitle">Constant Value: </span>
+ <span>
+
+ -1
+ (0xffffffff)
+
+ </span>
+ </div>
+
+ </div>
+</div>
+
+
+
+
<!-- Fields -->
@@ -1318,7 +1396,10 @@
<div class="jd-tagdata jd-tagdescr"><p>Retrieves the rank returned from the server for this score. Note that this may not be exact
and that multiple scores can have identical ranks. Lower ranks indicate a better score, with
- rank 1 being the best score on the board.</p></div>
+ rank 1 being the best score on the board.
+ <p>
+ If the score holder's rank cannot be determined, this will return
+ <code><a href="/reference/com/google/android/gms/games/leaderboard/LeaderboardScore.html#LEADERBOARD_RANK_UNKNOWN">LEADERBOARD_RANK_UNKNOWN</a></code>.</p></div>
<div class="jd-tagdata">
<h5 class="jd-tagtitle">Returns</h5>
<ul class="nolist"><li>Rank of score.
diff --git a/docs/html/reference/com/google/android/gms/games/leaderboard/LeaderboardScoreBuffer.html b/docs/html/reference/com/google/android/gms/games/leaderboard/LeaderboardScoreBuffer.html
index f480d76..c4fad6c 100644
--- a/docs/html/reference/com/google/android/gms/games/leaderboard/LeaderboardScoreBuffer.html
+++ b/docs/html/reference/com/google/android/gms/games/leaderboard/LeaderboardScoreBuffer.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/games/leaderboard/LeaderboardVariant.html b/docs/html/reference/com/google/android/gms/games/leaderboard/LeaderboardVariant.html
index 468e5dc..619bd6e 100644
--- a/docs/html/reference/com/google/android/gms/games/leaderboard/LeaderboardVariant.html
+++ b/docs/html/reference/com/google/android/gms/games/leaderboard/LeaderboardVariant.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
@@ -644,8 +657,39 @@
+
+
+
+
+
+
+
<div class="sum-details-links">
+Summary:
+
+
+
+
+
+ <a href="#constants">Constants</a>
+
+
+
+
+
+
+
+
+ | <a href="#pubmethods">Methods</a>
+
+
+
+
+ | <a href="#inhmethods">Inherited Methods</a>
+
+| <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
+
</div><!-- end sum-details-links -->
<div class="api-level">
@@ -670,6 +714,11 @@
+ implements
+
+ <a href="/reference/com/google/android/gms/common/data/Freezable.html">Freezable</a><T>
+
+
@@ -1003,6 +1052,76 @@
+<!-- ========== METHOD SUMMARY =========== -->
+<table id="inhmethods" class="jd-sumtable"><tr><th>
+ <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
+ <div style="clear:left;">Inherited Methods</div></th></tr>
+
+
+<tr class="api apilevel-" >
+<td colspan="12">
+ <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.android.gms.common.data.Freezable" class="jd-expando-trigger closed"
+ ><img id="inherited-methods-com.google.android.gms.common.data.Freezable-trigger"
+ src="/assets/images/triangle-closed.png"
+ class="jd-expando-trigger-img" /></a>
+From interface
+
+ <a href="/reference/com/google/android/gms/common/data/Freezable.html">com.google.android.gms.common.data.Freezable</a>
+
+<div id="inherited-methods-com.google.android.gms.common.data.Freezable">
+ <div id="inherited-methods-com.google.android.gms.common.data.Freezable-list"
+ class="jd-inheritedlinks">
+ </div>
+ <div id="inherited-methods-com.google.android.gms.common.data.Freezable-summary" style="display: none;">
+ <table class="jd-sumtable-expando">
+
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ T</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/common/data/Freezable.html#freeze()">freeze</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Freeze a volatile representation into an immutable representation.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/common/data/Freezable.html#isDataValid()">isDataValid</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Check to see if this object is valid for use.</div>
+
+ </td></tr>
+
+
+</table>
+ </div>
+</div>
+</td></tr>
+
+
+</table>
+
+
</div><!-- jd-descr (summary) -->
<!-- Details -->
diff --git a/docs/html/reference/com/google/android/gms/games/leaderboard/OnLeaderboardMetadataLoadedListener.html b/docs/html/reference/com/google/android/gms/games/leaderboard/OnLeaderboardMetadataLoadedListener.html
index 6e851b6..4684b8e 100644
--- a/docs/html/reference/com/google/android/gms/games/leaderboard/OnLeaderboardMetadataLoadedListener.html
+++ b/docs/html/reference/com/google/android/gms/games/leaderboard/OnLeaderboardMetadataLoadedListener.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
@@ -853,9 +866,11 @@
Possible status codes include:
<ul>
<li><code><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_OK">STATUS_OK</a></code> if data was successfully loaded and is up-to-date.</li>
+ <li><code><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_NETWORK_ERROR_NO_DATA">STATUS_NETWORK_ERROR_NO_DATA</a></code> if the device was unable to retrieve any
+ data from the network and has no data cached locally.</li>
<li><code><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_NETWORK_ERROR_STALE_DATA">STATUS_NETWORK_ERROR_STALE_DATA</a></code> if the device was unable to retrieve
- the latest data from the network.</li>
- <li><code><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_CLIENT_RECONNECT_REQUIRED">STATUS_CLIENT_RECONNECT_REQUIRED</a></code> if the <code><a href="/reference/com/google/android/gms/games/GamesClient.html">GamesClient</a></code> needs to
+ the latest data from the network, but has some data cached locally.</li>
+ <li><code><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_CLIENT_RECONNECT_REQUIRED">STATUS_CLIENT_RECONNECT_REQUIRED</a></code> if the client needs to
reconnect to the service to access this data.</li>
<li><code><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_LICENSE_CHECK_FAILED">STATUS_LICENSE_CHECK_FAILED</a></code> if the game is not licensed to the user.
</li>
diff --git a/docs/html/reference/com/google/android/gms/games/leaderboard/OnLeaderboardScoresLoadedListener.html b/docs/html/reference/com/google/android/gms/games/leaderboard/OnLeaderboardScoresLoadedListener.html
index 1de5a90..23dc04c 100644
--- a/docs/html/reference/com/google/android/gms/games/leaderboard/OnLeaderboardScoresLoadedListener.html
+++ b/docs/html/reference/com/google/android/gms/games/leaderboard/OnLeaderboardScoresLoadedListener.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
@@ -770,7 +783,7 @@
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/games/leaderboard/OnLeaderboardScoresLoadedListener.html#onLeaderboardScoresLoaded(int, com.google.android.gms.games.leaderboard.LeaderboardBuffer, com.google.android.gms.games.leaderboard.LeaderboardScoreBuffer)">onLeaderboardScoresLoaded</a></span>(int statusCode, <a href="/reference/com/google/android/gms/games/leaderboard/LeaderboardBuffer.html">LeaderboardBuffer</a> leaderboard, <a href="/reference/com/google/android/gms/games/leaderboard/LeaderboardScoreBuffer.html">LeaderboardScoreBuffer</a> scores)</nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/leaderboard/OnLeaderboardScoresLoadedListener.html#onLeaderboardScoresLoaded(int, com.google.android.gms.games.leaderboard.Leaderboard, com.google.android.gms.games.leaderboard.LeaderboardScoreBuffer)">onLeaderboardScoresLoaded</a></span>(int statusCode, <a href="/reference/com/google/android/gms/games/leaderboard/Leaderboard.html">Leaderboard</a> leaderboard, <a href="/reference/com/google/android/gms/games/leaderboard/LeaderboardScoreBuffer.html">LeaderboardScoreBuffer</a> scores)</nobr>
<div class="jd-descrdiv">Called when leaderboard scores have been loaded.</div>
@@ -825,7 +838,7 @@
-<A NAME="onLeaderboardScoresLoaded(int, com.google.android.gms.games.leaderboard.LeaderboardBuffer, com.google.android.gms.games.leaderboard.LeaderboardScoreBuffer)"></A>
+<A NAME="onLeaderboardScoresLoaded(int, com.google.android.gms.games.leaderboard.Leaderboard, com.google.android.gms.games.leaderboard.LeaderboardScoreBuffer)"></A>
<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
@@ -838,7 +851,7 @@
void
</span>
<span class="sympad">onLeaderboardScoresLoaded</span>
- <span class="normal">(int statusCode, <a href="/reference/com/google/android/gms/games/leaderboard/LeaderboardBuffer.html">LeaderboardBuffer</a> leaderboard, <a href="/reference/com/google/android/gms/games/leaderboard/LeaderboardScoreBuffer.html">LeaderboardScoreBuffer</a> scores)</span>
+ <span class="normal">(int statusCode, <a href="/reference/com/google/android/gms/games/leaderboard/Leaderboard.html">Leaderboard</a> leaderboard, <a href="/reference/com/google/android/gms/games/leaderboard/LeaderboardScoreBuffer.html">LeaderboardScoreBuffer</a> scores)</span>
</h4>
<div class="api-level">
<div></div>
@@ -853,8 +866,10 @@
Possible status codes include:
<ul>
<li><code><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_OK">STATUS_OK</a></code> if data was successfully loaded and is up-to-date.</li>
+ <li><code><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_NETWORK_ERROR_NO_DATA">STATUS_NETWORK_ERROR_NO_DATA</a></code> if the device was unable to retrieve any
+ data from the network and has no data cached locally.</li>
<li><code><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_NETWORK_ERROR_STALE_DATA">STATUS_NETWORK_ERROR_STALE_DATA</a></code> if the device was unable to retrieve
- the latest data from the network.</li>
+ the latest data from the network, but has some data cached locally.</li>
<li><code><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_CLIENT_RECONNECT_REQUIRED">STATUS_CLIENT_RECONNECT_REQUIRED</a></code> if the <code><a href="/reference/com/google/android/gms/games/GamesClient.html">GamesClient</a></code> needs to
reconnect to the service to access this data.</li>
<li><code><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_LICENSE_CHECK_FAILED">STATUS_LICENSE_CHECK_FAILED</a></code> if the game is not licensed to the user.
@@ -872,8 +887,7 @@
<tr>
<th>leaderboard</td>
<td>The leaderboard that the requested scores belong to. This is guaranteed to
- be non-null, and to contain at most one element. The listener must close this
- object when finished.</td>
+ be non-null, and to contain at most one element.</td>
</tr>
<tr>
<th>scores</td>
diff --git a/docs/html/reference/com/google/android/gms/games/leaderboard/OnPlayerLeaderboardScoreLoadedListener.html b/docs/html/reference/com/google/android/gms/games/leaderboard/OnPlayerLeaderboardScoreLoadedListener.html
new file mode 100644
index 0000000..b6d3dc3
--- /dev/null
+++ b/docs/html/reference/com/google/android/gms/games/leaderboard/OnPlayerLeaderboardScoreLoadedListener.html
@@ -0,0 +1,950 @@
+<!DOCTYPE html>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<html>
+<head>
+
+
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<meta name="viewport" content="width=device-width" />
+
+<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
+<title>OnPlayerLeaderboardScoreLoadedListener | Android Developers</title>
+
+<!-- STYLESHEETS -->
+<link rel="stylesheet"
+href="//fonts.googleapis.com/css?family=Roboto:regular,medium,thin,italic,mediumitalic,bold" title="roboto">
+<link href="/assets/css/default.css" rel="stylesheet" type="text/css">
+
+
+
+<!-- JAVASCRIPT -->
+<script src="//www.google.com/jsapi" type="text/javascript"></script>
+<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
+<script type="text/javascript">
+ var toRoot = "/";
+ var metaTags = [];
+ var devsite = false;
+</script>
+<script src="/assets/js/docs.js" type="text/javascript"></script>
+
+<script type="text/javascript">
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-5831155-1']);
+ _gaq.push(['_trackPageview']);
+
+ (function() {
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+ })();
+</script>
+</head>
+<body class="gc-documentation google
+ develop" itemscope itemtype="http://schema.org/Article">
+ <div id="doc-api-level" class="" style="display:none"></div>
+ <a name="top"></a>
+
+<a name="top"></a>
+
+ <!-- Header -->
+ <div id="header">
+ <div class="wrap" id="header-wrap">
+ <div class="col-3 logo">
+ <a href="/index.html">
+ <img src="/assets/images/dac_logo.png" width="123" height="25" alt="Android Developers" />
+ </a>
+ <div class="btn-quicknav" id="btn-quicknav">
+ <a href="#" class="arrow-inactive">Quicknav</a>
+ <a href="#" class="arrow-active">Quicknav</a>
+ </div>
+ </div>
+ <ul class="nav-x col-9">
+ <li class="design">
+ <a href="/design/index.html"
+ zh-tw-lang="設計"
+ zh-cn-lang="设计"
+ ru-lang="Проектирование"
+ ko-lang="디자인"
+ ja-lang="設計"
+ es-lang="Diseñar"
+ >Design</a></li>
+ <li class="develop"><a href="/develop/index.html"
+ zh-tw-lang="開發"
+ zh-cn-lang="开发"
+ ru-lang="Разработка"
+ ko-lang="개발"
+ ja-lang="開発"
+ es-lang="Desarrollar"
+ >Develop</a></li>
+ <li class="distribute last"><a href="/distribute/index.html"
+ zh-tw-lang="發佈"
+ zh-cn-lang="分发"
+ ru-lang="Распространение"
+ ko-lang="배포"
+ ja-lang="配布"
+ es-lang="Distribuir"
+ >Distribute</a></li>
+ </ul>
+
+ <!-- New Search -->
+ <div class="menu-container">
+ <div class="moremenu">
+ <div id="more-btn"></div>
+ </div>
+ <div class="morehover" id="moremenu">
+ <div class="top"></div>
+ <div class="mid">
+ <div class="header">Links</div>
+ <ul>
+ <li><a href="https://play.google.com/apps/publish/">Google Play Developer Console</a></li>
+ <li><a href="http://android-developers.blogspot.com/">Android Developers Blog</a></li>
+ <li><a href="/about/index.html">About Android</a></li>
+ </ul>
+ <div class="header">Android Sites</div>
+ <ul>
+ <li><a href="http://www.android.com">Android.com</a></li>
+ <li class="active"><a>Android Developers</a></li>
+ <li><a href="http://source.android.com">Android Open Source Project</a></li>
+ </ul>
+
+
+
+ <div class="header">Language</div>
+ <div id="language" class="locales">
+ <select name="language" onChange="changeLangPref(this.value, true)">
+ <option value="en">English</option>
+ <option value="es">Español</option>
+ <option value="ja">日本語</option>
+ <option value="ko">한국어</option>
+ <option value="ru">Русский</option>
+ <option value="zh-cn">中文 (中国)</option>
+ <option value="zh-tw">中文 (台灣)</option>
+ </select>
+ </div>
+ <script type="text/javascript">
+ <!--
+ loadLangPref();
+ //-->
+ </script>
+
+
+
+
+ <br class="clearfix" />
+ </div>
+ <div class="bottom"></div>
+ </div>
+ <div class="search" id="search-container">
+ <div class="search-inner">
+ <div id="search-btn"></div>
+ <div class="left"></div>
+ <form onsubmit="return submit_search()">
+ <input id="search_autocomplete" type="text" value="" autocomplete="off" name="q"
+onfocus="search_focus_changed(this, true)" onblur="search_focus_changed(this, false)"
+onkeydown="return search_changed(event, true, '/')"
+onkeyup="return search_changed(event, false, '/')" />
+ </form>
+ <div class="right"></div>
+ <a class="close hide">close</a>
+ <div class="left"></div>
+ <div class="right"></div>
+ </div>
+ </div>
+
+ <div class="search_filtered_wrapper reference">
+ <div class="suggest-card reference no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ </div>
+
+ <div class="search_filtered_wrapper docs">
+ <div class="suggest-card dummy no-display"> </div>
+ <div class="suggest-card develop no-display">
+ <ul class="search_filtered">
+ </ul>
+ <div class="child-card guides no-display">
+ </div>
+ <div class="child-card training no-display">
+ </div>
+ <div class="child-card samples no-display">
+ </div>
+ </div>
+ <div class="suggest-card design no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ <div class="suggest-card distribute no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ </div>
+
+ </div>
+ <!-- /New Search>
+
+
+ <!-- Expanded quicknav -->
+ <div id="quicknav" class="col-9">
+ <ul>
+ <li class="design">
+ <ul>
+ <li><a href="/design/index.html">Get Started</a></li>
+ <li><a href="/design/style/index.html">Style</a></li>
+ <li><a href="/design/patterns/index.html">Patterns</a></li>
+ <li><a href="/design/building-blocks/index.html">Building Blocks</a></li>
+ <li><a href="/design/downloads/index.html">Downloads</a></li>
+ <li><a href="/design/videos/index.html">Videos</a></li>
+ </ul>
+ </li>
+ <li class="develop">
+ <ul>
+ <li><a href="/training/index.html"
+ zh-tw-lang="訓練課程"
+ zh-cn-lang="培训"
+ ru-lang="Курсы"
+ ko-lang="교육"
+ ja-lang="トレーニング"
+ es-lang="Capacitación"
+ >Training</a></li>
+ <li><a href="/guide/index.html"
+ zh-tw-lang="API 指南"
+ zh-cn-lang="API 指南"
+ ru-lang="Руководства по API"
+ ko-lang="API 가이드"
+ ja-lang="API ガイド"
+ es-lang="Guías de la API"
+ >API Guides</a></li>
+ <li><a href="/reference/packages.html"
+ zh-tw-lang="參考資源"
+ zh-cn-lang="参考"
+ ru-lang="Справочник"
+ ko-lang="참조문서"
+ ja-lang="リファレンス"
+ es-lang="Referencia"
+ >Reference</a></li>
+ <li><a href="/tools/index.html"
+ zh-tw-lang="相關工具"
+ zh-cn-lang="工具"
+ ru-lang="Инструменты"
+ ko-lang="도구"
+ ja-lang="ツール"
+ es-lang="Herramientas"
+ >Tools</a>
+ <ul><li><a href="/sdk/index.html">Get the SDK</a></li></ul>
+ </li>
+ <li><a href="/google/index.html">Google Services</a>
+ </li>
+
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
+ </ul>
+ </li>
+ <li class="distribute last">
+ <ul>
+ <li><a href="/distribute/index.html">Google Play</a></li>
+ <li><a href="/distribute/googleplay/publish/index.html">Publishing</a></li>
+ <li><a href="/distribute/googleplay/promote/index.html">Promoting</a></li>
+ <li><a href="/distribute/googleplay/quality/index.html">App Quality</a></li>
+ <li><a href="/distribute/googleplay/spotlight/index.html">Spotlight</a></li>
+ <li><a href="/distribute/open.html">Open Distribution</a></li>
+ </ul>
+ </li>
+ </ul>
+ </div>
+ <!-- /Expanded quicknav -->
+ </div>
+ </div>
+ <!-- /Header -->
+
+
+ <div id="searchResults" class="wrap" style="display:none;">
+ <h2 id="searchTitle">Results</h2>
+ <div id="leftSearchControl" class="search-control">Loading...</div>
+ </div>
+
+
+
+ <!-- Secondary x-nav -->
+ <div id="nav-x">
+ <div class="wrap">
+ <ul class="nav-x col-9 develop" style="width:100%">
+ <li class="training"><a href="/training/index.html"
+ zh-tw-lang="訓練課程"
+ zh-cn-lang="培训"
+ ru-lang="Курсы"
+ ko-lang="교육"
+ ja-lang="トレーニング"
+ es-lang="Capacitación"
+ >Training</a></li>
+ <li class="guide"><a href="/guide/index.html"
+ zh-tw-lang="API 指南"
+ zh-cn-lang="API 指南"
+ ru-lang="Руководства по API"
+ ko-lang="API 가이드"
+ ja-lang="API ガイド"
+ es-lang="Guías de la API"
+ >API Guides</a></li>
+ <li class="reference"><a href="/reference/packages.html"
+ zh-tw-lang="參考資源"
+ zh-cn-lang="参考"
+ ru-lang="Справочник"
+ ko-lang="참조문서"
+ ja-lang="リファレンス"
+ es-lang="Referencia"
+ >Reference</a></li>
+ <li class="tools"><a href="/tools/index.html"
+ zh-tw-lang="相關工具"
+ zh-cn-lang="工具"
+ ru-lang="Инструменты"
+ ko-lang="도구"
+ ja-lang="ツール"
+ es-lang="Herramientas"
+ >Tools</a></li>
+ <li class="google"><a href="/google/index.html"
+ >Google Services</a>
+ </li>
+
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
+ </ul>
+ </div>
+
+ </div>
+ <!-- /Sendondary x-nav -->
+
+
+
+
+
+
+
+
+
+ <div class="wrap clearfix" id="body-content">
+ <div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
+ <div id="devdoc-nav" class="scroll-pane">
+<a class="totop" href="#top" data-g-event="left-nav-top">to top</a>
+
+
+
+<ul id="nav">
+
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/index.html">
+ <span class="en">Overview</span>
+ </a></div>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/games.html">
+ <span class="en">Games</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/location.html">
+ <span class="en">Location</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/plus.html">
+ <span class="en">Google+</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/maps.html">
+ <span class="en">Maps</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play-services/ads.html">
+ <span class="en">Ads</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play-services/id.html">
+ <span class="en">Advertising ID</span></a>
+ </li>
+ </ul>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/wallet.html">
+ <span class="en">Wallet</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/auth.html">
+ <span class="en">Authorization</span>
+ </a></div>
+ </li>
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play-services/index.html">
+ <span class="en">Google Play Services</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play-services/setup.html">
+ <span class="en">Setup</span></a>
+ </li>
+ <li id="gms-tree-list" class="nav-section">
+ <div class="nav-section-header">
+ <a href="/reference/gms-packages.html">
+ <span class="en">Reference</span>
+ </a>
+ <div>
+ </li>
+ </ul>
+ </li>
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/billing/index.html">
+ <span class="en">Google Play In-app Billing</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/billing/billing_overview.html">
+ <span class="en">Overview</span></a>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/api.html">
+ <span class="en">Version 3 API</span></a></div>
+ <ul>
+ <li><a href="/google/play/billing/billing_integrate.html">
+ <span class="en">Implementing the API</span></a></li>
+ <li><a href="/google/play/billing/billing_reference.html">
+ <span class="en">Reference</span></a></li>
+ </ul>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/v2/api.html">
+ <span class="en">Version 2 API</span></a></div>
+ <ul>
+ <li><a href="/google/play/billing/v2/billing_integrate.html">
+ <span class="en">Implementing the API</span></a></li>
+ <li><a href="/google/play/billing/v2/billing_subscriptions.html">
+ <span class="en">Subscriptions</span></a></li>
+ <li><a href="/google/play/billing/v2/billing_reference.html">
+ <span class="en">Reference</span></a></li>
+ </ul>
+ </li>
+ <li><a href="/google/play/billing/billing_subscriptions.html">
+ <span class="en">Subscriptions</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_best_practices.html">
+ <span class="en">Security and Design</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_testing.html">
+ <span class="en">Testing In-app Billing</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_admin.html">
+ <span class="en">Administering In-app Billing</span></a>
+ </li>
+ <li><a href="/google/play/billing/gp-purchase-status-api.html">
+ <span class="en">Purchase Status API</span></a>
+ </li>
+ <li><a href="/google/play/billing/versions.html">
+ <span class="en">Version Notes</span></a>
+ </li>
+ </ul>
+ </li>
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/gcm/index.html">
+ <span class="en">Google Cloud Messaging</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
+ <li><a href="/google/gcm/gs.html">
+ <span class="en">Getting Started</span></a>
+ </li>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
+ </li>
+ <li><a href="/google/gcm/notifications.html">
+ <span class="en">User Notifications</span></a>
+ </li>
+ <li><a href="/google/gcm/adv.html">
+ <span class="en">Advanced Topics</span></a>
+ </li>
+ <li><a href="/google/gcm/c2dm.html">
+ <span class="en">Migration</span></a>
+ </li>
+ <li id="gcm-tree-list" class="nav-section">
+ <div class="nav-section-header">
+ <a href="/reference/gcm-packages.html">
+ <span class="en">Reference</span>
+ </a>
+ <div>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/dist.html">
+ <span class="en">Google Play Distribution</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/filters.html">
+ <span class="en">Filters on Google Play</span></a>
+ </li>
+
+ <li><a href="/google/play/publishing/multiple-apks.html">
+ <span class="en">Multiple APK Support</span></a>
+ </li>
+ <li><a href="/google/play/expansion-files.html">
+ <span class="en">APK Expansion Files</span></a>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/licensing/index.html">
+ <span class="en">Application Licensing</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/licensing/overview.html">
+ <span class="en">Licensing Overview</span></a>
+ </li>
+ <li><a href="/google/play/licensing/setting-up.html">
+ <span class="en">Setting Up for Licensing</span></a>
+ </li>
+ <li><a href="/google/play/licensing/adding-licensing.html">
+ <span class="en">Adding Licensing to Your App</span></a>
+ </li>
+ <li><a href="/google/play/licensing/licensing-reference.html">
+ <span class="en">Licensing Reference</span></a>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/backup/index.html">
+ Android Backup Service</a>
+ </div>
+ <ul>
+ <li><a href="/google/backup/signup.html">
+ Register</a>
+ </li>
+ </ul>
+ </li>
+
+ </ul>
+
+</li>
+
+
+
+</ul>
+
+<script type="text/javascript">
+<!--
+ buildToggleLists();
+ changeNavLang(getLangPref());
+//-->
+</script>
+
+
+
+
+ </div>
+ <script type="text/javascript">
+ showGoogleRefTree();
+
+ </script>
+ </div> <!-- end side-nav -->
+ <script>
+ $(document).ready(function() {
+ scrollIntoView("devdoc-nav");
+ });
+ </script>
+
+
+
+
+
+
+<div class="col-12" id="doc-col">
+
+<div id="api-info-block">
+
+
+
+
+<div class="sum-details-links">
+
+</div><!-- end sum-details-links -->
+<div class="api-level">
+
+
+
+
+</div>
+</div><!-- end api-info-block -->
+
+
+<!-- ======== START OF CLASS DATA ======== -->
+
+<div id="jd-header">
+ public
+
+
+
+ interface
+<h1 itemprop="name">OnPlayerLeaderboardScoreLoadedListener</h1>
+
+
+
+
+
+
+
+
+</div><!-- end header -->
+
+<div id="naMessage"></div>
+
+<div id="jd-content" class="api apilevel-">
+<table class="jd-inheritance-table">
+
+
+ <tr>
+
+ <td colspan="1" class="jd-inheritance-class-cell">com.google.android.gms.games.leaderboard.OnPlayerLeaderboardScoreLoadedListener</td>
+ </tr>
+
+
+</table>
+
+
+
+
+
+
+
+<div class="jd-descr">
+
+
+<h2>Class Overview</h2>
+<p itemprop="articleBody">Listener for receiving callbacks when a player's leaderboard score was loaded.
+</p>
+
+
+
+
+
+</div><!-- jd-descr -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<div class="jd-descr">
+
+
+<h2>Summary</h2>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
+
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/leaderboard/OnPlayerLeaderboardScoreLoadedListener.html#onPlayerLeaderboardScoreLoaded(int, com.google.android.gms.games.leaderboard.LeaderboardScore)">onPlayerLeaderboardScoreLoaded</a></span>(int statusCode, <a href="/reference/com/google/android/gms/games/leaderboard/LeaderboardScore.html">LeaderboardScore</a> score)</nobr>
+
+ <div class="jd-descrdiv">Called when a player's leaderboard score has been loaded.</div>
+
+ </td></tr>
+
+
+
+</table>
+
+
+
+
+
+
+
+</div><!-- jd-descr (summary) -->
+
+<!-- Details -->
+
+
+
+
+
+
+
+
+<!-- XML Attributes -->
+
+
+<!-- Enum Values -->
+
+
+<!-- Constants -->
+
+
+<!-- Fields -->
+
+
+<!-- Public ctors -->
+
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<!-- Protected ctors -->
+
+
+
+<!-- ========= METHOD DETAIL ======== -->
+<!-- Public methdos -->
+
+<h2>Public Methods</h2>
+
+
+
+<A NAME="onPlayerLeaderboardScoreLoaded(int, com.google.android.gms.games.leaderboard.LeaderboardScore)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+ abstract
+
+ void
+ </span>
+ <span class="sympad">onPlayerLeaderboardScoreLoaded</span>
+ <span class="normal">(int statusCode, <a href="/reference/com/google/android/gms/games/leaderboard/LeaderboardScore.html">LeaderboardScore</a> score)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Called when a player's leaderboard score has been loaded.
+ <p>
+ Possible status codes include:
+ <ul>
+ <li><code><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_OK">STATUS_OK</a></code> if data was successfully loaded and is up-to-date.</li>
+ <li><code><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_NETWORK_ERROR_NO_DATA">STATUS_NETWORK_ERROR_NO_DATA</a></code> if the device was unable to retrieve any
+ data from the network and has no data cached locally.</li>
+ <li><code><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_NETWORK_ERROR_STALE_DATA">STATUS_NETWORK_ERROR_STALE_DATA</a></code> if the device was unable to retrieve
+ the latest data from the network, but has some data cached locally.</li>
+ <li><code><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_CLIENT_RECONNECT_REQUIRED">STATUS_CLIENT_RECONNECT_REQUIRED</a></code> if the <code><a href="/reference/com/google/android/gms/games/GamesClient.html">GamesClient</a></code> needs to
+ reconnect to the service to access this data.</li>
+ <li><code><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_LICENSE_CHECK_FAILED">STATUS_LICENSE_CHECK_FAILED</a></code> if the game is not licensed to the user.
+ </li>
+ <li><code><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_INTERNAL_ERROR">STATUS_INTERNAL_ERROR</a></code> if an unexpected error occurred in the service.
+ </li>
+ </ul></p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>statusCode</td>
+ <td>A status code indicating the result of the operation.</td>
+ </tr>
+ <tr>
+ <th>score</td>
+ <td>The leaderboard score that was requested. This item may be null if no score was
+ found.
+</td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
+
+
+
+<!-- ========= METHOD DETAIL ======== -->
+
+
+
+<!-- ========= END OF CLASS DATA ========= -->
+<A NAME="navbar_top"></A>
+
+<div id="footer" class="wrap" >
+
+
+ <div id="copyright">
+
+ Except as noted, this content is licensed under <a
+ href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.
+ For details and restrictions, see the <a href="/license.html">
+ Content License</a>.
+ </div>
+ <div id="build_info">
+
+<script src="/timestamp.js" type="text/javascript"></script>
+<script>document.write(BUILD_TIMESTAMP)</script>
+
+ </div>
+
+
+ <div id="footerlinks">
+
+ <p>
+ <a href="/about/index.html">About Android</a> |
+ <a href="/legal.html">Legal</a> |
+ <a href="/support.html">Support</a>
+ </p>
+ </div>
+
+</div> <!-- end footer -->
+</div> <!-- jd-content -->
+
+</div><!-- end doc-content -->
+
+</div> <!-- end body-content -->
+
+
+
+
+
+
+</body>
+</html>
diff --git a/docs/html/reference/com/google/android/gms/games/leaderboard/OnScoreSubmittedListener.html b/docs/html/reference/com/google/android/gms/games/leaderboard/OnScoreSubmittedListener.html
index 3d55b86..c5a5ce3 100644
--- a/docs/html/reference/com/google/android/gms/games/leaderboard/OnScoreSubmittedListener.html
+++ b/docs/html/reference/com/google/android/gms/games/leaderboard/OnScoreSubmittedListener.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/games/leaderboard/SubmitScoreResult.Result.html b/docs/html/reference/com/google/android/gms/games/leaderboard/SubmitScoreResult.Result.html
index 12cc4de..18352d7 100644
--- a/docs/html/reference/com/google/android/gms/games/leaderboard/SubmitScoreResult.Result.html
+++ b/docs/html/reference/com/google/android/gms/games/leaderboard/SubmitScoreResult.Result.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/games/leaderboard/SubmitScoreResult.html b/docs/html/reference/com/google/android/gms/games/leaderboard/SubmitScoreResult.html
index e9a08d5..5686225 100644
--- a/docs/html/reference/com/google/android/gms/games/leaderboard/SubmitScoreResult.html
+++ b/docs/html/reference/com/google/android/gms/games/leaderboard/SubmitScoreResult.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/games/leaderboard/package-summary.html b/docs/html/reference/com/google/android/gms/games/leaderboard/package-summary.html
index 552c383..174b2723 100644
--- a/docs/html/reference/com/google/android/gms/games/leaderboard/package-summary.html
+++ b/docs/html/reference/com/google/android/gms/games/leaderboard/package-summary.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -242,6 +243,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -280,7 +283,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -309,6 +312,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -348,7 +354,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -376,6 +382,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -518,29 +528,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
@@ -695,6 +708,10 @@
<td class="jd-descrcol" width="100%">Listener for receiving callbacks when leaderboard scores have been loaded. </td>
</tr>
<tr class=" api apilevel-" >
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/leaderboard/OnPlayerLeaderboardScoreLoadedListener.html">OnPlayerLeaderboardScoreLoadedListener</a></td>
+ <td class="jd-descrcol" width="100%">Listener for receiving callbacks when a player's leaderboard score was loaded. </td>
+ </tr>
+ <tr class="alt-color api apilevel-" >
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/leaderboard/OnScoreSubmittedListener.html">OnScoreSubmittedListener</a></td>
<td class="jd-descrcol" width="100%">Listener for getting status back after submitting a score to a leaderboard. </td>
</tr>
diff --git a/docs/html/reference/com/google/android/gms/games/multiplayer/Invitation.html b/docs/html/reference/com/google/android/gms/games/multiplayer/Invitation.html
index 3a0bd5c..89fb24d 100644
--- a/docs/html/reference/com/google/android/gms/games/multiplayer/Invitation.html
+++ b/docs/html/reference/com/google/android/gms/games/multiplayer/Invitation.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
@@ -675,8 +688,11 @@
+ <a href="#constants">Constants</a>
- <a href="#inhconstants">Inherited Constants</a>
+
+
+ | <a href="#inhconstants">Inherited Constants</a>
@@ -827,6 +843,29 @@
+<!-- =========== ENUM CONSTANT SUMMARY =========== -->
+<table id="constants" class="jd-sumtable"><tr><th colspan="12">Constants</th></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/multiplayer/Invitation.html#INVITATION_TYPE_REAL_TIME">INVITATION_TYPE_REAL_TIME</a></td>
+ <td class="jd-descrcol" width="100%">Constant indicating that this invitation is for a real-time room.</td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/multiplayer/Invitation.html#INVITATION_TYPE_TURN_BASED">INVITATION_TYPE_TURN_BASED</a></td>
+ <td class="jd-descrcol" width="100%">Constant indicating that this invitation is for a turn-based match.</td>
+ </tr>
+
+
+
+</table>
+
+
@@ -958,6 +997,24 @@
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/Invitation.html#getInvitationType()">getInvitationType</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Retrieve the type of this <code><a href="/reference/com/google/android/gms/games/multiplayer/Invitation.html">Invitation</a></code>.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
<a href="/reference/com/google/android/gms/games/multiplayer/Participant.html">Participant</a></nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
@@ -969,7 +1026,7 @@
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
abstract
@@ -1187,6 +1244,91 @@
<!-- Constants -->
+<!-- ========= ENUM CONSTANTS DETAIL ======== -->
+<h2>Constants</h2>
+
+
+
+
+<A NAME="INVITATION_TYPE_REAL_TIME"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+ static
+ final
+ int
+ </span>
+ INVITATION_TYPE_REAL_TIME
+ </h4>
+ <div class="api-level">
+
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Constant indicating that this invitation is for a real-time room.
+</p></div>
+
+
+ <div class="jd-tagdata">
+ <span class="jd-tagtitle">Constant Value: </span>
+ <span>
+
+ 0
+ (0x00000000)
+
+ </span>
+ </div>
+
+ </div>
+</div>
+
+
+
+<A NAME="INVITATION_TYPE_TURN_BASED"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+ static
+ final
+ int
+ </span>
+ INVITATION_TYPE_TURN_BASED
+ </h4>
+ <div class="api-level">
+
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Constant indicating that this invitation is for a turn-based match.
+</p></div>
+
+
+ <div class="jd-tagdata">
+ <span class="jd-tagtitle">Constant Value: </span>
+ <span>
+
+ 1
+ (0x00000001)
+
+ </span>
+ </div>
+
+ </div>
+</div>
+
+
+
+
<!-- Fields -->
@@ -1308,6 +1450,41 @@
</div>
+<A NAME="getInvitationType()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+ abstract
+
+ int
+ </span>
+ <span class="sympad">getInvitationType</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Retrieve the type of this <code><a href="/reference/com/google/android/gms/games/multiplayer/Invitation.html">Invitation</a></code>. May be either
+ <code><a href="/reference/com/google/android/gms/games/multiplayer/Invitation.html#INVITATION_TYPE_REAL_TIME">INVITATION_TYPE_REAL_TIME</a></code> or <code><a href="/reference/com/google/android/gms/games/multiplayer/Invitation.html#INVITATION_TYPE_TURN_BASED">INVITATION_TYPE_TURN_BASED</a></code>.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>The type of the <code><a href="/reference/com/google/android/gms/games/multiplayer/Invitation.html">Invitation</a></code>.
+</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
<A NAME="getInviter()"></A>
<div class="jd-details api apilevel-">
@@ -1368,7 +1545,7 @@
<div class="jd-tagdata jd-tagdescr"><p>Retrieve the variant specified for this <code><a href="/reference/com/google/android/gms/games/multiplayer/Invitation.html">Invitation</a></code>, if any. A variant is an optional
developer-controlled parameter describing the type of game to play. If specified, this value
will be a positive integer. If this invitation had no variant specified, returns
- <code><a href="/reference/com/google/android/gms/games/multiplayer/realtime/Room.html#ROOM_VARIANT_ANY">ROOM_VARIANT_ANY</a></code>.</p></div>
+ <code><a href="/reference/com/google/android/gms/games/multiplayer/realtime/Room.html#ROOM_VARIANT_ANY">ROOM_VARIANT_ANY</a></code> or <code><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html#MATCH_VARIANT_ANY">MATCH_VARIANT_ANY</a></code>.</p></div>
<div class="jd-tagdata">
<h5 class="jd-tagtitle">Returns</h5>
<ul class="nolist"><li>Variant specified for this invitation, if any.
diff --git a/docs/html/reference/com/google/android/gms/games/multiplayer/InvitationBuffer.html b/docs/html/reference/com/google/android/gms/games/multiplayer/InvitationBuffer.html
index c164d34..c5bdc26 100644
--- a/docs/html/reference/com/google/android/gms/games/multiplayer/InvitationBuffer.html
+++ b/docs/html/reference/com/google/android/gms/games/multiplayer/InvitationBuffer.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/games/multiplayer/InvitationEntity.html b/docs/html/reference/com/google/android/gms/games/multiplayer/InvitationEntity.html
index 8ff5f9e..6ee1e1f 100644
--- a/docs/html/reference/com/google/android/gms/games/multiplayer/InvitationEntity.html
+++ b/docs/html/reference/com/google/android/gms/games/multiplayer/InvitationEntity.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
@@ -670,6 +683,8 @@
+
+
@@ -879,6 +894,42 @@
+<tr class="api apilevel-" >
+<td colspan="12">
+
+ <a href="#" onclick="return toggleInherited(this, null)" id="inherited-constants-com.google.android.gms.games.multiplayer.Invitation" class="jd-expando-trigger closed"
+ ><img id="inherited-constants-com.google.android.gms.games.multiplayer.Invitation-trigger"
+ src="/assets/images/triangle-closed.png"
+ class="jd-expando-trigger-img" /></a>From interface
+<a href="/reference/com/google/android/gms/games/multiplayer/Invitation.html">com.google.android.gms.games.multiplayer.Invitation</a>
+<div id="inherited-constants-com.google.android.gms.games.multiplayer.Invitation">
+ <div id="inherited-constants-com.google.android.gms.games.multiplayer.Invitation-list"
+ class="jd-inheritedlinks">
+ </div>
+ <div id="inherited-constants-com.google.android.gms.games.multiplayer.Invitation-summary" style="display: none;">
+ <table class="jd-sumtable-expando">
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/multiplayer/Invitation.html#INVITATION_TYPE_REAL_TIME">INVITATION_TYPE_REAL_TIME</a></td>
+ <td class="jd-descrcol" width="100%">Constant indicating that this invitation is for a real-time room.</td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/multiplayer/Invitation.html#INVITATION_TYPE_TURN_BASED">INVITATION_TYPE_TURN_BASED</a></td>
+ <td class="jd-descrcol" width="100%">Constant indicating that this invitation is for a turn-based match.</td>
+ </tr>
+
+
+</table>
+ </div>
+</div>
+</td></tr>
+
@@ -1563,6 +1614,24 @@
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/Invitation.html#getInvitationType()">getInvitationType</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Retrieve the type of this <code><a href="/reference/com/google/android/gms/games/multiplayer/Invitation.html">Invitation</a></code>.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
<a href="/reference/com/google/android/gms/games/multiplayer/Participant.html">Participant</a></nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
@@ -1574,7 +1643,7 @@
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
abstract
@@ -2020,7 +2089,7 @@
<div class="jd-tagdata jd-tagdescr"><p>Retrieve the variant specified for this <code><a href="/reference/com/google/android/gms/games/multiplayer/Invitation.html">Invitation</a></code>, if any. A variant is an optional
developer-controlled parameter describing the type of game to play. If specified, this value
will be a positive integer. If this invitation had no variant specified, returns
- <code><a href="/reference/com/google/android/gms/games/multiplayer/realtime/Room.html#ROOM_VARIANT_ANY">ROOM_VARIANT_ANY</a></code>.</p></div>
+ <code><a href="/reference/com/google/android/gms/games/multiplayer/realtime/Room.html#ROOM_VARIANT_ANY">ROOM_VARIANT_ANY</a></code> or <code><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html#MATCH_VARIANT_ANY">MATCH_VARIANT_ANY</a></code>.</p></div>
<div class="jd-tagdata">
<h5 class="jd-tagtitle">Returns</h5>
<ul class="nolist"><li>Variant specified for this invitation, if any.
diff --git a/docs/html/reference/com/google/android/gms/games/multiplayer/OnInvitationReceivedListener.html b/docs/html/reference/com/google/android/gms/games/multiplayer/OnInvitationReceivedListener.html
index 164faed..1d82d46 100644
--- a/docs/html/reference/com/google/android/gms/games/multiplayer/OnInvitationReceivedListener.html
+++ b/docs/html/reference/com/google/android/gms/games/multiplayer/OnInvitationReceivedListener.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
@@ -646,6 +659,25 @@
<div class="sum-details-links">
+Summary:
+
+
+
+
+
+
+
+
+
+
+
+ <a href="#pubmethods">Methods</a>
+
+
+
+
+| <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
+
</div><!-- end sum-details-links -->
<div class="api-level">
@@ -694,6 +726,38 @@
+<table class="jd-sumtable jd-sumtable-subclasses"><tr><td colspan="12" style="border:none;margin:0;padding:0;">
+
+ <a href="#" onclick="return toggleInherited(this, null)" id="subclasses-indirect" class="jd-expando-trigger closed"
+ ><img id="subclasses-indirect-trigger"
+ src="/assets/images/triangle-closed.png"
+ class="jd-expando-trigger-img" /></a>Known Indirect Subclasses
+
+ <div id="subclasses-indirect">
+ <div id="subclasses-indirect-list"
+ class="jd-inheritedlinks"
+
+ >
+
+
+ <a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMultiplayerListener.html">TurnBasedMultiplayerListener</a>
+
+
+ </div>
+ <div id="subclasses-indirect-summary"
+ style="display: none;"
+ >
+ <table class="jd-sumtable-expando">
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMultiplayerListener.html">TurnBasedMultiplayerListener</a></td>
+ <td class="jd-descrcol" width="100%">Helper interface compounding all of the necessary listeners to implement a turn-based multiplayer
+ game. </td>
+ </tr>
+ </table>
+ </div>
+ </div>
+</td></tr></table>
+
<div class="jd-descr">
@@ -778,6 +842,25 @@
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/OnInvitationReceivedListener.html#onInvitationRemoved(java.lang.String)">onInvitationRemoved</a></span>(String invitationId)</nobr>
+
+ <div class="jd-descrdiv">Callback invoked when a previously received invitation has been removed from the local
+ device.</div>
+
+ </td></tr>
+
+
+
</table>
@@ -866,6 +949,46 @@
</div>
+<A NAME="onInvitationRemoved(java.lang.String)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+ abstract
+
+ void
+ </span>
+ <span class="sympad">onInvitationRemoved</span>
+ <span class="normal">(String invitationId)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Callback invoked when a previously received invitation has been removed from the local
+ device. For example, this might occur if the inviting player leaves the match.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>invitationId</td>
+ <td>The ID of the invitation that was removed.
+</td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
diff --git a/docs/html/reference/com/google/android/gms/games/multiplayer/OnInvitationsLoadedListener.html b/docs/html/reference/com/google/android/gms/games/multiplayer/OnInvitationsLoadedListener.html
index 322d139..b8f9804 100644
--- a/docs/html/reference/com/google/android/gms/games/multiplayer/OnInvitationsLoadedListener.html
+++ b/docs/html/reference/com/google/android/gms/games/multiplayer/OnInvitationsLoadedListener.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
@@ -851,8 +864,10 @@
<div class="jd-tagdata jd-tagdescr"><p>Called when invitations have been loaded. Possible status codes include:
<ul>
<li><code><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_OK">STATUS_OK</a></code> if data was successfully loaded and is up-to-date.</li>
+ <li><code><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_NETWORK_ERROR_NO_DATA">STATUS_NETWORK_ERROR_NO_DATA</a></code> if the device was unable to retrieve any
+ data from the network and has no data cached locally.</li>
<li><code><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_NETWORK_ERROR_STALE_DATA">STATUS_NETWORK_ERROR_STALE_DATA</a></code> if the device was unable to retrieve
- the latest data from the network.</li>
+ the latest data from the network, but has some data cached locally.</li>
<li><code><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_CLIENT_RECONNECT_REQUIRED">STATUS_CLIENT_RECONNECT_REQUIRED</a></code> if the <code><a href="/reference/com/google/android/gms/games/GamesClient.html">GamesClient</a></code> needs to
reconnect to the service to access this data.</li>
<li><code><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_INTERNAL_ERROR">STATUS_INTERNAL_ERROR</a></code> if an unexpected error occurred in the service.
diff --git a/docs/html/reference/com/google/android/gms/games/multiplayer/Participant.html b/docs/html/reference/com/google/android/gms/games/multiplayer/Participant.html
index c71146e..854a221 100644
--- a/docs/html/reference/com/google/android/gms/games/multiplayer/Participant.html
+++ b/docs/html/reference/com/google/android/gms/games/multiplayer/Participant.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
@@ -835,25 +848,46 @@
<tr class=" api apilevel-" >
<td class="jd-typecol">int</td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/multiplayer/Participant.html#STATUS_FINISHED">STATUS_FINISHED</a></td>
+ <td class="jd-descrcol" width="100%">Constant indicating that this participant is finished with this match.</td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/multiplayer/Participant.html#STATUS_INVITED">STATUS_INVITED</a></td>
<td class="jd-descrcol" width="100%">Constant indicating that this participant has been sent an invitation.</td>
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/multiplayer/Participant.html#STATUS_JOINED">STATUS_JOINED</a></td>
<td class="jd-descrcol" width="100%">Constant indicating that this participant has accepted the invitation and is joined.</td>
</tr>
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/multiplayer/Participant.html#STATUS_LEFT">STATUS_LEFT</a></td>
<td class="jd-descrcol" width="100%">Constant indicating that this participant joined a multiplayer game and subsequently left.</td>
</tr>
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/multiplayer/Participant.html#STATUS_NOT_INVITED_YET">STATUS_NOT_INVITED_YET</a></td>
+ <td class="jd-descrcol" width="100%">Constant indicating that this participant has not yet been sent an invitation.</td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/multiplayer/Participant.html#STATUS_UNRESPONSIVE">STATUS_UNRESPONSIVE</a></td>
+ <td class="jd-descrcol" width="100%">Constant indicating that this participant did not respond to the match in the alloted time.</td>
+ </tr>
+
+
</table>
@@ -1041,6 +1075,24 @@
+ <a href="/reference/com/google/android/gms/games/multiplayer/ParticipantResult.html">ParticipantResult</a></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/Participant.html#getResult()">getResult</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Returns the <code><a href="/reference/com/google/android/gms/games/multiplayer/ParticipantResult.html">ParticipantResult</a></code> associated with this participant, if any.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
int</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
@@ -1052,7 +1104,7 @@
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
abstract
@@ -1271,6 +1323,45 @@
+<A NAME="STATUS_FINISHED"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+ static
+ final
+ int
+ </span>
+ STATUS_FINISHED
+ </h4>
+ <div class="api-level">
+
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Constant indicating that this participant is finished with this match. Only applies to turn-based match participants.
+</p></div>
+
+
+ <div class="jd-tagdata">
+ <span class="jd-tagtitle">Constant Value: </span>
+ <span>
+
+ 5
+ (0x00000005)
+
+ </span>
+ </div>
+
+ </div>
+</div>
+
+
+
<A NAME="STATUS_INVITED"></A>
<div class="jd-details api apilevel-">
@@ -1388,6 +1479,84 @@
+<A NAME="STATUS_NOT_INVITED_YET"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+ static
+ final
+ int
+ </span>
+ STATUS_NOT_INVITED_YET
+ </h4>
+ <div class="api-level">
+
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Constant indicating that this participant has not yet been sent an invitation. Only applies to turn-based match participants.
+</p></div>
+
+
+ <div class="jd-tagdata">
+ <span class="jd-tagtitle">Constant Value: </span>
+ <span>
+
+ 0
+ (0x00000000)
+
+ </span>
+ </div>
+
+ </div>
+</div>
+
+
+
+<A NAME="STATUS_UNRESPONSIVE"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+ static
+ final
+ int
+ </span>
+ STATUS_UNRESPONSIVE
+ </h4>
+ <div class="api-level">
+
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Constant indicating that this participant did not respond to the match in the alloted time. Only applies to turn-based match participants.
+</p></div>
+
+
+ <div class="jd-tagdata">
+ <span class="jd-tagtitle">Constant Value: </span>
+ <span>
+
+ 6
+ (0x00000006)
+
+ </span>
+ </div>
+
+ </div>
+</div>
+
+
+
<!-- Fields -->
@@ -1581,7 +1750,8 @@
<div class="jd-details-descr">
<div class="jd-tagdata jd-tagdescr"><p>Returns the ID of this participant. Note that this is only valid for use in the current
- multiplayer room: a participant will not have the same ID across multiple rooms.</p></div>
+ multiplayer room or match: a participant will not have the same ID across multiple rooms or
+ matches.</p></div>
<div class="jd-tagdata">
<h5 class="jd-tagtitle">Returns</h5>
<ul class="nolist"><li>The ID of this participant.
@@ -1628,6 +1798,40 @@
</div>
+<A NAME="getResult()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+ abstract
+
+ <a href="/reference/com/google/android/gms/games/multiplayer/ParticipantResult.html">ParticipantResult</a>
+ </span>
+ <span class="sympad">getResult</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Returns the <code><a href="/reference/com/google/android/gms/games/multiplayer/ParticipantResult.html">ParticipantResult</a></code> associated with this participant, if any. Only applies to turn-based match participants.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>The <code><a href="/reference/com/google/android/gms/games/multiplayer/ParticipantResult.html">ParticipantResult</a></code> for this participant, or null if not applicable.
+</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
<A NAME="getStatus()"></A>
<div class="jd-details api apilevel-">
@@ -1652,7 +1856,7 @@
<div class="jd-details-descr">
<div class="jd-tagdata jd-tagdescr"><p>Retrieve the status of this participant. Possible values are <code><a href="/reference/com/google/android/gms/games/multiplayer/Participant.html#STATUS_INVITED">STATUS_INVITED</a></code>,
- <code><a href="/reference/com/google/android/gms/games/multiplayer/Participant.html#STATUS_JOINED">STATUS_JOINED</a></code>, <code><a href="/reference/com/google/android/gms/games/multiplayer/Participant.html#STATUS_DECLINED">STATUS_DECLINED</a></code>, or <code><a href="/reference/com/google/android/gms/games/multiplayer/Participant.html#STATUS_LEFT">STATUS_LEFT</a></code>.</p></div>
+ <code><a href="/reference/com/google/android/gms/games/multiplayer/Participant.html#STATUS_JOINED">STATUS_JOINED</a></code>, <code><a href="/reference/com/google/android/gms/games/multiplayer/Participant.html#STATUS_DECLINED">STATUS_DECLINED</a></code>, or <code><a href="/reference/com/google/android/gms/games/multiplayer/Participant.html#STATUS_LEFT">STATUS_LEFT</a></code>.< Possible status values for turn-based match participants are all of the above, <code><a href="/reference/com/google/android/gms/games/multiplayer/Participant.html#STATUS_NOT_INVITED_YET">STATUS_NOT_INVITED_YET</a></code>, <code><a href="/reference/com/google/android/gms/games/multiplayer/Participant.html#STATUS_FINISHED">STATUS_FINISHED</a></code>, and <code><a href="/reference/com/google/android/gms/games/multiplayer/Participant.html#STATUS_UNRESPONSIVE">STATUS_UNRESPONSIVE</a></code>.</p></div>
<div class="jd-tagdata">
<h5 class="jd-tagtitle">Returns</h5>
<ul class="nolist"><li>Status of this participant.
@@ -1687,7 +1891,7 @@
<div class="jd-details-descr">
<div class="jd-tagdata jd-tagdescr"><p>Retrieves the connected status of the participant. If true indicates that participant is in
- the connected set of the room.</p></div>
+ the connected set of the room. Only applies to room participants.</p></div>
<div class="jd-tagdata">
<h5 class="jd-tagtitle">Returns</h5>
<ul class="nolist"><li>Connected status of the participant.
diff --git a/docs/html/reference/com/google/android/gms/games/multiplayer/ParticipantBuffer.html b/docs/html/reference/com/google/android/gms/games/multiplayer/ParticipantBuffer.html
index 83d511e..2af0fa1 100644
--- a/docs/html/reference/com/google/android/gms/games/multiplayer/ParticipantBuffer.html
+++ b/docs/html/reference/com/google/android/gms/games/multiplayer/ParticipantBuffer.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/games/multiplayer/ParticipantEntity.html b/docs/html/reference/com/google/android/gms/games/multiplayer/ParticipantEntity.html
index ad1149d..a039072 100644
--- a/docs/html/reference/com/google/android/gms/games/multiplayer/ParticipantEntity.html
+++ b/docs/html/reference/com/google/android/gms/games/multiplayer/ParticipantEntity.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
@@ -900,25 +913,46 @@
<tr class=" api apilevel-" >
<td class="jd-typecol">int</td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/multiplayer/Participant.html#STATUS_FINISHED">STATUS_FINISHED</a></td>
+ <td class="jd-descrcol" width="100%">Constant indicating that this participant is finished with this match.</td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/multiplayer/Participant.html#STATUS_INVITED">STATUS_INVITED</a></td>
<td class="jd-descrcol" width="100%">Constant indicating that this participant has been sent an invitation.</td>
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/multiplayer/Participant.html#STATUS_JOINED">STATUS_JOINED</a></td>
<td class="jd-descrcol" width="100%">Constant indicating that this participant has accepted the invitation and is joined.</td>
</tr>
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/multiplayer/Participant.html#STATUS_LEFT">STATUS_LEFT</a></td>
<td class="jd-descrcol" width="100%">Constant indicating that this participant joined a multiplayer game and subsequently left.</td>
</tr>
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/multiplayer/Participant.html#STATUS_NOT_INVITED_YET">STATUS_NOT_INVITED_YET</a></td>
+ <td class="jd-descrcol" width="100%">Constant indicating that this participant has not yet been sent an invitation.</td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/multiplayer/Participant.html#STATUS_UNRESPONSIVE">STATUS_UNRESPONSIVE</a></td>
+ <td class="jd-descrcol" width="100%">Constant indicating that this participant did not respond to the match in the alloted time.</td>
+ </tr>
+
+
</table>
</div>
</div>
@@ -1130,6 +1164,24 @@
+ <a href="/reference/com/google/android/gms/games/multiplayer/ParticipantResult.html">ParticipantResult</a></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/ParticipantEntity.html#getResult()">getResult</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Returns the <code><a href="/reference/com/google/android/gms/games/multiplayer/ParticipantResult.html">ParticipantResult</a></code> associated with this participant, if any.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
int</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
@@ -1141,7 +1193,7 @@
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
@@ -1157,7 +1209,7 @@
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
@@ -1175,7 +1227,7 @@
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
@@ -1193,7 +1245,7 @@
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
@@ -1209,7 +1261,7 @@
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
@@ -1696,6 +1748,24 @@
+ <a href="/reference/com/google/android/gms/games/multiplayer/ParticipantResult.html">ParticipantResult</a></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/Participant.html#getResult()">getResult</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Returns the <code><a href="/reference/com/google/android/gms/games/multiplayer/ParticipantResult.html">ParticipantResult</a></code> associated with this participant, if any.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
int</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
@@ -1707,7 +1777,7 @@
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
abstract
@@ -2085,7 +2155,8 @@
<div class="jd-details-descr">
<div class="jd-tagdata jd-tagdescr"><p>Returns the ID of this participant. Note that this is only valid for use in the current
- multiplayer room: a participant will not have the same ID across multiple rooms.</p></div>
+ multiplayer room or match: a participant will not have the same ID across multiple rooms or
+ matches.</p></div>
<div class="jd-tagdata">
<h5 class="jd-tagtitle">Returns</h5>
<ul class="nolist"><li>The ID of this participant.
@@ -2132,6 +2203,40 @@
</div>
+<A NAME="getResult()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ <a href="/reference/com/google/android/gms/games/multiplayer/ParticipantResult.html">ParticipantResult</a>
+ </span>
+ <span class="sympad">getResult</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Returns the <code><a href="/reference/com/google/android/gms/games/multiplayer/ParticipantResult.html">ParticipantResult</a></code> associated with this participant, if any.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>The <code><a href="/reference/com/google/android/gms/games/multiplayer/ParticipantResult.html">ParticipantResult</a></code> for this participant, or null if not applicable.
+</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
<A NAME="getStatus()"></A>
<div class="jd-details api apilevel-">
diff --git a/docs/html/reference/com/google/android/gms/auth/RecoveryDecision.html b/docs/html/reference/com/google/android/gms/games/multiplayer/ParticipantResult.html
similarity index 65%
copy from docs/html/reference/com/google/android/gms/auth/RecoveryDecision.html
copy to docs/html/reference/com/google/android/gms/games/multiplayer/ParticipantResult.html
index 59a1346..df1ee9d 100644
--- a/docs/html/reference/com/google/android/gms/auth/RecoveryDecision.html
+++ b/docs/html/reference/com/google/android/gms/games/multiplayer/ParticipantResult.html
@@ -83,7 +83,7 @@
<meta name="viewport" content="width=device-width" />
<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
-<title>RecoveryDecision | Android Developers</title>
+<title>ParticipantResult | Android Developers</title>
<!-- STYLESHEETS -->
<link rel="stylesheet"
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -128,7 +129,7 @@
<img src="/assets/images/dac_logo.png" width="123" height="25" alt="Android Developers" />
</a>
<div class="btn-quicknav" id="btn-quicknav">
- <a href="#" class="arrow-inactive">Quicknav</a>
+ <a href="#" class="arrow-inactive">Quicknav</a>
<a href="#" class="arrow-active">Quicknav</a>
</div>
</div>
@@ -140,7 +141,7 @@
ru-lang="Проектирование"
ko-lang="디자인"
ja-lang="設計"
- es-lang="Diseñar"
+ es-lang="Diseñar"
>Design</a></li>
<li class="develop"><a href="/develop/index.html"
zh-tw-lang="開發"
@@ -148,7 +149,7 @@
ru-lang="Разработка"
ko-lang="개발"
ja-lang="開発"
- es-lang="Desarrollar"
+ es-lang="Desarrollar"
>Develop</a></li>
<li class="distribute last"><a href="/distribute/index.html"
zh-tw-lang="發佈"
@@ -156,10 +157,10 @@
ru-lang="Распространение"
ko-lang="배포"
ja-lang="配布"
- es-lang="Distribuir"
+ es-lang="Distribuir"
>Distribute</a></li>
</ul>
-
+
<!-- New Search -->
<div class="menu-container">
<div class="moremenu">
@@ -180,9 +181,9 @@
<li class="active"><a>Android Developers</a></li>
<li><a href="http://source.android.com">Android Open Source Project</a></li>
</ul>
-
-
-
+
+
+
<div class="header">Language</div>
<div id="language" class="locales">
<select name="language" onChange="changeLangPref(this.value, true)">
@@ -200,8 +201,8 @@
loadLangPref();
//-->
</script>
-
-
+
+
<br class="clearfix" />
@@ -215,7 +216,7 @@
<form onsubmit="return submit_search()">
<input id="search_autocomplete" type="text" value="" autocomplete="off" name="q"
onfocus="search_focus_changed(this, true)" onblur="search_focus_changed(this, false)"
-onkeydown="return search_changed(event, true, '/')"
+onkeydown="return search_changed(event, true, '/')"
onkeyup="return search_changed(event, false, '/')" />
</form>
<div class="right"></div>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -254,8 +257,8 @@
</div>
<!-- /New Search>
-
-
+
+
<!-- Expanded quicknav -->
<div id="quicknav" class="col-9">
<ul>
@@ -277,15 +280,15 @@
ru-lang="Курсы"
ko-lang="교육"
ja-lang="トレーニング"
- es-lang="Capacitación"
+ es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
ko-lang="API 가이드"
ja-lang="API ガイド"
- es-lang="Guías de la API"
+ es-lang="Guías de la API"
>API Guides</a></li>
<li><a href="/reference/packages.html"
zh-tw-lang="參考資源"
@@ -293,7 +296,7 @@
ru-lang="Справочник"
ko-lang="참조문서"
ja-lang="リファレンス"
- es-lang="Referencia"
+ es-lang="Referencia"
>Reference</a></li>
<li><a href="/tools/index.html"
zh-tw-lang="相關工具"
@@ -301,13 +304,16 @@
ru-lang="Инструменты"
ko-lang="도구"
ja-lang="ツール"
- es-lang="Herramientas"
+ es-lang="Herramientas"
>Tools</a>
<ul><li><a href="/sdk/index.html">Get the SDK</a></li></ul>
</li>
<li><a href="/google/index.html">Google Services</a>
</li>
-
+
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -326,15 +332,15 @@
</div>
</div>
<!-- /Header -->
-
-
+
+
<div id="searchResults" class="wrap" style="display:none;">
<h2 id="searchTitle">Results</h2>
<div id="leftSearchControl" class="search-control">Loading...</div>
</div>
-
-
-
+
+
+
<!-- Secondary x-nav -->
<div id="nav-x">
<div class="wrap">
@@ -345,15 +351,15 @@
ru-lang="Курсы"
ko-lang="교육"
ja-lang="トレーニング"
- es-lang="Capacitación"
+ es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
ko-lang="API 가이드"
ja-lang="API ガイド"
- es-lang="Guías de la API"
+ es-lang="Guías de la API"
>API Guides</a></li>
<li class="reference"><a href="/reference/packages.html"
zh-tw-lang="參考資源"
@@ -361,7 +367,7 @@
ru-lang="Справочник"
ko-lang="참조문서"
ja-lang="リファレンス"
- es-lang="Referencia"
+ es-lang="Referencia"
>Reference</a></li>
<li class="tools"><a href="/tools/index.html"
zh-tw-lang="相關工具"
@@ -374,21 +380,25 @@
<li class="google"><a href="/google/index.html"
>Google Services</a>
</li>
-
+
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
-
+
</div>
<!-- /Sendondary x-nav -->
-
-
-
+
+
+
<div class="wrap clearfix" id="body-content">
<div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
<div id="devdoc-nav" class="scroll-pane">
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
@@ -618,12 +631,12 @@
</script>
-
+
</div>
<script type="text/javascript">
showGoogleRefTree();
-
+
</script>
</div> <!-- end side-nav -->
<script>
@@ -633,7 +646,7 @@
</script>
-
+
@@ -643,21 +656,21 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
<div class="sum-details-links">
@@ -668,23 +681,26 @@
+ <a href="#constants">Constants</a>
- <a href="#inhconstants">Inherited Constants</a>
-
+
+
+ | <a href="#inhconstants">Inherited Constants</a>
+
| <a href="#lfields">Fields</a>
-
+
| <a href="#pubctors">Ctors</a>
-
+
| <a href="#pubmethods">Methods</a>
-
+
@@ -694,9 +710,9 @@
</div><!-- end sum-details-links -->
<div class="api-level">
-
-
-
+
+
+
</div>
</div><!-- end api-info-block -->
@@ -706,28 +722,28 @@
<div id="jd-header">
public
-
-
-
+
+ final
+
class
-<h1 itemprop="name">RecoveryDecision</h1>
+<h1 itemprop="name">ParticipantResult</h1>
-
+
extends Object<br/>
-
-
-
-
-
- implements
-
- Parcelable
-
-
-
+
+
+
+
+
+ implements
+
+ Parcelable
+
+
+
</div><!-- end header -->
@@ -739,18 +755,18 @@
<tr>
-
+
<td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
</tr>
-
+
<tr>
-
+
<td class="jd-inheritance-space"> ↳</td>
-
- <td colspan="1" class="jd-inheritance-class-cell">com.google.android.gms.auth.RecoveryDecision</td>
+
+ <td colspan="1" class="jd-inheritance-class-cell">com.google.android.gms.games.multiplayer.ParticipantResult</td>
</tr>
-
+
</table>
@@ -763,6 +779,10 @@
<div class="jd-descr">
+<h2>Class Overview</h2>
+<p itemprop="articleBody">Data class used to report a participant's result in a match.
+</p>
+
@@ -801,6 +821,73 @@
+<!-- =========== ENUM CONSTANT SUMMARY =========== -->
+<table id="constants" class="jd-sumtable"><tr><th colspan="12">Constants</th></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/multiplayer/ParticipantResult.html#MATCH_RESULT_DISAGREED">MATCH_RESULT_DISAGREED</a></td>
+ <td class="jd-descrcol" width="100%">Constant indicating that this participant had different results reported by different
+ clients.</td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/multiplayer/ParticipantResult.html#MATCH_RESULT_DISCONNECT">MATCH_RESULT_DISCONNECT</a></td>
+ <td class="jd-descrcol" width="100%">Constant indicating that this participant disconnected or left during the match.</td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/multiplayer/ParticipantResult.html#MATCH_RESULT_LOSS">MATCH_RESULT_LOSS</a></td>
+ <td class="jd-descrcol" width="100%">Constant indicating that this participant lost the match.</td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/multiplayer/ParticipantResult.html#MATCH_RESULT_NONE">MATCH_RESULT_NONE</a></td>
+ <td class="jd-descrcol" width="100%">Constant indicating that this participant had no result for the match.</td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/multiplayer/ParticipantResult.html#MATCH_RESULT_TIE">MATCH_RESULT_TIE</a></td>
+ <td class="jd-descrcol" width="100%">Constant indicating that this participant tied the match.</td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/multiplayer/ParticipantResult.html#MATCH_RESULT_UNINITIALIZED">MATCH_RESULT_UNINITIALIZED</a></td>
+ <td class="jd-descrcol" width="100%">Constant indicating that this participant has not reported a result at all yet.</td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/multiplayer/ParticipantResult.html#MATCH_RESULT_WIN">MATCH_RESULT_WIN</a></td>
+ <td class="jd-descrcol" width="100%">Constant indicating that this participant won the match.</td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/multiplayer/ParticipantResult.html#PLACING_UNINITIALIZED">PLACING_UNINITIALIZED</a></td>
+ <td class="jd-descrcol" width="100%">Constant returned by <code><a href="/reference/com/google/android/gms/games/multiplayer/ParticipantResult.html#getPlacing()">getPlacing()</a></code> if the participant has not reported a placing in
+ the match yet.</td>
+ </tr>
+
+
+
+</table>
+
+
@@ -826,23 +913,23 @@
</div>
<div id="inherited-constants-android.os.Parcelable-summary" style="display: none;">
<table class="jd-sumtable-expando">
-
-
+
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol">CONTENTS_FILE_DESCRIPTOR</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
-
-
+
+
<tr class=" api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol">PARCELABLE_WRITE_RETURN_VALUE</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
-
-
+
+
</table>
</div>
</div>
@@ -858,74 +945,18 @@
<table id="lfields" class="jd-sumtable"><tr><th colspan="12">Fields</th></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
public
static
final
- <a href="/reference/com/google/android/gms/auth/RecoveryDecisionCreator.html">RecoveryDecisionCreator</a></nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#CREATOR">CREATOR</a></td>
+ <a href="/reference/com/google/android/gms/games/multiplayer/ParticipantResultCreator.html">ParticipantResultCreator</a></nobr></td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/multiplayer/ParticipantResult.html#CREATOR">CREATOR</a></td>
<td class="jd-descrcol" width="100%"></td>
</tr>
-
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- boolean</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#isRecoveryInfoNeeded">isRecoveryInfoNeeded</a></td>
- <td class="jd-descrcol" width="100%">Is <code>true</code> if either the account has no recovery information or it
- was updated long time back (controlled by server, default 1 year).</td>
- </tr>
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- boolean</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#isRecoveryInterstitialAllowed">isRecoveryInterstitialAllowed</a></td>
- <td class="jd-descrcol" width="100%">Is <code>true</code> iff the user has permission to update the account.</td>
- </tr>
-
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- PendingIntent</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#recoveryIntent">recoveryIntent</a></td>
- <td class="jd-descrcol" width="100%">A PendingIntent to an activity that gathers recovery information for the given account.</td>
- </tr>
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- PendingIntent</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#recoveryIntentWithoutIntro">recoveryIntentWithoutIntro</a></td>
- <td class="jd-descrcol" width="100%">A PendingIntent to an activity that gathers recovery information for the given account.</td>
- </tr>
-
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- boolean</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#showRecoveryInterstitial">showRecoveryInterstitial</a></td>
- <td class="jd-descrcol" width="100%">Represents the decision and should be obeyed by the client.</td>
- </tr>
-
-
+
+
</table>
@@ -940,19 +971,19 @@
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#RecoveryDecision()">RecoveryDecision</a></span>()</nobr>
-
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/ParticipantResult.html#ParticipantResult(java.lang.String, int, int)">ParticipantResult</a></span>(String participantId, int result, int placing)</nobr>
+
</td></tr>
@@ -969,51 +1000,83 @@
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
int</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#describeContents()">describeContents</a></span>()</nobr>
-
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/ParticipantResult.html#describeContents()">describeContents</a></span>()</nobr>
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
- int</nobr>
+
+
+
+
+
+ String</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#getVersionCode()">getVersionCode</a></span>()</nobr>
-
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/ParticipantResult.html#getParticipantId()">getParticipantId</a></span>()</nobr>
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/ParticipantResult.html#getPlacing()">getPlacing</a></span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/ParticipantResult.html#getResult()">getResult</a></span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#writeToParcel(android.os.Parcel, int)">writeToParcel</a></span>(Parcel out, int flags)</nobr>
-
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/ParticipantResult.html#writeToParcel(android.os.Parcel, int)">writeToParcel</a></span>(Parcel out, int flags)</nobr>
+
</td></tr>
@@ -1048,182 +1111,182 @@
</div>
<div id="inherited-methods-java.lang.Object-summary" style="display: none;">
<table class="jd-sumtable-expando">
-
-
+
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
Object</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">clone</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
boolean</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">equals</span>(Object arg0)</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">finalize</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
Class<?></nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">getClass</span>()</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
int</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">hashCode</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">notify</span>()</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">notifyAll</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
String</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">toString</span>()</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">wait</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">wait</span>(long arg0)</nobr>
-
+
</td></tr>
@@ -1250,38 +1313,38 @@
</div>
<div id="inherited-methods-android.os.Parcelable-summary" style="display: none;">
<table class="jd-sumtable-expando">
-
-
+
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
abstract
-
-
-
-
+
+
+
+
int</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">describeContents</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
abstract
-
-
-
-
+
+
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">writeToParcel</span>(Parcel arg0, int arg1)</nobr>
-
+
</td></tr>
@@ -1314,6 +1377,329 @@
<!-- Constants -->
+<!-- ========= ENUM CONSTANTS DETAIL ======== -->
+<h2>Constants</h2>
+
+
+
+
+<A NAME="MATCH_RESULT_DISAGREED"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+ static
+ final
+ int
+ </span>
+ MATCH_RESULT_DISAGREED
+ </h4>
+ <div class="api-level">
+
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Constant indicating that this participant had different results reported by different
+ clients.
+</p></div>
+
+
+ <div class="jd-tagdata">
+ <span class="jd-tagtitle">Constant Value: </span>
+ <span>
+
+ 5
+ (0x00000005)
+
+ </span>
+ </div>
+
+ </div>
+</div>
+
+
+
+<A NAME="MATCH_RESULT_DISCONNECT"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+ static
+ final
+ int
+ </span>
+ MATCH_RESULT_DISCONNECT
+ </h4>
+ <div class="api-level">
+
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Constant indicating that this participant disconnected or left during the match.
+</p></div>
+
+
+ <div class="jd-tagdata">
+ <span class="jd-tagtitle">Constant Value: </span>
+ <span>
+
+ 4
+ (0x00000004)
+
+ </span>
+ </div>
+
+ </div>
+</div>
+
+
+
+<A NAME="MATCH_RESULT_LOSS"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+ static
+ final
+ int
+ </span>
+ MATCH_RESULT_LOSS
+ </h4>
+ <div class="api-level">
+
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Constant indicating that this participant lost the match.
+</p></div>
+
+
+ <div class="jd-tagdata">
+ <span class="jd-tagtitle">Constant Value: </span>
+ <span>
+
+ 1
+ (0x00000001)
+
+ </span>
+ </div>
+
+ </div>
+</div>
+
+
+
+<A NAME="MATCH_RESULT_NONE"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+ static
+ final
+ int
+ </span>
+ MATCH_RESULT_NONE
+ </h4>
+ <div class="api-level">
+
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Constant indicating that this participant had no result for the match.
+</p></div>
+
+
+ <div class="jd-tagdata">
+ <span class="jd-tagtitle">Constant Value: </span>
+ <span>
+
+ 3
+ (0x00000003)
+
+ </span>
+ </div>
+
+ </div>
+</div>
+
+
+
+<A NAME="MATCH_RESULT_TIE"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+ static
+ final
+ int
+ </span>
+ MATCH_RESULT_TIE
+ </h4>
+ <div class="api-level">
+
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Constant indicating that this participant tied the match.
+</p></div>
+
+
+ <div class="jd-tagdata">
+ <span class="jd-tagtitle">Constant Value: </span>
+ <span>
+
+ 2
+ (0x00000002)
+
+ </span>
+ </div>
+
+ </div>
+</div>
+
+
+
+<A NAME="MATCH_RESULT_UNINITIALIZED"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+ static
+ final
+ int
+ </span>
+ MATCH_RESULT_UNINITIALIZED
+ </h4>
+ <div class="api-level">
+
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Constant indicating that this participant has not reported a result at all yet. This will
+ commonly be seen when the match is currently in progress. Note that this is distinct from
+ <code><a href="/reference/com/google/android/gms/games/multiplayer/ParticipantResult.html#MATCH_RESULT_NONE">MATCH_RESULT_NONE</a></code>,
+</p></div>
+
+
+ <div class="jd-tagdata">
+ <span class="jd-tagtitle">Constant Value: </span>
+ <span>
+
+ -1
+ (0xffffffff)
+
+ </span>
+ </div>
+
+ </div>
+</div>
+
+
+
+<A NAME="MATCH_RESULT_WIN"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+ static
+ final
+ int
+ </span>
+ MATCH_RESULT_WIN
+ </h4>
+ <div class="api-level">
+
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Constant indicating that this participant won the match.
+</p></div>
+
+
+ <div class="jd-tagdata">
+ <span class="jd-tagtitle">Constant Value: </span>
+ <span>
+
+ 0
+ (0x00000000)
+
+ </span>
+ </div>
+
+ </div>
+</div>
+
+
+
+<A NAME="PLACING_UNINITIALIZED"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+ static
+ final
+ int
+ </span>
+ PLACING_UNINITIALIZED
+ </h4>
+ <div class="api-level">
+
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Constant returned by <code><a href="/reference/com/google/android/gms/games/multiplayer/ParticipantResult.html#getPlacing()">getPlacing()</a></code> if the participant has not reported a placing in
+ the match yet. Usually seen when a match is still in progress.
+</p></div>
+
+
+ <div class="jd-tagdata">
+ <span class="jd-tagtitle">Constant Value: </span>
+ <span>
+
+ -1
+ (0xffffffff)
+
+ </span>
+ </div>
+
+ </div>
+</div>
+
+
+
+
<!-- Fields -->
@@ -1325,183 +1711,27 @@
<A NAME="CREATOR"></A>
-<div class="jd-details api apilevel-">
+<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
- public
- static
- final
- <a href="/reference/com/google/android/gms/auth/RecoveryDecisionCreator.html">RecoveryDecisionCreator</a>
+ public
+ static
+ final
+ <a href="/reference/com/google/android/gms/games/multiplayer/ParticipantResultCreator.html">ParticipantResultCreator</a>
</span>
CREATOR
</h4>
<div class="api-level">
-
-
-
+
+
+
</div>
<div class="jd-details-descr">
-
+
<div class="jd-tagdata jd-tagdescr"><p></p></div>
-
- </div>
-</div>
-
-
-<A NAME="isRecoveryInfoNeeded"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- boolean
- </span>
- isRecoveryInfoNeeded
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>Is <code>true</code> if either the account has no recovery information or it
- was updated long time back (controlled by server, default 1 year).
-</p></div>
-
-
- </div>
-</div>
-
-
-
-<A NAME="isRecoveryInterstitialAllowed"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- boolean
- </span>
- isRecoveryInterstitialAllowed
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>Is <code>true</code> iff the user has permission to update the account.
- Dasher accounts can have recovery information edit disabled by the administrator.
- Eg: @google.com
-</p></div>
-
-
- </div>
-</div>
-
-
-
-<A NAME="recoveryIntent"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- PendingIntent
- </span>
- recoveryIntent
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>A PendingIntent to an activity that gathers recovery information for the given account.
- This intent will be null iff isRecoveryInterstitialAllowed is <code>false</code>.
-</p></div>
-
-
- </div>
-</div>
-
-
-
-<A NAME="recoveryIntentWithoutIntro"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- PendingIntent
- </span>
- recoveryIntentWithoutIntro
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>A PendingIntent to an activity that gathers recovery information for the given account.
- This intent will be null iff isRecoveryInterstitialAllowed is <code>false</code>.
- This intent directly skips to the input activity without showing the intro message.
-</p></div>
-
-
- </div>
-</div>
-
-
-
-<A NAME="showRecoveryInterstitial"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- boolean
- </span>
- showRecoveryInterstitial
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>Represents the decision and should be obeyed by the client. The remaining
- two flags are provided as additional information for one off decisions. This value
- is <code>true</code> iff isRecoveryInfoNeeded is <code>true</code>, isRecoveryInterstitialAllowed is
- <code>true</code> and a specified period (controlled by server, default 2 months) has passed
- since the user was shown a prompt for recovery information on any google property
- (Android, Web, etc.)
-</p></div>
-
-
</div>
</div>
@@ -1516,30 +1746,52 @@
-<A NAME="RecoveryDecision()"></A>
+<A NAME="ParticipantResult(java.lang.String, int, int)"></A>
-<div class="jd-details api apilevel-">
+<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
- public
-
-
-
-
-
+ public
+
+
+
+
+
</span>
- <span class="sympad">RecoveryDecision</span>
- <span class="normal">()</span>
+ <span class="sympad">ParticipantResult</span>
+ <span class="normal">(String participantId, int result, int placing)</span>
</h4>
<div class="api-level">
<div></div>
-
-
+
+
</div>
<div class="jd-details-descr">
-
+
<div class="jd-tagdata jd-tagdescr"><p></p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>participantId</td>
+ <td>The ID of the participant this result is for.</td>
+ </tr>
+ <tr>
+ <th>result</td>
+ <td>The result type for this participant in the match. One of
+ <code><a href="/reference/com/google/android/gms/games/multiplayer/ParticipantResult.html#MATCH_RESULT_WIN">MATCH_RESULT_WIN</a></code>, <code><a href="/reference/com/google/android/gms/games/multiplayer/ParticipantResult.html#MATCH_RESULT_LOSS">MATCH_RESULT_LOSS</a></code>, <code><a href="/reference/com/google/android/gms/games/multiplayer/ParticipantResult.html#MATCH_RESULT_TIE">MATCH_RESULT_TIE</a></code>,
+ <code><a href="/reference/com/google/android/gms/games/multiplayer/ParticipantResult.html#MATCH_RESULT_NONE">MATCH_RESULT_NONE</a></code>, <code><a href="/reference/com/google/android/gms/games/multiplayer/ParticipantResult.html#MATCH_RESULT_DISCONNECT">MATCH_RESULT_DISCONNECT</a></code>, or
+ <code><a href="/reference/com/google/android/gms/games/multiplayer/ParticipantResult.html#MATCH_RESULT_DISAGREED">MATCH_RESULT_DISAGREED</a></code>.</td>
+ </tr>
+ <tr>
+ <th>placing</td>
+ <td>The placing of this participant in the match. Use
+ <code><a href="/reference/com/google/android/gms/games/multiplayer/ParticipantResult.html#PLACING_UNINITIALIZED">PLACING_UNINITIALIZED</a></code> to indicate that no placing should be reported.
+</td>
+ </tr>
+ </table>
+ </div>
</div>
</div>
@@ -1562,14 +1814,14 @@
<A NAME="describeContents()"></A>
-<div class="jd-details api apilevel-">
+<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
- public
-
-
-
-
+ public
+
+
+
+
int
</span>
<span class="sympad">describeContents</span>
@@ -1577,42 +1829,118 @@
</h4>
<div class="api-level">
<div></div>
-
-
+
+
</div>
<div class="jd-details-descr">
-
+
<div class="jd-tagdata jd-tagdescr"><p></p></div>
</div>
</div>
-<A NAME="getVersionCode()"></A>
+<A NAME="getParticipantId()"></A>
-<div class="jd-details api apilevel-">
+<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
- public
-
-
-
-
- int
+ public
+
+
+
+
+ String
</span>
- <span class="sympad">getVersionCode</span>
+ <span class="sympad">getParticipantId</span>
<span class="normal">()</span>
</h4>
<div class="api-level">
<div></div>
-
-
+
+
</div>
<div class="jd-details-descr">
-
+
<div class="jd-tagdata jd-tagdescr"><p></p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>The ID of the participant this result is for.
+</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="getPlacing()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ int
+ </span>
+ <span class="sympad">getPlacing</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p></p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>The placing of this participant in the match. <code><a href="/reference/com/google/android/gms/games/multiplayer/ParticipantResult.html#PLACING_UNINITIALIZED">PLACING_UNINITIALIZED</a></code> means
+ that this result has no placing value to report.
+</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="getResult()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ int
+ </span>
+ <span class="sympad">getResult</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p></p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>The result type for this participant in the match. One of <code><a href="/reference/com/google/android/gms/games/multiplayer/ParticipantResult.html#MATCH_RESULT_WIN">MATCH_RESULT_WIN</a></code>,
+ <code><a href="/reference/com/google/android/gms/games/multiplayer/ParticipantResult.html#MATCH_RESULT_LOSS">MATCH_RESULT_LOSS</a></code>, <code><a href="/reference/com/google/android/gms/games/multiplayer/ParticipantResult.html#MATCH_RESULT_TIE">MATCH_RESULT_TIE</a></code>, <code><a href="/reference/com/google/android/gms/games/multiplayer/ParticipantResult.html#MATCH_RESULT_NONE">MATCH_RESULT_NONE</a></code>,
+ <code><a href="/reference/com/google/android/gms/games/multiplayer/ParticipantResult.html#MATCH_RESULT_DISCONNECT">MATCH_RESULT_DISCONNECT</a></code>, or <code><a href="/reference/com/google/android/gms/games/multiplayer/ParticipantResult.html#MATCH_RESULT_DISAGREED">MATCH_RESULT_DISAGREED</a></code>.
+</li></ul>
+ </div>
</div>
</div>
@@ -1620,14 +1948,14 @@
<A NAME="writeToParcel(android.os.Parcel, int)"></A>
-<div class="jd-details api apilevel-">
+<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
- public
-
-
-
-
+ public
+
+
+
+
void
</span>
<span class="sympad">writeToParcel</span>
@@ -1635,12 +1963,12 @@
</h4>
<div class="api-level">
<div></div>
-
-
+
+
</div>
<div class="jd-details-descr">
-
+
<div class="jd-tagdata jd-tagdescr"><p></p></div>
</div>
@@ -1658,17 +1986,17 @@
<A NAME="navbar_top"></A>
<div id="footer" class="wrap" >
-
+
<div id="copyright">
-
+
Except as noted, this content is licensed under <a
- href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.
+ href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.
For details and restrictions, see the <a href="/license.html">
Content License</a>.
</div>
<div id="build_info">
-
+
<script src="/timestamp.js" type="text/javascript"></script>
<script>document.write(BUILD_TIMESTAMP)</script>
@@ -1676,7 +2004,7 @@
<div id="footerlinks">
-
+
<p>
<a href="/about/index.html">About Android</a> |
<a href="/legal.html">Legal</a> |
@@ -1689,7 +2017,7 @@
</div><!-- end doc-content -->
-</div> <!-- end body-content -->
+</div> <!-- end body-content -->
diff --git a/docs/html/reference/com/google/android/gms/games/multiplayer/ParticipantUtils.html b/docs/html/reference/com/google/android/gms/games/multiplayer/ParticipantUtils.html
index 5e1b7b8..f469916 100644
--- a/docs/html/reference/com/google/android/gms/games/multiplayer/ParticipantUtils.html
+++ b/docs/html/reference/com/google/android/gms/games/multiplayer/ParticipantUtils.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/games/multiplayer/Participatable.html b/docs/html/reference/com/google/android/gms/games/multiplayer/Participatable.html
index 4c7f5e8..ca525ab 100644
--- a/docs/html/reference/com/google/android/gms/games/multiplayer/Participatable.html
+++ b/docs/html/reference/com/google/android/gms/games/multiplayer/Participatable.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
@@ -733,7 +746,11 @@
<a href="/reference/com/google/android/gms/games/multiplayer/realtime/Room.html">Room</a>,
- <a href="/reference/com/google/android/gms/games/multiplayer/realtime/RoomEntity.html">RoomEntity</a>
+ <a href="/reference/com/google/android/gms/games/multiplayer/realtime/RoomEntity.html">RoomEntity</a>,
+
+ <a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html">TurnBasedMatch</a>,
+
+ <a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatchEntity.html">TurnBasedMatchEntity</a>
</div>
@@ -757,6 +774,14 @@
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/multiplayer/realtime/RoomEntity.html">RoomEntity</a></td>
<td class="jd-descrcol" width="100%">Data object representing the data for a room. </td>
</tr>
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html">TurnBasedMatch</a></td>
+ <td class="jd-descrcol" width="100%">Data interface for turn-based specific match functionality. </td>
+ </tr>
+ <tr class=" api apilevel-" >
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatchEntity.html">TurnBasedMatchEntity</a></td>
+ <td class="jd-descrcol" width="100%">Data object representing the data for a turn-based match. </td>
+ </tr>
</table>
</div>
</div>
diff --git a/docs/html/reference/com/google/android/gms/games/multiplayer/package-summary.html b/docs/html/reference/com/google/android/gms/games/multiplayer/package-summary.html
index d2be94a8..c5a92db 100644
--- a/docs/html/reference/com/google/android/gms/games/multiplayer/package-summary.html
+++ b/docs/html/reference/com/google/android/gms/games/multiplayer/package-summary.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -242,6 +243,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -280,7 +283,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -309,6 +312,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -348,7 +354,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -376,6 +382,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -518,29 +528,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
@@ -720,6 +733,10 @@
<td class="jd-descrcol" width="100%">Data object representing a Participant in a match. </td>
</tr>
<tr class="alt-color api apilevel-" >
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/multiplayer/ParticipantResult.html">ParticipantResult</a></td>
+ <td class="jd-descrcol" width="100%">Data class used to report a participant's result in a match. </td>
+ </tr>
+ <tr class=" api apilevel-" >
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/multiplayer/ParticipantUtils.html">ParticipantUtils</a></td>
<td class="jd-descrcol" width="100%">Utilities for working with multiplayer participants. </td>
</tr>
diff --git a/docs/html/reference/com/google/android/gms/games/multiplayer/realtime/RealTimeMessage.html b/docs/html/reference/com/google/android/gms/games/multiplayer/realtime/RealTimeMessage.html
index 1ddb9cf..5a6d25c 100644
--- a/docs/html/reference/com/google/android/gms/games/multiplayer/realtime/RealTimeMessage.html
+++ b/docs/html/reference/com/google/android/gms/games/multiplayer/realtime/RealTimeMessage.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/games/multiplayer/realtime/RealTimeMessageReceivedListener.html b/docs/html/reference/com/google/android/gms/games/multiplayer/realtime/RealTimeMessageReceivedListener.html
index 182beeb..9cf77f8 100644
--- a/docs/html/reference/com/google/android/gms/games/multiplayer/realtime/RealTimeMessageReceivedListener.html
+++ b/docs/html/reference/com/google/android/gms/games/multiplayer/realtime/RealTimeMessageReceivedListener.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/games/multiplayer/realtime/RealTimeReliableMessageSentListener.html b/docs/html/reference/com/google/android/gms/games/multiplayer/realtime/RealTimeReliableMessageSentListener.html
index e0f958c..3f21050 100644
--- a/docs/html/reference/com/google/android/gms/games/multiplayer/realtime/RealTimeReliableMessageSentListener.html
+++ b/docs/html/reference/com/google/android/gms/games/multiplayer/realtime/RealTimeReliableMessageSentListener.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/games/multiplayer/realtime/RealTimeSocket.html b/docs/html/reference/com/google/android/gms/games/multiplayer/realtime/RealTimeSocket.html
index d6e5b42..b4878f0 100644
--- a/docs/html/reference/com/google/android/gms/games/multiplayer/realtime/RealTimeSocket.html
+++ b/docs/html/reference/com/google/android/gms/games/multiplayer/realtime/RealTimeSocket.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
@@ -700,7 +713,7 @@
<h2>Class Overview</h2>
<p itemprop="articleBody">Provides a Socket-like interface for a real-time data connection to a participant in a real-time
- room. Use <code><a href="/reference/com/google/android/gms/games/GamesClient.html#getRealTimeSocketForParticipant(java.lang.String, java.lang.String)">getRealTimeSocketForParticipant(String, String)</a></code> to get an instance.
+ room. Use getSocketForParticipant(GoogleApiClient, String, String) to get an instance.
<p>
Use <code><a href="/reference/com/google/android/gms/games/multiplayer/realtime/RealTimeSocket.html#getParcelFileDescriptor()">getParcelFileDescriptor()</a></code> to get a file descriptor for read/write, or
use <code><a href="/reference/com/google/android/gms/games/multiplayer/realtime/RealTimeSocket.html#getInputStream()">getInputStream()</a></code> / <code><a href="/reference/com/google/android/gms/games/multiplayer/realtime/RealTimeSocket.html#getOutputStream()">getOutputStream()</a></code> to get
@@ -713,7 +726,7 @@
The Socket-like interface provided is currently modeled on connection-based byte streams, rather
than preserving packet semantics. That is, multiple writes may be coalesced or individual writes
divided. Clients should avoid calling <code><a href="/reference/java/io/OutputStream.html#write(byte[])">write(byte[])</a></code> with more than
- <code><a href="/reference/com/google/android/gms/games/GamesClient.html#MAX_UNRELIABLE_MESSAGE_LEN">MAX_UNRELIABLE_MESSAGE_LEN</a></code> bytes at a time.
+ MAX_UNRELIABLE_MESSAGE_LEN bytes at a time.
</p>
@@ -1017,18 +1030,18 @@
</div>
<div class="jd-details-descr">
- <div class="jd-tagdata jd-tagdescr"><p>Instance of <code><a href="/reference/java/io/OutputStream.html">OutputStream</a></code> to write data to.
- Calling close() on the OutputStream will close the socket.
+ <div class="jd-tagdata jd-tagdescr"><p>Instance of <code><a href="/reference/java/io/OutputStream.html">OutputStream</a></code> to write data to. Calling
+ <code><a href="/reference/java/io/OutputStream.html#close()">close()</a></code> on the OutputStream will close the socket.
<p>
Note: The maximum (unfragmented) packet size supported through this API is
- <code><a href="/reference/com/google/android/gms/games/GamesClient.html#MAX_UNRELIABLE_MESSAGE_LEN">MAX_UNRELIABLE_MESSAGE_LEN</a></code> bytes (excluding internal protocol headers).
- Thus, the byte[] data passed to <code><a href="/reference/java/io/OutputStream.html#write(byte[])">write(byte[])</a></code> should honor this limit or the
- packet will be dropped and an error message will be sent to the log.
+ MAX_UNRELIABLE_MESSAGE_LEN bytes (excluding internal protocol headers).
+ Make sure that the byte[] data passed to <code><a href="/reference/java/io/OutputStream.html#write(byte[])">write(byte[])</a></code> honors this limit -
+ otherwise the packet will be dropped and an error message will be sent to the log.
<p>
- Do not call <code>flush()</code> on the <code>OutputStream</code> instance that you
- obtained from this routine. To send each message as a single datagram, implement your own
- message parsing logic to distinguish message boundaries. This allows partial messages and
- a non-integral number of messages to be delivered using <code>RealTimeSocket</code>.</p></div>
+ Do not call <code>flush()</code> on the <code>OutputStream</code> instance that you obtained
+ from this routine. To send each message as a single datagram, implement your own message
+ parsing logic to distinguish message boundaries. This allows partial messages and a
+ non-integral number of messages to be delivered using <code>RealTimeSocket</code>.</p></div>
<div class="jd-tagdata">
<h5 class="jd-tagtitle">Returns</h5>
<ul class="nolist"><li>An instance of <code><a href="/reference/java/io/OutputStream.html">OutputStream</a></code>.</li></ul>
diff --git a/docs/html/reference/com/google/android/gms/games/multiplayer/realtime/Room.html b/docs/html/reference/com/google/android/gms/games/multiplayer/realtime/Room.html
index a317f76..5dbb533 100644
--- a/docs/html/reference/com/google/android/gms/games/multiplayer/realtime/Room.html
+++ b/docs/html/reference/com/google/android/gms/games/multiplayer/realtime/Room.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
@@ -1059,6 +1072,24 @@
+ <a href="/reference/com/google/android/gms/games/multiplayer/Participant.html">Participant</a></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/realtime/Room.html#getParticipant(java.lang.String)">getParticipant</a></span>(String participantId)</nobr>
+
+ <div class="jd-descrdiv">Get a participant in a room by its ID.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
String</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
@@ -1070,7 +1101,7 @@
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
abstract
@@ -1082,11 +1113,13 @@
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/realtime/Room.html#getParticipantIds()">getParticipantIds</a></span>()</nobr>
+ <div class="jd-descrdiv">Get the IDs of the participants of the given room.</div>
+
</td></tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
abstract
@@ -1104,7 +1137,7 @@
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
abstract
@@ -1120,7 +1153,7 @@
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
abstract
@@ -1136,7 +1169,7 @@
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
abstract
@@ -1709,7 +1742,9 @@
<div class="jd-tagdata jd-tagdescr"><p></p></div>
<div class="jd-tagdata">
<h5 class="jd-tagtitle">Returns</h5>
- <ul class="nolist"><li>The ID of the participant who created this Room.
+ <ul class="nolist"><li>The ID of the participant who created this Room. Note that not all participants will
+ see the same value for the creator. In the case of an automatch, this value may
+ differ for each participant.
</li></ul>
</div>
@@ -1790,6 +1825,59 @@
</div>
+<A NAME="getParticipant(java.lang.String)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+ abstract
+
+ <a href="/reference/com/google/android/gms/games/multiplayer/Participant.html">Participant</a>
+ </span>
+ <span class="sympad">getParticipant</span>
+ <span class="normal">(String participantId)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Get a participant in a room by its ID. Note that the participant ID must correspond to a
+ participant in this match, or this method will throw an exception.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>participantId</td>
+ <td>Match-local ID of the participant to retrieve status for.</td>
+ </tr>
+ </table>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>The participant corresponding to the given ID.</li></ul>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Throws</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th></td>
+ <td>IllegalStateException} if the participant is not a participant in this match.
+</td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
<A NAME="getParticipantId(java.lang.String)"></A>
<div class="jd-details api apilevel-">
@@ -1858,7 +1946,7 @@
</div>
<div class="jd-details-descr">
- <div class="jd-tagdata jd-tagdescr"><p></p></div>
+ <div class="jd-tagdata jd-tagdescr"><p>Get the IDs of the participants of the given room.</p></div>
<div class="jd-tagdata">
<h5 class="jd-tagtitle">Returns</h5>
<ul class="nolist"><li>The IDs of the participants in this room. These are returned in the participant
diff --git a/docs/html/reference/com/google/android/gms/games/multiplayer/realtime/RoomConfig.Builder.html b/docs/html/reference/com/google/android/gms/games/multiplayer/realtime/RoomConfig.Builder.html
index a9f8e25..339f9d5 100644
--- a/docs/html/reference/com/google/android/gms/games/multiplayer/realtime/RoomConfig.Builder.html
+++ b/docs/html/reference/com/google/android/gms/games/multiplayer/realtime/RoomConfig.Builder.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
@@ -958,7 +971,8 @@
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/realtime/RoomConfig.Builder.html#setVariant(int)">setVariant</a></span>(int variant)</nobr>
- <div class="jd-descrdiv">Sets the variant for the room when calling <code><a href="/reference/com/google/android/gms/games/GamesClient.html#createRoom(com.google.android.gms.games.multiplayer.realtime.RoomConfig)">createRoom(RoomConfig)</a></code>.</div>
+ <div class="jd-descrdiv">Sets the variant for the room when calling
+ create(GoogleApiClient, RoomConfig).</div>
</td></tr>
@@ -1245,7 +1259,7 @@
<div class="jd-details-descr">
<div class="jd-tagdata jd-tagdescr"><p>Add one or more player IDs to invite to the room. This should be set only when calling
- <code><a href="/reference/com/google/android/gms/games/GamesClient.html#createRoom(com.google.android.gms.games.multiplayer.realtime.RoomConfig)">createRoom(RoomConfig)</a></code></p></div>
+ create(GoogleApiClient, RoomConfig)</p></div>
<div class="jd-tagdata">
<h5 class="jd-tagtitle">Parameters</h5>
<table class="jd-tagtable">
@@ -1289,7 +1303,7 @@
<div class="jd-details-descr">
<div class="jd-tagdata jd-tagdescr"><p>Add a list of player IDs to invite to the room. This should be set only when calling
- <code><a href="/reference/com/google/android/gms/games/GamesClient.html#createRoom(com.google.android.gms.games.multiplayer.realtime.RoomConfig)">createRoom(RoomConfig)</a></code></p></div>
+ create(GoogleApiClient, RoomConfig)</p></div>
<div class="jd-tagdata">
<h5 class="jd-tagtitle">Parameters</h5>
<table class="jd-tagtable">
@@ -1412,7 +1426,7 @@
<div class="jd-details-descr">
<div class="jd-tagdata jd-tagdescr"><p>Set the ID of the invitation to accept. This is required and should be set only when
- calling <code><a href="/reference/com/google/android/gms/games/GamesClient.html#joinRoom(com.google.android.gms.games.multiplayer.realtime.RoomConfig)">joinRoom(RoomConfig)</a></code>.</p></div>
+ calling join(GoogleApiClient, RoomConfig).</p></div>
<div class="jd-tagdata">
<h5 class="jd-tagtitle">Parameters</h5>
<table class="jd-tagtable">
@@ -1535,12 +1549,15 @@
<div class="jd-details-descr">
<div class="jd-tagdata jd-tagdescr"><p>Sets whether to enable sockets for sending and receiving data. The socket for each
- participant can be obtained using <code><a href="/reference/com/google/android/gms/games/GamesClient.html#getRealTimeSocketForParticipant(java.lang.String, java.lang.String)">getRealTimeSocketForParticipant(String, String)</a></code>. If
- false the <code><a href="/reference/com/google/android/gms/games/GamesClient.html#sendUnreliableRealTimeMessage(byte[], java.lang.String, java.lang.String)">sendUnreliableRealTimeMessage(byte[], String, String)</a></code> API should be used to send
- messages.
+ participant can be obtained using
+ getSocketForParticipant(GoogleApiClient, String, String). If
+ false the
+ sendUnreliableMessage(GoogleApiClient, byte[], String, String)
+ API should be used to send messages.
<p>
- Note that for reliable messages, the <code><a href="/reference/com/google/android/gms/games/GamesClient.html#sendReliableRealTimeMessage(com.google.android.gms.games.multiplayer.realtime.RealTimeReliableMessageSentListener, byte[], java.lang.String, java.lang.String)">sendReliableRealTimeMessage(RealTimeReliableMessageSentListener, byte[], String, String)</a></code> API
- should still be used. Reliable messages will be delivered via the
+ Note that for reliable messages, the
+ sendReliableMessage(GoogleApiClient, ReliableMessageSentCallback, byte[], String, String)
+ API should still be used. Reliable messages will be delivered via the
<code><a href="/reference/com/google/android/gms/games/multiplayer/realtime/RealTimeMessageReceivedListener.html">RealTimeMessageReceivedListener</a></code> registered with
<code><a href="/reference/com/google/android/gms/games/multiplayer/realtime/RoomConfig.Builder.html#setMessageReceivedListener(com.google.android.gms.games.multiplayer.realtime.RealTimeMessageReceivedListener)">setMessageReceivedListener(RealTimeMessageReceivedListener)</a></code>.</p></div>
<div class="jd-tagdata">
@@ -1585,9 +1602,10 @@
</div>
<div class="jd-details-descr">
- <div class="jd-tagdata jd-tagdescr"><p>Sets the variant for the room when calling <code><a href="/reference/com/google/android/gms/games/GamesClient.html#createRoom(com.google.android.gms.games.multiplayer.realtime.RoomConfig)">createRoom(RoomConfig)</a></code>. This is an
- optional, developer-controlled parameter describing the type of game to play, and is used
- for auto-matching criteria. Must be either a positive integer or
+ <div class="jd-tagdata jd-tagdescr"><p>Sets the variant for the room when calling
+ create(GoogleApiClient, RoomConfig). This is an optional,
+ developer-controlled parameter describing the type of game to play, and is used for
+ auto-matching criteria. Must be either a positive integer or
<code><a href="/reference/com/google/android/gms/games/multiplayer/realtime/Room.html#ROOM_VARIANT_ANY">ROOM_VARIANT_ANY</a></code> (the default) if not desired.</p></div>
<div class="jd-tagdata">
<h5 class="jd-tagtitle">Parameters</h5>
diff --git a/docs/html/reference/com/google/android/gms/games/multiplayer/realtime/RoomConfig.html b/docs/html/reference/com/google/android/gms/games/multiplayer/realtime/RoomConfig.html
index 6d0e58a..304fbb3 100644
--- a/docs/html/reference/com/google/android/gms/games/multiplayer/realtime/RoomConfig.html
+++ b/docs/html/reference/com/google/android/gms/games/multiplayer/realtime/RoomConfig.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
@@ -1418,7 +1431,7 @@
<div class="jd-details-descr">
<div class="jd-tagdata jd-tagdescr"><p>Retrieves the ID of the invitation to accept, if any. This is necessary when calling
- <code><a href="/reference/com/google/android/gms/games/GamesClient.html#joinRoom(com.google.android.gms.games.multiplayer.realtime.RoomConfig)">joinRoom(RoomConfig)</a></code>.</p></div>
+ join(GoogleApiClient, RoomConfig).</p></div>
<div class="jd-tagdata">
<h5 class="jd-tagtitle">Returns</h5>
<ul class="nolist"><li>The ID of the invitation to accept.
diff --git a/docs/html/reference/com/google/android/gms/games/multiplayer/realtime/RoomEntity.html b/docs/html/reference/com/google/android/gms/games/multiplayer/realtime/RoomEntity.html
index 75e890d..4855bba 100644
--- a/docs/html/reference/com/google/android/gms/games/multiplayer/realtime/RoomEntity.html
+++ b/docs/html/reference/com/google/android/gms/games/multiplayer/realtime/RoomEntity.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
@@ -1146,6 +1159,24 @@
+ <a href="/reference/com/google/android/gms/games/multiplayer/Participant.html">Participant</a></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/realtime/RoomEntity.html#getParticipant(java.lang.String)">getParticipant</a></span>(String participantId)</nobr>
+
+ <div class="jd-descrdiv">Get a participant in a room by its ID.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
String</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
@@ -1157,7 +1188,7 @@
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
@@ -1169,11 +1200,13 @@
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/realtime/RoomEntity.html#getParticipantIds()">getParticipantIds</a></span>()</nobr>
+ <div class="jd-descrdiv">Get the IDs of the participants of the given room.</div>
+
</td></tr>
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
@@ -1191,7 +1224,7 @@
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
@@ -1209,7 +1242,7 @@
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
@@ -1225,7 +1258,7 @@
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
@@ -1241,7 +1274,7 @@
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
@@ -1257,7 +1290,7 @@
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
@@ -1273,7 +1306,7 @@
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
@@ -1291,7 +1324,7 @@
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
@@ -1307,7 +1340,7 @@
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
@@ -1834,6 +1867,24 @@
+ <a href="/reference/com/google/android/gms/games/multiplayer/Participant.html">Participant</a></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/realtime/Room.html#getParticipant(java.lang.String)">getParticipant</a></span>(String participantId)</nobr>
+
+ <div class="jd-descrdiv">Get a participant in a room by its ID.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
String</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
@@ -1845,7 +1896,7 @@
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
abstract
@@ -1857,11 +1908,13 @@
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/realtime/Room.html#getParticipantIds()">getParticipantIds</a></span>()</nobr>
+ <div class="jd-descrdiv">Get the IDs of the participants of the given room.</div>
+
</td></tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
abstract
@@ -1879,7 +1932,7 @@
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
abstract
@@ -1895,7 +1948,7 @@
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
abstract
@@ -1911,7 +1964,7 @@
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
abstract
@@ -2312,6 +2365,49 @@
</div>
+<A NAME="getParticipant(java.lang.String)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ <a href="/reference/com/google/android/gms/games/multiplayer/Participant.html">Participant</a>
+ </span>
+ <span class="sympad">getParticipant</span>
+ <span class="normal">(String participantId)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Get a participant in a room by its ID. Note that the participant ID must correspond to a
+ participant in this match, or this method will throw an exception.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>participantId</td>
+ <td>Match-local ID of the participant to retrieve status for.</td>
+ </tr>
+ </table>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>The participant corresponding to the given ID.</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
<A NAME="getParticipantId(java.lang.String)"></A>
<div class="jd-details api apilevel-">
@@ -2380,7 +2476,13 @@
</div>
<div class="jd-details-descr">
- <div class="jd-tagdata jd-tagdescr"><p></p></div>
+ <div class="jd-tagdata jd-tagdescr"><p>Get the IDs of the participants of the given room.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>The IDs of the participants in this room. These are returned in the participant
+ order of the room. Note that these are not stable across rooms.
+</li></ul>
+ </div>
</div>
</div>
diff --git a/docs/html/reference/com/google/android/gms/games/multiplayer/realtime/RoomStatusUpdateListener.html b/docs/html/reference/com/google/android/gms/games/multiplayer/realtime/RoomStatusUpdateListener.html
index 4065ec6..90492db 100644
--- a/docs/html/reference/com/google/android/gms/games/multiplayer/realtime/RoomStatusUpdateListener.html
+++ b/docs/html/reference/com/google/android/gms/games/multiplayer/realtime/RoomStatusUpdateListener.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/games/multiplayer/realtime/RoomUpdateListener.html b/docs/html/reference/com/google/android/gms/games/multiplayer/realtime/RoomUpdateListener.html
index 108d7b7..b2d518a 100644
--- a/docs/html/reference/com/google/android/gms/games/multiplayer/realtime/RoomUpdateListener.html
+++ b/docs/html/reference/com/google/android/gms/games/multiplayer/realtime/RoomUpdateListener.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
@@ -902,17 +915,18 @@
</div>
<div class="jd-details-descr">
- <div class="jd-tagdata jd-tagdescr"><p>Called when the client attempts to join a real-time room. The real-time room can be joined
- by calling the <code><a href="/reference/com/google/android/gms/games/GamesClient.html#joinRoom(com.google.android.gms.games.multiplayer.realtime.RoomConfig)">joinRoom(RoomConfig)</a></code> operation.
- Possible status codes include:
+ <div class="jd-tagdata jd-tagdescr"><p>Called when the client attempts to join a real-time room. The real-time room can be joined by
+ calling the join(GoogleApiClient, RoomConfig) operation. Possible status codes include:
<ul>
<li><code><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_OK">STATUS_OK</a></code> if data was successfully loaded and is up-to-date.</li>
- <li><code><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_CLIENT_RECONNECT_REQUIRED">STATUS_CLIENT_RECONNECT_REQUIRED</a></code> if the <code><a href="/reference/com/google/android/gms/games/GamesClient.html">GamesClient</a></code> needs to
- reconnect to the service to access this data.</li>
- <li><code><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_REAL_TIME_CONNECTION_FAILED">STATUS_REAL_TIME_CONNECTION_FAILED</a></code> if the client failed
- to connect to the network</li>
- <li><code><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_INTERNAL_ERROR">STATUS_INTERNAL_ERROR</a></code> if an unexpected error occurred in the
- service.</li>
+ <li><code><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_CLIENT_RECONNECT_REQUIRED">STATUS_CLIENT_RECONNECT_REQUIRED</a></code> if the client needs to reconnect to
+ the service to access this data.</li>
+ <li><code><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_REAL_TIME_CONNECTION_FAILED">STATUS_REAL_TIME_CONNECTION_FAILED</a></code> if the client failed to connect to
+ the network</li>
+ <li><code><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_MULTIPLAYER_DISABLED">STATUS_MULTIPLAYER_DISABLED</a></code> if the game does not support multiplayer.
+ </li>
+ <li><code><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_INTERNAL_ERROR">STATUS_INTERNAL_ERROR</a></code> if an unexpected error occurred in the service.
+ </li>
</ul></p></div>
<div class="jd-tagdata">
<h5 class="jd-tagtitle">Parameters</h5>
@@ -924,7 +938,7 @@
<tr>
<th>room</td>
<td>The data of the room that was joined. The room can be <code>null</code> if the
- <code><a href="/reference/com/google/android/gms/games/GamesClient.html#joinRoom(com.google.android.gms.games.multiplayer.realtime.RoomConfig)">joinRoom(RoomConfig)</a></code> operation failed.
+ join(GoogleApiClient, RoomConfig) operation failed.
</td>
</tr>
</table>
@@ -957,12 +971,11 @@
</div>
<div class="jd-details-descr">
- <div class="jd-tagdata jd-tagdescr"><p>Called when the client attempts to leaves the real-time room.
- Possible status codes include:
+ <div class="jd-tagdata jd-tagdescr"><p>Called when the client attempts to leaves the real-time room. Possible status codes include:
<ul>
<li><code><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_OK">STATUS_OK</a></code> if operation was successfully completed.</li>
- <li><code><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_INTERNAL_ERROR">STATUS_INTERNAL_ERROR</a></code> if an unexpected error occurred in the
- service.</li>
+ <li><code><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_INTERNAL_ERROR">STATUS_INTERNAL_ERROR</a></code> if an unexpected error occurred in the service.
+ </li>
</ul></p></div>
<div class="jd-tagdata">
<h5 class="jd-tagtitle">Parameters</h5>
@@ -1007,14 +1020,14 @@
<div class="jd-details-descr">
<div class="jd-tagdata jd-tagdescr"><p>Called when all the participants in a real-time room are fully connected. This gets called
- once all invitations are accepted and any necessary automatching has been completed
- Possible status codes include:
+ once all invitations are accepted and any necessary automatching has been completed. Possible
+ status codes include:
<ul>
<li><code><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_OK">STATUS_OK</a></code> if data was successfully loaded and is up-to-date.</li>
- <li><code><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_CLIENT_RECONNECT_REQUIRED">STATUS_CLIENT_RECONNECT_REQUIRED</a></code> if the <code><a href="/reference/com/google/android/gms/games/GamesClient.html">GamesClient</a></code> needs to
- reconnect to the service to access this data.</li>
- <li><code><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_INTERNAL_ERROR">STATUS_INTERNAL_ERROR</a></code> if an unexpected error occurred in the
- service.</li>
+ <li><code><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_CLIENT_RECONNECT_REQUIRED">STATUS_CLIENT_RECONNECT_REQUIRED</a></code> if the client needs to reconnect to
+ the service to access this data.</li>
+ <li><code><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_INTERNAL_ERROR">STATUS_INTERNAL_ERROR</a></code> if an unexpected error occurred in the service.
+ </li>
</ul></p></div>
<div class="jd-tagdata">
<h5 class="jd-tagtitle">Parameters</h5>
@@ -1022,7 +1035,7 @@
<tr>
<th>room</td>
<td>The fully connected room object. The room can be <code>null</code> if it could not be
- loaded successfully.
+ loaded successfully.
</td>
</tr>
</table>
@@ -1056,16 +1069,17 @@
<div class="jd-details-descr">
<div class="jd-tagdata jd-tagdescr"><p>Called when the client attempts to create a real-time room. The real-time room can be created
- by calling the <code><a href="/reference/com/google/android/gms/games/GamesClient.html#createRoom(com.google.android.gms.games.multiplayer.realtime.RoomConfig)">createRoom(RoomConfig)</a></code> operation.
- Possible status codes include:
+ by calling the create(GoogleApiClient, RoomConfig) operation. Possible status codes include:
<ul>
<li><code><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_OK">STATUS_OK</a></code> if data was successfully loaded and is up-to-date.</li>
- <li><code><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_CLIENT_RECONNECT_REQUIRED">STATUS_CLIENT_RECONNECT_REQUIRED</a></code> if the <code><a href="/reference/com/google/android/gms/games/GamesClient.html">GamesClient</a></code> needs to
- reconnect to the service to access this data.</li>
+ <li><code><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_CLIENT_RECONNECT_REQUIRED">STATUS_CLIENT_RECONNECT_REQUIRED</a></code> if the client needs to reconnect to
+ the service to access this data.</li>
<li><code><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_REAL_TIME_CONNECTION_FAILED">STATUS_REAL_TIME_CONNECTION_FAILED</a></code> if the client failed to connect to
the network</li>
- <li><code><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_INTERNAL_ERROR">STATUS_INTERNAL_ERROR</a></code> if an unexpected error occurred in the
- service.</li>
+ <li><code><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_MULTIPLAYER_DISABLED">STATUS_MULTIPLAYER_DISABLED</a></code> if the game does not support multiplayer.
+ </li>
+ <li><code><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_INTERNAL_ERROR">STATUS_INTERNAL_ERROR</a></code> if an unexpected error occurred in the service.
+ </li>
</ul></p></div>
<div class="jd-tagdata">
<h5 class="jd-tagtitle">Parameters</h5>
@@ -1077,8 +1091,7 @@
<tr>
<th>room</td>
<td>The room data that was created if successful. The room can be <code>null</code> if the
- <code><a href="/reference/com/google/android/gms/games/GamesClient.html#createRoom(com.google.android.gms.games.multiplayer.realtime.RoomConfig)">createRoom(RoomConfig)</a></code> operation failed.
-
+ create(GoogleApiClient, RoomConfig) operation failed.
</td>
</tr>
</table>
diff --git a/docs/html/reference/com/google/android/gms/games/multiplayer/realtime/package-summary.html b/docs/html/reference/com/google/android/gms/games/multiplayer/realtime/package-summary.html
index a5cffbe..b6548ab 100644
--- a/docs/html/reference/com/google/android/gms/games/multiplayer/realtime/package-summary.html
+++ b/docs/html/reference/com/google/android/gms/games/multiplayer/realtime/package-summary.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -242,6 +243,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -280,7 +283,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -309,6 +312,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -348,7 +354,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -376,6 +382,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -518,29 +528,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/auth/RecoveryDecision.html b/docs/html/reference/com/google/android/gms/games/multiplayer/turnbased/LoadMatchesResponse.html
similarity index 64%
copy from docs/html/reference/com/google/android/gms/auth/RecoveryDecision.html
copy to docs/html/reference/com/google/android/gms/games/multiplayer/turnbased/LoadMatchesResponse.html
index 59a1346..48a2e58 100644
--- a/docs/html/reference/com/google/android/gms/auth/RecoveryDecision.html
+++ b/docs/html/reference/com/google/android/gms/games/multiplayer/turnbased/LoadMatchesResponse.html
@@ -83,7 +83,7 @@
<meta name="viewport" content="width=device-width" />
<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
-<title>RecoveryDecision | Android Developers</title>
+<title>LoadMatchesResponse | Android Developers</title>
<!-- STYLESHEETS -->
<link rel="stylesheet"
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -128,7 +129,7 @@
<img src="/assets/images/dac_logo.png" width="123" height="25" alt="Android Developers" />
</a>
<div class="btn-quicknav" id="btn-quicknav">
- <a href="#" class="arrow-inactive">Quicknav</a>
+ <a href="#" class="arrow-inactive">Quicknav</a>
<a href="#" class="arrow-active">Quicknav</a>
</div>
</div>
@@ -140,7 +141,7 @@
ru-lang="Проектирование"
ko-lang="디자인"
ja-lang="設計"
- es-lang="Diseñar"
+ es-lang="Diseñar"
>Design</a></li>
<li class="develop"><a href="/develop/index.html"
zh-tw-lang="開發"
@@ -148,7 +149,7 @@
ru-lang="Разработка"
ko-lang="개발"
ja-lang="開発"
- es-lang="Desarrollar"
+ es-lang="Desarrollar"
>Develop</a></li>
<li class="distribute last"><a href="/distribute/index.html"
zh-tw-lang="發佈"
@@ -156,10 +157,10 @@
ru-lang="Распространение"
ko-lang="배포"
ja-lang="配布"
- es-lang="Distribuir"
+ es-lang="Distribuir"
>Distribute</a></li>
</ul>
-
+
<!-- New Search -->
<div class="menu-container">
<div class="moremenu">
@@ -180,9 +181,9 @@
<li class="active"><a>Android Developers</a></li>
<li><a href="http://source.android.com">Android Open Source Project</a></li>
</ul>
-
-
-
+
+
+
<div class="header">Language</div>
<div id="language" class="locales">
<select name="language" onChange="changeLangPref(this.value, true)">
@@ -200,8 +201,8 @@
loadLangPref();
//-->
</script>
-
-
+
+
<br class="clearfix" />
@@ -215,7 +216,7 @@
<form onsubmit="return submit_search()">
<input id="search_autocomplete" type="text" value="" autocomplete="off" name="q"
onfocus="search_focus_changed(this, true)" onblur="search_focus_changed(this, false)"
-onkeydown="return search_changed(event, true, '/')"
+onkeydown="return search_changed(event, true, '/')"
onkeyup="return search_changed(event, false, '/')" />
</form>
<div class="right"></div>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -254,8 +257,8 @@
</div>
<!-- /New Search>
-
-
+
+
<!-- Expanded quicknav -->
<div id="quicknav" class="col-9">
<ul>
@@ -277,15 +280,15 @@
ru-lang="Курсы"
ko-lang="교육"
ja-lang="トレーニング"
- es-lang="Capacitación"
+ es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
ko-lang="API 가이드"
ja-lang="API ガイド"
- es-lang="Guías de la API"
+ es-lang="Guías de la API"
>API Guides</a></li>
<li><a href="/reference/packages.html"
zh-tw-lang="參考資源"
@@ -293,7 +296,7 @@
ru-lang="Справочник"
ko-lang="참조문서"
ja-lang="リファレンス"
- es-lang="Referencia"
+ es-lang="Referencia"
>Reference</a></li>
<li><a href="/tools/index.html"
zh-tw-lang="相關工具"
@@ -301,13 +304,16 @@
ru-lang="Инструменты"
ko-lang="도구"
ja-lang="ツール"
- es-lang="Herramientas"
+ es-lang="Herramientas"
>Tools</a>
<ul><li><a href="/sdk/index.html">Get the SDK</a></li></ul>
</li>
<li><a href="/google/index.html">Google Services</a>
</li>
-
+
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -326,15 +332,15 @@
</div>
</div>
<!-- /Header -->
-
-
+
+
<div id="searchResults" class="wrap" style="display:none;">
<h2 id="searchTitle">Results</h2>
<div id="leftSearchControl" class="search-control">Loading...</div>
</div>
-
-
-
+
+
+
<!-- Secondary x-nav -->
<div id="nav-x">
<div class="wrap">
@@ -345,15 +351,15 @@
ru-lang="Курсы"
ko-lang="교육"
ja-lang="トレーニング"
- es-lang="Capacitación"
+ es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
ko-lang="API 가이드"
ja-lang="API ガイド"
- es-lang="Guías de la API"
+ es-lang="Guías de la API"
>API Guides</a></li>
<li class="reference"><a href="/reference/packages.html"
zh-tw-lang="參考資源"
@@ -361,7 +367,7 @@
ru-lang="Справочник"
ko-lang="참조문서"
ja-lang="リファレンス"
- es-lang="Referencia"
+ es-lang="Referencia"
>Reference</a></li>
<li class="tools"><a href="/tools/index.html"
zh-tw-lang="相關工具"
@@ -374,21 +380,25 @@
<li class="google"><a href="/google/index.html"
>Google Services</a>
</li>
-
+
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
-
+
</div>
<!-- /Sendondary x-nav -->
-
-
-
+
+
+
<div class="wrap clearfix" id="body-content">
<div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
<div id="devdoc-nav" class="scroll-pane">
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
@@ -618,12 +631,12 @@
</script>
-
+
</div>
<script type="text/javascript">
showGoogleRefTree();
-
+
</script>
</div> <!-- end side-nav -->
<script>
@@ -633,7 +646,7 @@
</script>
-
+
@@ -643,21 +656,12 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
<div class="sum-details-links">
@@ -669,22 +673,13 @@
- <a href="#inhconstants">Inherited Constants</a>
-
-
-
- | <a href="#lfields">Fields</a>
-
- | <a href="#pubctors">Ctors</a>
-
+ <a href="#pubmethods">Methods</a>
- | <a href="#pubmethods">Methods</a>
-
@@ -694,9 +689,9 @@
</div><!-- end sum-details-links -->
<div class="api-level">
-
-
-
+
+
+
</div>
</div><!-- end api-info-block -->
@@ -706,28 +701,23 @@
<div id="jd-header">
public
-
-
-
+
+ final
+
class
-<h1 itemprop="name">RecoveryDecision</h1>
+<h1 itemprop="name">LoadMatchesResponse</h1>
-
+
extends Object<br/>
-
-
-
-
-
- implements
-
- Parcelable
-
-
-
+
+
+
+
+
+
</div><!-- end header -->
@@ -739,18 +729,18 @@
<tr>
-
+
<td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
</tr>
-
+
<tr>
-
+
<td class="jd-inheritance-space"> ↳</td>
-
- <td colspan="1" class="jd-inheritance-class-cell">com.google.android.gms.auth.RecoveryDecision</td>
+
+ <td colspan="1" class="jd-inheritance-class-cell">com.google.android.gms.games.multiplayer.turnbased.LoadMatchesResponse</td>
</tr>
-
+
</table>
@@ -763,6 +753,11 @@
<div class="jd-descr">
+<h2>Class Overview</h2>
+<p itemprop="articleBody">Response object containing the data requested in a
+ loadMatchesByStatus(GoogleApiClient, int...) call.
+</p>
+
@@ -804,130 +799,6 @@
-<!-- =========== ENUM CONSTANT SUMMARY =========== -->
-<table id="inhconstants" class="jd-sumtable"><tr><th>
- <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
- <div style="clear:left;">Inherited Constants</div></th></tr>
-
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-
- <a href="#" onclick="return toggleInherited(this, null)" id="inherited-constants-android.os.Parcelable" class="jd-expando-trigger closed"
- ><img id="inherited-constants-android.os.Parcelable-trigger"
- src="/assets/images/triangle-closed.png"
- class="jd-expando-trigger-img" /></a>From interface
-android.os.Parcelable
-<div id="inherited-constants-android.os.Parcelable">
- <div id="inherited-constants-android.os.Parcelable-list"
- class="jd-inheritedlinks">
- </div>
- <div id="inherited-constants-android.os.Parcelable-summary" style="display: none;">
- <table class="jd-sumtable-expando">
-
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol">int</td>
- <td class="jd-linkcol">CONTENTS_FILE_DESCRIPTOR</td>
- <td class="jd-descrcol" width="100%"></td>
- </tr>
-
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol">int</td>
- <td class="jd-linkcol">PARCELABLE_WRITE_RETURN_VALUE</td>
- <td class="jd-descrcol" width="100%"></td>
- </tr>
-
-
-</table>
- </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-
-
-<!-- =========== FIELD SUMMARY =========== -->
-<table id="lfields" class="jd-sumtable"><tr><th colspan="12">Fields</th></tr>
-
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
- static
- final
- <a href="/reference/com/google/android/gms/auth/RecoveryDecisionCreator.html">RecoveryDecisionCreator</a></nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#CREATOR">CREATOR</a></td>
- <td class="jd-descrcol" width="100%"></td>
- </tr>
-
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- boolean</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#isRecoveryInfoNeeded">isRecoveryInfoNeeded</a></td>
- <td class="jd-descrcol" width="100%">Is <code>true</code> if either the account has no recovery information or it
- was updated long time back (controlled by server, default 1 year).</td>
- </tr>
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- boolean</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#isRecoveryInterstitialAllowed">isRecoveryInterstitialAllowed</a></td>
- <td class="jd-descrcol" width="100%">Is <code>true</code> iff the user has permission to update the account.</td>
- </tr>
-
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- PendingIntent</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#recoveryIntent">recoveryIntent</a></td>
- <td class="jd-descrcol" width="100%">A PendingIntent to an activity that gathers recovery information for the given account.</td>
- </tr>
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- PendingIntent</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#recoveryIntentWithoutIntro">recoveryIntentWithoutIntro</a></td>
- <td class="jd-descrcol" width="100%">A PendingIntent to an activity that gathers recovery information for the given account.</td>
- </tr>
-
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- boolean</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#showRecoveryInterstitial">showRecoveryInterstitial</a></td>
- <td class="jd-descrcol" width="100%">Represents the decision and should be obeyed by the client.</td>
- </tr>
-
-
-
-</table>
@@ -935,31 +806,6 @@
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
-
-
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
-
-
-
-
-
- </nobr>
- </td>
- <td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#RecoveryDecision()">RecoveryDecision</a></span>()</nobr>
-
- </td></tr>
-
-
-
-</table>
-
-
@@ -969,51 +815,75 @@
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
- int</nobr>
+
+
+
+
+
+ <a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatchBuffer.html">TurnBasedMatchBuffer</a></nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#describeContents()">describeContents</a></span>()</nobr>
-
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/LoadMatchesResponse.html#getCompletedMatches()">getCompletedMatches</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Get the completed matches returned from this request.</div>
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
- int</nobr>
+
+
+
+
+
+ <a href="/reference/com/google/android/gms/games/multiplayer/InvitationBuffer.html">InvitationBuffer</a></nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#getVersionCode()">getVersionCode</a></span>()</nobr>
-
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/LoadMatchesResponse.html#getInvitations()">getInvitations</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Get the invitations returned from this request.</div>
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
- void</nobr>
+
+
+
+
+
+ <a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatchBuffer.html">TurnBasedMatchBuffer</a></nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#writeToParcel(android.os.Parcel, int)">writeToParcel</a></span>(Parcel out, int flags)</nobr>
-
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/LoadMatchesResponse.html#getMyTurnMatches()">getMyTurnMatches</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Get the "my turn" matches returned from this request.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ <a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatchBuffer.html">TurnBasedMatchBuffer</a></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/LoadMatchesResponse.html#getTheirTurnMatches()">getTheirTurnMatches</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Get the "their turn" matches returned from this request.</div>
+
</td></tr>
@@ -1048,240 +918,182 @@
</div>
<div id="inherited-methods-java.lang.Object-summary" style="display: none;">
<table class="jd-sumtable-expando">
-
-
+
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
Object</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">clone</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
boolean</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">equals</span>(Object arg0)</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">finalize</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
Class<?></nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">getClass</span>()</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
int</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">hashCode</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">notify</span>()</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">notifyAll</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
String</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">toString</span>()</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">wait</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">wait</span>(long arg0)</nobr>
-
- </td></tr>
-
-</table>
- </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
- <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-android.os.Parcelable" class="jd-expando-trigger closed"
- ><img id="inherited-methods-android.os.Parcelable-trigger"
- src="/assets/images/triangle-closed.png"
- class="jd-expando-trigger-img" /></a>
-From interface
-
- android.os.Parcelable
-
-<div id="inherited-methods-android.os.Parcelable">
- <div id="inherited-methods-android.os.Parcelable-list"
- class="jd-inheritedlinks">
- </div>
- <div id="inherited-methods-android.os.Parcelable-summary" style="display: none;">
- <table class="jd-sumtable-expando">
-
-
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
- abstract
-
-
-
-
- int</nobr>
- </td>
- <td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad">describeContents</span>()</nobr>
-
- </td></tr>
-
-
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol"><nobr>
- abstract
-
-
-
-
- void</nobr>
- </td>
- <td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad">writeToParcel</span>(Parcel arg0, int arg1)</nobr>
-
</td></tr>
@@ -1317,236 +1129,9 @@
<!-- Fields -->
-<!-- ========= FIELD DETAIL ======== -->
-<h2>Fields</h2>
-
-
-
-
-<A NAME="CREATOR"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
- static
- final
- <a href="/reference/com/google/android/gms/auth/RecoveryDecisionCreator.html">RecoveryDecisionCreator</a>
- </span>
- CREATOR
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-
- </div>
-</div>
-
-
-
-<A NAME="isRecoveryInfoNeeded"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- boolean
- </span>
- isRecoveryInfoNeeded
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>Is <code>true</code> if either the account has no recovery information or it
- was updated long time back (controlled by server, default 1 year).
-</p></div>
-
-
- </div>
-</div>
-
-
-
-<A NAME="isRecoveryInterstitialAllowed"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- boolean
- </span>
- isRecoveryInterstitialAllowed
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>Is <code>true</code> iff the user has permission to update the account.
- Dasher accounts can have recovery information edit disabled by the administrator.
- Eg: @google.com
-</p></div>
-
-
- </div>
-</div>
-
-
-
-<A NAME="recoveryIntent"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- PendingIntent
- </span>
- recoveryIntent
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>A PendingIntent to an activity that gathers recovery information for the given account.
- This intent will be null iff isRecoveryInterstitialAllowed is <code>false</code>.
-</p></div>
-
-
- </div>
-</div>
-
-
-
-<A NAME="recoveryIntentWithoutIntro"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- PendingIntent
- </span>
- recoveryIntentWithoutIntro
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>A PendingIntent to an activity that gathers recovery information for the given account.
- This intent will be null iff isRecoveryInterstitialAllowed is <code>false</code>.
- This intent directly skips to the input activity without showing the intro message.
-</p></div>
-
-
- </div>
-</div>
-
-
-
-<A NAME="showRecoveryInterstitial"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- boolean
- </span>
- showRecoveryInterstitial
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>Represents the decision and should be obeyed by the client. The remaining
- two flags are provided as additional information for one off decisions. This value
- is <code>true</code> iff isRecoveryInfoNeeded is <code>true</code>, isRecoveryInterstitialAllowed is
- <code>true</code> and a specified period (controlled by server, default 2 months) has passed
- since the user was shown a prompt for recovery information on any google property
- (Android, Web, etc.)
-</p></div>
-
-
- </div>
-</div>
-
-
-
-
<!-- Public ctors -->
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<h2>Public Constructors</h2>
-
-
-
-<A NAME="RecoveryDecision()"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
-
-
-
- </span>
- <span class="sympad">RecoveryDecision</span>
- <span class="normal">()</span>
- </h4>
- <div class="api-level">
- <div></div>
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
- </div>
-</div>
-
-
-
-
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<!-- Protected ctors -->
@@ -1560,88 +1145,146 @@
-<A NAME="describeContents()"></A>
+<A NAME="getCompletedMatches()"></A>
-<div class="jd-details api apilevel-">
+<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
- public
-
-
-
-
- int
+ public
+
+
+
+
+ <a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatchBuffer.html">TurnBasedMatchBuffer</a>
</span>
- <span class="sympad">describeContents</span>
+ <span class="sympad">getCompletedMatches</span>
<span class="normal">()</span>
</h4>
<div class="api-level">
<div></div>
-
-
+
+
</div>
<div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+ <div class="jd-tagdata jd-tagdescr"><p>Get the completed matches returned from this request. Note that if the original request did
+ not include <code><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html#MATCH_TURN_STATUS_COMPLETE">MATCH_TURN_STATUS_COMPLETE</a></code>, this method will return null.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>The matches returned from this request, or null if completed matches were not
+ originally requested.
+</li></ul>
+ </div>
</div>
</div>
-<A NAME="getVersionCode()"></A>
+<A NAME="getInvitations()"></A>
-<div class="jd-details api apilevel-">
+<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
- public
-
-
-
-
- int
+ public
+
+
+
+
+ <a href="/reference/com/google/android/gms/games/multiplayer/InvitationBuffer.html">InvitationBuffer</a>
</span>
- <span class="sympad">getVersionCode</span>
+ <span class="sympad">getInvitations</span>
<span class="normal">()</span>
</h4>
<div class="api-level">
<div></div>
-
-
+
+
</div>
<div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+ <div class="jd-tagdata jd-tagdescr"><p>Get the invitations returned from this request. Note that if the original request did not
+ include <code><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html#MATCH_TURN_STATUS_INVITED">MATCH_TURN_STATUS_INVITED</a></code>, this method will return null.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>The invitations returned from this request, or null if invitations were not
+ orignially requested.
+</li></ul>
+ </div>
</div>
</div>
-<A NAME="writeToParcel(android.os.Parcel, int)"></A>
+<A NAME="getMyTurnMatches()"></A>
-<div class="jd-details api apilevel-">
+<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
- public
-
-
-
-
- void
+ public
+
+
+
+
+ <a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatchBuffer.html">TurnBasedMatchBuffer</a>
</span>
- <span class="sympad">writeToParcel</span>
- <span class="normal">(Parcel out, int flags)</span>
+ <span class="sympad">getMyTurnMatches</span>
+ <span class="normal">()</span>
</h4>
<div class="api-level">
<div></div>
-
-
+
+
</div>
<div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+ <div class="jd-tagdata jd-tagdescr"><p>Get the "my turn" matches returned from this request. Note that if the original request did
+ not include <code><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html#MATCH_TURN_STATUS_MY_TURN">MATCH_TURN_STATUS_MY_TURN</a></code>, this method will return null.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>The matches returned from this request, or null if "my turn" matches were not
+ originally requested.
+</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="getTheirTurnMatches()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ <a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatchBuffer.html">TurnBasedMatchBuffer</a>
+ </span>
+ <span class="sympad">getTheirTurnMatches</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Get the "their turn" matches returned from this request. Note that if the original request
+ did not include <code><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html#MATCH_TURN_STATUS_THEIR_TURN">MATCH_TURN_STATUS_THEIR_TURN</a></code>, this method will return
+ null.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>The matches returned from this request, or null if "their turn" matches were not
+ originally requested.
+</li></ul>
+ </div>
</div>
</div>
@@ -1658,17 +1301,17 @@
<A NAME="navbar_top"></A>
<div id="footer" class="wrap" >
-
+
<div id="copyright">
-
+
Except as noted, this content is licensed under <a
- href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.
+ href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.
For details and restrictions, see the <a href="/license.html">
Content License</a>.
</div>
<div id="build_info">
-
+
<script src="/timestamp.js" type="text/javascript"></script>
<script>document.write(BUILD_TIMESTAMP)</script>
@@ -1676,7 +1319,7 @@
<div id="footerlinks">
-
+
<p>
<a href="/about/index.html">About Android</a> |
<a href="/legal.html">Legal</a> |
@@ -1689,7 +1332,7 @@
</div><!-- end doc-content -->
-</div> <!-- end body-content -->
+</div> <!-- end body-content -->
diff --git a/docs/html/reference/com/google/android/gms/games/multiplayer/turnbased/OnTurnBasedMatchCanceledListener.html b/docs/html/reference/com/google/android/gms/games/multiplayer/turnbased/OnTurnBasedMatchCanceledListener.html
new file mode 100644
index 0000000..2a3c9a8
--- /dev/null
+++ b/docs/html/reference/com/google/android/gms/games/multiplayer/turnbased/OnTurnBasedMatchCanceledListener.html
@@ -0,0 +1,1002 @@
+<!DOCTYPE html>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<html>
+<head>
+
+
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<meta name="viewport" content="width=device-width" />
+
+<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
+<title>OnTurnBasedMatchCanceledListener | Android Developers</title>
+
+<!-- STYLESHEETS -->
+<link rel="stylesheet"
+href="//fonts.googleapis.com/css?family=Roboto:regular,medium,thin,italic,mediumitalic,bold" title="roboto">
+<link href="/assets/css/default.css" rel="stylesheet" type="text/css">
+
+
+
+<!-- JAVASCRIPT -->
+<script src="//www.google.com/jsapi" type="text/javascript"></script>
+<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
+<script type="text/javascript">
+ var toRoot = "/";
+ var metaTags = [];
+ var devsite = false;
+</script>
+<script src="/assets/js/docs.js" type="text/javascript"></script>
+
+<script type="text/javascript">
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-5831155-1']);
+ _gaq.push(['_trackPageview']);
+
+ (function() {
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+ })();
+</script>
+</head>
+<body class="gc-documentation google
+ develop" itemscope itemtype="http://schema.org/Article">
+ <div id="doc-api-level" class="" style="display:none"></div>
+ <a name="top"></a>
+
+<a name="top"></a>
+
+ <!-- Header -->
+ <div id="header">
+ <div class="wrap" id="header-wrap">
+ <div class="col-3 logo">
+ <a href="/index.html">
+ <img src="/assets/images/dac_logo.png" width="123" height="25" alt="Android Developers" />
+ </a>
+ <div class="btn-quicknav" id="btn-quicknav">
+ <a href="#" class="arrow-inactive">Quicknav</a>
+ <a href="#" class="arrow-active">Quicknav</a>
+ </div>
+ </div>
+ <ul class="nav-x col-9">
+ <li class="design">
+ <a href="/design/index.html"
+ zh-tw-lang="設計"
+ zh-cn-lang="设计"
+ ru-lang="Проектирование"
+ ko-lang="디자인"
+ ja-lang="設計"
+ es-lang="Diseñar"
+ >Design</a></li>
+ <li class="develop"><a href="/develop/index.html"
+ zh-tw-lang="開發"
+ zh-cn-lang="开发"
+ ru-lang="Разработка"
+ ko-lang="개발"
+ ja-lang="開発"
+ es-lang="Desarrollar"
+ >Develop</a></li>
+ <li class="distribute last"><a href="/distribute/index.html"
+ zh-tw-lang="發佈"
+ zh-cn-lang="分发"
+ ru-lang="Распространение"
+ ko-lang="배포"
+ ja-lang="配布"
+ es-lang="Distribuir"
+ >Distribute</a></li>
+ </ul>
+
+ <!-- New Search -->
+ <div class="menu-container">
+ <div class="moremenu">
+ <div id="more-btn"></div>
+ </div>
+ <div class="morehover" id="moremenu">
+ <div class="top"></div>
+ <div class="mid">
+ <div class="header">Links</div>
+ <ul>
+ <li><a href="https://play.google.com/apps/publish/">Google Play Developer Console</a></li>
+ <li><a href="http://android-developers.blogspot.com/">Android Developers Blog</a></li>
+ <li><a href="/about/index.html">About Android</a></li>
+ </ul>
+ <div class="header">Android Sites</div>
+ <ul>
+ <li><a href="http://www.android.com">Android.com</a></li>
+ <li class="active"><a>Android Developers</a></li>
+ <li><a href="http://source.android.com">Android Open Source Project</a></li>
+ </ul>
+
+
+
+ <div class="header">Language</div>
+ <div id="language" class="locales">
+ <select name="language" onChange="changeLangPref(this.value, true)">
+ <option value="en">English</option>
+ <option value="es">Español</option>
+ <option value="ja">日本語</option>
+ <option value="ko">한국어</option>
+ <option value="ru">Русский</option>
+ <option value="zh-cn">中文 (中国)</option>
+ <option value="zh-tw">中文 (台灣)</option>
+ </select>
+ </div>
+ <script type="text/javascript">
+ <!--
+ loadLangPref();
+ //-->
+ </script>
+
+
+
+
+ <br class="clearfix" />
+ </div>
+ <div class="bottom"></div>
+ </div>
+ <div class="search" id="search-container">
+ <div class="search-inner">
+ <div id="search-btn"></div>
+ <div class="left"></div>
+ <form onsubmit="return submit_search()">
+ <input id="search_autocomplete" type="text" value="" autocomplete="off" name="q"
+onfocus="search_focus_changed(this, true)" onblur="search_focus_changed(this, false)"
+onkeydown="return search_changed(event, true, '/')"
+onkeyup="return search_changed(event, false, '/')" />
+ </form>
+ <div class="right"></div>
+ <a class="close hide">close</a>
+ <div class="left"></div>
+ <div class="right"></div>
+ </div>
+ </div>
+
+ <div class="search_filtered_wrapper reference">
+ <div class="suggest-card reference no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ </div>
+
+ <div class="search_filtered_wrapper docs">
+ <div class="suggest-card dummy no-display"> </div>
+ <div class="suggest-card develop no-display">
+ <ul class="search_filtered">
+ </ul>
+ <div class="child-card guides no-display">
+ </div>
+ <div class="child-card training no-display">
+ </div>
+ <div class="child-card samples no-display">
+ </div>
+ </div>
+ <div class="suggest-card design no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ <div class="suggest-card distribute no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ </div>
+
+ </div>
+ <!-- /New Search>
+
+
+ <!-- Expanded quicknav -->
+ <div id="quicknav" class="col-9">
+ <ul>
+ <li class="design">
+ <ul>
+ <li><a href="/design/index.html">Get Started</a></li>
+ <li><a href="/design/style/index.html">Style</a></li>
+ <li><a href="/design/patterns/index.html">Patterns</a></li>
+ <li><a href="/design/building-blocks/index.html">Building Blocks</a></li>
+ <li><a href="/design/downloads/index.html">Downloads</a></li>
+ <li><a href="/design/videos/index.html">Videos</a></li>
+ </ul>
+ </li>
+ <li class="develop">
+ <ul>
+ <li><a href="/training/index.html"
+ zh-tw-lang="訓練課程"
+ zh-cn-lang="培训"
+ ru-lang="Курсы"
+ ko-lang="교육"
+ ja-lang="トレーニング"
+ es-lang="Capacitación"
+ >Training</a></li>
+ <li><a href="/guide/index.html"
+ zh-tw-lang="API 指南"
+ zh-cn-lang="API 指南"
+ ru-lang="Руководства по API"
+ ko-lang="API 가이드"
+ ja-lang="API ガイド"
+ es-lang="Guías de la API"
+ >API Guides</a></li>
+ <li><a href="/reference/packages.html"
+ zh-tw-lang="參考資源"
+ zh-cn-lang="参考"
+ ru-lang="Справочник"
+ ko-lang="참조문서"
+ ja-lang="リファレンス"
+ es-lang="Referencia"
+ >Reference</a></li>
+ <li><a href="/tools/index.html"
+ zh-tw-lang="相關工具"
+ zh-cn-lang="工具"
+ ru-lang="Инструменты"
+ ko-lang="도구"
+ ja-lang="ツール"
+ es-lang="Herramientas"
+ >Tools</a>
+ <ul><li><a href="/sdk/index.html">Get the SDK</a></li></ul>
+ </li>
+ <li><a href="/google/index.html">Google Services</a>
+ </li>
+
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
+ </ul>
+ </li>
+ <li class="distribute last">
+ <ul>
+ <li><a href="/distribute/index.html">Google Play</a></li>
+ <li><a href="/distribute/googleplay/publish/index.html">Publishing</a></li>
+ <li><a href="/distribute/googleplay/promote/index.html">Promoting</a></li>
+ <li><a href="/distribute/googleplay/quality/index.html">App Quality</a></li>
+ <li><a href="/distribute/googleplay/spotlight/index.html">Spotlight</a></li>
+ <li><a href="/distribute/open.html">Open Distribution</a></li>
+ </ul>
+ </li>
+ </ul>
+ </div>
+ <!-- /Expanded quicknav -->
+ </div>
+ </div>
+ <!-- /Header -->
+
+
+ <div id="searchResults" class="wrap" style="display:none;">
+ <h2 id="searchTitle">Results</h2>
+ <div id="leftSearchControl" class="search-control">Loading...</div>
+ </div>
+
+
+
+ <!-- Secondary x-nav -->
+ <div id="nav-x">
+ <div class="wrap">
+ <ul class="nav-x col-9 develop" style="width:100%">
+ <li class="training"><a href="/training/index.html"
+ zh-tw-lang="訓練課程"
+ zh-cn-lang="培训"
+ ru-lang="Курсы"
+ ko-lang="교육"
+ ja-lang="トレーニング"
+ es-lang="Capacitación"
+ >Training</a></li>
+ <li class="guide"><a href="/guide/index.html"
+ zh-tw-lang="API 指南"
+ zh-cn-lang="API 指南"
+ ru-lang="Руководства по API"
+ ko-lang="API 가이드"
+ ja-lang="API ガイド"
+ es-lang="Guías de la API"
+ >API Guides</a></li>
+ <li class="reference"><a href="/reference/packages.html"
+ zh-tw-lang="參考資源"
+ zh-cn-lang="参考"
+ ru-lang="Справочник"
+ ko-lang="참조문서"
+ ja-lang="リファレンス"
+ es-lang="Referencia"
+ >Reference</a></li>
+ <li class="tools"><a href="/tools/index.html"
+ zh-tw-lang="相關工具"
+ zh-cn-lang="工具"
+ ru-lang="Инструменты"
+ ko-lang="도구"
+ ja-lang="ツール"
+ es-lang="Herramientas"
+ >Tools</a></li>
+ <li class="google"><a href="/google/index.html"
+ >Google Services</a>
+ </li>
+
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
+ </ul>
+ </div>
+
+ </div>
+ <!-- /Sendondary x-nav -->
+
+
+
+
+
+
+
+
+
+ <div class="wrap clearfix" id="body-content">
+ <div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
+ <div id="devdoc-nav" class="scroll-pane">
+<a class="totop" href="#top" data-g-event="left-nav-top">to top</a>
+
+
+
+<ul id="nav">
+
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/index.html">
+ <span class="en">Overview</span>
+ </a></div>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/games.html">
+ <span class="en">Games</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/location.html">
+ <span class="en">Location</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/plus.html">
+ <span class="en">Google+</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/maps.html">
+ <span class="en">Maps</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play-services/ads.html">
+ <span class="en">Ads</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play-services/id.html">
+ <span class="en">Advertising ID</span></a>
+ </li>
+ </ul>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/wallet.html">
+ <span class="en">Wallet</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/auth.html">
+ <span class="en">Authorization</span>
+ </a></div>
+ </li>
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play-services/index.html">
+ <span class="en">Google Play Services</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play-services/setup.html">
+ <span class="en">Setup</span></a>
+ </li>
+ <li id="gms-tree-list" class="nav-section">
+ <div class="nav-section-header">
+ <a href="/reference/gms-packages.html">
+ <span class="en">Reference</span>
+ </a>
+ <div>
+ </li>
+ </ul>
+ </li>
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/billing/index.html">
+ <span class="en">Google Play In-app Billing</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/billing/billing_overview.html">
+ <span class="en">Overview</span></a>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/api.html">
+ <span class="en">Version 3 API</span></a></div>
+ <ul>
+ <li><a href="/google/play/billing/billing_integrate.html">
+ <span class="en">Implementing the API</span></a></li>
+ <li><a href="/google/play/billing/billing_reference.html">
+ <span class="en">Reference</span></a></li>
+ </ul>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/v2/api.html">
+ <span class="en">Version 2 API</span></a></div>
+ <ul>
+ <li><a href="/google/play/billing/v2/billing_integrate.html">
+ <span class="en">Implementing the API</span></a></li>
+ <li><a href="/google/play/billing/v2/billing_subscriptions.html">
+ <span class="en">Subscriptions</span></a></li>
+ <li><a href="/google/play/billing/v2/billing_reference.html">
+ <span class="en">Reference</span></a></li>
+ </ul>
+ </li>
+ <li><a href="/google/play/billing/billing_subscriptions.html">
+ <span class="en">Subscriptions</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_best_practices.html">
+ <span class="en">Security and Design</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_testing.html">
+ <span class="en">Testing In-app Billing</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_admin.html">
+ <span class="en">Administering In-app Billing</span></a>
+ </li>
+ <li><a href="/google/play/billing/gp-purchase-status-api.html">
+ <span class="en">Purchase Status API</span></a>
+ </li>
+ <li><a href="/google/play/billing/versions.html">
+ <span class="en">Version Notes</span></a>
+ </li>
+ </ul>
+ </li>
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/gcm/index.html">
+ <span class="en">Google Cloud Messaging</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
+ <li><a href="/google/gcm/gs.html">
+ <span class="en">Getting Started</span></a>
+ </li>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
+ </li>
+ <li><a href="/google/gcm/notifications.html">
+ <span class="en">User Notifications</span></a>
+ </li>
+ <li><a href="/google/gcm/adv.html">
+ <span class="en">Advanced Topics</span></a>
+ </li>
+ <li><a href="/google/gcm/c2dm.html">
+ <span class="en">Migration</span></a>
+ </li>
+ <li id="gcm-tree-list" class="nav-section">
+ <div class="nav-section-header">
+ <a href="/reference/gcm-packages.html">
+ <span class="en">Reference</span>
+ </a>
+ <div>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/dist.html">
+ <span class="en">Google Play Distribution</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/filters.html">
+ <span class="en">Filters on Google Play</span></a>
+ </li>
+
+ <li><a href="/google/play/publishing/multiple-apks.html">
+ <span class="en">Multiple APK Support</span></a>
+ </li>
+ <li><a href="/google/play/expansion-files.html">
+ <span class="en">APK Expansion Files</span></a>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/licensing/index.html">
+ <span class="en">Application Licensing</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/licensing/overview.html">
+ <span class="en">Licensing Overview</span></a>
+ </li>
+ <li><a href="/google/play/licensing/setting-up.html">
+ <span class="en">Setting Up for Licensing</span></a>
+ </li>
+ <li><a href="/google/play/licensing/adding-licensing.html">
+ <span class="en">Adding Licensing to Your App</span></a>
+ </li>
+ <li><a href="/google/play/licensing/licensing-reference.html">
+ <span class="en">Licensing Reference</span></a>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/backup/index.html">
+ Android Backup Service</a>
+ </div>
+ <ul>
+ <li><a href="/google/backup/signup.html">
+ Register</a>
+ </li>
+ </ul>
+ </li>
+
+ </ul>
+
+</li>
+
+
+
+</ul>
+
+<script type="text/javascript">
+<!--
+ buildToggleLists();
+ changeNavLang(getLangPref());
+//-->
+</script>
+
+
+
+
+ </div>
+ <script type="text/javascript">
+ showGoogleRefTree();
+
+ </script>
+ </div> <!-- end side-nav -->
+ <script>
+ $(document).ready(function() {
+ scrollIntoView("devdoc-nav");
+ });
+ </script>
+
+
+
+
+
+
+<div class="col-12" id="doc-col">
+
+<div id="api-info-block">
+
+
+
+
+<div class="sum-details-links">
+
+Summary:
+
+
+
+
+
+
+
+
+
+
+
+ <a href="#pubmethods">Methods</a>
+
+
+
+
+| <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
+
+</div><!-- end sum-details-links -->
+<div class="api-level">
+
+
+
+
+</div>
+</div><!-- end api-info-block -->
+
+
+<!-- ======== START OF CLASS DATA ======== -->
+
+<div id="jd-header">
+ public
+
+
+
+ interface
+<h1 itemprop="name">OnTurnBasedMatchCanceledListener</h1>
+
+
+
+
+
+
+
+
+</div><!-- end header -->
+
+<div id="naMessage"></div>
+
+<div id="jd-content" class="api apilevel-">
+<table class="jd-inheritance-table">
+
+
+ <tr>
+
+ <td colspan="1" class="jd-inheritance-class-cell">com.google.android.gms.games.multiplayer.turnbased.OnTurnBasedMatchCanceledListener</td>
+ </tr>
+
+
+</table>
+
+
+
+
+
+
+<table class="jd-sumtable jd-sumtable-subclasses"><tr><td colspan="12" style="border:none;margin:0;padding:0;">
+
+ <a href="#" onclick="return toggleInherited(this, null)" id="subclasses-indirect" class="jd-expando-trigger closed"
+ ><img id="subclasses-indirect-trigger"
+ src="/assets/images/triangle-closed.png"
+ class="jd-expando-trigger-img" /></a>Known Indirect Subclasses
+
+ <div id="subclasses-indirect">
+ <div id="subclasses-indirect-list"
+ class="jd-inheritedlinks"
+
+ >
+
+
+ <a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMultiplayerListener.html">TurnBasedMultiplayerListener</a>
+
+
+ </div>
+ <div id="subclasses-indirect-summary"
+ style="display: none;"
+ >
+ <table class="jd-sumtable-expando">
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMultiplayerListener.html">TurnBasedMultiplayerListener</a></td>
+ <td class="jd-descrcol" width="100%">Helper interface compounding all of the necessary listeners to implement a turn-based multiplayer
+ game. </td>
+ </tr>
+ </table>
+ </div>
+ </div>
+</td></tr></table>
+
+
+<div class="jd-descr">
+
+
+<h2>Class Overview</h2>
+<p itemprop="articleBody">Listener for receiving callbacks when a match has been canceled.
+</p>
+
+
+
+
+
+</div><!-- jd-descr -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<div class="jd-descr">
+
+
+<h2>Summary</h2>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
+
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/OnTurnBasedMatchCanceledListener.html#onTurnBasedMatchCanceled(int, java.lang.String)">onTurnBasedMatchCanceled</a></span>(int statusCode, String matchId)</nobr>
+
+ <div class="jd-descrdiv">Called when the match has been canceled.</div>
+
+ </td></tr>
+
+
+
+</table>
+
+
+
+
+
+
+
+</div><!-- jd-descr (summary) -->
+
+<!-- Details -->
+
+
+
+
+
+
+
+
+<!-- XML Attributes -->
+
+
+<!-- Enum Values -->
+
+
+<!-- Constants -->
+
+
+<!-- Fields -->
+
+
+<!-- Public ctors -->
+
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<!-- Protected ctors -->
+
+
+
+<!-- ========= METHOD DETAIL ======== -->
+<!-- Public methdos -->
+
+<h2>Public Methods</h2>
+
+
+
+<A NAME="onTurnBasedMatchCanceled(int, java.lang.String)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+ abstract
+
+ void
+ </span>
+ <span class="sympad">onTurnBasedMatchCanceled</span>
+ <span class="normal">(int statusCode, String matchId)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Called when the match has been canceled. Possible status codes include:
+ <ul>
+ <li><code><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_OK">STATUS_OK</a></code> if the match was successfully canceled.</li>
+ <li><code><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_NETWORK_ERROR_OPERATION_DEFERRED">STATUS_NETWORK_ERROR_OPERATION_DEFERRED</a></code> if the attempt to leave the
+ match resulted in a network error. The operation was stored locally, and will be retried the
+ next time the device comes online. No further action is required.</li>
+ <li><code><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_MATCH_ERROR_LOCALLY_MODIFIED">STATUS_MATCH_ERROR_LOCALLY_MODIFIED</a></code> if the match has already been
+ modified locally and has changes waiting to be synced to the server. The cancel operation was
+ not executed.</li>
+ <li><code><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_MULTIPLAYER_ERROR_INVALID_OPERATION">STATUS_MULTIPLAYER_ERROR_INVALID_OPERATION</a></code> if the server rejected the
+ operation.</li>
+ <li><code><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_MULTIPLAYER_DISABLED">STATUS_MULTIPLAYER_DISABLED</a></code> if the game does not support multiplayer.
+ </li>
+ <li><code><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_CLIENT_RECONNECT_REQUIRED">STATUS_CLIENT_RECONNECT_REQUIRED</a></code> if the <code><a href="/reference/com/google/android/gms/games/GamesClient.html">GamesClient</a></code> needs to
+ reconnect to the service to perform this operation.</li>
+ <li><code><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_INTERNAL_ERROR">STATUS_INTERNAL_ERROR</a></code> if an unexpected error occurred in the service.
+ </li>
+ </ul></p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>statusCode</td>
+ <td>A status code indicating the result of the operation.</td>
+ </tr>
+ <tr>
+ <th>matchId</td>
+ <td>The ID of the match that was canceled.
+</td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
+
+
+
+<!-- ========= METHOD DETAIL ======== -->
+
+
+
+<!-- ========= END OF CLASS DATA ========= -->
+<A NAME="navbar_top"></A>
+
+<div id="footer" class="wrap" >
+
+
+ <div id="copyright">
+
+ Except as noted, this content is licensed under <a
+ href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.
+ For details and restrictions, see the <a href="/license.html">
+ Content License</a>.
+ </div>
+ <div id="build_info">
+
+<script src="/timestamp.js" type="text/javascript"></script>
+<script>document.write(BUILD_TIMESTAMP)</script>
+
+ </div>
+
+
+ <div id="footerlinks">
+
+ <p>
+ <a href="/about/index.html">About Android</a> |
+ <a href="/legal.html">Legal</a> |
+ <a href="/support.html">Support</a>
+ </p>
+ </div>
+
+</div> <!-- end footer -->
+</div> <!-- jd-content -->
+
+</div><!-- end doc-content -->
+
+</div> <!-- end body-content -->
+
+
+
+
+
+
+</body>
+</html>
diff --git a/docs/html/reference/com/google/android/gms/games/multiplayer/turnbased/OnTurnBasedMatchInitiatedListener.html b/docs/html/reference/com/google/android/gms/games/multiplayer/turnbased/OnTurnBasedMatchInitiatedListener.html
new file mode 100644
index 0000000..3cf6973
--- /dev/null
+++ b/docs/html/reference/com/google/android/gms/games/multiplayer/turnbased/OnTurnBasedMatchInitiatedListener.html
@@ -0,0 +1,1004 @@
+<!DOCTYPE html>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<html>
+<head>
+
+
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<meta name="viewport" content="width=device-width" />
+
+<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
+<title>OnTurnBasedMatchInitiatedListener | Android Developers</title>
+
+<!-- STYLESHEETS -->
+<link rel="stylesheet"
+href="//fonts.googleapis.com/css?family=Roboto:regular,medium,thin,italic,mediumitalic,bold" title="roboto">
+<link href="/assets/css/default.css" rel="stylesheet" type="text/css">
+
+
+
+<!-- JAVASCRIPT -->
+<script src="//www.google.com/jsapi" type="text/javascript"></script>
+<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
+<script type="text/javascript">
+ var toRoot = "/";
+ var metaTags = [];
+ var devsite = false;
+</script>
+<script src="/assets/js/docs.js" type="text/javascript"></script>
+
+<script type="text/javascript">
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-5831155-1']);
+ _gaq.push(['_trackPageview']);
+
+ (function() {
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+ })();
+</script>
+</head>
+<body class="gc-documentation google
+ develop" itemscope itemtype="http://schema.org/Article">
+ <div id="doc-api-level" class="" style="display:none"></div>
+ <a name="top"></a>
+
+<a name="top"></a>
+
+ <!-- Header -->
+ <div id="header">
+ <div class="wrap" id="header-wrap">
+ <div class="col-3 logo">
+ <a href="/index.html">
+ <img src="/assets/images/dac_logo.png" width="123" height="25" alt="Android Developers" />
+ </a>
+ <div class="btn-quicknav" id="btn-quicknav">
+ <a href="#" class="arrow-inactive">Quicknav</a>
+ <a href="#" class="arrow-active">Quicknav</a>
+ </div>
+ </div>
+ <ul class="nav-x col-9">
+ <li class="design">
+ <a href="/design/index.html"
+ zh-tw-lang="設計"
+ zh-cn-lang="设计"
+ ru-lang="Проектирование"
+ ko-lang="디자인"
+ ja-lang="設計"
+ es-lang="Diseñar"
+ >Design</a></li>
+ <li class="develop"><a href="/develop/index.html"
+ zh-tw-lang="開發"
+ zh-cn-lang="开发"
+ ru-lang="Разработка"
+ ko-lang="개발"
+ ja-lang="開発"
+ es-lang="Desarrollar"
+ >Develop</a></li>
+ <li class="distribute last"><a href="/distribute/index.html"
+ zh-tw-lang="發佈"
+ zh-cn-lang="分发"
+ ru-lang="Распространение"
+ ko-lang="배포"
+ ja-lang="配布"
+ es-lang="Distribuir"
+ >Distribute</a></li>
+ </ul>
+
+ <!-- New Search -->
+ <div class="menu-container">
+ <div class="moremenu">
+ <div id="more-btn"></div>
+ </div>
+ <div class="morehover" id="moremenu">
+ <div class="top"></div>
+ <div class="mid">
+ <div class="header">Links</div>
+ <ul>
+ <li><a href="https://play.google.com/apps/publish/">Google Play Developer Console</a></li>
+ <li><a href="http://android-developers.blogspot.com/">Android Developers Blog</a></li>
+ <li><a href="/about/index.html">About Android</a></li>
+ </ul>
+ <div class="header">Android Sites</div>
+ <ul>
+ <li><a href="http://www.android.com">Android.com</a></li>
+ <li class="active"><a>Android Developers</a></li>
+ <li><a href="http://source.android.com">Android Open Source Project</a></li>
+ </ul>
+
+
+
+ <div class="header">Language</div>
+ <div id="language" class="locales">
+ <select name="language" onChange="changeLangPref(this.value, true)">
+ <option value="en">English</option>
+ <option value="es">Español</option>
+ <option value="ja">日本語</option>
+ <option value="ko">한국어</option>
+ <option value="ru">Русский</option>
+ <option value="zh-cn">中文 (中国)</option>
+ <option value="zh-tw">中文 (台灣)</option>
+ </select>
+ </div>
+ <script type="text/javascript">
+ <!--
+ loadLangPref();
+ //-->
+ </script>
+
+
+
+
+ <br class="clearfix" />
+ </div>
+ <div class="bottom"></div>
+ </div>
+ <div class="search" id="search-container">
+ <div class="search-inner">
+ <div id="search-btn"></div>
+ <div class="left"></div>
+ <form onsubmit="return submit_search()">
+ <input id="search_autocomplete" type="text" value="" autocomplete="off" name="q"
+onfocus="search_focus_changed(this, true)" onblur="search_focus_changed(this, false)"
+onkeydown="return search_changed(event, true, '/')"
+onkeyup="return search_changed(event, false, '/')" />
+ </form>
+ <div class="right"></div>
+ <a class="close hide">close</a>
+ <div class="left"></div>
+ <div class="right"></div>
+ </div>
+ </div>
+
+ <div class="search_filtered_wrapper reference">
+ <div class="suggest-card reference no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ </div>
+
+ <div class="search_filtered_wrapper docs">
+ <div class="suggest-card dummy no-display"> </div>
+ <div class="suggest-card develop no-display">
+ <ul class="search_filtered">
+ </ul>
+ <div class="child-card guides no-display">
+ </div>
+ <div class="child-card training no-display">
+ </div>
+ <div class="child-card samples no-display">
+ </div>
+ </div>
+ <div class="suggest-card design no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ <div class="suggest-card distribute no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ </div>
+
+ </div>
+ <!-- /New Search>
+
+
+ <!-- Expanded quicknav -->
+ <div id="quicknav" class="col-9">
+ <ul>
+ <li class="design">
+ <ul>
+ <li><a href="/design/index.html">Get Started</a></li>
+ <li><a href="/design/style/index.html">Style</a></li>
+ <li><a href="/design/patterns/index.html">Patterns</a></li>
+ <li><a href="/design/building-blocks/index.html">Building Blocks</a></li>
+ <li><a href="/design/downloads/index.html">Downloads</a></li>
+ <li><a href="/design/videos/index.html">Videos</a></li>
+ </ul>
+ </li>
+ <li class="develop">
+ <ul>
+ <li><a href="/training/index.html"
+ zh-tw-lang="訓練課程"
+ zh-cn-lang="培训"
+ ru-lang="Курсы"
+ ko-lang="교육"
+ ja-lang="トレーニング"
+ es-lang="Capacitación"
+ >Training</a></li>
+ <li><a href="/guide/index.html"
+ zh-tw-lang="API 指南"
+ zh-cn-lang="API 指南"
+ ru-lang="Руководства по API"
+ ko-lang="API 가이드"
+ ja-lang="API ガイド"
+ es-lang="Guías de la API"
+ >API Guides</a></li>
+ <li><a href="/reference/packages.html"
+ zh-tw-lang="參考資源"
+ zh-cn-lang="参考"
+ ru-lang="Справочник"
+ ko-lang="참조문서"
+ ja-lang="リファレンス"
+ es-lang="Referencia"
+ >Reference</a></li>
+ <li><a href="/tools/index.html"
+ zh-tw-lang="相關工具"
+ zh-cn-lang="工具"
+ ru-lang="Инструменты"
+ ko-lang="도구"
+ ja-lang="ツール"
+ es-lang="Herramientas"
+ >Tools</a>
+ <ul><li><a href="/sdk/index.html">Get the SDK</a></li></ul>
+ </li>
+ <li><a href="/google/index.html">Google Services</a>
+ </li>
+
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
+ </ul>
+ </li>
+ <li class="distribute last">
+ <ul>
+ <li><a href="/distribute/index.html">Google Play</a></li>
+ <li><a href="/distribute/googleplay/publish/index.html">Publishing</a></li>
+ <li><a href="/distribute/googleplay/promote/index.html">Promoting</a></li>
+ <li><a href="/distribute/googleplay/quality/index.html">App Quality</a></li>
+ <li><a href="/distribute/googleplay/spotlight/index.html">Spotlight</a></li>
+ <li><a href="/distribute/open.html">Open Distribution</a></li>
+ </ul>
+ </li>
+ </ul>
+ </div>
+ <!-- /Expanded quicknav -->
+ </div>
+ </div>
+ <!-- /Header -->
+
+
+ <div id="searchResults" class="wrap" style="display:none;">
+ <h2 id="searchTitle">Results</h2>
+ <div id="leftSearchControl" class="search-control">Loading...</div>
+ </div>
+
+
+
+ <!-- Secondary x-nav -->
+ <div id="nav-x">
+ <div class="wrap">
+ <ul class="nav-x col-9 develop" style="width:100%">
+ <li class="training"><a href="/training/index.html"
+ zh-tw-lang="訓練課程"
+ zh-cn-lang="培训"
+ ru-lang="Курсы"
+ ko-lang="교육"
+ ja-lang="トレーニング"
+ es-lang="Capacitación"
+ >Training</a></li>
+ <li class="guide"><a href="/guide/index.html"
+ zh-tw-lang="API 指南"
+ zh-cn-lang="API 指南"
+ ru-lang="Руководства по API"
+ ko-lang="API 가이드"
+ ja-lang="API ガイド"
+ es-lang="Guías de la API"
+ >API Guides</a></li>
+ <li class="reference"><a href="/reference/packages.html"
+ zh-tw-lang="參考資源"
+ zh-cn-lang="参考"
+ ru-lang="Справочник"
+ ko-lang="참조문서"
+ ja-lang="リファレンス"
+ es-lang="Referencia"
+ >Reference</a></li>
+ <li class="tools"><a href="/tools/index.html"
+ zh-tw-lang="相關工具"
+ zh-cn-lang="工具"
+ ru-lang="Инструменты"
+ ko-lang="도구"
+ ja-lang="ツール"
+ es-lang="Herramientas"
+ >Tools</a></li>
+ <li class="google"><a href="/google/index.html"
+ >Google Services</a>
+ </li>
+
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
+ </ul>
+ </div>
+
+ </div>
+ <!-- /Sendondary x-nav -->
+
+
+
+
+
+
+
+
+
+ <div class="wrap clearfix" id="body-content">
+ <div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
+ <div id="devdoc-nav" class="scroll-pane">
+<a class="totop" href="#top" data-g-event="left-nav-top">to top</a>
+
+
+
+<ul id="nav">
+
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/index.html">
+ <span class="en">Overview</span>
+ </a></div>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/games.html">
+ <span class="en">Games</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/location.html">
+ <span class="en">Location</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/plus.html">
+ <span class="en">Google+</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/maps.html">
+ <span class="en">Maps</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play-services/ads.html">
+ <span class="en">Ads</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play-services/id.html">
+ <span class="en">Advertising ID</span></a>
+ </li>
+ </ul>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/wallet.html">
+ <span class="en">Wallet</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/auth.html">
+ <span class="en">Authorization</span>
+ </a></div>
+ </li>
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play-services/index.html">
+ <span class="en">Google Play Services</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play-services/setup.html">
+ <span class="en">Setup</span></a>
+ </li>
+ <li id="gms-tree-list" class="nav-section">
+ <div class="nav-section-header">
+ <a href="/reference/gms-packages.html">
+ <span class="en">Reference</span>
+ </a>
+ <div>
+ </li>
+ </ul>
+ </li>
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/billing/index.html">
+ <span class="en">Google Play In-app Billing</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/billing/billing_overview.html">
+ <span class="en">Overview</span></a>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/api.html">
+ <span class="en">Version 3 API</span></a></div>
+ <ul>
+ <li><a href="/google/play/billing/billing_integrate.html">
+ <span class="en">Implementing the API</span></a></li>
+ <li><a href="/google/play/billing/billing_reference.html">
+ <span class="en">Reference</span></a></li>
+ </ul>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/v2/api.html">
+ <span class="en">Version 2 API</span></a></div>
+ <ul>
+ <li><a href="/google/play/billing/v2/billing_integrate.html">
+ <span class="en">Implementing the API</span></a></li>
+ <li><a href="/google/play/billing/v2/billing_subscriptions.html">
+ <span class="en">Subscriptions</span></a></li>
+ <li><a href="/google/play/billing/v2/billing_reference.html">
+ <span class="en">Reference</span></a></li>
+ </ul>
+ </li>
+ <li><a href="/google/play/billing/billing_subscriptions.html">
+ <span class="en">Subscriptions</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_best_practices.html">
+ <span class="en">Security and Design</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_testing.html">
+ <span class="en">Testing In-app Billing</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_admin.html">
+ <span class="en">Administering In-app Billing</span></a>
+ </li>
+ <li><a href="/google/play/billing/gp-purchase-status-api.html">
+ <span class="en">Purchase Status API</span></a>
+ </li>
+ <li><a href="/google/play/billing/versions.html">
+ <span class="en">Version Notes</span></a>
+ </li>
+ </ul>
+ </li>
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/gcm/index.html">
+ <span class="en">Google Cloud Messaging</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
+ <li><a href="/google/gcm/gs.html">
+ <span class="en">Getting Started</span></a>
+ </li>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
+ </li>
+ <li><a href="/google/gcm/notifications.html">
+ <span class="en">User Notifications</span></a>
+ </li>
+ <li><a href="/google/gcm/adv.html">
+ <span class="en">Advanced Topics</span></a>
+ </li>
+ <li><a href="/google/gcm/c2dm.html">
+ <span class="en">Migration</span></a>
+ </li>
+ <li id="gcm-tree-list" class="nav-section">
+ <div class="nav-section-header">
+ <a href="/reference/gcm-packages.html">
+ <span class="en">Reference</span>
+ </a>
+ <div>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/dist.html">
+ <span class="en">Google Play Distribution</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/filters.html">
+ <span class="en">Filters on Google Play</span></a>
+ </li>
+
+ <li><a href="/google/play/publishing/multiple-apks.html">
+ <span class="en">Multiple APK Support</span></a>
+ </li>
+ <li><a href="/google/play/expansion-files.html">
+ <span class="en">APK Expansion Files</span></a>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/licensing/index.html">
+ <span class="en">Application Licensing</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/licensing/overview.html">
+ <span class="en">Licensing Overview</span></a>
+ </li>
+ <li><a href="/google/play/licensing/setting-up.html">
+ <span class="en">Setting Up for Licensing</span></a>
+ </li>
+ <li><a href="/google/play/licensing/adding-licensing.html">
+ <span class="en">Adding Licensing to Your App</span></a>
+ </li>
+ <li><a href="/google/play/licensing/licensing-reference.html">
+ <span class="en">Licensing Reference</span></a>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/backup/index.html">
+ Android Backup Service</a>
+ </div>
+ <ul>
+ <li><a href="/google/backup/signup.html">
+ Register</a>
+ </li>
+ </ul>
+ </li>
+
+ </ul>
+
+</li>
+
+
+
+</ul>
+
+<script type="text/javascript">
+<!--
+ buildToggleLists();
+ changeNavLang(getLangPref());
+//-->
+</script>
+
+
+
+
+ </div>
+ <script type="text/javascript">
+ showGoogleRefTree();
+
+ </script>
+ </div> <!-- end side-nav -->
+ <script>
+ $(document).ready(function() {
+ scrollIntoView("devdoc-nav");
+ });
+ </script>
+
+
+
+
+
+
+<div class="col-12" id="doc-col">
+
+<div id="api-info-block">
+
+
+
+
+<div class="sum-details-links">
+
+Summary:
+
+
+
+
+
+
+
+
+
+
+
+ <a href="#pubmethods">Methods</a>
+
+
+
+
+| <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
+
+</div><!-- end sum-details-links -->
+<div class="api-level">
+
+
+
+
+</div>
+</div><!-- end api-info-block -->
+
+
+<!-- ======== START OF CLASS DATA ======== -->
+
+<div id="jd-header">
+ public
+
+
+
+ interface
+<h1 itemprop="name">OnTurnBasedMatchInitiatedListener</h1>
+
+
+
+
+
+
+
+
+</div><!-- end header -->
+
+<div id="naMessage"></div>
+
+<div id="jd-content" class="api apilevel-">
+<table class="jd-inheritance-table">
+
+
+ <tr>
+
+ <td colspan="1" class="jd-inheritance-class-cell">com.google.android.gms.games.multiplayer.turnbased.OnTurnBasedMatchInitiatedListener</td>
+ </tr>
+
+
+</table>
+
+
+
+
+
+
+<table class="jd-sumtable jd-sumtable-subclasses"><tr><td colspan="12" style="border:none;margin:0;padding:0;">
+
+ <a href="#" onclick="return toggleInherited(this, null)" id="subclasses-indirect" class="jd-expando-trigger closed"
+ ><img id="subclasses-indirect-trigger"
+ src="/assets/images/triangle-closed.png"
+ class="jd-expando-trigger-img" /></a>Known Indirect Subclasses
+
+ <div id="subclasses-indirect">
+ <div id="subclasses-indirect-list"
+ class="jd-inheritedlinks"
+
+ >
+
+
+ <a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMultiplayerListener.html">TurnBasedMultiplayerListener</a>
+
+
+ </div>
+ <div id="subclasses-indirect-summary"
+ style="display: none;"
+ >
+ <table class="jd-sumtable-expando">
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMultiplayerListener.html">TurnBasedMultiplayerListener</a></td>
+ <td class="jd-descrcol" width="100%">Helper interface compounding all of the necessary listeners to implement a turn-based multiplayer
+ game. </td>
+ </tr>
+ </table>
+ </div>
+ </div>
+</td></tr></table>
+
+
+<div class="jd-descr">
+
+
+<h2>Class Overview</h2>
+<p itemprop="articleBody">Listener for receiving callbacks when a match has been initiated.
+</p>
+
+
+
+
+
+</div><!-- jd-descr -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<div class="jd-descr">
+
+
+<h2>Summary</h2>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
+
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/OnTurnBasedMatchInitiatedListener.html#onTurnBasedMatchInitiated(int, com.google.android.gms.games.multiplayer.turnbased.TurnBasedMatch)">onTurnBasedMatchInitiated</a></span>(int statusCode, <a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html">TurnBasedMatch</a> match)</nobr>
+
+ <div class="jd-descrdiv">Called when match has been initiated.</div>
+
+ </td></tr>
+
+
+
+</table>
+
+
+
+
+
+
+
+</div><!-- jd-descr (summary) -->
+
+<!-- Details -->
+
+
+
+
+
+
+
+
+<!-- XML Attributes -->
+
+
+<!-- Enum Values -->
+
+
+<!-- Constants -->
+
+
+<!-- Fields -->
+
+
+<!-- Public ctors -->
+
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<!-- Protected ctors -->
+
+
+
+<!-- ========= METHOD DETAIL ======== -->
+<!-- Public methdos -->
+
+<h2>Public Methods</h2>
+
+
+
+<A NAME="onTurnBasedMatchInitiated(int, com.google.android.gms.games.multiplayer.turnbased.TurnBasedMatch)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+ abstract
+
+ void
+ </span>
+ <span class="sympad">onTurnBasedMatchInitiated</span>
+ <span class="normal">(int statusCode, <a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html">TurnBasedMatch</a> match)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Called when match has been initiated. This happens when the player creates a new match, or
+ when the player joins an existing match. Possible status codes include:
+ <ul>
+ <li><code><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_OK">STATUS_OK</a></code> if data was successfully loaded and is up-to-date.</li>
+ <li><code><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_MATCH_ERROR_ALREADY_REMATCHED">STATUS_MATCH_ERROR_ALREADY_REMATCHED</a></code> if this is an attempt to rematch
+ a match which has already had a rematch created.</li>
+ <li><code><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_NETWORK_ERROR_OPERATION_FAILED">STATUS_NETWORK_ERROR_OPERATION_FAILED</a></code> if the attempt to initiate the
+ match failed due to network error.
+ <li><code><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_MULTIPLAYER_ERROR_NOT_TRUSTED_TESTER">STATUS_MULTIPLAYER_ERROR_NOT_TRUSTED_TESTER</a></code> if one of the users in
+ the match is not a trusted tester of a game which is not yet published.</li>
+ <li><code><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_MULTIPLAYER_ERROR_INVALID_OPERATION">STATUS_MULTIPLAYER_ERROR_INVALID_OPERATION</a></code> if the server rejected the
+ operation.</li>
+ <li><code><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_MULTIPLAYER_DISABLED">STATUS_MULTIPLAYER_DISABLED</a></code> if the game does not support multiplayer.
+ </li>
+ <li><code><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_CLIENT_RECONNECT_REQUIRED">STATUS_CLIENT_RECONNECT_REQUIRED</a></code> if the <code><a href="/reference/com/google/android/gms/games/GamesClient.html">GamesClient</a></code> needs to
+ reconnect to the service to perform this operation.</li>
+ <li><code><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_INTERNAL_ERROR">STATUS_INTERNAL_ERROR</a></code> if an unexpected error occurred in the service.
+ </li>
+ </ul></p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>statusCode</td>
+ <td>A status code indicating the result of the operation.</td>
+ </tr>
+ <tr>
+ <th>match</td>
+ <td>The newly initiated <code><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html">TurnBasedMatch</a></code> object. Note that this may be null,
+ depending on the status code returned.
+</td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
+
+
+
+<!-- ========= METHOD DETAIL ======== -->
+
+
+
+<!-- ========= END OF CLASS DATA ========= -->
+<A NAME="navbar_top"></A>
+
+<div id="footer" class="wrap" >
+
+
+ <div id="copyright">
+
+ Except as noted, this content is licensed under <a
+ href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.
+ For details and restrictions, see the <a href="/license.html">
+ Content License</a>.
+ </div>
+ <div id="build_info">
+
+<script src="/timestamp.js" type="text/javascript"></script>
+<script>document.write(BUILD_TIMESTAMP)</script>
+
+ </div>
+
+
+ <div id="footerlinks">
+
+ <p>
+ <a href="/about/index.html">About Android</a> |
+ <a href="/legal.html">Legal</a> |
+ <a href="/support.html">Support</a>
+ </p>
+ </div>
+
+</div> <!-- end footer -->
+</div> <!-- jd-content -->
+
+</div><!-- end doc-content -->
+
+</div> <!-- end body-content -->
+
+
+
+
+
+
+</body>
+</html>
diff --git a/docs/html/reference/com/google/android/gms/games/multiplayer/turnbased/OnTurnBasedMatchLeftListener.html b/docs/html/reference/com/google/android/gms/games/multiplayer/turnbased/OnTurnBasedMatchLeftListener.html
new file mode 100644
index 0000000..c2d559b
--- /dev/null
+++ b/docs/html/reference/com/google/android/gms/games/multiplayer/turnbased/OnTurnBasedMatchLeftListener.html
@@ -0,0 +1,1007 @@
+<!DOCTYPE html>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<html>
+<head>
+
+
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<meta name="viewport" content="width=device-width" />
+
+<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
+<title>OnTurnBasedMatchLeftListener | Android Developers</title>
+
+<!-- STYLESHEETS -->
+<link rel="stylesheet"
+href="//fonts.googleapis.com/css?family=Roboto:regular,medium,thin,italic,mediumitalic,bold" title="roboto">
+<link href="/assets/css/default.css" rel="stylesheet" type="text/css">
+
+
+
+<!-- JAVASCRIPT -->
+<script src="//www.google.com/jsapi" type="text/javascript"></script>
+<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
+<script type="text/javascript">
+ var toRoot = "/";
+ var metaTags = [];
+ var devsite = false;
+</script>
+<script src="/assets/js/docs.js" type="text/javascript"></script>
+
+<script type="text/javascript">
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-5831155-1']);
+ _gaq.push(['_trackPageview']);
+
+ (function() {
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+ })();
+</script>
+</head>
+<body class="gc-documentation google
+ develop" itemscope itemtype="http://schema.org/Article">
+ <div id="doc-api-level" class="" style="display:none"></div>
+ <a name="top"></a>
+
+<a name="top"></a>
+
+ <!-- Header -->
+ <div id="header">
+ <div class="wrap" id="header-wrap">
+ <div class="col-3 logo">
+ <a href="/index.html">
+ <img src="/assets/images/dac_logo.png" width="123" height="25" alt="Android Developers" />
+ </a>
+ <div class="btn-quicknav" id="btn-quicknav">
+ <a href="#" class="arrow-inactive">Quicknav</a>
+ <a href="#" class="arrow-active">Quicknav</a>
+ </div>
+ </div>
+ <ul class="nav-x col-9">
+ <li class="design">
+ <a href="/design/index.html"
+ zh-tw-lang="設計"
+ zh-cn-lang="设计"
+ ru-lang="Проектирование"
+ ko-lang="디자인"
+ ja-lang="設計"
+ es-lang="Diseñar"
+ >Design</a></li>
+ <li class="develop"><a href="/develop/index.html"
+ zh-tw-lang="開發"
+ zh-cn-lang="开发"
+ ru-lang="Разработка"
+ ko-lang="개발"
+ ja-lang="開発"
+ es-lang="Desarrollar"
+ >Develop</a></li>
+ <li class="distribute last"><a href="/distribute/index.html"
+ zh-tw-lang="發佈"
+ zh-cn-lang="分发"
+ ru-lang="Распространение"
+ ko-lang="배포"
+ ja-lang="配布"
+ es-lang="Distribuir"
+ >Distribute</a></li>
+ </ul>
+
+ <!-- New Search -->
+ <div class="menu-container">
+ <div class="moremenu">
+ <div id="more-btn"></div>
+ </div>
+ <div class="morehover" id="moremenu">
+ <div class="top"></div>
+ <div class="mid">
+ <div class="header">Links</div>
+ <ul>
+ <li><a href="https://play.google.com/apps/publish/">Google Play Developer Console</a></li>
+ <li><a href="http://android-developers.blogspot.com/">Android Developers Blog</a></li>
+ <li><a href="/about/index.html">About Android</a></li>
+ </ul>
+ <div class="header">Android Sites</div>
+ <ul>
+ <li><a href="http://www.android.com">Android.com</a></li>
+ <li class="active"><a>Android Developers</a></li>
+ <li><a href="http://source.android.com">Android Open Source Project</a></li>
+ </ul>
+
+
+
+ <div class="header">Language</div>
+ <div id="language" class="locales">
+ <select name="language" onChange="changeLangPref(this.value, true)">
+ <option value="en">English</option>
+ <option value="es">Español</option>
+ <option value="ja">日本語</option>
+ <option value="ko">한국어</option>
+ <option value="ru">Русский</option>
+ <option value="zh-cn">中文 (中国)</option>
+ <option value="zh-tw">中文 (台灣)</option>
+ </select>
+ </div>
+ <script type="text/javascript">
+ <!--
+ loadLangPref();
+ //-->
+ </script>
+
+
+
+
+ <br class="clearfix" />
+ </div>
+ <div class="bottom"></div>
+ </div>
+ <div class="search" id="search-container">
+ <div class="search-inner">
+ <div id="search-btn"></div>
+ <div class="left"></div>
+ <form onsubmit="return submit_search()">
+ <input id="search_autocomplete" type="text" value="" autocomplete="off" name="q"
+onfocus="search_focus_changed(this, true)" onblur="search_focus_changed(this, false)"
+onkeydown="return search_changed(event, true, '/')"
+onkeyup="return search_changed(event, false, '/')" />
+ </form>
+ <div class="right"></div>
+ <a class="close hide">close</a>
+ <div class="left"></div>
+ <div class="right"></div>
+ </div>
+ </div>
+
+ <div class="search_filtered_wrapper reference">
+ <div class="suggest-card reference no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ </div>
+
+ <div class="search_filtered_wrapper docs">
+ <div class="suggest-card dummy no-display"> </div>
+ <div class="suggest-card develop no-display">
+ <ul class="search_filtered">
+ </ul>
+ <div class="child-card guides no-display">
+ </div>
+ <div class="child-card training no-display">
+ </div>
+ <div class="child-card samples no-display">
+ </div>
+ </div>
+ <div class="suggest-card design no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ <div class="suggest-card distribute no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ </div>
+
+ </div>
+ <!-- /New Search>
+
+
+ <!-- Expanded quicknav -->
+ <div id="quicknav" class="col-9">
+ <ul>
+ <li class="design">
+ <ul>
+ <li><a href="/design/index.html">Get Started</a></li>
+ <li><a href="/design/style/index.html">Style</a></li>
+ <li><a href="/design/patterns/index.html">Patterns</a></li>
+ <li><a href="/design/building-blocks/index.html">Building Blocks</a></li>
+ <li><a href="/design/downloads/index.html">Downloads</a></li>
+ <li><a href="/design/videos/index.html">Videos</a></li>
+ </ul>
+ </li>
+ <li class="develop">
+ <ul>
+ <li><a href="/training/index.html"
+ zh-tw-lang="訓練課程"
+ zh-cn-lang="培训"
+ ru-lang="Курсы"
+ ko-lang="교육"
+ ja-lang="トレーニング"
+ es-lang="Capacitación"
+ >Training</a></li>
+ <li><a href="/guide/index.html"
+ zh-tw-lang="API 指南"
+ zh-cn-lang="API 指南"
+ ru-lang="Руководства по API"
+ ko-lang="API 가이드"
+ ja-lang="API ガイド"
+ es-lang="Guías de la API"
+ >API Guides</a></li>
+ <li><a href="/reference/packages.html"
+ zh-tw-lang="參考資源"
+ zh-cn-lang="参考"
+ ru-lang="Справочник"
+ ko-lang="참조문서"
+ ja-lang="リファレンス"
+ es-lang="Referencia"
+ >Reference</a></li>
+ <li><a href="/tools/index.html"
+ zh-tw-lang="相關工具"
+ zh-cn-lang="工具"
+ ru-lang="Инструменты"
+ ko-lang="도구"
+ ja-lang="ツール"
+ es-lang="Herramientas"
+ >Tools</a>
+ <ul><li><a href="/sdk/index.html">Get the SDK</a></li></ul>
+ </li>
+ <li><a href="/google/index.html">Google Services</a>
+ </li>
+
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
+ </ul>
+ </li>
+ <li class="distribute last">
+ <ul>
+ <li><a href="/distribute/index.html">Google Play</a></li>
+ <li><a href="/distribute/googleplay/publish/index.html">Publishing</a></li>
+ <li><a href="/distribute/googleplay/promote/index.html">Promoting</a></li>
+ <li><a href="/distribute/googleplay/quality/index.html">App Quality</a></li>
+ <li><a href="/distribute/googleplay/spotlight/index.html">Spotlight</a></li>
+ <li><a href="/distribute/open.html">Open Distribution</a></li>
+ </ul>
+ </li>
+ </ul>
+ </div>
+ <!-- /Expanded quicknav -->
+ </div>
+ </div>
+ <!-- /Header -->
+
+
+ <div id="searchResults" class="wrap" style="display:none;">
+ <h2 id="searchTitle">Results</h2>
+ <div id="leftSearchControl" class="search-control">Loading...</div>
+ </div>
+
+
+
+ <!-- Secondary x-nav -->
+ <div id="nav-x">
+ <div class="wrap">
+ <ul class="nav-x col-9 develop" style="width:100%">
+ <li class="training"><a href="/training/index.html"
+ zh-tw-lang="訓練課程"
+ zh-cn-lang="培训"
+ ru-lang="Курсы"
+ ko-lang="교육"
+ ja-lang="トレーニング"
+ es-lang="Capacitación"
+ >Training</a></li>
+ <li class="guide"><a href="/guide/index.html"
+ zh-tw-lang="API 指南"
+ zh-cn-lang="API 指南"
+ ru-lang="Руководства по API"
+ ko-lang="API 가이드"
+ ja-lang="API ガイド"
+ es-lang="Guías de la API"
+ >API Guides</a></li>
+ <li class="reference"><a href="/reference/packages.html"
+ zh-tw-lang="參考資源"
+ zh-cn-lang="参考"
+ ru-lang="Справочник"
+ ko-lang="참조문서"
+ ja-lang="リファレンス"
+ es-lang="Referencia"
+ >Reference</a></li>
+ <li class="tools"><a href="/tools/index.html"
+ zh-tw-lang="相關工具"
+ zh-cn-lang="工具"
+ ru-lang="Инструменты"
+ ko-lang="도구"
+ ja-lang="ツール"
+ es-lang="Herramientas"
+ >Tools</a></li>
+ <li class="google"><a href="/google/index.html"
+ >Google Services</a>
+ </li>
+
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
+ </ul>
+ </div>
+
+ </div>
+ <!-- /Sendondary x-nav -->
+
+
+
+
+
+
+
+
+
+ <div class="wrap clearfix" id="body-content">
+ <div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
+ <div id="devdoc-nav" class="scroll-pane">
+<a class="totop" href="#top" data-g-event="left-nav-top">to top</a>
+
+
+
+<ul id="nav">
+
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/index.html">
+ <span class="en">Overview</span>
+ </a></div>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/games.html">
+ <span class="en">Games</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/location.html">
+ <span class="en">Location</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/plus.html">
+ <span class="en">Google+</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/maps.html">
+ <span class="en">Maps</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play-services/ads.html">
+ <span class="en">Ads</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play-services/id.html">
+ <span class="en">Advertising ID</span></a>
+ </li>
+ </ul>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/wallet.html">
+ <span class="en">Wallet</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/auth.html">
+ <span class="en">Authorization</span>
+ </a></div>
+ </li>
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play-services/index.html">
+ <span class="en">Google Play Services</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play-services/setup.html">
+ <span class="en">Setup</span></a>
+ </li>
+ <li id="gms-tree-list" class="nav-section">
+ <div class="nav-section-header">
+ <a href="/reference/gms-packages.html">
+ <span class="en">Reference</span>
+ </a>
+ <div>
+ </li>
+ </ul>
+ </li>
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/billing/index.html">
+ <span class="en">Google Play In-app Billing</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/billing/billing_overview.html">
+ <span class="en">Overview</span></a>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/api.html">
+ <span class="en">Version 3 API</span></a></div>
+ <ul>
+ <li><a href="/google/play/billing/billing_integrate.html">
+ <span class="en">Implementing the API</span></a></li>
+ <li><a href="/google/play/billing/billing_reference.html">
+ <span class="en">Reference</span></a></li>
+ </ul>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/v2/api.html">
+ <span class="en">Version 2 API</span></a></div>
+ <ul>
+ <li><a href="/google/play/billing/v2/billing_integrate.html">
+ <span class="en">Implementing the API</span></a></li>
+ <li><a href="/google/play/billing/v2/billing_subscriptions.html">
+ <span class="en">Subscriptions</span></a></li>
+ <li><a href="/google/play/billing/v2/billing_reference.html">
+ <span class="en">Reference</span></a></li>
+ </ul>
+ </li>
+ <li><a href="/google/play/billing/billing_subscriptions.html">
+ <span class="en">Subscriptions</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_best_practices.html">
+ <span class="en">Security and Design</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_testing.html">
+ <span class="en">Testing In-app Billing</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_admin.html">
+ <span class="en">Administering In-app Billing</span></a>
+ </li>
+ <li><a href="/google/play/billing/gp-purchase-status-api.html">
+ <span class="en">Purchase Status API</span></a>
+ </li>
+ <li><a href="/google/play/billing/versions.html">
+ <span class="en">Version Notes</span></a>
+ </li>
+ </ul>
+ </li>
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/gcm/index.html">
+ <span class="en">Google Cloud Messaging</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
+ <li><a href="/google/gcm/gs.html">
+ <span class="en">Getting Started</span></a>
+ </li>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
+ </li>
+ <li><a href="/google/gcm/notifications.html">
+ <span class="en">User Notifications</span></a>
+ </li>
+ <li><a href="/google/gcm/adv.html">
+ <span class="en">Advanced Topics</span></a>
+ </li>
+ <li><a href="/google/gcm/c2dm.html">
+ <span class="en">Migration</span></a>
+ </li>
+ <li id="gcm-tree-list" class="nav-section">
+ <div class="nav-section-header">
+ <a href="/reference/gcm-packages.html">
+ <span class="en">Reference</span>
+ </a>
+ <div>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/dist.html">
+ <span class="en">Google Play Distribution</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/filters.html">
+ <span class="en">Filters on Google Play</span></a>
+ </li>
+
+ <li><a href="/google/play/publishing/multiple-apks.html">
+ <span class="en">Multiple APK Support</span></a>
+ </li>
+ <li><a href="/google/play/expansion-files.html">
+ <span class="en">APK Expansion Files</span></a>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/licensing/index.html">
+ <span class="en">Application Licensing</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/licensing/overview.html">
+ <span class="en">Licensing Overview</span></a>
+ </li>
+ <li><a href="/google/play/licensing/setting-up.html">
+ <span class="en">Setting Up for Licensing</span></a>
+ </li>
+ <li><a href="/google/play/licensing/adding-licensing.html">
+ <span class="en">Adding Licensing to Your App</span></a>
+ </li>
+ <li><a href="/google/play/licensing/licensing-reference.html">
+ <span class="en">Licensing Reference</span></a>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/backup/index.html">
+ Android Backup Service</a>
+ </div>
+ <ul>
+ <li><a href="/google/backup/signup.html">
+ Register</a>
+ </li>
+ </ul>
+ </li>
+
+ </ul>
+
+</li>
+
+
+
+</ul>
+
+<script type="text/javascript">
+<!--
+ buildToggleLists();
+ changeNavLang(getLangPref());
+//-->
+</script>
+
+
+
+
+ </div>
+ <script type="text/javascript">
+ showGoogleRefTree();
+
+ </script>
+ </div> <!-- end side-nav -->
+ <script>
+ $(document).ready(function() {
+ scrollIntoView("devdoc-nav");
+ });
+ </script>
+
+
+
+
+
+
+<div class="col-12" id="doc-col">
+
+<div id="api-info-block">
+
+
+
+
+<div class="sum-details-links">
+
+Summary:
+
+
+
+
+
+
+
+
+
+
+
+ <a href="#pubmethods">Methods</a>
+
+
+
+
+| <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
+
+</div><!-- end sum-details-links -->
+<div class="api-level">
+
+
+
+
+</div>
+</div><!-- end api-info-block -->
+
+
+<!-- ======== START OF CLASS DATA ======== -->
+
+<div id="jd-header">
+ public
+
+
+
+ interface
+<h1 itemprop="name">OnTurnBasedMatchLeftListener</h1>
+
+
+
+
+
+
+
+
+</div><!-- end header -->
+
+<div id="naMessage"></div>
+
+<div id="jd-content" class="api apilevel-">
+<table class="jd-inheritance-table">
+
+
+ <tr>
+
+ <td colspan="1" class="jd-inheritance-class-cell">com.google.android.gms.games.multiplayer.turnbased.OnTurnBasedMatchLeftListener</td>
+ </tr>
+
+
+</table>
+
+
+
+
+
+
+<table class="jd-sumtable jd-sumtable-subclasses"><tr><td colspan="12" style="border:none;margin:0;padding:0;">
+
+ <a href="#" onclick="return toggleInherited(this, null)" id="subclasses-indirect" class="jd-expando-trigger closed"
+ ><img id="subclasses-indirect-trigger"
+ src="/assets/images/triangle-closed.png"
+ class="jd-expando-trigger-img" /></a>Known Indirect Subclasses
+
+ <div id="subclasses-indirect">
+ <div id="subclasses-indirect-list"
+ class="jd-inheritedlinks"
+
+ >
+
+
+ <a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMultiplayerListener.html">TurnBasedMultiplayerListener</a>
+
+
+ </div>
+ <div id="subclasses-indirect-summary"
+ style="display: none;"
+ >
+ <table class="jd-sumtable-expando">
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMultiplayerListener.html">TurnBasedMultiplayerListener</a></td>
+ <td class="jd-descrcol" width="100%">Helper interface compounding all of the necessary listeners to implement a turn-based multiplayer
+ game. </td>
+ </tr>
+ </table>
+ </div>
+ </div>
+</td></tr></table>
+
+
+<div class="jd-descr">
+
+
+<h2>Class Overview</h2>
+<p itemprop="articleBody">Listener for receiving callbacks when a player leaves a turn-based match.
+</p>
+
+
+
+
+
+</div><!-- jd-descr -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<div class="jd-descr">
+
+
+<h2>Summary</h2>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
+
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/OnTurnBasedMatchLeftListener.html#onTurnBasedMatchLeft(int, com.google.android.gms.games.multiplayer.turnbased.TurnBasedMatch)">onTurnBasedMatchLeft</a></span>(int statusCode, <a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html">TurnBasedMatch</a> match)</nobr>
+
+ <div class="jd-descrdiv">Called when the player has left the match.</div>
+
+ </td></tr>
+
+
+
+</table>
+
+
+
+
+
+
+
+</div><!-- jd-descr (summary) -->
+
+<!-- Details -->
+
+
+
+
+
+
+
+
+<!-- XML Attributes -->
+
+
+<!-- Enum Values -->
+
+
+<!-- Constants -->
+
+
+<!-- Fields -->
+
+
+<!-- Public ctors -->
+
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<!-- Protected ctors -->
+
+
+
+<!-- ========= METHOD DETAIL ======== -->
+<!-- Public methdos -->
+
+<h2>Public Methods</h2>
+
+
+
+<A NAME="onTurnBasedMatchLeft(int, com.google.android.gms.games.multiplayer.turnbased.TurnBasedMatch)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+ abstract
+
+ void
+ </span>
+ <span class="sympad">onTurnBasedMatchLeft</span>
+ <span class="normal">(int statusCode, <a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html">TurnBasedMatch</a> match)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Called when the player has left the match. Possible status codes include:
+ <ul>
+ <li><code><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_OK">STATUS_OK</a></code> if the player successfully left the match.</li>
+ <li><code><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_NETWORK_ERROR_OPERATION_DEFERRED">STATUS_NETWORK_ERROR_OPERATION_DEFERRED</a></code> if the attempt to leave the
+ match resulted in a network error. The operation was stored locally, and will be retried the
+ next time the device comes online. No further action is required.</li>
+ <li><code><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_MATCH_ERROR_LOCALLY_MODIFIED">STATUS_MATCH_ERROR_LOCALLY_MODIFIED</a></code> if the match has already been
+ modified locally and has changes waiting to be synced to the server. The leave operation was
+ not executed.</li>
+ <li><code><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_MATCH_ERROR_INACTIVE_MATCH">STATUS_MATCH_ERROR_INACTIVE_MATCH</a></code> if the match has already
+ transitioned into an inactive state on the server.</li>
+ <li><code><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_MATCH_ERROR_OUT_OF_DATE_VERSION">STATUS_MATCH_ERROR_OUT_OF_DATE_VERSION</a></code> if the local match state was
+ out of date. In this case, the updated match will be returned.</li>
+ <li><code><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_MULTIPLAYER_ERROR_INVALID_OPERATION">STATUS_MULTIPLAYER_ERROR_INVALID_OPERATION</a></code> if the server rejected the
+ operation.</li>
+ <li><code><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_MULTIPLAYER_DISABLED">STATUS_MULTIPLAYER_DISABLED</a></code> if the game does not support multiplayer.
+ </li>
+ <li><code><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_CLIENT_RECONNECT_REQUIRED">STATUS_CLIENT_RECONNECT_REQUIRED</a></code> if the <code><a href="/reference/com/google/android/gms/games/GamesClient.html">GamesClient</a></code> needs to
+ reconnect to the service to perform this operation.</li>
+ <li><code><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_INTERNAL_ERROR">STATUS_INTERNAL_ERROR</a></code> if an unexpected error occurred in the service.
+ </li>
+ </ul></p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>statusCode</td>
+ <td>A status code indicating the result of the operation.</td>
+ </tr>
+ <tr>
+ <th>match</td>
+ <td>The updated <code><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html">TurnBasedMatch</a></code> object. Note that this may be null, depending
+ on the status code returned.
+</td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
+
+
+
+<!-- ========= METHOD DETAIL ======== -->
+
+
+
+<!-- ========= END OF CLASS DATA ========= -->
+<A NAME="navbar_top"></A>
+
+<div id="footer" class="wrap" >
+
+
+ <div id="copyright">
+
+ Except as noted, this content is licensed under <a
+ href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.
+ For details and restrictions, see the <a href="/license.html">
+ Content License</a>.
+ </div>
+ <div id="build_info">
+
+<script src="/timestamp.js" type="text/javascript"></script>
+<script>document.write(BUILD_TIMESTAMP)</script>
+
+ </div>
+
+
+ <div id="footerlinks">
+
+ <p>
+ <a href="/about/index.html">About Android</a> |
+ <a href="/legal.html">Legal</a> |
+ <a href="/support.html">Support</a>
+ </p>
+ </div>
+
+</div> <!-- end footer -->
+</div> <!-- jd-content -->
+
+</div><!-- end doc-content -->
+
+</div> <!-- end body-content -->
+
+
+
+
+
+
+</body>
+</html>
diff --git a/docs/html/reference/com/google/android/gms/games/multiplayer/turnbased/OnTurnBasedMatchLoadedListener.html b/docs/html/reference/com/google/android/gms/games/multiplayer/turnbased/OnTurnBasedMatchLoadedListener.html
new file mode 100644
index 0000000..ea5fa17
--- /dev/null
+++ b/docs/html/reference/com/google/android/gms/games/multiplayer/turnbased/OnTurnBasedMatchLoadedListener.html
@@ -0,0 +1,948 @@
+<!DOCTYPE html>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<html>
+<head>
+
+
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<meta name="viewport" content="width=device-width" />
+
+<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
+<title>OnTurnBasedMatchLoadedListener | Android Developers</title>
+
+<!-- STYLESHEETS -->
+<link rel="stylesheet"
+href="//fonts.googleapis.com/css?family=Roboto:regular,medium,thin,italic,mediumitalic,bold" title="roboto">
+<link href="/assets/css/default.css" rel="stylesheet" type="text/css">
+
+
+
+<!-- JAVASCRIPT -->
+<script src="//www.google.com/jsapi" type="text/javascript"></script>
+<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
+<script type="text/javascript">
+ var toRoot = "/";
+ var metaTags = [];
+ var devsite = false;
+</script>
+<script src="/assets/js/docs.js" type="text/javascript"></script>
+
+<script type="text/javascript">
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-5831155-1']);
+ _gaq.push(['_trackPageview']);
+
+ (function() {
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+ })();
+</script>
+</head>
+<body class="gc-documentation google
+ develop" itemscope itemtype="http://schema.org/Article">
+ <div id="doc-api-level" class="" style="display:none"></div>
+ <a name="top"></a>
+
+<a name="top"></a>
+
+ <!-- Header -->
+ <div id="header">
+ <div class="wrap" id="header-wrap">
+ <div class="col-3 logo">
+ <a href="/index.html">
+ <img src="/assets/images/dac_logo.png" width="123" height="25" alt="Android Developers" />
+ </a>
+ <div class="btn-quicknav" id="btn-quicknav">
+ <a href="#" class="arrow-inactive">Quicknav</a>
+ <a href="#" class="arrow-active">Quicknav</a>
+ </div>
+ </div>
+ <ul class="nav-x col-9">
+ <li class="design">
+ <a href="/design/index.html"
+ zh-tw-lang="設計"
+ zh-cn-lang="设计"
+ ru-lang="Проектирование"
+ ko-lang="디자인"
+ ja-lang="設計"
+ es-lang="Diseñar"
+ >Design</a></li>
+ <li class="develop"><a href="/develop/index.html"
+ zh-tw-lang="開發"
+ zh-cn-lang="开发"
+ ru-lang="Разработка"
+ ko-lang="개발"
+ ja-lang="開発"
+ es-lang="Desarrollar"
+ >Develop</a></li>
+ <li class="distribute last"><a href="/distribute/index.html"
+ zh-tw-lang="發佈"
+ zh-cn-lang="分发"
+ ru-lang="Распространение"
+ ko-lang="배포"
+ ja-lang="配布"
+ es-lang="Distribuir"
+ >Distribute</a></li>
+ </ul>
+
+ <!-- New Search -->
+ <div class="menu-container">
+ <div class="moremenu">
+ <div id="more-btn"></div>
+ </div>
+ <div class="morehover" id="moremenu">
+ <div class="top"></div>
+ <div class="mid">
+ <div class="header">Links</div>
+ <ul>
+ <li><a href="https://play.google.com/apps/publish/">Google Play Developer Console</a></li>
+ <li><a href="http://android-developers.blogspot.com/">Android Developers Blog</a></li>
+ <li><a href="/about/index.html">About Android</a></li>
+ </ul>
+ <div class="header">Android Sites</div>
+ <ul>
+ <li><a href="http://www.android.com">Android.com</a></li>
+ <li class="active"><a>Android Developers</a></li>
+ <li><a href="http://source.android.com">Android Open Source Project</a></li>
+ </ul>
+
+
+
+ <div class="header">Language</div>
+ <div id="language" class="locales">
+ <select name="language" onChange="changeLangPref(this.value, true)">
+ <option value="en">English</option>
+ <option value="es">Español</option>
+ <option value="ja">日本語</option>
+ <option value="ko">한국어</option>
+ <option value="ru">Русский</option>
+ <option value="zh-cn">中文 (中国)</option>
+ <option value="zh-tw">中文 (台灣)</option>
+ </select>
+ </div>
+ <script type="text/javascript">
+ <!--
+ loadLangPref();
+ //-->
+ </script>
+
+
+
+
+ <br class="clearfix" />
+ </div>
+ <div class="bottom"></div>
+ </div>
+ <div class="search" id="search-container">
+ <div class="search-inner">
+ <div id="search-btn"></div>
+ <div class="left"></div>
+ <form onsubmit="return submit_search()">
+ <input id="search_autocomplete" type="text" value="" autocomplete="off" name="q"
+onfocus="search_focus_changed(this, true)" onblur="search_focus_changed(this, false)"
+onkeydown="return search_changed(event, true, '/')"
+onkeyup="return search_changed(event, false, '/')" />
+ </form>
+ <div class="right"></div>
+ <a class="close hide">close</a>
+ <div class="left"></div>
+ <div class="right"></div>
+ </div>
+ </div>
+
+ <div class="search_filtered_wrapper reference">
+ <div class="suggest-card reference no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ </div>
+
+ <div class="search_filtered_wrapper docs">
+ <div class="suggest-card dummy no-display"> </div>
+ <div class="suggest-card develop no-display">
+ <ul class="search_filtered">
+ </ul>
+ <div class="child-card guides no-display">
+ </div>
+ <div class="child-card training no-display">
+ </div>
+ <div class="child-card samples no-display">
+ </div>
+ </div>
+ <div class="suggest-card design no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ <div class="suggest-card distribute no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ </div>
+
+ </div>
+ <!-- /New Search>
+
+
+ <!-- Expanded quicknav -->
+ <div id="quicknav" class="col-9">
+ <ul>
+ <li class="design">
+ <ul>
+ <li><a href="/design/index.html">Get Started</a></li>
+ <li><a href="/design/style/index.html">Style</a></li>
+ <li><a href="/design/patterns/index.html">Patterns</a></li>
+ <li><a href="/design/building-blocks/index.html">Building Blocks</a></li>
+ <li><a href="/design/downloads/index.html">Downloads</a></li>
+ <li><a href="/design/videos/index.html">Videos</a></li>
+ </ul>
+ </li>
+ <li class="develop">
+ <ul>
+ <li><a href="/training/index.html"
+ zh-tw-lang="訓練課程"
+ zh-cn-lang="培训"
+ ru-lang="Курсы"
+ ko-lang="교육"
+ ja-lang="トレーニング"
+ es-lang="Capacitación"
+ >Training</a></li>
+ <li><a href="/guide/index.html"
+ zh-tw-lang="API 指南"
+ zh-cn-lang="API 指南"
+ ru-lang="Руководства по API"
+ ko-lang="API 가이드"
+ ja-lang="API ガイド"
+ es-lang="Guías de la API"
+ >API Guides</a></li>
+ <li><a href="/reference/packages.html"
+ zh-tw-lang="參考資源"
+ zh-cn-lang="参考"
+ ru-lang="Справочник"
+ ko-lang="참조문서"
+ ja-lang="リファレンス"
+ es-lang="Referencia"
+ >Reference</a></li>
+ <li><a href="/tools/index.html"
+ zh-tw-lang="相關工具"
+ zh-cn-lang="工具"
+ ru-lang="Инструменты"
+ ko-lang="도구"
+ ja-lang="ツール"
+ es-lang="Herramientas"
+ >Tools</a>
+ <ul><li><a href="/sdk/index.html">Get the SDK</a></li></ul>
+ </li>
+ <li><a href="/google/index.html">Google Services</a>
+ </li>
+
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
+ </ul>
+ </li>
+ <li class="distribute last">
+ <ul>
+ <li><a href="/distribute/index.html">Google Play</a></li>
+ <li><a href="/distribute/googleplay/publish/index.html">Publishing</a></li>
+ <li><a href="/distribute/googleplay/promote/index.html">Promoting</a></li>
+ <li><a href="/distribute/googleplay/quality/index.html">App Quality</a></li>
+ <li><a href="/distribute/googleplay/spotlight/index.html">Spotlight</a></li>
+ <li><a href="/distribute/open.html">Open Distribution</a></li>
+ </ul>
+ </li>
+ </ul>
+ </div>
+ <!-- /Expanded quicknav -->
+ </div>
+ </div>
+ <!-- /Header -->
+
+
+ <div id="searchResults" class="wrap" style="display:none;">
+ <h2 id="searchTitle">Results</h2>
+ <div id="leftSearchControl" class="search-control">Loading...</div>
+ </div>
+
+
+
+ <!-- Secondary x-nav -->
+ <div id="nav-x">
+ <div class="wrap">
+ <ul class="nav-x col-9 develop" style="width:100%">
+ <li class="training"><a href="/training/index.html"
+ zh-tw-lang="訓練課程"
+ zh-cn-lang="培训"
+ ru-lang="Курсы"
+ ko-lang="교육"
+ ja-lang="トレーニング"
+ es-lang="Capacitación"
+ >Training</a></li>
+ <li class="guide"><a href="/guide/index.html"
+ zh-tw-lang="API 指南"
+ zh-cn-lang="API 指南"
+ ru-lang="Руководства по API"
+ ko-lang="API 가이드"
+ ja-lang="API ガイド"
+ es-lang="Guías de la API"
+ >API Guides</a></li>
+ <li class="reference"><a href="/reference/packages.html"
+ zh-tw-lang="參考資源"
+ zh-cn-lang="参考"
+ ru-lang="Справочник"
+ ko-lang="참조문서"
+ ja-lang="リファレンス"
+ es-lang="Referencia"
+ >Reference</a></li>
+ <li class="tools"><a href="/tools/index.html"
+ zh-tw-lang="相關工具"
+ zh-cn-lang="工具"
+ ru-lang="Инструменты"
+ ko-lang="도구"
+ ja-lang="ツール"
+ es-lang="Herramientas"
+ >Tools</a></li>
+ <li class="google"><a href="/google/index.html"
+ >Google Services</a>
+ </li>
+
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
+ </ul>
+ </div>
+
+ </div>
+ <!-- /Sendondary x-nav -->
+
+
+
+
+
+
+
+
+
+ <div class="wrap clearfix" id="body-content">
+ <div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
+ <div id="devdoc-nav" class="scroll-pane">
+<a class="totop" href="#top" data-g-event="left-nav-top">to top</a>
+
+
+
+<ul id="nav">
+
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/index.html">
+ <span class="en">Overview</span>
+ </a></div>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/games.html">
+ <span class="en">Games</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/location.html">
+ <span class="en">Location</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/plus.html">
+ <span class="en">Google+</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/maps.html">
+ <span class="en">Maps</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play-services/ads.html">
+ <span class="en">Ads</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play-services/id.html">
+ <span class="en">Advertising ID</span></a>
+ </li>
+ </ul>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/wallet.html">
+ <span class="en">Wallet</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/auth.html">
+ <span class="en">Authorization</span>
+ </a></div>
+ </li>
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play-services/index.html">
+ <span class="en">Google Play Services</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play-services/setup.html">
+ <span class="en">Setup</span></a>
+ </li>
+ <li id="gms-tree-list" class="nav-section">
+ <div class="nav-section-header">
+ <a href="/reference/gms-packages.html">
+ <span class="en">Reference</span>
+ </a>
+ <div>
+ </li>
+ </ul>
+ </li>
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/billing/index.html">
+ <span class="en">Google Play In-app Billing</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/billing/billing_overview.html">
+ <span class="en">Overview</span></a>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/api.html">
+ <span class="en">Version 3 API</span></a></div>
+ <ul>
+ <li><a href="/google/play/billing/billing_integrate.html">
+ <span class="en">Implementing the API</span></a></li>
+ <li><a href="/google/play/billing/billing_reference.html">
+ <span class="en">Reference</span></a></li>
+ </ul>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/v2/api.html">
+ <span class="en">Version 2 API</span></a></div>
+ <ul>
+ <li><a href="/google/play/billing/v2/billing_integrate.html">
+ <span class="en">Implementing the API</span></a></li>
+ <li><a href="/google/play/billing/v2/billing_subscriptions.html">
+ <span class="en">Subscriptions</span></a></li>
+ <li><a href="/google/play/billing/v2/billing_reference.html">
+ <span class="en">Reference</span></a></li>
+ </ul>
+ </li>
+ <li><a href="/google/play/billing/billing_subscriptions.html">
+ <span class="en">Subscriptions</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_best_practices.html">
+ <span class="en">Security and Design</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_testing.html">
+ <span class="en">Testing In-app Billing</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_admin.html">
+ <span class="en">Administering In-app Billing</span></a>
+ </li>
+ <li><a href="/google/play/billing/gp-purchase-status-api.html">
+ <span class="en">Purchase Status API</span></a>
+ </li>
+ <li><a href="/google/play/billing/versions.html">
+ <span class="en">Version Notes</span></a>
+ </li>
+ </ul>
+ </li>
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/gcm/index.html">
+ <span class="en">Google Cloud Messaging</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
+ <li><a href="/google/gcm/gs.html">
+ <span class="en">Getting Started</span></a>
+ </li>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
+ </li>
+ <li><a href="/google/gcm/notifications.html">
+ <span class="en">User Notifications</span></a>
+ </li>
+ <li><a href="/google/gcm/adv.html">
+ <span class="en">Advanced Topics</span></a>
+ </li>
+ <li><a href="/google/gcm/c2dm.html">
+ <span class="en">Migration</span></a>
+ </li>
+ <li id="gcm-tree-list" class="nav-section">
+ <div class="nav-section-header">
+ <a href="/reference/gcm-packages.html">
+ <span class="en">Reference</span>
+ </a>
+ <div>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/dist.html">
+ <span class="en">Google Play Distribution</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/filters.html">
+ <span class="en">Filters on Google Play</span></a>
+ </li>
+
+ <li><a href="/google/play/publishing/multiple-apks.html">
+ <span class="en">Multiple APK Support</span></a>
+ </li>
+ <li><a href="/google/play/expansion-files.html">
+ <span class="en">APK Expansion Files</span></a>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/licensing/index.html">
+ <span class="en">Application Licensing</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/licensing/overview.html">
+ <span class="en">Licensing Overview</span></a>
+ </li>
+ <li><a href="/google/play/licensing/setting-up.html">
+ <span class="en">Setting Up for Licensing</span></a>
+ </li>
+ <li><a href="/google/play/licensing/adding-licensing.html">
+ <span class="en">Adding Licensing to Your App</span></a>
+ </li>
+ <li><a href="/google/play/licensing/licensing-reference.html">
+ <span class="en">Licensing Reference</span></a>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/backup/index.html">
+ Android Backup Service</a>
+ </div>
+ <ul>
+ <li><a href="/google/backup/signup.html">
+ Register</a>
+ </li>
+ </ul>
+ </li>
+
+ </ul>
+
+</li>
+
+
+
+</ul>
+
+<script type="text/javascript">
+<!--
+ buildToggleLists();
+ changeNavLang(getLangPref());
+//-->
+</script>
+
+
+
+
+ </div>
+ <script type="text/javascript">
+ showGoogleRefTree();
+
+ </script>
+ </div> <!-- end side-nav -->
+ <script>
+ $(document).ready(function() {
+ scrollIntoView("devdoc-nav");
+ });
+ </script>
+
+
+
+
+
+
+<div class="col-12" id="doc-col">
+
+<div id="api-info-block">
+
+
+
+
+<div class="sum-details-links">
+
+</div><!-- end sum-details-links -->
+<div class="api-level">
+
+
+
+
+</div>
+</div><!-- end api-info-block -->
+
+
+<!-- ======== START OF CLASS DATA ======== -->
+
+<div id="jd-header">
+ public
+
+
+
+ interface
+<h1 itemprop="name">OnTurnBasedMatchLoadedListener</h1>
+
+
+
+
+
+
+
+
+</div><!-- end header -->
+
+<div id="naMessage"></div>
+
+<div id="jd-content" class="api apilevel-">
+<table class="jd-inheritance-table">
+
+
+ <tr>
+
+ <td colspan="1" class="jd-inheritance-class-cell">com.google.android.gms.games.multiplayer.turnbased.OnTurnBasedMatchLoadedListener</td>
+ </tr>
+
+
+</table>
+
+
+
+
+
+
+
+<div class="jd-descr">
+
+
+<h2>Class Overview</h2>
+<p itemprop="articleBody">Listener for receiving callbacks when a match has been loaded.
+</p>
+
+
+
+
+
+</div><!-- jd-descr -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<div class="jd-descr">
+
+
+<h2>Summary</h2>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
+
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/OnTurnBasedMatchLoadedListener.html#onTurnBasedMatchLoaded(int, com.google.android.gms.games.multiplayer.turnbased.TurnBasedMatch)">onTurnBasedMatchLoaded</a></span>(int statusCode, <a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html">TurnBasedMatch</a> match)</nobr>
+
+ <div class="jd-descrdiv">Called when a turn-based match has been loaded.</div>
+
+ </td></tr>
+
+
+
+</table>
+
+
+
+
+
+
+
+</div><!-- jd-descr (summary) -->
+
+<!-- Details -->
+
+
+
+
+
+
+
+
+<!-- XML Attributes -->
+
+
+<!-- Enum Values -->
+
+
+<!-- Constants -->
+
+
+<!-- Fields -->
+
+
+<!-- Public ctors -->
+
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<!-- Protected ctors -->
+
+
+
+<!-- ========= METHOD DETAIL ======== -->
+<!-- Public methdos -->
+
+<h2>Public Methods</h2>
+
+
+
+<A NAME="onTurnBasedMatchLoaded(int, com.google.android.gms.games.multiplayer.turnbased.TurnBasedMatch)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+ abstract
+
+ void
+ </span>
+ <span class="sympad">onTurnBasedMatchLoaded</span>
+ <span class="normal">(int statusCode, <a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html">TurnBasedMatch</a> match)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Called when a turn-based match has been loaded. Possible status codes include:
+ <ul>
+ <li><code><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_OK">STATUS_OK</a></code> if data was successfully loaded and is up-to-date.</li>
+ <li><code><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_NETWORK_ERROR_NO_DATA">STATUS_NETWORK_ERROR_NO_DATA</a></code> if the device was unable to retrieve any
+ data from the network and has no data cached locally.</li>
+ <li><code><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_NETWORK_ERROR_STALE_DATA">STATUS_NETWORK_ERROR_STALE_DATA</a></code> if the device was unable to retrieve
+ the latest data from the network, but has some data cached locally.</li>
+ <li><code><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_MATCH_NOT_FOUND">STATUS_MATCH_NOT_FOUND</a></code> if the requested match does not exist on the
+ server.</li>
+ <li><code><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_CLIENT_RECONNECT_REQUIRED">STATUS_CLIENT_RECONNECT_REQUIRED</a></code> if the <code><a href="/reference/com/google/android/gms/games/GamesClient.html">GamesClient</a></code> needs to
+ reconnect to the service to perform this operation.</li>
+ <li><code><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_INTERNAL_ERROR">STATUS_INTERNAL_ERROR</a></code> if an unexpected error occurred in the service.
+ </li>
+ </ul></p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>statusCode</td>
+ <td>A status code indicating the result of the operation.</td>
+ </tr>
+ <tr>
+ <th>match</td>
+ <td>The requested <code><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html">TurnBasedMatch</a></code> object. Note that this may be null,
+ depending on the status code returned.
+</td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
+
+
+
+<!-- ========= METHOD DETAIL ======== -->
+
+
+
+<!-- ========= END OF CLASS DATA ========= -->
+<A NAME="navbar_top"></A>
+
+<div id="footer" class="wrap" >
+
+
+ <div id="copyright">
+
+ Except as noted, this content is licensed under <a
+ href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.
+ For details and restrictions, see the <a href="/license.html">
+ Content License</a>.
+ </div>
+ <div id="build_info">
+
+<script src="/timestamp.js" type="text/javascript"></script>
+<script>document.write(BUILD_TIMESTAMP)</script>
+
+ </div>
+
+
+ <div id="footerlinks">
+
+ <p>
+ <a href="/about/index.html">About Android</a> |
+ <a href="/legal.html">Legal</a> |
+ <a href="/support.html">Support</a>
+ </p>
+ </div>
+
+</div> <!-- end footer -->
+</div> <!-- jd-content -->
+
+</div><!-- end doc-content -->
+
+</div> <!-- end body-content -->
+
+
+
+
+
+
+</body>
+</html>
diff --git a/docs/html/reference/com/google/android/gms/games/multiplayer/turnbased/OnTurnBasedMatchUpdateReceivedListener.html b/docs/html/reference/com/google/android/gms/games/multiplayer/turnbased/OnTurnBasedMatchUpdateReceivedListener.html
new file mode 100644
index 0000000..9ba71d9
--- /dev/null
+++ b/docs/html/reference/com/google/android/gms/games/multiplayer/turnbased/OnTurnBasedMatchUpdateReceivedListener.html
@@ -0,0 +1,1040 @@
+<!DOCTYPE html>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<html>
+<head>
+
+
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<meta name="viewport" content="width=device-width" />
+
+<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
+<title>OnTurnBasedMatchUpdateReceivedListener | Android Developers</title>
+
+<!-- STYLESHEETS -->
+<link rel="stylesheet"
+href="//fonts.googleapis.com/css?family=Roboto:regular,medium,thin,italic,mediumitalic,bold" title="roboto">
+<link href="/assets/css/default.css" rel="stylesheet" type="text/css">
+
+
+
+<!-- JAVASCRIPT -->
+<script src="//www.google.com/jsapi" type="text/javascript"></script>
+<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
+<script type="text/javascript">
+ var toRoot = "/";
+ var metaTags = [];
+ var devsite = false;
+</script>
+<script src="/assets/js/docs.js" type="text/javascript"></script>
+
+<script type="text/javascript">
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-5831155-1']);
+ _gaq.push(['_trackPageview']);
+
+ (function() {
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+ })();
+</script>
+</head>
+<body class="gc-documentation google
+ develop" itemscope itemtype="http://schema.org/Article">
+ <div id="doc-api-level" class="" style="display:none"></div>
+ <a name="top"></a>
+
+<a name="top"></a>
+
+ <!-- Header -->
+ <div id="header">
+ <div class="wrap" id="header-wrap">
+ <div class="col-3 logo">
+ <a href="/index.html">
+ <img src="/assets/images/dac_logo.png" width="123" height="25" alt="Android Developers" />
+ </a>
+ <div class="btn-quicknav" id="btn-quicknav">
+ <a href="#" class="arrow-inactive">Quicknav</a>
+ <a href="#" class="arrow-active">Quicknav</a>
+ </div>
+ </div>
+ <ul class="nav-x col-9">
+ <li class="design">
+ <a href="/design/index.html"
+ zh-tw-lang="設計"
+ zh-cn-lang="设计"
+ ru-lang="Проектирование"
+ ko-lang="디자인"
+ ja-lang="設計"
+ es-lang="Diseñar"
+ >Design</a></li>
+ <li class="develop"><a href="/develop/index.html"
+ zh-tw-lang="開發"
+ zh-cn-lang="开发"
+ ru-lang="Разработка"
+ ko-lang="개발"
+ ja-lang="開発"
+ es-lang="Desarrollar"
+ >Develop</a></li>
+ <li class="distribute last"><a href="/distribute/index.html"
+ zh-tw-lang="發佈"
+ zh-cn-lang="分发"
+ ru-lang="Распространение"
+ ko-lang="배포"
+ ja-lang="配布"
+ es-lang="Distribuir"
+ >Distribute</a></li>
+ </ul>
+
+ <!-- New Search -->
+ <div class="menu-container">
+ <div class="moremenu">
+ <div id="more-btn"></div>
+ </div>
+ <div class="morehover" id="moremenu">
+ <div class="top"></div>
+ <div class="mid">
+ <div class="header">Links</div>
+ <ul>
+ <li><a href="https://play.google.com/apps/publish/">Google Play Developer Console</a></li>
+ <li><a href="http://android-developers.blogspot.com/">Android Developers Blog</a></li>
+ <li><a href="/about/index.html">About Android</a></li>
+ </ul>
+ <div class="header">Android Sites</div>
+ <ul>
+ <li><a href="http://www.android.com">Android.com</a></li>
+ <li class="active"><a>Android Developers</a></li>
+ <li><a href="http://source.android.com">Android Open Source Project</a></li>
+ </ul>
+
+
+
+ <div class="header">Language</div>
+ <div id="language" class="locales">
+ <select name="language" onChange="changeLangPref(this.value, true)">
+ <option value="en">English</option>
+ <option value="es">Español</option>
+ <option value="ja">日本語</option>
+ <option value="ko">한국어</option>
+ <option value="ru">Русский</option>
+ <option value="zh-cn">中文 (中国)</option>
+ <option value="zh-tw">中文 (台灣)</option>
+ </select>
+ </div>
+ <script type="text/javascript">
+ <!--
+ loadLangPref();
+ //-->
+ </script>
+
+
+
+
+ <br class="clearfix" />
+ </div>
+ <div class="bottom"></div>
+ </div>
+ <div class="search" id="search-container">
+ <div class="search-inner">
+ <div id="search-btn"></div>
+ <div class="left"></div>
+ <form onsubmit="return submit_search()">
+ <input id="search_autocomplete" type="text" value="" autocomplete="off" name="q"
+onfocus="search_focus_changed(this, true)" onblur="search_focus_changed(this, false)"
+onkeydown="return search_changed(event, true, '/')"
+onkeyup="return search_changed(event, false, '/')" />
+ </form>
+ <div class="right"></div>
+ <a class="close hide">close</a>
+ <div class="left"></div>
+ <div class="right"></div>
+ </div>
+ </div>
+
+ <div class="search_filtered_wrapper reference">
+ <div class="suggest-card reference no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ </div>
+
+ <div class="search_filtered_wrapper docs">
+ <div class="suggest-card dummy no-display"> </div>
+ <div class="suggest-card develop no-display">
+ <ul class="search_filtered">
+ </ul>
+ <div class="child-card guides no-display">
+ </div>
+ <div class="child-card training no-display">
+ </div>
+ <div class="child-card samples no-display">
+ </div>
+ </div>
+ <div class="suggest-card design no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ <div class="suggest-card distribute no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ </div>
+
+ </div>
+ <!-- /New Search>
+
+
+ <!-- Expanded quicknav -->
+ <div id="quicknav" class="col-9">
+ <ul>
+ <li class="design">
+ <ul>
+ <li><a href="/design/index.html">Get Started</a></li>
+ <li><a href="/design/style/index.html">Style</a></li>
+ <li><a href="/design/patterns/index.html">Patterns</a></li>
+ <li><a href="/design/building-blocks/index.html">Building Blocks</a></li>
+ <li><a href="/design/downloads/index.html">Downloads</a></li>
+ <li><a href="/design/videos/index.html">Videos</a></li>
+ </ul>
+ </li>
+ <li class="develop">
+ <ul>
+ <li><a href="/training/index.html"
+ zh-tw-lang="訓練課程"
+ zh-cn-lang="培训"
+ ru-lang="Курсы"
+ ko-lang="교육"
+ ja-lang="トレーニング"
+ es-lang="Capacitación"
+ >Training</a></li>
+ <li><a href="/guide/index.html"
+ zh-tw-lang="API 指南"
+ zh-cn-lang="API 指南"
+ ru-lang="Руководства по API"
+ ko-lang="API 가이드"
+ ja-lang="API ガイド"
+ es-lang="Guías de la API"
+ >API Guides</a></li>
+ <li><a href="/reference/packages.html"
+ zh-tw-lang="參考資源"
+ zh-cn-lang="参考"
+ ru-lang="Справочник"
+ ko-lang="참조문서"
+ ja-lang="リファレンス"
+ es-lang="Referencia"
+ >Reference</a></li>
+ <li><a href="/tools/index.html"
+ zh-tw-lang="相關工具"
+ zh-cn-lang="工具"
+ ru-lang="Инструменты"
+ ko-lang="도구"
+ ja-lang="ツール"
+ es-lang="Herramientas"
+ >Tools</a>
+ <ul><li><a href="/sdk/index.html">Get the SDK</a></li></ul>
+ </li>
+ <li><a href="/google/index.html">Google Services</a>
+ </li>
+
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
+ </ul>
+ </li>
+ <li class="distribute last">
+ <ul>
+ <li><a href="/distribute/index.html">Google Play</a></li>
+ <li><a href="/distribute/googleplay/publish/index.html">Publishing</a></li>
+ <li><a href="/distribute/googleplay/promote/index.html">Promoting</a></li>
+ <li><a href="/distribute/googleplay/quality/index.html">App Quality</a></li>
+ <li><a href="/distribute/googleplay/spotlight/index.html">Spotlight</a></li>
+ <li><a href="/distribute/open.html">Open Distribution</a></li>
+ </ul>
+ </li>
+ </ul>
+ </div>
+ <!-- /Expanded quicknav -->
+ </div>
+ </div>
+ <!-- /Header -->
+
+
+ <div id="searchResults" class="wrap" style="display:none;">
+ <h2 id="searchTitle">Results</h2>
+ <div id="leftSearchControl" class="search-control">Loading...</div>
+ </div>
+
+
+
+ <!-- Secondary x-nav -->
+ <div id="nav-x">
+ <div class="wrap">
+ <ul class="nav-x col-9 develop" style="width:100%">
+ <li class="training"><a href="/training/index.html"
+ zh-tw-lang="訓練課程"
+ zh-cn-lang="培训"
+ ru-lang="Курсы"
+ ko-lang="교육"
+ ja-lang="トレーニング"
+ es-lang="Capacitación"
+ >Training</a></li>
+ <li class="guide"><a href="/guide/index.html"
+ zh-tw-lang="API 指南"
+ zh-cn-lang="API 指南"
+ ru-lang="Руководства по API"
+ ko-lang="API 가이드"
+ ja-lang="API ガイド"
+ es-lang="Guías de la API"
+ >API Guides</a></li>
+ <li class="reference"><a href="/reference/packages.html"
+ zh-tw-lang="參考資源"
+ zh-cn-lang="参考"
+ ru-lang="Справочник"
+ ko-lang="참조문서"
+ ja-lang="リファレンス"
+ es-lang="Referencia"
+ >Reference</a></li>
+ <li class="tools"><a href="/tools/index.html"
+ zh-tw-lang="相關工具"
+ zh-cn-lang="工具"
+ ru-lang="Инструменты"
+ ko-lang="도구"
+ ja-lang="ツール"
+ es-lang="Herramientas"
+ >Tools</a></li>
+ <li class="google"><a href="/google/index.html"
+ >Google Services</a>
+ </li>
+
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
+ </ul>
+ </div>
+
+ </div>
+ <!-- /Sendondary x-nav -->
+
+
+
+
+
+
+
+
+
+ <div class="wrap clearfix" id="body-content">
+ <div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
+ <div id="devdoc-nav" class="scroll-pane">
+<a class="totop" href="#top" data-g-event="left-nav-top">to top</a>
+
+
+
+<ul id="nav">
+
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/index.html">
+ <span class="en">Overview</span>
+ </a></div>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/games.html">
+ <span class="en">Games</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/location.html">
+ <span class="en">Location</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/plus.html">
+ <span class="en">Google+</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/maps.html">
+ <span class="en">Maps</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play-services/ads.html">
+ <span class="en">Ads</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play-services/id.html">
+ <span class="en">Advertising ID</span></a>
+ </li>
+ </ul>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/wallet.html">
+ <span class="en">Wallet</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/auth.html">
+ <span class="en">Authorization</span>
+ </a></div>
+ </li>
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play-services/index.html">
+ <span class="en">Google Play Services</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play-services/setup.html">
+ <span class="en">Setup</span></a>
+ </li>
+ <li id="gms-tree-list" class="nav-section">
+ <div class="nav-section-header">
+ <a href="/reference/gms-packages.html">
+ <span class="en">Reference</span>
+ </a>
+ <div>
+ </li>
+ </ul>
+ </li>
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/billing/index.html">
+ <span class="en">Google Play In-app Billing</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/billing/billing_overview.html">
+ <span class="en">Overview</span></a>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/api.html">
+ <span class="en">Version 3 API</span></a></div>
+ <ul>
+ <li><a href="/google/play/billing/billing_integrate.html">
+ <span class="en">Implementing the API</span></a></li>
+ <li><a href="/google/play/billing/billing_reference.html">
+ <span class="en">Reference</span></a></li>
+ </ul>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/v2/api.html">
+ <span class="en">Version 2 API</span></a></div>
+ <ul>
+ <li><a href="/google/play/billing/v2/billing_integrate.html">
+ <span class="en">Implementing the API</span></a></li>
+ <li><a href="/google/play/billing/v2/billing_subscriptions.html">
+ <span class="en">Subscriptions</span></a></li>
+ <li><a href="/google/play/billing/v2/billing_reference.html">
+ <span class="en">Reference</span></a></li>
+ </ul>
+ </li>
+ <li><a href="/google/play/billing/billing_subscriptions.html">
+ <span class="en">Subscriptions</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_best_practices.html">
+ <span class="en">Security and Design</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_testing.html">
+ <span class="en">Testing In-app Billing</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_admin.html">
+ <span class="en">Administering In-app Billing</span></a>
+ </li>
+ <li><a href="/google/play/billing/gp-purchase-status-api.html">
+ <span class="en">Purchase Status API</span></a>
+ </li>
+ <li><a href="/google/play/billing/versions.html">
+ <span class="en">Version Notes</span></a>
+ </li>
+ </ul>
+ </li>
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/gcm/index.html">
+ <span class="en">Google Cloud Messaging</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
+ <li><a href="/google/gcm/gs.html">
+ <span class="en">Getting Started</span></a>
+ </li>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
+ </li>
+ <li><a href="/google/gcm/notifications.html">
+ <span class="en">User Notifications</span></a>
+ </li>
+ <li><a href="/google/gcm/adv.html">
+ <span class="en">Advanced Topics</span></a>
+ </li>
+ <li><a href="/google/gcm/c2dm.html">
+ <span class="en">Migration</span></a>
+ </li>
+ <li id="gcm-tree-list" class="nav-section">
+ <div class="nav-section-header">
+ <a href="/reference/gcm-packages.html">
+ <span class="en">Reference</span>
+ </a>
+ <div>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/dist.html">
+ <span class="en">Google Play Distribution</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/filters.html">
+ <span class="en">Filters on Google Play</span></a>
+ </li>
+
+ <li><a href="/google/play/publishing/multiple-apks.html">
+ <span class="en">Multiple APK Support</span></a>
+ </li>
+ <li><a href="/google/play/expansion-files.html">
+ <span class="en">APK Expansion Files</span></a>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/licensing/index.html">
+ <span class="en">Application Licensing</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/licensing/overview.html">
+ <span class="en">Licensing Overview</span></a>
+ </li>
+ <li><a href="/google/play/licensing/setting-up.html">
+ <span class="en">Setting Up for Licensing</span></a>
+ </li>
+ <li><a href="/google/play/licensing/adding-licensing.html">
+ <span class="en">Adding Licensing to Your App</span></a>
+ </li>
+ <li><a href="/google/play/licensing/licensing-reference.html">
+ <span class="en">Licensing Reference</span></a>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/backup/index.html">
+ Android Backup Service</a>
+ </div>
+ <ul>
+ <li><a href="/google/backup/signup.html">
+ Register</a>
+ </li>
+ </ul>
+ </li>
+
+ </ul>
+
+</li>
+
+
+
+</ul>
+
+<script type="text/javascript">
+<!--
+ buildToggleLists();
+ changeNavLang(getLangPref());
+//-->
+</script>
+
+
+
+
+ </div>
+ <script type="text/javascript">
+ showGoogleRefTree();
+
+ </script>
+ </div> <!-- end side-nav -->
+ <script>
+ $(document).ready(function() {
+ scrollIntoView("devdoc-nav");
+ });
+ </script>
+
+
+
+
+
+
+<div class="col-12" id="doc-col">
+
+<div id="api-info-block">
+
+
+
+
+<div class="sum-details-links">
+
+Summary:
+
+
+
+
+
+
+
+
+
+
+
+ <a href="#pubmethods">Methods</a>
+
+
+
+
+| <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
+
+</div><!-- end sum-details-links -->
+<div class="api-level">
+
+
+
+
+</div>
+</div><!-- end api-info-block -->
+
+
+<!-- ======== START OF CLASS DATA ======== -->
+
+<div id="jd-header">
+ public
+
+
+
+ interface
+<h1 itemprop="name">OnTurnBasedMatchUpdateReceivedListener</h1>
+
+
+
+
+
+
+
+
+</div><!-- end header -->
+
+<div id="naMessage"></div>
+
+<div id="jd-content" class="api apilevel-">
+<table class="jd-inheritance-table">
+
+
+ <tr>
+
+ <td colspan="1" class="jd-inheritance-class-cell">com.google.android.gms.games.multiplayer.turnbased.OnTurnBasedMatchUpdateReceivedListener</td>
+ </tr>
+
+
+</table>
+
+
+
+
+
+
+<table class="jd-sumtable jd-sumtable-subclasses"><tr><td colspan="12" style="border:none;margin:0;padding:0;">
+
+ <a href="#" onclick="return toggleInherited(this, null)" id="subclasses-indirect" class="jd-expando-trigger closed"
+ ><img id="subclasses-indirect-trigger"
+ src="/assets/images/triangle-closed.png"
+ class="jd-expando-trigger-img" /></a>Known Indirect Subclasses
+
+ <div id="subclasses-indirect">
+ <div id="subclasses-indirect-list"
+ class="jd-inheritedlinks"
+
+ >
+
+
+ <a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMultiplayerListener.html">TurnBasedMultiplayerListener</a>
+
+
+ </div>
+ <div id="subclasses-indirect-summary"
+ style="display: none;"
+ >
+ <table class="jd-sumtable-expando">
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMultiplayerListener.html">TurnBasedMultiplayerListener</a></td>
+ <td class="jd-descrcol" width="100%">Helper interface compounding all of the necessary listeners to implement a turn-based multiplayer
+ game. </td>
+ </tr>
+ </table>
+ </div>
+ </div>
+</td></tr></table>
+
+
+<div class="jd-descr">
+
+
+<h2>Class Overview</h2>
+<p itemprop="articleBody">Listener invoked when an update to a turn-based match is received.
+</p>
+
+
+
+
+
+</div><!-- jd-descr -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<div class="jd-descr">
+
+
+<h2>Summary</h2>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
+
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/OnTurnBasedMatchUpdateReceivedListener.html#onTurnBasedMatchReceived(com.google.android.gms.games.multiplayer.turnbased.TurnBasedMatch)">onTurnBasedMatchReceived</a></span>(<a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html">TurnBasedMatch</a> match)</nobr>
+
+ <div class="jd-descrdiv">Callback invoked when a new update to a match arrives.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/OnTurnBasedMatchUpdateReceivedListener.html#onTurnBasedMatchRemoved(java.lang.String)">onTurnBasedMatchRemoved</a></span>(String matchId)</nobr>
+
+ <div class="jd-descrdiv">Callback invoked when a match has been removed from the local device.</div>
+
+ </td></tr>
+
+
+
+</table>
+
+
+
+
+
+
+
+</div><!-- jd-descr (summary) -->
+
+<!-- Details -->
+
+
+
+
+
+
+
+
+<!-- XML Attributes -->
+
+
+<!-- Enum Values -->
+
+
+<!-- Constants -->
+
+
+<!-- Fields -->
+
+
+<!-- Public ctors -->
+
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<!-- Protected ctors -->
+
+
+
+<!-- ========= METHOD DETAIL ======== -->
+<!-- Public methdos -->
+
+<h2>Public Methods</h2>
+
+
+
+<A NAME="onTurnBasedMatchReceived(com.google.android.gms.games.multiplayer.turnbased.TurnBasedMatch)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+ abstract
+
+ void
+ </span>
+ <span class="sympad">onTurnBasedMatchReceived</span>
+ <span class="normal">(<a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html">TurnBasedMatch</a> match)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Callback invoked when a new update to a match arrives. Note that if a listener receives this
+ callback, the system will not display a notification for this event.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>match</td>
+ <td>The match that was received.
+</td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="onTurnBasedMatchRemoved(java.lang.String)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+ abstract
+
+ void
+ </span>
+ <span class="sympad">onTurnBasedMatchRemoved</span>
+ <span class="normal">(String matchId)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Callback invoked when a match has been removed from the local device. For example, this might
+ occur if the player leaves the match on another device.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>matchId</td>
+ <td>The ID of the match that has been removed.
+</td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
+
+
+
+<!-- ========= METHOD DETAIL ======== -->
+
+
+
+<!-- ========= END OF CLASS DATA ========= -->
+<A NAME="navbar_top"></A>
+
+<div id="footer" class="wrap" >
+
+
+ <div id="copyright">
+
+ Except as noted, this content is licensed under <a
+ href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.
+ For details and restrictions, see the <a href="/license.html">
+ Content License</a>.
+ </div>
+ <div id="build_info">
+
+<script src="/timestamp.js" type="text/javascript"></script>
+<script>document.write(BUILD_TIMESTAMP)</script>
+
+ </div>
+
+
+ <div id="footerlinks">
+
+ <p>
+ <a href="/about/index.html">About Android</a> |
+ <a href="/legal.html">Legal</a> |
+ <a href="/support.html">Support</a>
+ </p>
+ </div>
+
+</div> <!-- end footer -->
+</div> <!-- jd-content -->
+
+</div><!-- end doc-content -->
+
+</div> <!-- end body-content -->
+
+
+
+
+
+
+</body>
+</html>
diff --git a/docs/html/reference/com/google/android/gms/games/multiplayer/turnbased/OnTurnBasedMatchUpdatedListener.html b/docs/html/reference/com/google/android/gms/games/multiplayer/turnbased/OnTurnBasedMatchUpdatedListener.html
new file mode 100644
index 0000000..4153294
--- /dev/null
+++ b/docs/html/reference/com/google/android/gms/games/multiplayer/turnbased/OnTurnBasedMatchUpdatedListener.html
@@ -0,0 +1,1009 @@
+<!DOCTYPE html>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<html>
+<head>
+
+
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<meta name="viewport" content="width=device-width" />
+
+<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
+<title>OnTurnBasedMatchUpdatedListener | Android Developers</title>
+
+<!-- STYLESHEETS -->
+<link rel="stylesheet"
+href="//fonts.googleapis.com/css?family=Roboto:regular,medium,thin,italic,mediumitalic,bold" title="roboto">
+<link href="/assets/css/default.css" rel="stylesheet" type="text/css">
+
+
+
+<!-- JAVASCRIPT -->
+<script src="//www.google.com/jsapi" type="text/javascript"></script>
+<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
+<script type="text/javascript">
+ var toRoot = "/";
+ var metaTags = [];
+ var devsite = false;
+</script>
+<script src="/assets/js/docs.js" type="text/javascript"></script>
+
+<script type="text/javascript">
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-5831155-1']);
+ _gaq.push(['_trackPageview']);
+
+ (function() {
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+ })();
+</script>
+</head>
+<body class="gc-documentation google
+ develop" itemscope itemtype="http://schema.org/Article">
+ <div id="doc-api-level" class="" style="display:none"></div>
+ <a name="top"></a>
+
+<a name="top"></a>
+
+ <!-- Header -->
+ <div id="header">
+ <div class="wrap" id="header-wrap">
+ <div class="col-3 logo">
+ <a href="/index.html">
+ <img src="/assets/images/dac_logo.png" width="123" height="25" alt="Android Developers" />
+ </a>
+ <div class="btn-quicknav" id="btn-quicknav">
+ <a href="#" class="arrow-inactive">Quicknav</a>
+ <a href="#" class="arrow-active">Quicknav</a>
+ </div>
+ </div>
+ <ul class="nav-x col-9">
+ <li class="design">
+ <a href="/design/index.html"
+ zh-tw-lang="設計"
+ zh-cn-lang="设计"
+ ru-lang="Проектирование"
+ ko-lang="디자인"
+ ja-lang="設計"
+ es-lang="Diseñar"
+ >Design</a></li>
+ <li class="develop"><a href="/develop/index.html"
+ zh-tw-lang="開發"
+ zh-cn-lang="开发"
+ ru-lang="Разработка"
+ ko-lang="개발"
+ ja-lang="開発"
+ es-lang="Desarrollar"
+ >Develop</a></li>
+ <li class="distribute last"><a href="/distribute/index.html"
+ zh-tw-lang="發佈"
+ zh-cn-lang="分发"
+ ru-lang="Распространение"
+ ko-lang="배포"
+ ja-lang="配布"
+ es-lang="Distribuir"
+ >Distribute</a></li>
+ </ul>
+
+ <!-- New Search -->
+ <div class="menu-container">
+ <div class="moremenu">
+ <div id="more-btn"></div>
+ </div>
+ <div class="morehover" id="moremenu">
+ <div class="top"></div>
+ <div class="mid">
+ <div class="header">Links</div>
+ <ul>
+ <li><a href="https://play.google.com/apps/publish/">Google Play Developer Console</a></li>
+ <li><a href="http://android-developers.blogspot.com/">Android Developers Blog</a></li>
+ <li><a href="/about/index.html">About Android</a></li>
+ </ul>
+ <div class="header">Android Sites</div>
+ <ul>
+ <li><a href="http://www.android.com">Android.com</a></li>
+ <li class="active"><a>Android Developers</a></li>
+ <li><a href="http://source.android.com">Android Open Source Project</a></li>
+ </ul>
+
+
+
+ <div class="header">Language</div>
+ <div id="language" class="locales">
+ <select name="language" onChange="changeLangPref(this.value, true)">
+ <option value="en">English</option>
+ <option value="es">Español</option>
+ <option value="ja">日本語</option>
+ <option value="ko">한국어</option>
+ <option value="ru">Русский</option>
+ <option value="zh-cn">中文 (中国)</option>
+ <option value="zh-tw">中文 (台灣)</option>
+ </select>
+ </div>
+ <script type="text/javascript">
+ <!--
+ loadLangPref();
+ //-->
+ </script>
+
+
+
+
+ <br class="clearfix" />
+ </div>
+ <div class="bottom"></div>
+ </div>
+ <div class="search" id="search-container">
+ <div class="search-inner">
+ <div id="search-btn"></div>
+ <div class="left"></div>
+ <form onsubmit="return submit_search()">
+ <input id="search_autocomplete" type="text" value="" autocomplete="off" name="q"
+onfocus="search_focus_changed(this, true)" onblur="search_focus_changed(this, false)"
+onkeydown="return search_changed(event, true, '/')"
+onkeyup="return search_changed(event, false, '/')" />
+ </form>
+ <div class="right"></div>
+ <a class="close hide">close</a>
+ <div class="left"></div>
+ <div class="right"></div>
+ </div>
+ </div>
+
+ <div class="search_filtered_wrapper reference">
+ <div class="suggest-card reference no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ </div>
+
+ <div class="search_filtered_wrapper docs">
+ <div class="suggest-card dummy no-display"> </div>
+ <div class="suggest-card develop no-display">
+ <ul class="search_filtered">
+ </ul>
+ <div class="child-card guides no-display">
+ </div>
+ <div class="child-card training no-display">
+ </div>
+ <div class="child-card samples no-display">
+ </div>
+ </div>
+ <div class="suggest-card design no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ <div class="suggest-card distribute no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ </div>
+
+ </div>
+ <!-- /New Search>
+
+
+ <!-- Expanded quicknav -->
+ <div id="quicknav" class="col-9">
+ <ul>
+ <li class="design">
+ <ul>
+ <li><a href="/design/index.html">Get Started</a></li>
+ <li><a href="/design/style/index.html">Style</a></li>
+ <li><a href="/design/patterns/index.html">Patterns</a></li>
+ <li><a href="/design/building-blocks/index.html">Building Blocks</a></li>
+ <li><a href="/design/downloads/index.html">Downloads</a></li>
+ <li><a href="/design/videos/index.html">Videos</a></li>
+ </ul>
+ </li>
+ <li class="develop">
+ <ul>
+ <li><a href="/training/index.html"
+ zh-tw-lang="訓練課程"
+ zh-cn-lang="培训"
+ ru-lang="Курсы"
+ ko-lang="교육"
+ ja-lang="トレーニング"
+ es-lang="Capacitación"
+ >Training</a></li>
+ <li><a href="/guide/index.html"
+ zh-tw-lang="API 指南"
+ zh-cn-lang="API 指南"
+ ru-lang="Руководства по API"
+ ko-lang="API 가이드"
+ ja-lang="API ガイド"
+ es-lang="Guías de la API"
+ >API Guides</a></li>
+ <li><a href="/reference/packages.html"
+ zh-tw-lang="參考資源"
+ zh-cn-lang="参考"
+ ru-lang="Справочник"
+ ko-lang="참조문서"
+ ja-lang="リファレンス"
+ es-lang="Referencia"
+ >Reference</a></li>
+ <li><a href="/tools/index.html"
+ zh-tw-lang="相關工具"
+ zh-cn-lang="工具"
+ ru-lang="Инструменты"
+ ko-lang="도구"
+ ja-lang="ツール"
+ es-lang="Herramientas"
+ >Tools</a>
+ <ul><li><a href="/sdk/index.html">Get the SDK</a></li></ul>
+ </li>
+ <li><a href="/google/index.html">Google Services</a>
+ </li>
+
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
+ </ul>
+ </li>
+ <li class="distribute last">
+ <ul>
+ <li><a href="/distribute/index.html">Google Play</a></li>
+ <li><a href="/distribute/googleplay/publish/index.html">Publishing</a></li>
+ <li><a href="/distribute/googleplay/promote/index.html">Promoting</a></li>
+ <li><a href="/distribute/googleplay/quality/index.html">App Quality</a></li>
+ <li><a href="/distribute/googleplay/spotlight/index.html">Spotlight</a></li>
+ <li><a href="/distribute/open.html">Open Distribution</a></li>
+ </ul>
+ </li>
+ </ul>
+ </div>
+ <!-- /Expanded quicknav -->
+ </div>
+ </div>
+ <!-- /Header -->
+
+
+ <div id="searchResults" class="wrap" style="display:none;">
+ <h2 id="searchTitle">Results</h2>
+ <div id="leftSearchControl" class="search-control">Loading...</div>
+ </div>
+
+
+
+ <!-- Secondary x-nav -->
+ <div id="nav-x">
+ <div class="wrap">
+ <ul class="nav-x col-9 develop" style="width:100%">
+ <li class="training"><a href="/training/index.html"
+ zh-tw-lang="訓練課程"
+ zh-cn-lang="培训"
+ ru-lang="Курсы"
+ ko-lang="교육"
+ ja-lang="トレーニング"
+ es-lang="Capacitación"
+ >Training</a></li>
+ <li class="guide"><a href="/guide/index.html"
+ zh-tw-lang="API 指南"
+ zh-cn-lang="API 指南"
+ ru-lang="Руководства по API"
+ ko-lang="API 가이드"
+ ja-lang="API ガイド"
+ es-lang="Guías de la API"
+ >API Guides</a></li>
+ <li class="reference"><a href="/reference/packages.html"
+ zh-tw-lang="參考資源"
+ zh-cn-lang="参考"
+ ru-lang="Справочник"
+ ko-lang="참조문서"
+ ja-lang="リファレンス"
+ es-lang="Referencia"
+ >Reference</a></li>
+ <li class="tools"><a href="/tools/index.html"
+ zh-tw-lang="相關工具"
+ zh-cn-lang="工具"
+ ru-lang="Инструменты"
+ ko-lang="도구"
+ ja-lang="ツール"
+ es-lang="Herramientas"
+ >Tools</a></li>
+ <li class="google"><a href="/google/index.html"
+ >Google Services</a>
+ </li>
+
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
+ </ul>
+ </div>
+
+ </div>
+ <!-- /Sendondary x-nav -->
+
+
+
+
+
+
+
+
+
+ <div class="wrap clearfix" id="body-content">
+ <div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
+ <div id="devdoc-nav" class="scroll-pane">
+<a class="totop" href="#top" data-g-event="left-nav-top">to top</a>
+
+
+
+<ul id="nav">
+
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/index.html">
+ <span class="en">Overview</span>
+ </a></div>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/games.html">
+ <span class="en">Games</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/location.html">
+ <span class="en">Location</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/plus.html">
+ <span class="en">Google+</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/maps.html">
+ <span class="en">Maps</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play-services/ads.html">
+ <span class="en">Ads</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play-services/id.html">
+ <span class="en">Advertising ID</span></a>
+ </li>
+ </ul>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/wallet.html">
+ <span class="en">Wallet</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/auth.html">
+ <span class="en">Authorization</span>
+ </a></div>
+ </li>
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play-services/index.html">
+ <span class="en">Google Play Services</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play-services/setup.html">
+ <span class="en">Setup</span></a>
+ </li>
+ <li id="gms-tree-list" class="nav-section">
+ <div class="nav-section-header">
+ <a href="/reference/gms-packages.html">
+ <span class="en">Reference</span>
+ </a>
+ <div>
+ </li>
+ </ul>
+ </li>
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/billing/index.html">
+ <span class="en">Google Play In-app Billing</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/billing/billing_overview.html">
+ <span class="en">Overview</span></a>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/api.html">
+ <span class="en">Version 3 API</span></a></div>
+ <ul>
+ <li><a href="/google/play/billing/billing_integrate.html">
+ <span class="en">Implementing the API</span></a></li>
+ <li><a href="/google/play/billing/billing_reference.html">
+ <span class="en">Reference</span></a></li>
+ </ul>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/v2/api.html">
+ <span class="en">Version 2 API</span></a></div>
+ <ul>
+ <li><a href="/google/play/billing/v2/billing_integrate.html">
+ <span class="en">Implementing the API</span></a></li>
+ <li><a href="/google/play/billing/v2/billing_subscriptions.html">
+ <span class="en">Subscriptions</span></a></li>
+ <li><a href="/google/play/billing/v2/billing_reference.html">
+ <span class="en">Reference</span></a></li>
+ </ul>
+ </li>
+ <li><a href="/google/play/billing/billing_subscriptions.html">
+ <span class="en">Subscriptions</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_best_practices.html">
+ <span class="en">Security and Design</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_testing.html">
+ <span class="en">Testing In-app Billing</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_admin.html">
+ <span class="en">Administering In-app Billing</span></a>
+ </li>
+ <li><a href="/google/play/billing/gp-purchase-status-api.html">
+ <span class="en">Purchase Status API</span></a>
+ </li>
+ <li><a href="/google/play/billing/versions.html">
+ <span class="en">Version Notes</span></a>
+ </li>
+ </ul>
+ </li>
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/gcm/index.html">
+ <span class="en">Google Cloud Messaging</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
+ <li><a href="/google/gcm/gs.html">
+ <span class="en">Getting Started</span></a>
+ </li>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
+ </li>
+ <li><a href="/google/gcm/notifications.html">
+ <span class="en">User Notifications</span></a>
+ </li>
+ <li><a href="/google/gcm/adv.html">
+ <span class="en">Advanced Topics</span></a>
+ </li>
+ <li><a href="/google/gcm/c2dm.html">
+ <span class="en">Migration</span></a>
+ </li>
+ <li id="gcm-tree-list" class="nav-section">
+ <div class="nav-section-header">
+ <a href="/reference/gcm-packages.html">
+ <span class="en">Reference</span>
+ </a>
+ <div>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/dist.html">
+ <span class="en">Google Play Distribution</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/filters.html">
+ <span class="en">Filters on Google Play</span></a>
+ </li>
+
+ <li><a href="/google/play/publishing/multiple-apks.html">
+ <span class="en">Multiple APK Support</span></a>
+ </li>
+ <li><a href="/google/play/expansion-files.html">
+ <span class="en">APK Expansion Files</span></a>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/licensing/index.html">
+ <span class="en">Application Licensing</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/licensing/overview.html">
+ <span class="en">Licensing Overview</span></a>
+ </li>
+ <li><a href="/google/play/licensing/setting-up.html">
+ <span class="en">Setting Up for Licensing</span></a>
+ </li>
+ <li><a href="/google/play/licensing/adding-licensing.html">
+ <span class="en">Adding Licensing to Your App</span></a>
+ </li>
+ <li><a href="/google/play/licensing/licensing-reference.html">
+ <span class="en">Licensing Reference</span></a>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/backup/index.html">
+ Android Backup Service</a>
+ </div>
+ <ul>
+ <li><a href="/google/backup/signup.html">
+ Register</a>
+ </li>
+ </ul>
+ </li>
+
+ </ul>
+
+</li>
+
+
+
+</ul>
+
+<script type="text/javascript">
+<!--
+ buildToggleLists();
+ changeNavLang(getLangPref());
+//-->
+</script>
+
+
+
+
+ </div>
+ <script type="text/javascript">
+ showGoogleRefTree();
+
+ </script>
+ </div> <!-- end side-nav -->
+ <script>
+ $(document).ready(function() {
+ scrollIntoView("devdoc-nav");
+ });
+ </script>
+
+
+
+
+
+
+<div class="col-12" id="doc-col">
+
+<div id="api-info-block">
+
+
+
+
+<div class="sum-details-links">
+
+Summary:
+
+
+
+
+
+
+
+
+
+
+
+ <a href="#pubmethods">Methods</a>
+
+
+
+
+| <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
+
+</div><!-- end sum-details-links -->
+<div class="api-level">
+
+
+
+
+</div>
+</div><!-- end api-info-block -->
+
+
+<!-- ======== START OF CLASS DATA ======== -->
+
+<div id="jd-header">
+ public
+
+
+
+ interface
+<h1 itemprop="name">OnTurnBasedMatchUpdatedListener</h1>
+
+
+
+
+
+
+
+
+</div><!-- end header -->
+
+<div id="naMessage"></div>
+
+<div id="jd-content" class="api apilevel-">
+<table class="jd-inheritance-table">
+
+
+ <tr>
+
+ <td colspan="1" class="jd-inheritance-class-cell">com.google.android.gms.games.multiplayer.turnbased.OnTurnBasedMatchUpdatedListener</td>
+ </tr>
+
+
+</table>
+
+
+
+
+
+
+<table class="jd-sumtable jd-sumtable-subclasses"><tr><td colspan="12" style="border:none;margin:0;padding:0;">
+
+ <a href="#" onclick="return toggleInherited(this, null)" id="subclasses-indirect" class="jd-expando-trigger closed"
+ ><img id="subclasses-indirect-trigger"
+ src="/assets/images/triangle-closed.png"
+ class="jd-expando-trigger-img" /></a>Known Indirect Subclasses
+
+ <div id="subclasses-indirect">
+ <div id="subclasses-indirect-list"
+ class="jd-inheritedlinks"
+
+ >
+
+
+ <a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMultiplayerListener.html">TurnBasedMultiplayerListener</a>
+
+
+ </div>
+ <div id="subclasses-indirect-summary"
+ style="display: none;"
+ >
+ <table class="jd-sumtable-expando">
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMultiplayerListener.html">TurnBasedMultiplayerListener</a></td>
+ <td class="jd-descrcol" width="100%">Helper interface compounding all of the necessary listeners to implement a turn-based multiplayer
+ game. </td>
+ </tr>
+ </table>
+ </div>
+ </div>
+</td></tr></table>
+
+
+<div class="jd-descr">
+
+
+<h2>Class Overview</h2>
+<p itemprop="articleBody">Listener for receiving callbacks when a match has been updated.
+</p>
+
+
+
+
+
+</div><!-- jd-descr -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<div class="jd-descr">
+
+
+<h2>Summary</h2>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
+
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/OnTurnBasedMatchUpdatedListener.html#onTurnBasedMatchUpdated(int, com.google.android.gms.games.multiplayer.turnbased.TurnBasedMatch)">onTurnBasedMatchUpdated</a></span>(int statusCode, <a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html">TurnBasedMatch</a> match)</nobr>
+
+ <div class="jd-descrdiv">Called when match has been updated.</div>
+
+ </td></tr>
+
+
+
+</table>
+
+
+
+
+
+
+
+</div><!-- jd-descr (summary) -->
+
+<!-- Details -->
+
+
+
+
+
+
+
+
+<!-- XML Attributes -->
+
+
+<!-- Enum Values -->
+
+
+<!-- Constants -->
+
+
+<!-- Fields -->
+
+
+<!-- Public ctors -->
+
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<!-- Protected ctors -->
+
+
+
+<!-- ========= METHOD DETAIL ======== -->
+<!-- Public methdos -->
+
+<h2>Public Methods</h2>
+
+
+
+<A NAME="onTurnBasedMatchUpdated(int, com.google.android.gms.games.multiplayer.turnbased.TurnBasedMatch)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+ abstract
+
+ void
+ </span>
+ <span class="sympad">onTurnBasedMatchUpdated</span>
+ <span class="normal">(int statusCode, <a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html">TurnBasedMatch</a> match)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Called when match has been updated. Possible status codes include:
+ <ul>
+ <li><code><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_OK">STATUS_OK</a></code> if data was successfully loaded and is up-to-date.</li>
+ <li><code><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_NETWORK_ERROR_OPERATION_DEFERRED">STATUS_NETWORK_ERROR_OPERATION_DEFERRED</a></code> if the attempt to leave the
+ match resulted in a network error. The operation was stored locally, and will be retried the
+ next time the device comes online. No further action is required.</li>
+ <li><code><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_MATCH_ERROR_LOCALLY_MODIFIED">STATUS_MATCH_ERROR_LOCALLY_MODIFIED</a></code> if the match has already been
+ modified locally and has changes waiting to be synced to the server. The update operation was
+ not executed.</li>
+ <li><code><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_MATCH_ERROR_INACTIVE_MATCH">STATUS_MATCH_ERROR_INACTIVE_MATCH</a></code> if the match has already
+ transitioned into an inactive state on the server.</li>
+ <li><code><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_MATCH_ERROR_OUT_OF_DATE_VERSION">STATUS_MATCH_ERROR_OUT_OF_DATE_VERSION</a></code> if the local match state was
+ out of date. In this case, the updated match will be returned.</li>
+ <li><code><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_MULTIPLAYER_ERROR_NOT_TRUSTED_TESTER">STATUS_MULTIPLAYER_ERROR_NOT_TRUSTED_TESTER</a></code> if one of the users in
+ the match is not a trusted tester of a game which is not yet published.</li>
+ <li><code><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_MULTIPLAYER_ERROR_INVALID_OPERATION">STATUS_MULTIPLAYER_ERROR_INVALID_OPERATION</a></code> if the server rejected the
+ operation.</li>
+ <li><code><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_MULTIPLAYER_DISABLED">STATUS_MULTIPLAYER_DISABLED</a></code> if the game does not support multiplayer.
+ </li>
+ <li><code><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_CLIENT_RECONNECT_REQUIRED">STATUS_CLIENT_RECONNECT_REQUIRED</a></code> if the <code><a href="/reference/com/google/android/gms/games/GamesClient.html">GamesClient</a></code> needs to
+ reconnect to the service to perform this operation.</li>
+ <li><code><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_INTERNAL_ERROR">STATUS_INTERNAL_ERROR</a></code> if an unexpected error occurred in the service.
+ </li>
+ </ul></p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>statusCode</td>
+ <td>A status code indicating the result of the operation.</td>
+ </tr>
+ <tr>
+ <th>match</td>
+ <td>The updated <code><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html">TurnBasedMatch</a></code> object. Note that this may be null, depending
+ on the status code returned.
+</td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
+
+
+
+<!-- ========= METHOD DETAIL ======== -->
+
+
+
+<!-- ========= END OF CLASS DATA ========= -->
+<A NAME="navbar_top"></A>
+
+<div id="footer" class="wrap" >
+
+
+ <div id="copyright">
+
+ Except as noted, this content is licensed under <a
+ href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.
+ For details and restrictions, see the <a href="/license.html">
+ Content License</a>.
+ </div>
+ <div id="build_info">
+
+<script src="/timestamp.js" type="text/javascript"></script>
+<script>document.write(BUILD_TIMESTAMP)</script>
+
+ </div>
+
+
+ <div id="footerlinks">
+
+ <p>
+ <a href="/about/index.html">About Android</a> |
+ <a href="/legal.html">Legal</a> |
+ <a href="/support.html">Support</a>
+ </p>
+ </div>
+
+</div> <!-- end footer -->
+</div> <!-- jd-content -->
+
+</div><!-- end doc-content -->
+
+</div> <!-- end body-content -->
+
+
+
+
+
+
+</body>
+</html>
diff --git a/docs/html/reference/com/google/android/gms/games/multiplayer/turnbased/OnTurnBasedMatchesLoadedListener.html b/docs/html/reference/com/google/android/gms/games/multiplayer/turnbased/OnTurnBasedMatchesLoadedListener.html
new file mode 100644
index 0000000..8dc3bde
--- /dev/null
+++ b/docs/html/reference/com/google/android/gms/games/multiplayer/turnbased/OnTurnBasedMatchesLoadedListener.html
@@ -0,0 +1,996 @@
+<!DOCTYPE html>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<html>
+<head>
+
+
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<meta name="viewport" content="width=device-width" />
+
+<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
+<title>OnTurnBasedMatchesLoadedListener | Android Developers</title>
+
+<!-- STYLESHEETS -->
+<link rel="stylesheet"
+href="//fonts.googleapis.com/css?family=Roboto:regular,medium,thin,italic,mediumitalic,bold" title="roboto">
+<link href="/assets/css/default.css" rel="stylesheet" type="text/css">
+
+
+
+<!-- JAVASCRIPT -->
+<script src="//www.google.com/jsapi" type="text/javascript"></script>
+<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
+<script type="text/javascript">
+ var toRoot = "/";
+ var metaTags = [];
+ var devsite = false;
+</script>
+<script src="/assets/js/docs.js" type="text/javascript"></script>
+
+<script type="text/javascript">
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-5831155-1']);
+ _gaq.push(['_trackPageview']);
+
+ (function() {
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+ })();
+</script>
+</head>
+<body class="gc-documentation google
+ develop" itemscope itemtype="http://schema.org/Article">
+ <div id="doc-api-level" class="" style="display:none"></div>
+ <a name="top"></a>
+
+<a name="top"></a>
+
+ <!-- Header -->
+ <div id="header">
+ <div class="wrap" id="header-wrap">
+ <div class="col-3 logo">
+ <a href="/index.html">
+ <img src="/assets/images/dac_logo.png" width="123" height="25" alt="Android Developers" />
+ </a>
+ <div class="btn-quicknav" id="btn-quicknav">
+ <a href="#" class="arrow-inactive">Quicknav</a>
+ <a href="#" class="arrow-active">Quicknav</a>
+ </div>
+ </div>
+ <ul class="nav-x col-9">
+ <li class="design">
+ <a href="/design/index.html"
+ zh-tw-lang="設計"
+ zh-cn-lang="设计"
+ ru-lang="Проектирование"
+ ko-lang="디자인"
+ ja-lang="設計"
+ es-lang="Diseñar"
+ >Design</a></li>
+ <li class="develop"><a href="/develop/index.html"
+ zh-tw-lang="開發"
+ zh-cn-lang="开发"
+ ru-lang="Разработка"
+ ko-lang="개발"
+ ja-lang="開発"
+ es-lang="Desarrollar"
+ >Develop</a></li>
+ <li class="distribute last"><a href="/distribute/index.html"
+ zh-tw-lang="發佈"
+ zh-cn-lang="分发"
+ ru-lang="Распространение"
+ ko-lang="배포"
+ ja-lang="配布"
+ es-lang="Distribuir"
+ >Distribute</a></li>
+ </ul>
+
+ <!-- New Search -->
+ <div class="menu-container">
+ <div class="moremenu">
+ <div id="more-btn"></div>
+ </div>
+ <div class="morehover" id="moremenu">
+ <div class="top"></div>
+ <div class="mid">
+ <div class="header">Links</div>
+ <ul>
+ <li><a href="https://play.google.com/apps/publish/">Google Play Developer Console</a></li>
+ <li><a href="http://android-developers.blogspot.com/">Android Developers Blog</a></li>
+ <li><a href="/about/index.html">About Android</a></li>
+ </ul>
+ <div class="header">Android Sites</div>
+ <ul>
+ <li><a href="http://www.android.com">Android.com</a></li>
+ <li class="active"><a>Android Developers</a></li>
+ <li><a href="http://source.android.com">Android Open Source Project</a></li>
+ </ul>
+
+
+
+ <div class="header">Language</div>
+ <div id="language" class="locales">
+ <select name="language" onChange="changeLangPref(this.value, true)">
+ <option value="en">English</option>
+ <option value="es">Español</option>
+ <option value="ja">日本語</option>
+ <option value="ko">한국어</option>
+ <option value="ru">Русский</option>
+ <option value="zh-cn">中文 (中国)</option>
+ <option value="zh-tw">中文 (台灣)</option>
+ </select>
+ </div>
+ <script type="text/javascript">
+ <!--
+ loadLangPref();
+ //-->
+ </script>
+
+
+
+
+ <br class="clearfix" />
+ </div>
+ <div class="bottom"></div>
+ </div>
+ <div class="search" id="search-container">
+ <div class="search-inner">
+ <div id="search-btn"></div>
+ <div class="left"></div>
+ <form onsubmit="return submit_search()">
+ <input id="search_autocomplete" type="text" value="" autocomplete="off" name="q"
+onfocus="search_focus_changed(this, true)" onblur="search_focus_changed(this, false)"
+onkeydown="return search_changed(event, true, '/')"
+onkeyup="return search_changed(event, false, '/')" />
+ </form>
+ <div class="right"></div>
+ <a class="close hide">close</a>
+ <div class="left"></div>
+ <div class="right"></div>
+ </div>
+ </div>
+
+ <div class="search_filtered_wrapper reference">
+ <div class="suggest-card reference no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ </div>
+
+ <div class="search_filtered_wrapper docs">
+ <div class="suggest-card dummy no-display"> </div>
+ <div class="suggest-card develop no-display">
+ <ul class="search_filtered">
+ </ul>
+ <div class="child-card guides no-display">
+ </div>
+ <div class="child-card training no-display">
+ </div>
+ <div class="child-card samples no-display">
+ </div>
+ </div>
+ <div class="suggest-card design no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ <div class="suggest-card distribute no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ </div>
+
+ </div>
+ <!-- /New Search>
+
+
+ <!-- Expanded quicknav -->
+ <div id="quicknav" class="col-9">
+ <ul>
+ <li class="design">
+ <ul>
+ <li><a href="/design/index.html">Get Started</a></li>
+ <li><a href="/design/style/index.html">Style</a></li>
+ <li><a href="/design/patterns/index.html">Patterns</a></li>
+ <li><a href="/design/building-blocks/index.html">Building Blocks</a></li>
+ <li><a href="/design/downloads/index.html">Downloads</a></li>
+ <li><a href="/design/videos/index.html">Videos</a></li>
+ </ul>
+ </li>
+ <li class="develop">
+ <ul>
+ <li><a href="/training/index.html"
+ zh-tw-lang="訓練課程"
+ zh-cn-lang="培训"
+ ru-lang="Курсы"
+ ko-lang="교육"
+ ja-lang="トレーニング"
+ es-lang="Capacitación"
+ >Training</a></li>
+ <li><a href="/guide/index.html"
+ zh-tw-lang="API 指南"
+ zh-cn-lang="API 指南"
+ ru-lang="Руководства по API"
+ ko-lang="API 가이드"
+ ja-lang="API ガイド"
+ es-lang="Guías de la API"
+ >API Guides</a></li>
+ <li><a href="/reference/packages.html"
+ zh-tw-lang="參考資源"
+ zh-cn-lang="参考"
+ ru-lang="Справочник"
+ ko-lang="참조문서"
+ ja-lang="リファレンス"
+ es-lang="Referencia"
+ >Reference</a></li>
+ <li><a href="/tools/index.html"
+ zh-tw-lang="相關工具"
+ zh-cn-lang="工具"
+ ru-lang="Инструменты"
+ ko-lang="도구"
+ ja-lang="ツール"
+ es-lang="Herramientas"
+ >Tools</a>
+ <ul><li><a href="/sdk/index.html">Get the SDK</a></li></ul>
+ </li>
+ <li><a href="/google/index.html">Google Services</a>
+ </li>
+
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
+ </ul>
+ </li>
+ <li class="distribute last">
+ <ul>
+ <li><a href="/distribute/index.html">Google Play</a></li>
+ <li><a href="/distribute/googleplay/publish/index.html">Publishing</a></li>
+ <li><a href="/distribute/googleplay/promote/index.html">Promoting</a></li>
+ <li><a href="/distribute/googleplay/quality/index.html">App Quality</a></li>
+ <li><a href="/distribute/googleplay/spotlight/index.html">Spotlight</a></li>
+ <li><a href="/distribute/open.html">Open Distribution</a></li>
+ </ul>
+ </li>
+ </ul>
+ </div>
+ <!-- /Expanded quicknav -->
+ </div>
+ </div>
+ <!-- /Header -->
+
+
+ <div id="searchResults" class="wrap" style="display:none;">
+ <h2 id="searchTitle">Results</h2>
+ <div id="leftSearchControl" class="search-control">Loading...</div>
+ </div>
+
+
+
+ <!-- Secondary x-nav -->
+ <div id="nav-x">
+ <div class="wrap">
+ <ul class="nav-x col-9 develop" style="width:100%">
+ <li class="training"><a href="/training/index.html"
+ zh-tw-lang="訓練課程"
+ zh-cn-lang="培训"
+ ru-lang="Курсы"
+ ko-lang="교육"
+ ja-lang="トレーニング"
+ es-lang="Capacitación"
+ >Training</a></li>
+ <li class="guide"><a href="/guide/index.html"
+ zh-tw-lang="API 指南"
+ zh-cn-lang="API 指南"
+ ru-lang="Руководства по API"
+ ko-lang="API 가이드"
+ ja-lang="API ガイド"
+ es-lang="Guías de la API"
+ >API Guides</a></li>
+ <li class="reference"><a href="/reference/packages.html"
+ zh-tw-lang="參考資源"
+ zh-cn-lang="参考"
+ ru-lang="Справочник"
+ ko-lang="참조문서"
+ ja-lang="リファレンス"
+ es-lang="Referencia"
+ >Reference</a></li>
+ <li class="tools"><a href="/tools/index.html"
+ zh-tw-lang="相關工具"
+ zh-cn-lang="工具"
+ ru-lang="Инструменты"
+ ko-lang="도구"
+ ja-lang="ツール"
+ es-lang="Herramientas"
+ >Tools</a></li>
+ <li class="google"><a href="/google/index.html"
+ >Google Services</a>
+ </li>
+
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
+ </ul>
+ </div>
+
+ </div>
+ <!-- /Sendondary x-nav -->
+
+
+
+
+
+
+
+
+
+ <div class="wrap clearfix" id="body-content">
+ <div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
+ <div id="devdoc-nav" class="scroll-pane">
+<a class="totop" href="#top" data-g-event="left-nav-top">to top</a>
+
+
+
+<ul id="nav">
+
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/index.html">
+ <span class="en">Overview</span>
+ </a></div>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/games.html">
+ <span class="en">Games</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/location.html">
+ <span class="en">Location</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/plus.html">
+ <span class="en">Google+</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/maps.html">
+ <span class="en">Maps</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play-services/ads.html">
+ <span class="en">Ads</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play-services/id.html">
+ <span class="en">Advertising ID</span></a>
+ </li>
+ </ul>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/wallet.html">
+ <span class="en">Wallet</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/auth.html">
+ <span class="en">Authorization</span>
+ </a></div>
+ </li>
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play-services/index.html">
+ <span class="en">Google Play Services</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play-services/setup.html">
+ <span class="en">Setup</span></a>
+ </li>
+ <li id="gms-tree-list" class="nav-section">
+ <div class="nav-section-header">
+ <a href="/reference/gms-packages.html">
+ <span class="en">Reference</span>
+ </a>
+ <div>
+ </li>
+ </ul>
+ </li>
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/billing/index.html">
+ <span class="en">Google Play In-app Billing</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/billing/billing_overview.html">
+ <span class="en">Overview</span></a>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/api.html">
+ <span class="en">Version 3 API</span></a></div>
+ <ul>
+ <li><a href="/google/play/billing/billing_integrate.html">
+ <span class="en">Implementing the API</span></a></li>
+ <li><a href="/google/play/billing/billing_reference.html">
+ <span class="en">Reference</span></a></li>
+ </ul>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/v2/api.html">
+ <span class="en">Version 2 API</span></a></div>
+ <ul>
+ <li><a href="/google/play/billing/v2/billing_integrate.html">
+ <span class="en">Implementing the API</span></a></li>
+ <li><a href="/google/play/billing/v2/billing_subscriptions.html">
+ <span class="en">Subscriptions</span></a></li>
+ <li><a href="/google/play/billing/v2/billing_reference.html">
+ <span class="en">Reference</span></a></li>
+ </ul>
+ </li>
+ <li><a href="/google/play/billing/billing_subscriptions.html">
+ <span class="en">Subscriptions</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_best_practices.html">
+ <span class="en">Security and Design</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_testing.html">
+ <span class="en">Testing In-app Billing</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_admin.html">
+ <span class="en">Administering In-app Billing</span></a>
+ </li>
+ <li><a href="/google/play/billing/gp-purchase-status-api.html">
+ <span class="en">Purchase Status API</span></a>
+ </li>
+ <li><a href="/google/play/billing/versions.html">
+ <span class="en">Version Notes</span></a>
+ </li>
+ </ul>
+ </li>
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/gcm/index.html">
+ <span class="en">Google Cloud Messaging</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
+ <li><a href="/google/gcm/gs.html">
+ <span class="en">Getting Started</span></a>
+ </li>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
+ </li>
+ <li><a href="/google/gcm/notifications.html">
+ <span class="en">User Notifications</span></a>
+ </li>
+ <li><a href="/google/gcm/adv.html">
+ <span class="en">Advanced Topics</span></a>
+ </li>
+ <li><a href="/google/gcm/c2dm.html">
+ <span class="en">Migration</span></a>
+ </li>
+ <li id="gcm-tree-list" class="nav-section">
+ <div class="nav-section-header">
+ <a href="/reference/gcm-packages.html">
+ <span class="en">Reference</span>
+ </a>
+ <div>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/dist.html">
+ <span class="en">Google Play Distribution</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/filters.html">
+ <span class="en">Filters on Google Play</span></a>
+ </li>
+
+ <li><a href="/google/play/publishing/multiple-apks.html">
+ <span class="en">Multiple APK Support</span></a>
+ </li>
+ <li><a href="/google/play/expansion-files.html">
+ <span class="en">APK Expansion Files</span></a>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/licensing/index.html">
+ <span class="en">Application Licensing</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/licensing/overview.html">
+ <span class="en">Licensing Overview</span></a>
+ </li>
+ <li><a href="/google/play/licensing/setting-up.html">
+ <span class="en">Setting Up for Licensing</span></a>
+ </li>
+ <li><a href="/google/play/licensing/adding-licensing.html">
+ <span class="en">Adding Licensing to Your App</span></a>
+ </li>
+ <li><a href="/google/play/licensing/licensing-reference.html">
+ <span class="en">Licensing Reference</span></a>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/backup/index.html">
+ Android Backup Service</a>
+ </div>
+ <ul>
+ <li><a href="/google/backup/signup.html">
+ Register</a>
+ </li>
+ </ul>
+ </li>
+
+ </ul>
+
+</li>
+
+
+
+</ul>
+
+<script type="text/javascript">
+<!--
+ buildToggleLists();
+ changeNavLang(getLangPref());
+//-->
+</script>
+
+
+
+
+ </div>
+ <script type="text/javascript">
+ showGoogleRefTree();
+
+ </script>
+ </div> <!-- end side-nav -->
+ <script>
+ $(document).ready(function() {
+ scrollIntoView("devdoc-nav");
+ });
+ </script>
+
+
+
+
+
+
+<div class="col-12" id="doc-col">
+
+<div id="api-info-block">
+
+
+
+
+<div class="sum-details-links">
+
+Summary:
+
+
+
+
+
+
+
+
+
+
+
+ <a href="#pubmethods">Methods</a>
+
+
+
+
+| <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
+
+</div><!-- end sum-details-links -->
+<div class="api-level">
+
+
+
+
+</div>
+</div><!-- end api-info-block -->
+
+
+<!-- ======== START OF CLASS DATA ======== -->
+
+<div id="jd-header">
+ public
+
+
+
+ interface
+<h1 itemprop="name">OnTurnBasedMatchesLoadedListener</h1>
+
+
+
+
+
+
+
+
+</div><!-- end header -->
+
+<div id="naMessage"></div>
+
+<div id="jd-content" class="api apilevel-">
+<table class="jd-inheritance-table">
+
+
+ <tr>
+
+ <td colspan="1" class="jd-inheritance-class-cell">com.google.android.gms.games.multiplayer.turnbased.OnTurnBasedMatchesLoadedListener</td>
+ </tr>
+
+
+</table>
+
+
+
+
+
+
+<table class="jd-sumtable jd-sumtable-subclasses"><tr><td colspan="12" style="border:none;margin:0;padding:0;">
+
+ <a href="#" onclick="return toggleInherited(this, null)" id="subclasses-indirect" class="jd-expando-trigger closed"
+ ><img id="subclasses-indirect-trigger"
+ src="/assets/images/triangle-closed.png"
+ class="jd-expando-trigger-img" /></a>Known Indirect Subclasses
+
+ <div id="subclasses-indirect">
+ <div id="subclasses-indirect-list"
+ class="jd-inheritedlinks"
+
+ >
+
+
+ <a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMultiplayerListener.html">TurnBasedMultiplayerListener</a>
+
+
+ </div>
+ <div id="subclasses-indirect-summary"
+ style="display: none;"
+ >
+ <table class="jd-sumtable-expando">
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMultiplayerListener.html">TurnBasedMultiplayerListener</a></td>
+ <td class="jd-descrcol" width="100%">Helper interface compounding all of the necessary listeners to implement a turn-based multiplayer
+ game. </td>
+ </tr>
+ </table>
+ </div>
+ </div>
+</td></tr></table>
+
+
+<div class="jd-descr">
+
+
+<h2>Class Overview</h2>
+<p itemprop="articleBody">Listener for receiving callbacks when matches have been loaded.
+</p>
+
+
+
+
+
+</div><!-- jd-descr -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<div class="jd-descr">
+
+
+<h2>Summary</h2>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
+
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/OnTurnBasedMatchesLoadedListener.html#onTurnBasedMatchesLoaded(int, com.google.android.gms.games.multiplayer.turnbased.LoadMatchesResponse)">onTurnBasedMatchesLoaded</a></span>(int statusCode, <a href="/reference/com/google/android/gms/games/multiplayer/turnbased/LoadMatchesResponse.html">LoadMatchesResponse</a> response)</nobr>
+
+ <div class="jd-descrdiv">Called when matches have been loaded.</div>
+
+ </td></tr>
+
+
+
+</table>
+
+
+
+
+
+
+
+</div><!-- jd-descr (summary) -->
+
+<!-- Details -->
+
+
+
+
+
+
+
+
+<!-- XML Attributes -->
+
+
+<!-- Enum Values -->
+
+
+<!-- Constants -->
+
+
+<!-- Fields -->
+
+
+<!-- Public ctors -->
+
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<!-- Protected ctors -->
+
+
+
+<!-- ========= METHOD DETAIL ======== -->
+<!-- Public methdos -->
+
+<h2>Public Methods</h2>
+
+
+
+<A NAME="onTurnBasedMatchesLoaded(int, com.google.android.gms.games.multiplayer.turnbased.LoadMatchesResponse)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+ abstract
+
+ void
+ </span>
+ <span class="sympad">onTurnBasedMatchesLoaded</span>
+ <span class="normal">(int statusCode, <a href="/reference/com/google/android/gms/games/multiplayer/turnbased/LoadMatchesResponse.html">LoadMatchesResponse</a> response)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Called when matches have been loaded. Possible status codes include:
+ <ul>
+ <li><code><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_OK">STATUS_OK</a></code> if data was successfully loaded and is up-to-date.</li>
+ <li><code><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_NETWORK_ERROR_NO_DATA">STATUS_NETWORK_ERROR_NO_DATA</a></code> if the device was unable to retrieve any
+ data from the network and has no data cached locally.</li>
+ <li><code><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_NETWORK_ERROR_STALE_DATA">STATUS_NETWORK_ERROR_STALE_DATA</a></code> if the device was unable to retrieve
+ the latest data from the network, but has some data cached locally.</li>
+ <li><code><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_CLIENT_RECONNECT_REQUIRED">STATUS_CLIENT_RECONNECT_REQUIRED</a></code> if the <code><a href="/reference/com/google/android/gms/games/GamesClient.html">GamesClient</a></code> needs to
+ reconnect to the service to access this data.</li>
+ <li><code><a href="/reference/com/google/android/gms/games/GamesClient.html#STATUS_INTERNAL_ERROR">STATUS_INTERNAL_ERROR</a></code> if an unexpected error occurred in the service.
+ </li>
+ </ul></p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>statusCode</td>
+ <td>A status code indicating the result of the operation.</td>
+ </tr>
+ <tr>
+ <th>response</td>
+ <td>A <code><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/LoadMatchesResponse.html">LoadMatchesResponse</a></code> containing the requested data.
+</td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
+
+
+
+<!-- ========= METHOD DETAIL ======== -->
+
+
+
+<!-- ========= END OF CLASS DATA ========= -->
+<A NAME="navbar_top"></A>
+
+<div id="footer" class="wrap" >
+
+
+ <div id="copyright">
+
+ Except as noted, this content is licensed under <a
+ href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.
+ For details and restrictions, see the <a href="/license.html">
+ Content License</a>.
+ </div>
+ <div id="build_info">
+
+<script src="/timestamp.js" type="text/javascript"></script>
+<script>document.write(BUILD_TIMESTAMP)</script>
+
+ </div>
+
+
+ <div id="footerlinks">
+
+ <p>
+ <a href="/about/index.html">About Android</a> |
+ <a href="/legal.html">Legal</a> |
+ <a href="/support.html">Support</a>
+ </p>
+ </div>
+
+</div> <!-- end footer -->
+</div> <!-- jd-content -->
+
+</div><!-- end doc-content -->
+
+</div> <!-- end body-content -->
+
+
+
+
+
+
+</body>
+</html>
diff --git a/docs/html/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html b/docs/html/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html
new file mode 100644
index 0000000..19d6d59
--- /dev/null
+++ b/docs/html/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html
@@ -0,0 +1,2979 @@
+<!DOCTYPE html>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<html>
+<head>
+
+
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<meta name="viewport" content="width=device-width" />
+
+<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
+<title>TurnBasedMatch | Android Developers</title>
+
+<!-- STYLESHEETS -->
+<link rel="stylesheet"
+href="//fonts.googleapis.com/css?family=Roboto:regular,medium,thin,italic,mediumitalic,bold" title="roboto">
+<link href="/assets/css/default.css" rel="stylesheet" type="text/css">
+
+
+
+<!-- JAVASCRIPT -->
+<script src="//www.google.com/jsapi" type="text/javascript"></script>
+<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
+<script type="text/javascript">
+ var toRoot = "/";
+ var metaTags = [];
+ var devsite = false;
+</script>
+<script src="/assets/js/docs.js" type="text/javascript"></script>
+
+<script type="text/javascript">
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-5831155-1']);
+ _gaq.push(['_trackPageview']);
+
+ (function() {
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+ })();
+</script>
+</head>
+<body class="gc-documentation google
+ develop" itemscope itemtype="http://schema.org/Article">
+ <div id="doc-api-level" class="" style="display:none"></div>
+ <a name="top"></a>
+
+<a name="top"></a>
+
+ <!-- Header -->
+ <div id="header">
+ <div class="wrap" id="header-wrap">
+ <div class="col-3 logo">
+ <a href="/index.html">
+ <img src="/assets/images/dac_logo.png" width="123" height="25" alt="Android Developers" />
+ </a>
+ <div class="btn-quicknav" id="btn-quicknav">
+ <a href="#" class="arrow-inactive">Quicknav</a>
+ <a href="#" class="arrow-active">Quicknav</a>
+ </div>
+ </div>
+ <ul class="nav-x col-9">
+ <li class="design">
+ <a href="/design/index.html"
+ zh-tw-lang="設計"
+ zh-cn-lang="设计"
+ ru-lang="Проектирование"
+ ko-lang="디자인"
+ ja-lang="設計"
+ es-lang="Diseñar"
+ >Design</a></li>
+ <li class="develop"><a href="/develop/index.html"
+ zh-tw-lang="開發"
+ zh-cn-lang="开发"
+ ru-lang="Разработка"
+ ko-lang="개발"
+ ja-lang="開発"
+ es-lang="Desarrollar"
+ >Develop</a></li>
+ <li class="distribute last"><a href="/distribute/index.html"
+ zh-tw-lang="發佈"
+ zh-cn-lang="分发"
+ ru-lang="Распространение"
+ ko-lang="배포"
+ ja-lang="配布"
+ es-lang="Distribuir"
+ >Distribute</a></li>
+ </ul>
+
+ <!-- New Search -->
+ <div class="menu-container">
+ <div class="moremenu">
+ <div id="more-btn"></div>
+ </div>
+ <div class="morehover" id="moremenu">
+ <div class="top"></div>
+ <div class="mid">
+ <div class="header">Links</div>
+ <ul>
+ <li><a href="https://play.google.com/apps/publish/">Google Play Developer Console</a></li>
+ <li><a href="http://android-developers.blogspot.com/">Android Developers Blog</a></li>
+ <li><a href="/about/index.html">About Android</a></li>
+ </ul>
+ <div class="header">Android Sites</div>
+ <ul>
+ <li><a href="http://www.android.com">Android.com</a></li>
+ <li class="active"><a>Android Developers</a></li>
+ <li><a href="http://source.android.com">Android Open Source Project</a></li>
+ </ul>
+
+
+
+ <div class="header">Language</div>
+ <div id="language" class="locales">
+ <select name="language" onChange="changeLangPref(this.value, true)">
+ <option value="en">English</option>
+ <option value="es">Español</option>
+ <option value="ja">日本語</option>
+ <option value="ko">한국어</option>
+ <option value="ru">Русский</option>
+ <option value="zh-cn">中文 (中国)</option>
+ <option value="zh-tw">中文 (台灣)</option>
+ </select>
+ </div>
+ <script type="text/javascript">
+ <!--
+ loadLangPref();
+ //-->
+ </script>
+
+
+
+
+ <br class="clearfix" />
+ </div>
+ <div class="bottom"></div>
+ </div>
+ <div class="search" id="search-container">
+ <div class="search-inner">
+ <div id="search-btn"></div>
+ <div class="left"></div>
+ <form onsubmit="return submit_search()">
+ <input id="search_autocomplete" type="text" value="" autocomplete="off" name="q"
+onfocus="search_focus_changed(this, true)" onblur="search_focus_changed(this, false)"
+onkeydown="return search_changed(event, true, '/')"
+onkeyup="return search_changed(event, false, '/')" />
+ </form>
+ <div class="right"></div>
+ <a class="close hide">close</a>
+ <div class="left"></div>
+ <div class="right"></div>
+ </div>
+ </div>
+
+ <div class="search_filtered_wrapper reference">
+ <div class="suggest-card reference no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ </div>
+
+ <div class="search_filtered_wrapper docs">
+ <div class="suggest-card dummy no-display"> </div>
+ <div class="suggest-card develop no-display">
+ <ul class="search_filtered">
+ </ul>
+ <div class="child-card guides no-display">
+ </div>
+ <div class="child-card training no-display">
+ </div>
+ <div class="child-card samples no-display">
+ </div>
+ </div>
+ <div class="suggest-card design no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ <div class="suggest-card distribute no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ </div>
+
+ </div>
+ <!-- /New Search>
+
+
+ <!-- Expanded quicknav -->
+ <div id="quicknav" class="col-9">
+ <ul>
+ <li class="design">
+ <ul>
+ <li><a href="/design/index.html">Get Started</a></li>
+ <li><a href="/design/style/index.html">Style</a></li>
+ <li><a href="/design/patterns/index.html">Patterns</a></li>
+ <li><a href="/design/building-blocks/index.html">Building Blocks</a></li>
+ <li><a href="/design/downloads/index.html">Downloads</a></li>
+ <li><a href="/design/videos/index.html">Videos</a></li>
+ </ul>
+ </li>
+ <li class="develop">
+ <ul>
+ <li><a href="/training/index.html"
+ zh-tw-lang="訓練課程"
+ zh-cn-lang="培训"
+ ru-lang="Курсы"
+ ko-lang="교육"
+ ja-lang="トレーニング"
+ es-lang="Capacitación"
+ >Training</a></li>
+ <li><a href="/guide/index.html"
+ zh-tw-lang="API 指南"
+ zh-cn-lang="API 指南"
+ ru-lang="Руководства по API"
+ ko-lang="API 가이드"
+ ja-lang="API ガイド"
+ es-lang="Guías de la API"
+ >API Guides</a></li>
+ <li><a href="/reference/packages.html"
+ zh-tw-lang="參考資源"
+ zh-cn-lang="参考"
+ ru-lang="Справочник"
+ ko-lang="참조문서"
+ ja-lang="リファレンス"
+ es-lang="Referencia"
+ >Reference</a></li>
+ <li><a href="/tools/index.html"
+ zh-tw-lang="相關工具"
+ zh-cn-lang="工具"
+ ru-lang="Инструменты"
+ ko-lang="도구"
+ ja-lang="ツール"
+ es-lang="Herramientas"
+ >Tools</a>
+ <ul><li><a href="/sdk/index.html">Get the SDK</a></li></ul>
+ </li>
+ <li><a href="/google/index.html">Google Services</a>
+ </li>
+
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
+ </ul>
+ </li>
+ <li class="distribute last">
+ <ul>
+ <li><a href="/distribute/index.html">Google Play</a></li>
+ <li><a href="/distribute/googleplay/publish/index.html">Publishing</a></li>
+ <li><a href="/distribute/googleplay/promote/index.html">Promoting</a></li>
+ <li><a href="/distribute/googleplay/quality/index.html">App Quality</a></li>
+ <li><a href="/distribute/googleplay/spotlight/index.html">Spotlight</a></li>
+ <li><a href="/distribute/open.html">Open Distribution</a></li>
+ </ul>
+ </li>
+ </ul>
+ </div>
+ <!-- /Expanded quicknav -->
+ </div>
+ </div>
+ <!-- /Header -->
+
+
+ <div id="searchResults" class="wrap" style="display:none;">
+ <h2 id="searchTitle">Results</h2>
+ <div id="leftSearchControl" class="search-control">Loading...</div>
+ </div>
+
+
+
+ <!-- Secondary x-nav -->
+ <div id="nav-x">
+ <div class="wrap">
+ <ul class="nav-x col-9 develop" style="width:100%">
+ <li class="training"><a href="/training/index.html"
+ zh-tw-lang="訓練課程"
+ zh-cn-lang="培训"
+ ru-lang="Курсы"
+ ko-lang="교육"
+ ja-lang="トレーニング"
+ es-lang="Capacitación"
+ >Training</a></li>
+ <li class="guide"><a href="/guide/index.html"
+ zh-tw-lang="API 指南"
+ zh-cn-lang="API 指南"
+ ru-lang="Руководства по API"
+ ko-lang="API 가이드"
+ ja-lang="API ガイド"
+ es-lang="Guías de la API"
+ >API Guides</a></li>
+ <li class="reference"><a href="/reference/packages.html"
+ zh-tw-lang="參考資源"
+ zh-cn-lang="参考"
+ ru-lang="Справочник"
+ ko-lang="참조문서"
+ ja-lang="リファレンス"
+ es-lang="Referencia"
+ >Reference</a></li>
+ <li class="tools"><a href="/tools/index.html"
+ zh-tw-lang="相關工具"
+ zh-cn-lang="工具"
+ ru-lang="Инструменты"
+ ko-lang="도구"
+ ja-lang="ツール"
+ es-lang="Herramientas"
+ >Tools</a></li>
+ <li class="google"><a href="/google/index.html"
+ >Google Services</a>
+ </li>
+
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
+ </ul>
+ </div>
+
+ </div>
+ <!-- /Sendondary x-nav -->
+
+
+
+
+
+
+
+
+
+ <div class="wrap clearfix" id="body-content">
+ <div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
+ <div id="devdoc-nav" class="scroll-pane">
+<a class="totop" href="#top" data-g-event="left-nav-top">to top</a>
+
+
+
+<ul id="nav">
+
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/index.html">
+ <span class="en">Overview</span>
+ </a></div>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/games.html">
+ <span class="en">Games</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/location.html">
+ <span class="en">Location</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/plus.html">
+ <span class="en">Google+</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/maps.html">
+ <span class="en">Maps</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play-services/ads.html">
+ <span class="en">Ads</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play-services/id.html">
+ <span class="en">Advertising ID</span></a>
+ </li>
+ </ul>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/wallet.html">
+ <span class="en">Wallet</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/auth.html">
+ <span class="en">Authorization</span>
+ </a></div>
+ </li>
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play-services/index.html">
+ <span class="en">Google Play Services</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play-services/setup.html">
+ <span class="en">Setup</span></a>
+ </li>
+ <li id="gms-tree-list" class="nav-section">
+ <div class="nav-section-header">
+ <a href="/reference/gms-packages.html">
+ <span class="en">Reference</span>
+ </a>
+ <div>
+ </li>
+ </ul>
+ </li>
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/billing/index.html">
+ <span class="en">Google Play In-app Billing</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/billing/billing_overview.html">
+ <span class="en">Overview</span></a>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/api.html">
+ <span class="en">Version 3 API</span></a></div>
+ <ul>
+ <li><a href="/google/play/billing/billing_integrate.html">
+ <span class="en">Implementing the API</span></a></li>
+ <li><a href="/google/play/billing/billing_reference.html">
+ <span class="en">Reference</span></a></li>
+ </ul>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/v2/api.html">
+ <span class="en">Version 2 API</span></a></div>
+ <ul>
+ <li><a href="/google/play/billing/v2/billing_integrate.html">
+ <span class="en">Implementing the API</span></a></li>
+ <li><a href="/google/play/billing/v2/billing_subscriptions.html">
+ <span class="en">Subscriptions</span></a></li>
+ <li><a href="/google/play/billing/v2/billing_reference.html">
+ <span class="en">Reference</span></a></li>
+ </ul>
+ </li>
+ <li><a href="/google/play/billing/billing_subscriptions.html">
+ <span class="en">Subscriptions</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_best_practices.html">
+ <span class="en">Security and Design</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_testing.html">
+ <span class="en">Testing In-app Billing</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_admin.html">
+ <span class="en">Administering In-app Billing</span></a>
+ </li>
+ <li><a href="/google/play/billing/gp-purchase-status-api.html">
+ <span class="en">Purchase Status API</span></a>
+ </li>
+ <li><a href="/google/play/billing/versions.html">
+ <span class="en">Version Notes</span></a>
+ </li>
+ </ul>
+ </li>
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/gcm/index.html">
+ <span class="en">Google Cloud Messaging</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
+ <li><a href="/google/gcm/gs.html">
+ <span class="en">Getting Started</span></a>
+ </li>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
+ </li>
+ <li><a href="/google/gcm/notifications.html">
+ <span class="en">User Notifications</span></a>
+ </li>
+ <li><a href="/google/gcm/adv.html">
+ <span class="en">Advanced Topics</span></a>
+ </li>
+ <li><a href="/google/gcm/c2dm.html">
+ <span class="en">Migration</span></a>
+ </li>
+ <li id="gcm-tree-list" class="nav-section">
+ <div class="nav-section-header">
+ <a href="/reference/gcm-packages.html">
+ <span class="en">Reference</span>
+ </a>
+ <div>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/dist.html">
+ <span class="en">Google Play Distribution</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/filters.html">
+ <span class="en">Filters on Google Play</span></a>
+ </li>
+
+ <li><a href="/google/play/publishing/multiple-apks.html">
+ <span class="en">Multiple APK Support</span></a>
+ </li>
+ <li><a href="/google/play/expansion-files.html">
+ <span class="en">APK Expansion Files</span></a>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/licensing/index.html">
+ <span class="en">Application Licensing</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/licensing/overview.html">
+ <span class="en">Licensing Overview</span></a>
+ </li>
+ <li><a href="/google/play/licensing/setting-up.html">
+ <span class="en">Setting Up for Licensing</span></a>
+ </li>
+ <li><a href="/google/play/licensing/adding-licensing.html">
+ <span class="en">Adding Licensing to Your App</span></a>
+ </li>
+ <li><a href="/google/play/licensing/licensing-reference.html">
+ <span class="en">Licensing Reference</span></a>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/backup/index.html">
+ Android Backup Service</a>
+ </div>
+ <ul>
+ <li><a href="/google/backup/signup.html">
+ Register</a>
+ </li>
+ </ul>
+ </li>
+
+ </ul>
+
+</li>
+
+
+
+</ul>
+
+<script type="text/javascript">
+<!--
+ buildToggleLists();
+ changeNavLang(getLangPref());
+//-->
+</script>
+
+
+
+
+ </div>
+ <script type="text/javascript">
+ showGoogleRefTree();
+
+ </script>
+ </div> <!-- end side-nav -->
+ <script>
+ $(document).ready(function() {
+ scrollIntoView("devdoc-nav");
+ });
+ </script>
+
+
+
+
+
+
+<div class="col-12" id="doc-col">
+
+<div id="api-info-block">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<div class="sum-details-links">
+
+Summary:
+
+
+
+
+
+ <a href="#constants">Constants</a>
+
+
+
+ | <a href="#inhconstants">Inherited Constants</a>
+
+
+
+ | <a href="#lfields">Fields</a>
+
+
+
+
+
+
+ | <a href="#pubmethods">Methods</a>
+
+
+
+
+ | <a href="#inhmethods">Inherited Methods</a>
+
+| <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
+
+</div><!-- end sum-details-links -->
+<div class="api-level">
+
+
+
+
+</div>
+</div><!-- end api-info-block -->
+
+
+<!-- ======== START OF CLASS DATA ======== -->
+
+<div id="jd-header">
+ public
+
+
+
+ interface
+<h1 itemprop="name">TurnBasedMatch</h1>
+
+
+
+
+
+ implements
+
+ Parcelable
+
+ <a href="/reference/com/google/android/gms/common/data/Freezable.html">Freezable</a><T>
+
+ <a href="/reference/com/google/android/gms/games/multiplayer/Participatable.html">Participatable</a>
+
+
+
+
+
+</div><!-- end header -->
+
+<div id="naMessage"></div>
+
+<div id="jd-content" class="api apilevel-">
+<table class="jd-inheritance-table">
+
+
+ <tr>
+
+ <td colspan="1" class="jd-inheritance-class-cell">com.google.android.gms.games.multiplayer.turnbased.TurnBasedMatch</td>
+ </tr>
+
+
+</table>
+
+
+
+
+
+
+<table class="jd-sumtable jd-sumtable-subclasses"><tr><td colspan="12" style="border:none;margin:0;padding:0;">
+
+ <a href="#" onclick="return toggleInherited(this, null)" id="subclasses-indirect" class="jd-expando-trigger closed"
+ ><img id="subclasses-indirect-trigger"
+ src="/assets/images/triangle-closed.png"
+ class="jd-expando-trigger-img" /></a>Known Indirect Subclasses
+
+ <div id="subclasses-indirect">
+ <div id="subclasses-indirect-list"
+ class="jd-inheritedlinks"
+
+ >
+
+
+ <a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatchEntity.html">TurnBasedMatchEntity</a>
+
+
+ </div>
+ <div id="subclasses-indirect-summary"
+ style="display: none;"
+ >
+ <table class="jd-sumtable-expando">
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatchEntity.html">TurnBasedMatchEntity</a></td>
+ <td class="jd-descrcol" width="100%">Data object representing the data for a turn-based match. </td>
+ </tr>
+ </table>
+ </div>
+ </div>
+</td></tr></table>
+
+
+<div class="jd-descr">
+
+
+<h2>Class Overview</h2>
+<p itemprop="articleBody">Data interface for turn-based specific match functionality.
+</p>
+
+
+
+
+
+</div><!-- jd-descr -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<div class="jd-descr">
+
+
+<h2>Summary</h2>
+
+
+
+
+
+
+
+
+
+
+
+
+
+<!-- =========== ENUM CONSTANT SUMMARY =========== -->
+<table id="constants" class="jd-sumtable"><tr><th colspan="12">Constants</th></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html#MATCH_STATUS_ACTIVE">MATCH_STATUS_ACTIVE</a></td>
+ <td class="jd-descrcol" width="100%">Constant returned by <code><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html#getStatus()">getStatus()</a></code> indicating that the match has started.</td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html#MATCH_STATUS_AUTO_MATCHING">MATCH_STATUS_AUTO_MATCHING</a></td>
+ <td class="jd-descrcol" width="100%">Constant returned by <code><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html#getStatus()">getStatus()</a></code> indicating that one or more slots are waiting to be
+ filled by auto-matching.</td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html#MATCH_STATUS_CANCELED">MATCH_STATUS_CANCELED</a></td>
+ <td class="jd-descrcol" width="100%">Constant returned by <code><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html#getStatus()">getStatus()</a></code> indicating that the match was canceled by one of
+ the participants.</td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html#MATCH_STATUS_COMPLETE">MATCH_STATUS_COMPLETE</a></td>
+ <td class="jd-descrcol" width="100%">Constant returned by <code><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html#getStatus()">getStatus()</a></code> indicating that the match has finished.</td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html#MATCH_STATUS_EXPIRED">MATCH_STATUS_EXPIRED</a></td>
+ <td class="jd-descrcol" width="100%">Constant returned by <code><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html#getStatus()">getStatus()</a></code> indicating that the match expired.</td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html#MATCH_TURN_STATUS_COMPLETE">MATCH_TURN_STATUS_COMPLETE</a></td>
+ <td class="jd-descrcol" width="100%">Turn status constant for matches which have been completed.</td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html#MATCH_TURN_STATUS_INVITED">MATCH_TURN_STATUS_INVITED</a></td>
+ <td class="jd-descrcol" width="100%">Turn status constant for matches which the current player has been invited to.</td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html#MATCH_TURN_STATUS_MY_TURN">MATCH_TURN_STATUS_MY_TURN</a></td>
+ <td class="jd-descrcol" width="100%">Turn status constant for matches where it is the current player's turn.</td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html#MATCH_TURN_STATUS_THEIR_TURN">MATCH_TURN_STATUS_THEIR_TURN</a></td>
+ <td class="jd-descrcol" width="100%">Turn status constant for matches where it is not the current player's turn.</td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html#MATCH_VARIANT_ANY">MATCH_VARIANT_ANY</a></td>
+ <td class="jd-descrcol" width="100%">Constant used to indicate that the variant for a match is unspecified.</td>
+ </tr>
+
+
+
+</table>
+
+
+
+
+
+<!-- =========== ENUM CONSTANT SUMMARY =========== -->
+<table id="inhconstants" class="jd-sumtable"><tr><th>
+ <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
+ <div style="clear:left;">Inherited Constants</div></th></tr>
+
+
+<tr class="api apilevel-" >
+<td colspan="12">
+
+ <a href="#" onclick="return toggleInherited(this, null)" id="inherited-constants-android.os.Parcelable" class="jd-expando-trigger closed"
+ ><img id="inherited-constants-android.os.Parcelable-trigger"
+ src="/assets/images/triangle-closed.png"
+ class="jd-expando-trigger-img" /></a>From interface
+android.os.Parcelable
+<div id="inherited-constants-android.os.Parcelable">
+ <div id="inherited-constants-android.os.Parcelable-list"
+ class="jd-inheritedlinks">
+ </div>
+ <div id="inherited-constants-android.os.Parcelable-summary" style="display: none;">
+ <table class="jd-sumtable-expando">
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">CONTENTS_FILE_DESCRIPTOR</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">PARCELABLE_WRITE_RETURN_VALUE</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+</table>
+ </div>
+</div>
+</td></tr>
+
+
+
+
+
+
+</table>
+
+
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+<table id="lfields" class="jd-sumtable"><tr><th colspan="12">Fields</th></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ public
+ static
+ final
+ int[]</nobr></td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html#MATCH_TURN_STATUS_ALL">MATCH_TURN_STATUS_ALL</a></td>
+ <td class="jd-descrcol" width="100%">Array of all the turn status constants.</td>
+ </tr>
+
+
+
+</table>
+
+
+
+
+
+
+
+
+
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
+
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html#canRematch()">canRematch</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Return whether or not this match can be rematched.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ Bundle</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html#getAutoMatchCriteria()">getAutoMatchCriteria</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Retrieves the automatch criteria used to create or join this match, if any.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html#getAvailableAutoMatchSlots()">getAvailableAutoMatchSlots</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Return the maximum number of available automatch slots for this match.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ long</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html#getCreationTimestamp()">getCreationTimestamp</a></span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ String</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html#getCreatorId()">getCreatorId</a></span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ byte[]</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html#getData()">getData</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Return the current (game-specific) data for this match.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ <a href="/reference/com/google/android/gms/games/Game.html">Game</a></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html#getGame()">getGame</a></span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ long</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html#getLastUpdatedTimestamp()">getLastUpdatedTimestamp</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Return the timestamp at which the match was last modified.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ String</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html#getLastUpdaterId()">getLastUpdaterId</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Return the ID of the participant who updated the match most recently.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ String</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html#getMatchId()">getMatchId</a></span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html#getMatchNumber()">getMatchNumber</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Return the match sequence number for this match.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ <a href="/reference/com/google/android/gms/games/multiplayer/Participant.html">Participant</a></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html#getParticipant(java.lang.String)">getParticipant</a></span>(String participantId)</nobr>
+
+ <div class="jd-descrdiv">Get a participant in a match by its ID.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ String</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html#getParticipantId(java.lang.String)">getParticipantId</a></span>(String playerId)</nobr>
+
+ <div class="jd-descrdiv">Get the participant ID for a given player.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ ArrayList<String></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html#getParticipantIds()">getParticipantIds</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Get the IDs of the participants of the given match.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html#getParticipantStatus(java.lang.String)">getParticipantStatus</a></span>(String participantId)</nobr>
+
+ <div class="jd-descrdiv">Get the status of a participant in a match.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ String</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html#getPendingParticipantId()">getPendingParticipantId</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Return the ID of the participant that is considered pending.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ byte[]</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html#getPreviousMatchData()">getPreviousMatchData</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Return the match data from the previous match, if available.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ String</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html#getRematchId()">getRematchId</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Return the match ID of the rematch that was created from this match, if any.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html#getStatus()">getStatus</a></span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html#getTurnStatus()">getTurnStatus</a></span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html#getVariant()">getVariant</a></span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html#getVersion()">getVersion</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Return the current version of the match.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html#isLocallyModified()">isLocallyModified</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Return whether or not this match has been locally modified.</div>
+
+ </td></tr>
+
+
+
+</table>
+
+
+
+
+
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+<table id="inhmethods" class="jd-sumtable"><tr><th>
+ <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
+ <div style="clear:left;">Inherited Methods</div></th></tr>
+
+
+<tr class="api apilevel-" >
+<td colspan="12">
+ <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-android.os.Parcelable" class="jd-expando-trigger closed"
+ ><img id="inherited-methods-android.os.Parcelable-trigger"
+ src="/assets/images/triangle-closed.png"
+ class="jd-expando-trigger-img" /></a>
+From interface
+
+ android.os.Parcelable
+
+<div id="inherited-methods-android.os.Parcelable">
+ <div id="inherited-methods-android.os.Parcelable-list"
+ class="jd-inheritedlinks">
+ </div>
+ <div id="inherited-methods-android.os.Parcelable-summary" style="display: none;">
+ <table class="jd-sumtable-expando">
+
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">describeContents</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">writeToParcel</span>(Parcel arg0, int arg1)</nobr>
+
+ </td></tr>
+
+
+</table>
+ </div>
+</div>
+</td></tr>
+
+
+
+<tr class="api apilevel-" >
+<td colspan="12">
+ <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.android.gms.common.data.Freezable" class="jd-expando-trigger closed"
+ ><img id="inherited-methods-com.google.android.gms.common.data.Freezable-trigger"
+ src="/assets/images/triangle-closed.png"
+ class="jd-expando-trigger-img" /></a>
+From interface
+
+ <a href="/reference/com/google/android/gms/common/data/Freezable.html">com.google.android.gms.common.data.Freezable</a>
+
+<div id="inherited-methods-com.google.android.gms.common.data.Freezable">
+ <div id="inherited-methods-com.google.android.gms.common.data.Freezable-list"
+ class="jd-inheritedlinks">
+ </div>
+ <div id="inherited-methods-com.google.android.gms.common.data.Freezable-summary" style="display: none;">
+ <table class="jd-sumtable-expando">
+
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ T</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/common/data/Freezable.html#freeze()">freeze</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Freeze a volatile representation into an immutable representation.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/common/data/Freezable.html#isDataValid()">isDataValid</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Check to see if this object is valid for use.</div>
+
+ </td></tr>
+
+
+</table>
+ </div>
+</div>
+</td></tr>
+
+
+
+<tr class="api apilevel-" >
+<td colspan="12">
+ <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.android.gms.games.multiplayer.Participatable" class="jd-expando-trigger closed"
+ ><img id="inherited-methods-com.google.android.gms.games.multiplayer.Participatable-trigger"
+ src="/assets/images/triangle-closed.png"
+ class="jd-expando-trigger-img" /></a>
+From interface
+
+ <a href="/reference/com/google/android/gms/games/multiplayer/Participatable.html">com.google.android.gms.games.multiplayer.Participatable</a>
+
+<div id="inherited-methods-com.google.android.gms.games.multiplayer.Participatable">
+ <div id="inherited-methods-com.google.android.gms.games.multiplayer.Participatable-list"
+ class="jd-inheritedlinks">
+ </div>
+ <div id="inherited-methods-com.google.android.gms.games.multiplayer.Participatable-summary" style="display: none;">
+ <table class="jd-sumtable-expando">
+
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ ArrayList<<a href="/reference/com/google/android/gms/games/multiplayer/Participant.html">Participant</a>></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/Participatable.html#getParticipants()">getParticipants</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Retrieve the <code><a href="/reference/com/google/android/gms/games/multiplayer/Participant.html">Participant</a></code>s for this object.</div>
+
+ </td></tr>
+
+
+</table>
+ </div>
+</div>
+</td></tr>
+
+
+</table>
+
+
+</div><!-- jd-descr (summary) -->
+
+<!-- Details -->
+
+
+
+
+
+
+
+
+<!-- XML Attributes -->
+
+
+<!-- Enum Values -->
+
+
+<!-- Constants -->
+
+
+<!-- ========= ENUM CONSTANTS DETAIL ======== -->
+<h2>Constants</h2>
+
+
+
+
+<A NAME="MATCH_STATUS_ACTIVE"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+ static
+ final
+ int
+ </span>
+ MATCH_STATUS_ACTIVE
+ </h4>
+ <div class="api-level">
+
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Constant returned by <code><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html#getStatus()">getStatus()</a></code> indicating that the match has started.
+</p></div>
+
+
+ <div class="jd-tagdata">
+ <span class="jd-tagtitle">Constant Value: </span>
+ <span>
+
+ 1
+ (0x00000001)
+
+ </span>
+ </div>
+
+ </div>
+</div>
+
+
+
+<A NAME="MATCH_STATUS_AUTO_MATCHING"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+ static
+ final
+ int
+ </span>
+ MATCH_STATUS_AUTO_MATCHING
+ </h4>
+ <div class="api-level">
+
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Constant returned by <code><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html#getStatus()">getStatus()</a></code> indicating that one or more slots are waiting to be
+ filled by auto-matching.
+</p></div>
+
+
+ <div class="jd-tagdata">
+ <span class="jd-tagtitle">Constant Value: </span>
+ <span>
+
+ 0
+ (0x00000000)
+
+ </span>
+ </div>
+
+ </div>
+</div>
+
+
+
+<A NAME="MATCH_STATUS_CANCELED"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+ static
+ final
+ int
+ </span>
+ MATCH_STATUS_CANCELED
+ </h4>
+ <div class="api-level">
+
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Constant returned by <code><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html#getStatus()">getStatus()</a></code> indicating that the match was canceled by one of
+ the participants.
+</p></div>
+
+
+ <div class="jd-tagdata">
+ <span class="jd-tagtitle">Constant Value: </span>
+ <span>
+
+ 4
+ (0x00000004)
+
+ </span>
+ </div>
+
+ </div>
+</div>
+
+
+
+<A NAME="MATCH_STATUS_COMPLETE"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+ static
+ final
+ int
+ </span>
+ MATCH_STATUS_COMPLETE
+ </h4>
+ <div class="api-level">
+
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Constant returned by <code><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html#getStatus()">getStatus()</a></code> indicating that the match has finished.
+</p></div>
+
+
+ <div class="jd-tagdata">
+ <span class="jd-tagtitle">Constant Value: </span>
+ <span>
+
+ 2
+ (0x00000002)
+
+ </span>
+ </div>
+
+ </div>
+</div>
+
+
+
+<A NAME="MATCH_STATUS_EXPIRED"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+ static
+ final
+ int
+ </span>
+ MATCH_STATUS_EXPIRED
+ </h4>
+ <div class="api-level">
+
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Constant returned by <code><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html#getStatus()">getStatus()</a></code> indicating that the match expired.
+</p></div>
+
+
+ <div class="jd-tagdata">
+ <span class="jd-tagtitle">Constant Value: </span>
+ <span>
+
+ 3
+ (0x00000003)
+
+ </span>
+ </div>
+
+ </div>
+</div>
+
+
+
+<A NAME="MATCH_TURN_STATUS_COMPLETE"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+ static
+ final
+ int
+ </span>
+ MATCH_TURN_STATUS_COMPLETE
+ </h4>
+ <div class="api-level">
+
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Turn status constant for matches which have been completed.
+</p></div>
+
+
+ <div class="jd-tagdata">
+ <span class="jd-tagtitle">Constant Value: </span>
+ <span>
+
+ 3
+ (0x00000003)
+
+ </span>
+ </div>
+
+ </div>
+</div>
+
+
+
+<A NAME="MATCH_TURN_STATUS_INVITED"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+ static
+ final
+ int
+ </span>
+ MATCH_TURN_STATUS_INVITED
+ </h4>
+ <div class="api-level">
+
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Turn status constant for matches which the current player has been invited to.
+</p></div>
+
+
+ <div class="jd-tagdata">
+ <span class="jd-tagtitle">Constant Value: </span>
+ <span>
+
+ 0
+ (0x00000000)
+
+ </span>
+ </div>
+
+ </div>
+</div>
+
+
+
+<A NAME="MATCH_TURN_STATUS_MY_TURN"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+ static
+ final
+ int
+ </span>
+ MATCH_TURN_STATUS_MY_TURN
+ </h4>
+ <div class="api-level">
+
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Turn status constant for matches where it is the current player's turn.
+</p></div>
+
+
+ <div class="jd-tagdata">
+ <span class="jd-tagtitle">Constant Value: </span>
+ <span>
+
+ 1
+ (0x00000001)
+
+ </span>
+ </div>
+
+ </div>
+</div>
+
+
+
+<A NAME="MATCH_TURN_STATUS_THEIR_TURN"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+ static
+ final
+ int
+ </span>
+ MATCH_TURN_STATUS_THEIR_TURN
+ </h4>
+ <div class="api-level">
+
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Turn status constant for matches where it is not the current player's turn.
+</p></div>
+
+
+ <div class="jd-tagdata">
+ <span class="jd-tagtitle">Constant Value: </span>
+ <span>
+
+ 2
+ (0x00000002)
+
+ </span>
+ </div>
+
+ </div>
+</div>
+
+
+
+<A NAME="MATCH_VARIANT_ANY"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+ static
+ final
+ int
+ </span>
+ MATCH_VARIANT_ANY
+ </h4>
+ <div class="api-level">
+
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Constant used to indicate that the variant for a match is unspecified.
+</p></div>
+
+
+ <div class="jd-tagdata">
+ <span class="jd-tagtitle">Constant Value: </span>
+ <span>
+
+ -1
+ (0xffffffff)
+
+ </span>
+ </div>
+
+ </div>
+</div>
+
+
+
+
+<!-- Fields -->
+
+
+<!-- ========= FIELD DETAIL ======== -->
+<h2>Fields</h2>
+
+
+
+
+<A NAME="MATCH_TURN_STATUS_ALL"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+ static
+ final
+ int[]
+ </span>
+ MATCH_TURN_STATUS_ALL
+ </h4>
+ <div class="api-level">
+
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Array of all the turn status constants.
+</p></div>
+
+
+ </div>
+</div>
+
+
+
+
+<!-- Public ctors -->
+
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<!-- Protected ctors -->
+
+
+
+<!-- ========= METHOD DETAIL ======== -->
+<!-- Public methdos -->
+
+<h2>Public Methods</h2>
+
+
+
+<A NAME="canRematch()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+ abstract
+
+ boolean
+ </span>
+ <span class="sympad">canRematch</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Return whether or not this match can be rematched. This will return true when the match has
+ complete and has not already been rematched.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>Whether or not this match can be rematched.
+</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="getAutoMatchCriteria()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+ abstract
+
+ Bundle
+ </span>
+ <span class="sympad">getAutoMatchCriteria</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Retrieves the automatch criteria used to create or join this match, if any. May be null if
+ the match has no automatch properties.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>A bundle containing the automatch criteria for this match.
+</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="getAvailableAutoMatchSlots()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+ abstract
+
+ int
+ </span>
+ <span class="sympad">getAvailableAutoMatchSlots</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Return the maximum number of available automatch slots for this match. If automatch criteria
+ were not specified during match creation, or if all slots have been filled, this will return
+ 0.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>The maximum number of additional players that can be added to this match.
+</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="getCreationTimestamp()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+ abstract
+
+ long
+ </span>
+ <span class="sympad">getCreationTimestamp</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p></p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>The server timestamp at which the match was created.
+</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="getCreatorId()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+ abstract
+
+ String
+ </span>
+ <span class="sympad">getCreatorId</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p></p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>The ID of the participant who created this Match.
+</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="getData()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+ abstract
+
+ byte[]
+ </span>
+ <span class="sympad">getData</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Return the current (game-specific) data for this match.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>Byte array representing the current (game-specific) match state data.
+</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="getGame()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+ abstract
+
+ <a href="/reference/com/google/android/gms/games/Game.html">Game</a>
+ </span>
+ <span class="sympad">getGame</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p></p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>The <code><a href="/reference/com/google/android/gms/games/Game.html">Game</a></code> object that owns this Match. Note that this should not be cached
+ separately from the Match itself, since the data underlying this object may change.
+</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="getLastUpdatedTimestamp()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+ abstract
+
+ long
+ </span>
+ <span class="sympad">getLastUpdatedTimestamp</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Return the timestamp at which the match was last modified.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>The server timestamp at which the match was last modified.
+</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="getLastUpdaterId()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+ abstract
+
+ String
+ </span>
+ <span class="sympad">getLastUpdaterId</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Return the ID of the participant who updated the match most recently.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>The ID of the last participant who updated this Match object.
+</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="getMatchId()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+ abstract
+
+ String
+ </span>
+ <span class="sympad">getMatchId</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p></p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>The ID of this Match.
+</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="getMatchNumber()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+ abstract
+
+ int
+ </span>
+ <span class="sympad">getMatchNumber</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Return the match sequence number for this match. This number starts at 1, and increases every
+ time a rematch is created.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>The match sequence number for this match.
+</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="getParticipant(java.lang.String)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+ abstract
+
+ <a href="/reference/com/google/android/gms/games/multiplayer/Participant.html">Participant</a>
+ </span>
+ <span class="sympad">getParticipant</span>
+ <span class="normal">(String participantId)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Get a participant in a match by its ID. Note that the participant ID must correspond to a
+ participant in this match, or this method will throw an exception.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>participantId</td>
+ <td>Match-local ID of the participant to retrieve status for.</td>
+ </tr>
+ </table>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>The participant corresponding to the given ID.</li></ul>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Throws</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>IllegalStateException</th>
+ <td>If the participant is not a participant in this match.
+</td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="getParticipantId(java.lang.String)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+ abstract
+
+ String
+ </span>
+ <span class="sympad">getParticipantId</span>
+ <span class="normal">(String playerId)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Get the participant ID for a given player. This will only return a non-null ID if the player
+ is actually a participant in the match and that player's identity is visible to the current
+ player. Note that this will always return non-null for the current player.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>playerId</td>
+ <td>Player ID to find participant ID for.</td>
+ </tr>
+ </table>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>The participant ID corresponding to given player, or null if none found.
+</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="getParticipantIds()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+ abstract
+
+ ArrayList<String>
+ </span>
+ <span class="sympad">getParticipantIds</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Get the IDs of the participants of the given match.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>The IDs of the participants in this match. These are returned in the participant
+ order of the match. Note that these are not stable across matches.
+</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="getParticipantStatus(java.lang.String)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+ abstract
+
+ int
+ </span>
+ <span class="sympad">getParticipantStatus</span>
+ <span class="normal">(String participantId)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Get the status of a participant in a match. Note that the participant ID must correspond to a
+ participant in this match, or this method will throw an exception.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>participantId</td>
+ <td>Match-local ID of the participant to retrieve status for.</td>
+ </tr>
+ </table>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>The current status of the participant in this match. One of
+ <code><a href="/reference/com/google/android/gms/games/multiplayer/Participant.html#STATUS_INVITED">STATUS_INVITED</a></code>, <code><a href="/reference/com/google/android/gms/games/multiplayer/Participant.html#STATUS_JOINED">STATUS_JOINED</a></code>,
+ <code><a href="/reference/com/google/android/gms/games/multiplayer/Participant.html#STATUS_DECLINED">STATUS_DECLINED</a></code>, <code><a href="/reference/com/google/android/gms/games/multiplayer/Participant.html#STATUS_LEFT">STATUS_LEFT</a></code>,
+ or <code><a href="/reference/com/google/android/gms/games/multiplayer/Participant.html#STATUS_NOT_INVITED_YET">STATUS_NOT_INVITED_YET</a></code>.</li></ul>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Throws</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>IllegalStateException</th>
+ <td>If the participant is not a participant in this match.
+</td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="getPendingParticipantId()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+ abstract
+
+ String
+ </span>
+ <span class="sympad">getPendingParticipantId</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Return the ID of the participant that is considered pending. If no participant is considered
+ pending (ie, the match is over, etc), this function will return null.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>The ID of the participant that is considered pending, if any. Returns null if no
+ participant is pending.
+</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="getPreviousMatchData()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+ abstract
+
+ byte[]
+ </span>
+ <span class="sympad">getPreviousMatchData</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Return the match data from the previous match, if available. Note that this is only provided
+ on the first turn of a rematched match.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>Byte array of data from the previous match of a rematch, or null if not available.
+</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="getRematchId()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+ abstract
+
+ String
+ </span>
+ <span class="sympad">getRematchId</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Return the match ID of the rematch that was created from this match, if any. This will only
+ be non-null if a rematch has been created.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>The match ID of the rematch, or null if no rematch exists.
+</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="getStatus()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+ abstract
+
+ int
+ </span>
+ <span class="sympad">getStatus</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p></p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>The current status of the match. One of <code><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html#MATCH_STATUS_AUTO_MATCHING">MATCH_STATUS_AUTO_MATCHING</a></code>,
+ <code><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html#MATCH_STATUS_ACTIVE">MATCH_STATUS_ACTIVE</a></code>, <code><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html#MATCH_STATUS_COMPLETE">MATCH_STATUS_COMPLETE</a></code>,
+ <code><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html#MATCH_STATUS_EXPIRED">MATCH_STATUS_EXPIRED</a></code>, or <code><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html#MATCH_STATUS_CANCELED">MATCH_STATUS_CANCELED</a></code>.
+</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="getTurnStatus()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+ abstract
+
+ int
+ </span>
+ <span class="sympad">getTurnStatus</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p></p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>The turn status of the match for the current player. One of
+ <code><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html#MATCH_TURN_STATUS_INVITED">MATCH_TURN_STATUS_INVITED</a></code>, <code><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html#MATCH_TURN_STATUS_MY_TURN">MATCH_TURN_STATUS_MY_TURN</a></code>,
+ <code><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html#MATCH_TURN_STATUS_THEIR_TURN">MATCH_TURN_STATUS_THEIR_TURN</a></code>, or <code><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html#MATCH_TURN_STATUS_COMPLETE">MATCH_TURN_STATUS_COMPLETE</a></code>.
+</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="getVariant()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+ abstract
+
+ int
+ </span>
+ <span class="sympad">getVariant</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p></p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>Variant specified for this match, if any. A variant is an optional
+ developer-controlled parameter describing the type of game to play, ranging from
+ 1-1023 (inclusive). If this match had no variant specified, returns
+ <code><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html#MATCH_VARIANT_ANY">MATCH_VARIANT_ANY</a></code>.
+</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="getVersion()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+ abstract
+
+ int
+ </span>
+ <span class="sympad">getVersion</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Return the current version of the match.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>The current version of the match.
+</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="isLocallyModified()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+ abstract
+
+ boolean
+ </span>
+ <span class="sympad">isLocallyModified</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Return whether or not this match has been locally modified. If this is true, the local device
+ has match state which has not successfully synced to the server yet. In this state, further
+ mutations to the match will fail with a status of
+ STATUS_MATCH_ERROR_LOCALLY_MODIFIED.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>Whether this match has local modifications or not.
+</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+
+
+
+<!-- ========= METHOD DETAIL ======== -->
+
+
+
+<!-- ========= END OF CLASS DATA ========= -->
+<A NAME="navbar_top"></A>
+
+<div id="footer" class="wrap" >
+
+
+ <div id="copyright">
+
+ Except as noted, this content is licensed under <a
+ href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.
+ For details and restrictions, see the <a href="/license.html">
+ Content License</a>.
+ </div>
+ <div id="build_info">
+
+<script src="/timestamp.js" type="text/javascript"></script>
+<script>document.write(BUILD_TIMESTAMP)</script>
+
+ </div>
+
+
+ <div id="footerlinks">
+
+ <p>
+ <a href="/about/index.html">About Android</a> |
+ <a href="/legal.html">Legal</a> |
+ <a href="/support.html">Support</a>
+ </p>
+ </div>
+
+</div> <!-- end footer -->
+</div> <!-- jd-content -->
+
+</div><!-- end doc-content -->
+
+</div> <!-- end body-content -->
+
+
+
+
+
+
+</body>
+</html>
diff --git a/docs/html/reference/com/google/android/gms/auth/RecoveryDecision.html b/docs/html/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatchBuffer.html
similarity index 68%
copy from docs/html/reference/com/google/android/gms/auth/RecoveryDecision.html
copy to docs/html/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatchBuffer.html
index 59a1346..98deb52 100644
--- a/docs/html/reference/com/google/android/gms/auth/RecoveryDecision.html
+++ b/docs/html/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatchBuffer.html
@@ -83,7 +83,7 @@
<meta name="viewport" content="width=device-width" />
<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
-<title>RecoveryDecision | Android Developers</title>
+<title>TurnBasedMatchBuffer | Android Developers</title>
<!-- STYLESHEETS -->
<link rel="stylesheet"
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -128,7 +129,7 @@
<img src="/assets/images/dac_logo.png" width="123" height="25" alt="Android Developers" />
</a>
<div class="btn-quicknav" id="btn-quicknav">
- <a href="#" class="arrow-inactive">Quicknav</a>
+ <a href="#" class="arrow-inactive">Quicknav</a>
<a href="#" class="arrow-active">Quicknav</a>
</div>
</div>
@@ -140,7 +141,7 @@
ru-lang="Проектирование"
ko-lang="디자인"
ja-lang="設計"
- es-lang="Diseñar"
+ es-lang="Diseñar"
>Design</a></li>
<li class="develop"><a href="/develop/index.html"
zh-tw-lang="開發"
@@ -148,7 +149,7 @@
ru-lang="Разработка"
ko-lang="개발"
ja-lang="開発"
- es-lang="Desarrollar"
+ es-lang="Desarrollar"
>Develop</a></li>
<li class="distribute last"><a href="/distribute/index.html"
zh-tw-lang="發佈"
@@ -156,10 +157,10 @@
ru-lang="Распространение"
ko-lang="배포"
ja-lang="配布"
- es-lang="Distribuir"
+ es-lang="Distribuir"
>Distribute</a></li>
</ul>
-
+
<!-- New Search -->
<div class="menu-container">
<div class="moremenu">
@@ -180,9 +181,9 @@
<li class="active"><a>Android Developers</a></li>
<li><a href="http://source.android.com">Android Open Source Project</a></li>
</ul>
-
-
-
+
+
+
<div class="header">Language</div>
<div id="language" class="locales">
<select name="language" onChange="changeLangPref(this.value, true)">
@@ -200,8 +201,8 @@
loadLangPref();
//-->
</script>
-
-
+
+
<br class="clearfix" />
@@ -215,7 +216,7 @@
<form onsubmit="return submit_search()">
<input id="search_autocomplete" type="text" value="" autocomplete="off" name="q"
onfocus="search_focus_changed(this, true)" onblur="search_focus_changed(this, false)"
-onkeydown="return search_changed(event, true, '/')"
+onkeydown="return search_changed(event, true, '/')"
onkeyup="return search_changed(event, false, '/')" />
</form>
<div class="right"></div>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -254,8 +257,8 @@
</div>
<!-- /New Search>
-
-
+
+
<!-- Expanded quicknav -->
<div id="quicknav" class="col-9">
<ul>
@@ -277,15 +280,15 @@
ru-lang="Курсы"
ko-lang="교육"
ja-lang="トレーニング"
- es-lang="Capacitación"
+ es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
ko-lang="API 가이드"
ja-lang="API ガイド"
- es-lang="Guías de la API"
+ es-lang="Guías de la API"
>API Guides</a></li>
<li><a href="/reference/packages.html"
zh-tw-lang="參考資源"
@@ -293,7 +296,7 @@
ru-lang="Справочник"
ko-lang="참조문서"
ja-lang="リファレンス"
- es-lang="Referencia"
+ es-lang="Referencia"
>Reference</a></li>
<li><a href="/tools/index.html"
zh-tw-lang="相關工具"
@@ -301,13 +304,16 @@
ru-lang="Инструменты"
ko-lang="도구"
ja-lang="ツール"
- es-lang="Herramientas"
+ es-lang="Herramientas"
>Tools</a>
<ul><li><a href="/sdk/index.html">Get the SDK</a></li></ul>
</li>
<li><a href="/google/index.html">Google Services</a>
</li>
-
+
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -326,15 +332,15 @@
</div>
</div>
<!-- /Header -->
-
-
+
+
<div id="searchResults" class="wrap" style="display:none;">
<h2 id="searchTitle">Results</h2>
<div id="leftSearchControl" class="search-control">Loading...</div>
</div>
-
-
-
+
+
+
<!-- Secondary x-nav -->
<div id="nav-x">
<div class="wrap">
@@ -345,15 +351,15 @@
ru-lang="Курсы"
ko-lang="교육"
ja-lang="トレーニング"
- es-lang="Capacitación"
+ es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
ko-lang="API 가이드"
ja-lang="API ガイド"
- es-lang="Guías de la API"
+ es-lang="Guías de la API"
>API Guides</a></li>
<li class="reference"><a href="/reference/packages.html"
zh-tw-lang="參考資源"
@@ -361,7 +367,7 @@
ru-lang="Справочник"
ko-lang="참조문서"
ja-lang="リファレンス"
- es-lang="Referencia"
+ es-lang="Referencia"
>Reference</a></li>
<li class="tools"><a href="/tools/index.html"
zh-tw-lang="相關工具"
@@ -374,21 +380,25 @@
<li class="google"><a href="/google/index.html"
>Google Services</a>
</li>
-
+
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
-
+
</div>
<!-- /Sendondary x-nav -->
-
-
-
+
+
+
<div class="wrap clearfix" id="body-content">
<div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
<div id="devdoc-nav" class="scroll-pane">
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
@@ -618,12 +631,12 @@
</script>
-
+
</div>
<script type="text/javascript">
showGoogleRefTree();
-
+
</script>
</div> <!-- end side-nav -->
<script>
@@ -633,7 +646,7 @@
</script>
-
+
@@ -643,21 +656,26 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
<div class="sum-details-links">
@@ -669,22 +687,19 @@
- <a href="#inhconstants">Inherited Constants</a>
-
-
-
- | <a href="#lfields">Fields</a>
-
- | <a href="#pubctors">Ctors</a>
-
+ <a href="#pubctors">Ctors</a>
+
| <a href="#pubmethods">Methods</a>
-
+
+
+
+ | <a href="#promethods">Protected Methods</a>
@@ -694,9 +709,9 @@
</div><!-- end sum-details-links -->
<div class="api-level">
-
-
-
+
+
+
</div>
</div><!-- end api-info-block -->
@@ -706,28 +721,27 @@
<div id="jd-header">
public
-
-
-
+
+ final
+
class
-<h1 itemprop="name">RecoveryDecision</h1>
+<h1 itemprop="name">TurnBasedMatchBuffer</h1>
-
- extends Object<br/>
-
-
-
-
-
- implements
-
- Parcelable
-
-
-
+
+
+
+
+ extends <a href="/reference/com/google/android/gms/common/data/DataBuffer.html">DataBuffer</a><T><br/>
+
+
+
+
+
+
+
</div><!-- end header -->
@@ -739,18 +753,28 @@
<tr>
-
- <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
+
+ <td colspan="3" class="jd-inheritance-class-cell">java.lang.Object</td>
</tr>
-
+
<tr>
-
+
<td class="jd-inheritance-space"> ↳</td>
-
- <td colspan="1" class="jd-inheritance-class-cell">com.google.android.gms.auth.RecoveryDecision</td>
+
+ <td colspan="2" class="jd-inheritance-class-cell"><a href="/reference/com/google/android/gms/common/data/DataBuffer.html">com.google.android.gms.common.data.DataBuffer</a><T></td>
</tr>
-
+
+
+ <tr>
+
+ <td class="jd-inheritance-space"> </td>
+
+ <td class="jd-inheritance-space"> ↳</td>
+
+ <td colspan="1" class="jd-inheritance-class-cell">com.google.android.gms.games.multiplayer.turnbased.TurnBasedMatchBuffer</td>
+ </tr>
+
</table>
@@ -763,6 +787,10 @@
<div class="jd-descr">
+<h2>Class Overview</h2>
+<p itemprop="articleBody"><code><a href="/reference/com/google/android/gms/common/data/DataBuffer.html">DataBuffer</a></code> implementation containing TurnBasedMatch details.
+</p>
+
@@ -804,130 +832,6 @@
-<!-- =========== ENUM CONSTANT SUMMARY =========== -->
-<table id="inhconstants" class="jd-sumtable"><tr><th>
- <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
- <div style="clear:left;">Inherited Constants</div></th></tr>
-
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-
- <a href="#" onclick="return toggleInherited(this, null)" id="inherited-constants-android.os.Parcelable" class="jd-expando-trigger closed"
- ><img id="inherited-constants-android.os.Parcelable-trigger"
- src="/assets/images/triangle-closed.png"
- class="jd-expando-trigger-img" /></a>From interface
-android.os.Parcelable
-<div id="inherited-constants-android.os.Parcelable">
- <div id="inherited-constants-android.os.Parcelable-list"
- class="jd-inheritedlinks">
- </div>
- <div id="inherited-constants-android.os.Parcelable-summary" style="display: none;">
- <table class="jd-sumtable-expando">
-
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol">int</td>
- <td class="jd-linkcol">CONTENTS_FILE_DESCRIPTOR</td>
- <td class="jd-descrcol" width="100%"></td>
- </tr>
-
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol">int</td>
- <td class="jd-linkcol">PARCELABLE_WRITE_RETURN_VALUE</td>
- <td class="jd-descrcol" width="100%"></td>
- </tr>
-
-
-</table>
- </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-
-
-<!-- =========== FIELD SUMMARY =========== -->
-<table id="lfields" class="jd-sumtable"><tr><th colspan="12">Fields</th></tr>
-
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
- static
- final
- <a href="/reference/com/google/android/gms/auth/RecoveryDecisionCreator.html">RecoveryDecisionCreator</a></nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#CREATOR">CREATOR</a></td>
- <td class="jd-descrcol" width="100%"></td>
- </tr>
-
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- boolean</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#isRecoveryInfoNeeded">isRecoveryInfoNeeded</a></td>
- <td class="jd-descrcol" width="100%">Is <code>true</code> if either the account has no recovery information or it
- was updated long time back (controlled by server, default 1 year).</td>
- </tr>
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- boolean</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#isRecoveryInterstitialAllowed">isRecoveryInterstitialAllowed</a></td>
- <td class="jd-descrcol" width="100%">Is <code>true</code> iff the user has permission to update the account.</td>
- </tr>
-
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- PendingIntent</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#recoveryIntent">recoveryIntent</a></td>
- <td class="jd-descrcol" width="100%">A PendingIntent to an activity that gathers recovery information for the given account.</td>
- </tr>
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- PendingIntent</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#recoveryIntentWithoutIntro">recoveryIntentWithoutIntro</a></td>
- <td class="jd-descrcol" width="100%">A PendingIntent to an activity that gathers recovery information for the given account.</td>
- </tr>
-
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- boolean</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#showRecoveryInterstitial">showRecoveryInterstitial</a></td>
- <td class="jd-descrcol" width="100%">Represents the decision and should be obeyed by the client.</td>
- </tr>
-
-
-
-</table>
@@ -940,19 +844,19 @@
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#RecoveryDecision()">RecoveryDecision</a></span>()</nobr>
-
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatchBuffer.html#TurnBasedMatchBuffer(com.google.android.gms.common.data.DataHolder)">TurnBasedMatchBuffer</a></span>(<a href="/reference/com/google/android/gms/common/data/DataHolder.html">DataHolder</a> dataHolder)</nobr>
+
</td></tr>
@@ -969,51 +873,85 @@
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
- int</nobr>
+
+
+ final
+
+
+ T</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#describeContents()">describeContents</a></span>()</nobr>
-
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatchBuffer.html#get(int)">get</a></span>(int position)</nobr>
+
+ <div class="jd-descrdiv">Get the item at the specified position.</div>
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
int</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#getVersionCode()">getVersionCode</a></span>()</nobr>
-
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatchBuffer.html#getCount()">getCount</a></span>()</nobr>
+
</td></tr>
-
+
+</table>
+
+
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+<table id="promethods" class="jd-sumtable"><tr><th colspan="12">Protected Methods</th></tr>
+
+
+
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
- void</nobr>
+
+
+
+
+
+ <a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html">TurnBasedMatch</a></nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#writeToParcel(android.os.Parcel, int)">writeToParcel</a></span>(Parcel out, int flags)</nobr>
-
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatchBuffer.html#getEntry(int, int)">getEntry</a></span>(int rowIndex, int numChildren)</nobr>
+
+ <div class="jd-descrdiv">Subclasses must implement this method to get an entry for the provided rowIndex.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ String</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatchBuffer.html#getPrimaryDataMarkerColumn()">getPrimaryDataMarkerColumn</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Subclasses must implement this method to indicate a column in the data holder that can be
+ used to determine where the boundaries between the primary data entities occur.</div>
+
</td></tr>
@@ -1024,8 +962,6 @@
-
-
<!-- ========== METHOD SUMMARY =========== -->
<table id="inhmethods" class="jd-sumtable"><tr><th>
<a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
@@ -1034,6 +970,130 @@
<tr class="api apilevel-" >
<td colspan="12">
+ <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.android.gms.common.data.DataBuffer" class="jd-expando-trigger closed"
+ ><img id="inherited-methods-com.google.android.gms.common.data.DataBuffer-trigger"
+ src="/assets/images/triangle-closed.png"
+ class="jd-expando-trigger-img" /></a>
+From class
+
+ <a href="/reference/com/google/android/gms/common/data/DataBuffer.html">com.google.android.gms.common.data.DataBuffer</a>
+
+<div id="inherited-methods-com.google.android.gms.common.data.DataBuffer">
+ <div id="inherited-methods-com.google.android.gms.common.data.DataBuffer-list"
+ class="jd-inheritedlinks">
+ </div>
+ <div id="inherited-methods-com.google.android.gms.common.data.DataBuffer-summary" style="display: none;">
+ <table class="jd-sumtable-expando">
+
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/common/data/DataBuffer.html#close()">close</a></span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/common/data/DataBuffer.html#describeContents()">describeContents</a></span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ T</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/common/data/DataBuffer.html#get(int)">get</a></span>(int position)</nobr>
+
+ <div class="jd-descrdiv">Get the item at the specified position.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/common/data/DataBuffer.html#getCount()">getCount</a></span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/common/data/DataBuffer.html#isClosed()">isClosed</a></span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ Iterator<T></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/common/data/DataBuffer.html#iterator()">iterator</a></span>()</nobr>
+
+ </td></tr>
+
+
+</table>
+ </div>
+</div>
+</td></tr>
+
+
+
+<tr class="api apilevel-" >
+<td colspan="12">
<a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
><img id="inherited-methods-java.lang.Object-trigger"
src="/assets/images/triangle-closed.png"
@@ -1048,182 +1108,182 @@
</div>
<div id="inherited-methods-java.lang.Object-summary" style="display: none;">
<table class="jd-sumtable-expando">
-
-
+
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
Object</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">clone</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
boolean</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">equals</span>(Object arg0)</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">finalize</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
Class<?></nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">getClass</span>()</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
int</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">hashCode</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">notify</span>()</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">notifyAll</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
String</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">toString</span>()</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">wait</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">wait</span>(long arg0)</nobr>
-
+
</td></tr>
@@ -1236,52 +1296,36 @@
<tr class="api apilevel-" >
<td colspan="12">
- <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-android.os.Parcelable" class="jd-expando-trigger closed"
- ><img id="inherited-methods-android.os.Parcelable-trigger"
+ <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Iterable" class="jd-expando-trigger closed"
+ ><img id="inherited-methods-java.lang.Iterable-trigger"
src="/assets/images/triangle-closed.png"
class="jd-expando-trigger-img" /></a>
From interface
- android.os.Parcelable
+ java.lang.Iterable
-<div id="inherited-methods-android.os.Parcelable">
- <div id="inherited-methods-android.os.Parcelable-list"
+<div id="inherited-methods-java.lang.Iterable">
+ <div id="inherited-methods-java.lang.Iterable-list"
class="jd-inheritedlinks">
</div>
- <div id="inherited-methods-android.os.Parcelable-summary" style="display: none;">
+ <div id="inherited-methods-java.lang.Iterable-summary" style="display: none;">
<table class="jd-sumtable-expando">
-
-
+
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
abstract
-
-
-
-
- int</nobr>
- </td>
- <td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad">describeContents</span>()</nobr>
-
- </td></tr>
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol"><nobr>
- abstract
-
-
-
-
- void</nobr>
+
+
+ Iterator<T></nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad">writeToParcel</span>(Parcel arg0, int arg1)</nobr>
-
+ <span class="sympad">iterator</span>()</nobr>
+
</td></tr>
@@ -1317,197 +1361,6 @@
<!-- Fields -->
-<!-- ========= FIELD DETAIL ======== -->
-<h2>Fields</h2>
-
-
-
-
-<A NAME="CREATOR"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
- static
- final
- <a href="/reference/com/google/android/gms/auth/RecoveryDecisionCreator.html">RecoveryDecisionCreator</a>
- </span>
- CREATOR
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-
- </div>
-</div>
-
-
-
-<A NAME="isRecoveryInfoNeeded"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- boolean
- </span>
- isRecoveryInfoNeeded
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>Is <code>true</code> if either the account has no recovery information or it
- was updated long time back (controlled by server, default 1 year).
-</p></div>
-
-
- </div>
-</div>
-
-
-
-<A NAME="isRecoveryInterstitialAllowed"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- boolean
- </span>
- isRecoveryInterstitialAllowed
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>Is <code>true</code> iff the user has permission to update the account.
- Dasher accounts can have recovery information edit disabled by the administrator.
- Eg: @google.com
-</p></div>
-
-
- </div>
-</div>
-
-
-
-<A NAME="recoveryIntent"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- PendingIntent
- </span>
- recoveryIntent
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>A PendingIntent to an activity that gathers recovery information for the given account.
- This intent will be null iff isRecoveryInterstitialAllowed is <code>false</code>.
-</p></div>
-
-
- </div>
-</div>
-
-
-
-<A NAME="recoveryIntentWithoutIntro"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- PendingIntent
- </span>
- recoveryIntentWithoutIntro
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>A PendingIntent to an activity that gathers recovery information for the given account.
- This intent will be null iff isRecoveryInterstitialAllowed is <code>false</code>.
- This intent directly skips to the input activity without showing the intro message.
-</p></div>
-
-
- </div>
-</div>
-
-
-
-<A NAME="showRecoveryInterstitial"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- boolean
- </span>
- showRecoveryInterstitial
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>Represents the decision and should be obeyed by the client. The remaining
- two flags are provided as additional information for one off decisions. This value
- is <code>true</code> iff isRecoveryInfoNeeded is <code>true</code>, isRecoveryInterstitialAllowed is
- <code>true</code> and a specified period (controlled by server, default 2 months) has passed
- since the user was shown a prompt for recovery information on any google property
- (Android, Web, etc.)
-</p></div>
-
-
- </div>
-</div>
-
-
-
-
<!-- Public ctors -->
@@ -1516,29 +1369,29 @@
-<A NAME="RecoveryDecision()"></A>
+<A NAME="TurnBasedMatchBuffer(com.google.android.gms.common.data.DataHolder)"></A>
-<div class="jd-details api apilevel-">
+<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
- public
-
-
-
-
-
+ public
+
+
+
+
+
</span>
- <span class="sympad">RecoveryDecision</span>
- <span class="normal">()</span>
+ <span class="sympad">TurnBasedMatchBuffer</span>
+ <span class="normal">(<a href="/reference/com/google/android/gms/common/data/DataHolder.html">DataHolder</a> dataHolder)</span>
</h4>
<div class="api-level">
<div></div>
-
-
+
+
</div>
<div class="jd-details-descr">
-
+
<div class="jd-tagdata jd-tagdescr"><p></p></div>
</div>
@@ -1560,87 +1413,78 @@
-<A NAME="describeContents()"></A>
+<A NAME="get(int)"></A>
-<div class="jd-details api apilevel-">
+<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
- public
-
-
-
-
- int
+ public
+
+ final
+
+
+ T
</span>
- <span class="sympad">describeContents</span>
- <span class="normal">()</span>
+ <span class="sympad">get</span>
+ <span class="normal">(int position)</span>
</h4>
<div class="api-level">
<div></div>
-
-
+
+
</div>
<div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+ <div class="jd-tagdata jd-tagdescr"><p>Get the item at the specified position. Note that the objects returned from subsequent
+ invocations of this method for the same position may not be identical objects, but will be
+ equal in value. In other words:
+ <p>
+ <code>buffer.get(i) == buffer.get(i)</code> may return false.
+ <p>
+ <code>buffer.get(i).equals(buffer.get(i))</code> will return true.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>position</td>
+ <td>The position of the item to retrieve.</td>
+ </tr>
+ </table>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>the item at <code>position</code> in this buffer.
+</li></ul>
+ </div>
</div>
</div>
-<A NAME="getVersionCode()"></A>
+<A NAME="getCount()"></A>
-<div class="jd-details api apilevel-">
+<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
- public
-
-
-
-
+ public
+
+
+
+
int
</span>
- <span class="sympad">getVersionCode</span>
+ <span class="sympad">getCount</span>
<span class="normal">()</span>
</h4>
<div class="api-level">
<div></div>
-
-
+
+
</div>
<div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p></p></div>
- </div>
-</div>
-
-
-<A NAME="writeToParcel(android.os.Parcel, int)"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
-
-
- void
- </span>
- <span class="sympad">writeToParcel</span>
- <span class="normal">(Parcel out, int flags)</span>
- </h4>
- <div class="api-level">
- <div></div>
-
-
-
- </div>
- <div class="jd-details-descr">
-
<div class="jd-tagdata jd-tagdescr"><p></p></div>
</div>
@@ -1652,23 +1496,113 @@
<!-- ========= METHOD DETAIL ======== -->
+<h2>Protected Methods</h2>
+
+
+
+<A NAME="getEntry(int, int)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ protected
+
+
+
+
+ <a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html">TurnBasedMatch</a>
+ </span>
+ <span class="sympad">getEntry</span>
+ <span class="normal">(int rowIndex, int numChildren)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Subclasses must implement this method to get an entry for the provided rowIndex.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>rowIndex</td>
+ <td>Row index of underlying DataHolder to construct an entry for.</td>
+ </tr>
+ <tr>
+ <th>numChildren</td>
+ <td>The number of children underneath the given entry.</td>
+ </tr>
+ </table>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>Appropriate entry for this row.
+</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="getPrimaryDataMarkerColumn()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ protected
+
+
+
+
+ String
+ </span>
+ <span class="sympad">getPrimaryDataMarkerColumn</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Subclasses must implement this method to indicate a column in the data holder that can be
+ used to determine where the boundaries between the primary data entities occur.
+ <p>
+ Note that the column must contain a String value.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>The name of a column in the data holder that is guaranteed to change when the primary
+ data type transitions to another instance (typically an ID of the primary data type).
+</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+
<!-- ========= END OF CLASS DATA ========= -->
<A NAME="navbar_top"></A>
<div id="footer" class="wrap" >
-
+
<div id="copyright">
-
+
Except as noted, this content is licensed under <a
- href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.
+ href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.
For details and restrictions, see the <a href="/license.html">
Content License</a>.
</div>
<div id="build_info">
-
+
<script src="/timestamp.js" type="text/javascript"></script>
<script>document.write(BUILD_TIMESTAMP)</script>
@@ -1676,7 +1610,7 @@
<div id="footerlinks">
-
+
<p>
<a href="/about/index.html">About Android</a> |
<a href="/legal.html">Legal</a> |
@@ -1689,7 +1623,7 @@
</div><!-- end doc-content -->
-</div> <!-- end body-content -->
+</div> <!-- end body-content -->
diff --git a/docs/html/reference/com/google/android/gms/auth/RecoveryDecision.html b/docs/html/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatchConfig.Builder.html
similarity index 65%
copy from docs/html/reference/com/google/android/gms/auth/RecoveryDecision.html
copy to docs/html/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatchConfig.Builder.html
index 59a1346..eb870ba 100644
--- a/docs/html/reference/com/google/android/gms/auth/RecoveryDecision.html
+++ b/docs/html/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatchConfig.Builder.html
@@ -83,7 +83,7 @@
<meta name="viewport" content="width=device-width" />
<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
-<title>RecoveryDecision | Android Developers</title>
+<title>TurnBasedMatchConfig.Builder | Android Developers</title>
<!-- STYLESHEETS -->
<link rel="stylesheet"
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -128,7 +129,7 @@
<img src="/assets/images/dac_logo.png" width="123" height="25" alt="Android Developers" />
</a>
<div class="btn-quicknav" id="btn-quicknav">
- <a href="#" class="arrow-inactive">Quicknav</a>
+ <a href="#" class="arrow-inactive">Quicknav</a>
<a href="#" class="arrow-active">Quicknav</a>
</div>
</div>
@@ -140,7 +141,7 @@
ru-lang="Проектирование"
ko-lang="디자인"
ja-lang="設計"
- es-lang="Diseñar"
+ es-lang="Diseñar"
>Design</a></li>
<li class="develop"><a href="/develop/index.html"
zh-tw-lang="開發"
@@ -148,7 +149,7 @@
ru-lang="Разработка"
ko-lang="개발"
ja-lang="開発"
- es-lang="Desarrollar"
+ es-lang="Desarrollar"
>Develop</a></li>
<li class="distribute last"><a href="/distribute/index.html"
zh-tw-lang="發佈"
@@ -156,10 +157,10 @@
ru-lang="Распространение"
ko-lang="배포"
ja-lang="配布"
- es-lang="Distribuir"
+ es-lang="Distribuir"
>Distribute</a></li>
</ul>
-
+
<!-- New Search -->
<div class="menu-container">
<div class="moremenu">
@@ -180,9 +181,9 @@
<li class="active"><a>Android Developers</a></li>
<li><a href="http://source.android.com">Android Open Source Project</a></li>
</ul>
-
-
-
+
+
+
<div class="header">Language</div>
<div id="language" class="locales">
<select name="language" onChange="changeLangPref(this.value, true)">
@@ -200,8 +201,8 @@
loadLangPref();
//-->
</script>
-
-
+
+
<br class="clearfix" />
@@ -215,7 +216,7 @@
<form onsubmit="return submit_search()">
<input id="search_autocomplete" type="text" value="" autocomplete="off" name="q"
onfocus="search_focus_changed(this, true)" onblur="search_focus_changed(this, false)"
-onkeydown="return search_changed(event, true, '/')"
+onkeydown="return search_changed(event, true, '/')"
onkeyup="return search_changed(event, false, '/')" />
</form>
<div class="right"></div>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -254,8 +257,8 @@
</div>
<!-- /New Search>
-
-
+
+
<!-- Expanded quicknav -->
<div id="quicknav" class="col-9">
<ul>
@@ -277,15 +280,15 @@
ru-lang="Курсы"
ko-lang="교육"
ja-lang="トレーニング"
- es-lang="Capacitación"
+ es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
ko-lang="API 가이드"
ja-lang="API ガイド"
- es-lang="Guías de la API"
+ es-lang="Guías de la API"
>API Guides</a></li>
<li><a href="/reference/packages.html"
zh-tw-lang="參考資源"
@@ -293,7 +296,7 @@
ru-lang="Справочник"
ko-lang="참조문서"
ja-lang="リファレンス"
- es-lang="Referencia"
+ es-lang="Referencia"
>Reference</a></li>
<li><a href="/tools/index.html"
zh-tw-lang="相關工具"
@@ -301,13 +304,16 @@
ru-lang="Инструменты"
ko-lang="도구"
ja-lang="ツール"
- es-lang="Herramientas"
+ es-lang="Herramientas"
>Tools</a>
<ul><li><a href="/sdk/index.html">Get the SDK</a></li></ul>
</li>
<li><a href="/google/index.html">Google Services</a>
</li>
-
+
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -326,15 +332,15 @@
</div>
</div>
<!-- /Header -->
-
-
+
+
<div id="searchResults" class="wrap" style="display:none;">
<h2 id="searchTitle">Results</h2>
<div id="leftSearchControl" class="search-control">Loading...</div>
</div>
-
-
-
+
+
+
<!-- Secondary x-nav -->
<div id="nav-x">
<div class="wrap">
@@ -345,15 +351,15 @@
ru-lang="Курсы"
ko-lang="교육"
ja-lang="トレーニング"
- es-lang="Capacitación"
+ es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
ko-lang="API 가이드"
ja-lang="API ガイド"
- es-lang="Guías de la API"
+ es-lang="Guías de la API"
>API Guides</a></li>
<li class="reference"><a href="/reference/packages.html"
zh-tw-lang="參考資源"
@@ -361,7 +367,7 @@
ru-lang="Справочник"
ko-lang="참조문서"
ja-lang="リファレンス"
- es-lang="Referencia"
+ es-lang="Referencia"
>Reference</a></li>
<li class="tools"><a href="/tools/index.html"
zh-tw-lang="相關工具"
@@ -374,21 +380,25 @@
<li class="google"><a href="/google/index.html"
>Google Services</a>
</li>
-
+
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
-
+
</div>
<!-- /Sendondary x-nav -->
-
-
-
+
+
+
<div class="wrap clearfix" id="body-content">
<div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
<div id="devdoc-nav" class="scroll-pane">
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
@@ -618,12 +631,12 @@
</script>
-
+
</div>
<script type="text/javascript">
showGoogleRefTree();
-
+
</script>
</div> <!-- end side-nav -->
<script>
@@ -633,7 +646,7 @@
</script>
-
+
@@ -643,21 +656,12 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
<div class="sum-details-links">
@@ -669,22 +673,13 @@
- <a href="#inhconstants">Inherited Constants</a>
-
-
-
- | <a href="#lfields">Fields</a>
-
- | <a href="#pubctors">Ctors</a>
-
+ <a href="#pubmethods">Methods</a>
- | <a href="#pubmethods">Methods</a>
-
@@ -694,9 +689,9 @@
</div><!-- end sum-details-links -->
<div class="api-level">
-
-
-
+
+
+
</div>
</div><!-- end api-info-block -->
@@ -706,28 +701,23 @@
<div id="jd-header">
public
-
-
-
+ static
+ final
+
class
-<h1 itemprop="name">RecoveryDecision</h1>
+<h1 itemprop="name">TurnBasedMatchConfig.Builder</h1>
-
+
extends Object<br/>
-
-
-
-
-
- implements
-
- Parcelable
-
-
-
+
+
+
+
+
+
</div><!-- end header -->
@@ -739,18 +729,18 @@
<tr>
-
+
<td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
</tr>
-
+
<tr>
-
+
<td class="jd-inheritance-space"> ↳</td>
-
- <td colspan="1" class="jd-inheritance-class-cell">com.google.android.gms.auth.RecoveryDecision</td>
+
+ <td colspan="1" class="jd-inheritance-class-cell">com.google.android.gms.games.multiplayer.turnbased.TurnBasedMatchConfig.Builder</td>
</tr>
-
+
</table>
@@ -763,6 +753,10 @@
<div class="jd-descr">
+<h2>Class Overview</h2>
+<p itemprop="articleBody">Builder class for <code><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatchConfig.html">TurnBasedMatchConfig</a></code>.
+</p>
+
@@ -804,130 +798,6 @@
-<!-- =========== ENUM CONSTANT SUMMARY =========== -->
-<table id="inhconstants" class="jd-sumtable"><tr><th>
- <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
- <div style="clear:left;">Inherited Constants</div></th></tr>
-
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-
- <a href="#" onclick="return toggleInherited(this, null)" id="inherited-constants-android.os.Parcelable" class="jd-expando-trigger closed"
- ><img id="inherited-constants-android.os.Parcelable-trigger"
- src="/assets/images/triangle-closed.png"
- class="jd-expando-trigger-img" /></a>From interface
-android.os.Parcelable
-<div id="inherited-constants-android.os.Parcelable">
- <div id="inherited-constants-android.os.Parcelable-list"
- class="jd-inheritedlinks">
- </div>
- <div id="inherited-constants-android.os.Parcelable-summary" style="display: none;">
- <table class="jd-sumtable-expando">
-
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol">int</td>
- <td class="jd-linkcol">CONTENTS_FILE_DESCRIPTOR</td>
- <td class="jd-descrcol" width="100%"></td>
- </tr>
-
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol">int</td>
- <td class="jd-linkcol">PARCELABLE_WRITE_RETURN_VALUE</td>
- <td class="jd-descrcol" width="100%"></td>
- </tr>
-
-
-</table>
- </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-
-
-<!-- =========== FIELD SUMMARY =========== -->
-<table id="lfields" class="jd-sumtable"><tr><th colspan="12">Fields</th></tr>
-
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
- static
- final
- <a href="/reference/com/google/android/gms/auth/RecoveryDecisionCreator.html">RecoveryDecisionCreator</a></nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#CREATOR">CREATOR</a></td>
- <td class="jd-descrcol" width="100%"></td>
- </tr>
-
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- boolean</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#isRecoveryInfoNeeded">isRecoveryInfoNeeded</a></td>
- <td class="jd-descrcol" width="100%">Is <code>true</code> if either the account has no recovery information or it
- was updated long time back (controlled by server, default 1 year).</td>
- </tr>
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- boolean</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#isRecoveryInterstitialAllowed">isRecoveryInterstitialAllowed</a></td>
- <td class="jd-descrcol" width="100%">Is <code>true</code> iff the user has permission to update the account.</td>
- </tr>
-
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- PendingIntent</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#recoveryIntent">recoveryIntent</a></td>
- <td class="jd-descrcol" width="100%">A PendingIntent to an activity that gathers recovery information for the given account.</td>
- </tr>
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- PendingIntent</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#recoveryIntentWithoutIntro">recoveryIntentWithoutIntro</a></td>
- <td class="jd-descrcol" width="100%">A PendingIntent to an activity that gathers recovery information for the given account.</td>
- </tr>
-
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- boolean</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#showRecoveryInterstitial">showRecoveryInterstitial</a></td>
- <td class="jd-descrcol" width="100%">Represents the decision and should be obeyed by the client.</td>
- </tr>
-
-
-
-</table>
@@ -935,31 +805,6 @@
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
-
-
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
-
-
-
-
-
- </nobr>
- </td>
- <td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#RecoveryDecision()">RecoveryDecision</a></span>()</nobr>
-
- </td></tr>
-
-
-
-</table>
-
-
@@ -969,51 +814,111 @@
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
- int</nobr>
+
+
+
+
+
+ <a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatchConfig.Builder.html">TurnBasedMatchConfig.Builder</a></nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#describeContents()">describeContents</a></span>()</nobr>
-
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatchConfig.Builder.html#addInvitedPlayer(java.lang.String)">addInvitedPlayer</a></span>(String playerId)</nobr>
+
+ <div class="jd-descrdiv">Add a player ID to invite to the match.</div>
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
- int</nobr>
+
+
+
+
+
+ <a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatchConfig.Builder.html">TurnBasedMatchConfig.Builder</a></nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#getVersionCode()">getVersionCode</a></span>()</nobr>
-
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatchConfig.Builder.html#addInvitedPlayers(java.util.ArrayList<java.lang.String>)">addInvitedPlayers</a></span>(ArrayList<String> playerIds)</nobr>
+
+ <div class="jd-descrdiv">Add a list of player IDs to invite to the match.</div>
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
- void</nobr>
+
+
+
+
+
+ <a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatchConfig.html">TurnBasedMatchConfig</a></nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#writeToParcel(android.os.Parcel, int)">writeToParcel</a></span>(Parcel out, int flags)</nobr>
-
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatchConfig.Builder.html#build()">build</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Builds a new <code><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatchConfig.html">TurnBasedMatchConfig</a></code> object.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ <a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatchConfig.Builder.html">TurnBasedMatchConfig.Builder</a></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatchConfig.Builder.html#setAutoMatchCriteria(android.os.Bundle)">setAutoMatchCriteria</a></span>(Bundle autoMatchCriteria)</nobr>
+
+ <div class="jd-descrdiv">Sets the auto-match criteria for the match.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ <a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatchConfig.Builder.html">TurnBasedMatchConfig.Builder</a></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatchConfig.Builder.html#setMinPlayers(int)">setMinPlayers</a></span>(int minPlayers)</nobr>
+
+ <div class="jd-descrdiv">Sets the minimum number of players required to start the match.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ <a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatchConfig.Builder.html">TurnBasedMatchConfig.Builder</a></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatchConfig.Builder.html#setVariant(int)">setVariant</a></span>(int variant)</nobr>
+
+ <div class="jd-descrdiv">Sets the variant for the match.</div>
+
</td></tr>
@@ -1048,240 +953,182 @@
</div>
<div id="inherited-methods-java.lang.Object-summary" style="display: none;">
<table class="jd-sumtable-expando">
-
-
+
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
Object</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">clone</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
boolean</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">equals</span>(Object arg0)</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">finalize</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
Class<?></nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">getClass</span>()</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
int</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">hashCode</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">notify</span>()</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">notifyAll</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
String</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">toString</span>()</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">wait</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">wait</span>(long arg0)</nobr>
-
- </td></tr>
-
-</table>
- </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
- <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-android.os.Parcelable" class="jd-expando-trigger closed"
- ><img id="inherited-methods-android.os.Parcelable-trigger"
- src="/assets/images/triangle-closed.png"
- class="jd-expando-trigger-img" /></a>
-From interface
-
- android.os.Parcelable
-
-<div id="inherited-methods-android.os.Parcelable">
- <div id="inherited-methods-android.os.Parcelable-list"
- class="jd-inheritedlinks">
- </div>
- <div id="inherited-methods-android.os.Parcelable-summary" style="display: none;">
- <table class="jd-sumtable-expando">
-
-
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
- abstract
-
-
-
-
- int</nobr>
- </td>
- <td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad">describeContents</span>()</nobr>
-
- </td></tr>
-
-
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol"><nobr>
- abstract
-
-
-
-
- void</nobr>
- </td>
- <td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad">writeToParcel</span>(Parcel arg0, int arg1)</nobr>
-
</td></tr>
@@ -1317,236 +1164,9 @@
<!-- Fields -->
-<!-- ========= FIELD DETAIL ======== -->
-<h2>Fields</h2>
-
-
-
-
-<A NAME="CREATOR"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
- static
- final
- <a href="/reference/com/google/android/gms/auth/RecoveryDecisionCreator.html">RecoveryDecisionCreator</a>
- </span>
- CREATOR
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-
- </div>
-</div>
-
-
-
-<A NAME="isRecoveryInfoNeeded"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- boolean
- </span>
- isRecoveryInfoNeeded
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>Is <code>true</code> if either the account has no recovery information or it
- was updated long time back (controlled by server, default 1 year).
-</p></div>
-
-
- </div>
-</div>
-
-
-
-<A NAME="isRecoveryInterstitialAllowed"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- boolean
- </span>
- isRecoveryInterstitialAllowed
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>Is <code>true</code> iff the user has permission to update the account.
- Dasher accounts can have recovery information edit disabled by the administrator.
- Eg: @google.com
-</p></div>
-
-
- </div>
-</div>
-
-
-
-<A NAME="recoveryIntent"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- PendingIntent
- </span>
- recoveryIntent
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>A PendingIntent to an activity that gathers recovery information for the given account.
- This intent will be null iff isRecoveryInterstitialAllowed is <code>false</code>.
-</p></div>
-
-
- </div>
-</div>
-
-
-
-<A NAME="recoveryIntentWithoutIntro"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- PendingIntent
- </span>
- recoveryIntentWithoutIntro
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>A PendingIntent to an activity that gathers recovery information for the given account.
- This intent will be null iff isRecoveryInterstitialAllowed is <code>false</code>.
- This intent directly skips to the input activity without showing the intro message.
-</p></div>
-
-
- </div>
-</div>
-
-
-
-<A NAME="showRecoveryInterstitial"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- boolean
- </span>
- showRecoveryInterstitial
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>Represents the decision and should be obeyed by the client. The remaining
- two flags are provided as additional information for one off decisions. This value
- is <code>true</code> iff isRecoveryInfoNeeded is <code>true</code>, isRecoveryInterstitialAllowed is
- <code>true</code> and a specified period (controlled by server, default 2 months) has passed
- since the user was shown a prompt for recovery information on any google property
- (Android, Web, etc.)
-</p></div>
-
-
- </div>
-</div>
-
-
-
-
<!-- Public ctors -->
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<h2>Public Constructors</h2>
-
-
-
-<A NAME="RecoveryDecision()"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
-
-
-
- </span>
- <span class="sympad">RecoveryDecision</span>
- <span class="normal">()</span>
- </h4>
- <div class="api-level">
- <div></div>
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
- </div>
-</div>
-
-
-
-
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<!-- Protected ctors -->
@@ -1560,88 +1180,255 @@
-<A NAME="describeContents()"></A>
+<A NAME="addInvitedPlayer(java.lang.String)"></A>
-<div class="jd-details api apilevel-">
+<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
- public
-
-
-
-
- int
+ public
+
+
+
+
+ <a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatchConfig.Builder.html">TurnBasedMatchConfig.Builder</a>
</span>
- <span class="sympad">describeContents</span>
- <span class="normal">()</span>
+ <span class="sympad">addInvitedPlayer</span>
+ <span class="normal">(String playerId)</span>
</h4>
<div class="api-level">
<div></div>
-
-
+
+
</div>
<div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+ <div class="jd-tagdata jd-tagdescr"><p>Add a player ID to invite to the match.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>playerId</td>
+ <td>Player ID to invite to the match.</td>
+ </tr>
+ </table>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>The builder instance.
+</li></ul>
+ </div>
</div>
</div>
-<A NAME="getVersionCode()"></A>
+<A NAME="addInvitedPlayers(java.util.ArrayList<java.lang.String>)"></A>
-<div class="jd-details api apilevel-">
+<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
- public
-
-
-
-
- int
+ public
+
+
+
+
+ <a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatchConfig.Builder.html">TurnBasedMatchConfig.Builder</a>
</span>
- <span class="sympad">getVersionCode</span>
- <span class="normal">()</span>
+ <span class="sympad">addInvitedPlayers</span>
+ <span class="normal">(ArrayList<String> playerIds)</span>
</h4>
<div class="api-level">
<div></div>
-
-
+
+
</div>
<div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+ <div class="jd-tagdata jd-tagdescr"><p>Add a list of player IDs to invite to the match.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>playerIds</td>
+ <td>One or more player IDs to invite to the match.</td>
+ </tr>
+ </table>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>The builder instance.
+</li></ul>
+ </div>
</div>
</div>
-<A NAME="writeToParcel(android.os.Parcel, int)"></A>
+<A NAME="build()"></A>
-<div class="jd-details api apilevel-">
+<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
- public
-
-
-
-
- void
+ public
+
+
+
+
+ <a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatchConfig.html">TurnBasedMatchConfig</a>
</span>
- <span class="sympad">writeToParcel</span>
- <span class="normal">(Parcel out, int flags)</span>
+ <span class="sympad">build</span>
+ <span class="normal">()</span>
</h4>
<div class="api-level">
<div></div>
-
-
+
+
</div>
<div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+ <div class="jd-tagdata jd-tagdescr"><p>Builds a new <code><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatchConfig.html">TurnBasedMatchConfig</a></code> object.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>The built <code><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatchConfig.html">TurnBasedMatchConfig</a></code> instance.
+</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="setAutoMatchCriteria(android.os.Bundle)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ <a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatchConfig.Builder.html">TurnBasedMatchConfig.Builder</a>
+ </span>
+ <span class="sympad">setAutoMatchCriteria</span>
+ <span class="normal">(Bundle autoMatchCriteria)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Sets the auto-match criteria for the match. See
+ <code><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatchConfig.html#createAutoMatchCriteria(int, int, long)">createAutoMatchCriteria(int, int, long)</a></code>.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>autoMatchCriteria</td>
+ <td>The criteria for auto-matching one or more players for the
+ match. If <code>null</code>, the match is created with the invited players only.</td>
+ </tr>
+ </table>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>The builder instance.
+</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="setMinPlayers(int)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ <a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatchConfig.Builder.html">TurnBasedMatchConfig.Builder</a>
+ </span>
+ <span class="sympad">setMinPlayers</span>
+ <span class="normal">(int minPlayers)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Sets the minimum number of players required to start the match.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>minPlayers</td>
+ <td>The minimum number of players this match can continue with.</td>
+ </tr>
+ </table>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>The builder instance.
+</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="setVariant(int)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ <a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatchConfig.Builder.html">TurnBasedMatchConfig.Builder</a>
+ </span>
+ <span class="sympad">setVariant</span>
+ <span class="normal">(int variant)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Sets the variant for the match. This is an optional, developer-controlled parameter
+ describing the type of game to play, and is used for auto-matching criteria. Must be
+ either a value from 1 to 1023 (inclusive), or <code><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html#MATCH_VARIANT_ANY">MATCH_VARIANT_ANY</a></code>
+ (the default) if not desired.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>variant</td>
+ <td>The variant for the match.</td>
+ </tr>
+ </table>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>The builder instance.
+</li></ul>
+ </div>
</div>
</div>
@@ -1658,17 +1445,17 @@
<A NAME="navbar_top"></A>
<div id="footer" class="wrap" >
-
+
<div id="copyright">
-
+
Except as noted, this content is licensed under <a
- href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.
+ href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.
For details and restrictions, see the <a href="/license.html">
Content License</a>.
</div>
<div id="build_info">
-
+
<script src="/timestamp.js" type="text/javascript"></script>
<script>document.write(BUILD_TIMESTAMP)</script>
@@ -1676,7 +1463,7 @@
<div id="footerlinks">
-
+
<p>
<a href="/about/index.html">About Android</a> |
<a href="/legal.html">Legal</a> |
@@ -1689,7 +1476,7 @@
</div><!-- end doc-content -->
-</div> <!-- end body-content -->
+</div> <!-- end body-content -->
diff --git a/docs/html/reference/com/google/android/gms/auth/RecoveryDecision.html b/docs/html/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatchConfig.html
similarity index 66%
copy from docs/html/reference/com/google/android/gms/auth/RecoveryDecision.html
copy to docs/html/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatchConfig.html
index 59a1346..62fb6af 100644
--- a/docs/html/reference/com/google/android/gms/auth/RecoveryDecision.html
+++ b/docs/html/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatchConfig.html
@@ -83,7 +83,7 @@
<meta name="viewport" content="width=device-width" />
<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
-<title>RecoveryDecision | Android Developers</title>
+<title>TurnBasedMatchConfig | Android Developers</title>
<!-- STYLESHEETS -->
<link rel="stylesheet"
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -128,7 +129,7 @@
<img src="/assets/images/dac_logo.png" width="123" height="25" alt="Android Developers" />
</a>
<div class="btn-quicknav" id="btn-quicknav">
- <a href="#" class="arrow-inactive">Quicknav</a>
+ <a href="#" class="arrow-inactive">Quicknav</a>
<a href="#" class="arrow-active">Quicknav</a>
</div>
</div>
@@ -140,7 +141,7 @@
ru-lang="Проектирование"
ko-lang="디자인"
ja-lang="設計"
- es-lang="Diseñar"
+ es-lang="Diseñar"
>Design</a></li>
<li class="develop"><a href="/develop/index.html"
zh-tw-lang="開發"
@@ -148,7 +149,7 @@
ru-lang="Разработка"
ko-lang="개발"
ja-lang="開発"
- es-lang="Desarrollar"
+ es-lang="Desarrollar"
>Develop</a></li>
<li class="distribute last"><a href="/distribute/index.html"
zh-tw-lang="發佈"
@@ -156,10 +157,10 @@
ru-lang="Распространение"
ko-lang="배포"
ja-lang="配布"
- es-lang="Distribuir"
+ es-lang="Distribuir"
>Distribute</a></li>
</ul>
-
+
<!-- New Search -->
<div class="menu-container">
<div class="moremenu">
@@ -180,9 +181,9 @@
<li class="active"><a>Android Developers</a></li>
<li><a href="http://source.android.com">Android Open Source Project</a></li>
</ul>
-
-
-
+
+
+
<div class="header">Language</div>
<div id="language" class="locales">
<select name="language" onChange="changeLangPref(this.value, true)">
@@ -200,8 +201,8 @@
loadLangPref();
//-->
</script>
-
-
+
+
<br class="clearfix" />
@@ -215,7 +216,7 @@
<form onsubmit="return submit_search()">
<input id="search_autocomplete" type="text" value="" autocomplete="off" name="q"
onfocus="search_focus_changed(this, true)" onblur="search_focus_changed(this, false)"
-onkeydown="return search_changed(event, true, '/')"
+onkeydown="return search_changed(event, true, '/')"
onkeyup="return search_changed(event, false, '/')" />
</form>
<div class="right"></div>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -254,8 +257,8 @@
</div>
<!-- /New Search>
-
-
+
+
<!-- Expanded quicknav -->
<div id="quicknav" class="col-9">
<ul>
@@ -277,15 +280,15 @@
ru-lang="Курсы"
ko-lang="교육"
ja-lang="トレーニング"
- es-lang="Capacitación"
+ es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
ko-lang="API 가이드"
ja-lang="API ガイド"
- es-lang="Guías de la API"
+ es-lang="Guías de la API"
>API Guides</a></li>
<li><a href="/reference/packages.html"
zh-tw-lang="參考資源"
@@ -293,7 +296,7 @@
ru-lang="Справочник"
ko-lang="참조문서"
ja-lang="リファレンス"
- es-lang="Referencia"
+ es-lang="Referencia"
>Reference</a></li>
<li><a href="/tools/index.html"
zh-tw-lang="相關工具"
@@ -301,13 +304,16 @@
ru-lang="Инструменты"
ko-lang="도구"
ja-lang="ツール"
- es-lang="Herramientas"
+ es-lang="Herramientas"
>Tools</a>
<ul><li><a href="/sdk/index.html">Get the SDK</a></li></ul>
</li>
<li><a href="/google/index.html">Google Services</a>
</li>
-
+
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -326,15 +332,15 @@
</div>
</div>
<!-- /Header -->
-
-
+
+
<div id="searchResults" class="wrap" style="display:none;">
<h2 id="searchTitle">Results</h2>
<div id="leftSearchControl" class="search-control">Loading...</div>
</div>
-
-
-
+
+
+
<!-- Secondary x-nav -->
<div id="nav-x">
<div class="wrap">
@@ -345,15 +351,15 @@
ru-lang="Курсы"
ko-lang="교육"
ja-lang="トレーニング"
- es-lang="Capacitación"
+ es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
ko-lang="API 가이드"
ja-lang="API ガイド"
- es-lang="Guías de la API"
+ es-lang="Guías de la API"
>API Guides</a></li>
<li class="reference"><a href="/reference/packages.html"
zh-tw-lang="參考資源"
@@ -361,7 +367,7 @@
ru-lang="Справочник"
ko-lang="참조문서"
ja-lang="リファレンス"
- es-lang="Referencia"
+ es-lang="Referencia"
>Reference</a></li>
<li class="tools"><a href="/tools/index.html"
zh-tw-lang="相關工具"
@@ -374,21 +380,25 @@
<li class="google"><a href="/google/index.html"
>Google Services</a>
</li>
-
+
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
-
+
</div>
<!-- /Sendondary x-nav -->
-
-
-
+
+
+
<div class="wrap clearfix" id="body-content">
<div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
<div id="devdoc-nav" class="scroll-pane">
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
@@ -618,12 +631,12 @@
</script>
-
+
</div>
<script type="text/javascript">
showGoogleRefTree();
-
+
</script>
</div> <!-- end side-nav -->
<script>
@@ -633,7 +646,7 @@
</script>
-
+
@@ -643,48 +656,33 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
<div class="sum-details-links">
Summary:
+ <a href="#nestedclasses">Nested Classes</a>
- <a href="#inhconstants">Inherited Constants</a>
-
-
-
- | <a href="#lfields">Fields</a>
-
- | <a href="#pubctors">Ctors</a>
-
+
| <a href="#pubmethods">Methods</a>
-
+
@@ -694,9 +692,9 @@
</div><!-- end sum-details-links -->
<div class="api-level">
-
-
-
+
+
+
</div>
</div><!-- end api-info-block -->
@@ -706,28 +704,23 @@
<div id="jd-header">
public
-
-
-
+
+ final
+
class
-<h1 itemprop="name">RecoveryDecision</h1>
+<h1 itemprop="name">TurnBasedMatchConfig</h1>
-
+
extends Object<br/>
-
-
-
-
-
- implements
-
- Parcelable
-
-
-
+
+
+
+
+
+
</div><!-- end header -->
@@ -739,18 +732,18 @@
<tr>
-
+
<td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
</tr>
-
+
<tr>
-
+
<td class="jd-inheritance-space"> ↳</td>
-
- <td colspan="1" class="jd-inheritance-class-cell">com.google.android.gms.auth.RecoveryDecision</td>
+
+ <td colspan="1" class="jd-inheritance-class-cell">com.google.android.gms.games.multiplayer.turnbased.TurnBasedMatchConfig</td>
</tr>
-
+
</table>
@@ -763,6 +756,10 @@
<div class="jd-descr">
+<h2>Class Overview</h2>
+<p itemprop="articleBody">Configuration for creating a new turn-based match.
+</p>
+
@@ -791,143 +788,21 @@
+<!-- ======== NESTED CLASS SUMMARY ======== -->
+<table id="nestedclasses" class="jd-sumtable"><tr><th colspan="12">Nested Classes</th></tr>
-
-
-
-
-
-
-
-
-
-
-<!-- =========== ENUM CONSTANT SUMMARY =========== -->
-<table id="inhconstants" class="jd-sumtable"><tr><th>
- <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
- <div style="clear:left;">Inherited Constants</div></th></tr>
-
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
-
- <a href="#" onclick="return toggleInherited(this, null)" id="inherited-constants-android.os.Parcelable" class="jd-expando-trigger closed"
- ><img id="inherited-constants-android.os.Parcelable-trigger"
- src="/assets/images/triangle-closed.png"
- class="jd-expando-trigger-img" /></a>From interface
-android.os.Parcelable
-<div id="inherited-constants-android.os.Parcelable">
- <div id="inherited-constants-android.os.Parcelable-list"
- class="jd-inheritedlinks">
- </div>
- <div id="inherited-constants-android.os.Parcelable-summary" style="display: none;">
- <table class="jd-sumtable-expando">
-
-
-
<tr class="alt-color api apilevel-" >
- <td class="jd-typecol">int</td>
- <td class="jd-linkcol">CONTENTS_FILE_DESCRIPTOR</td>
- <td class="jd-descrcol" width="100%"></td>
+ <td class="jd-typecol"><nobr>
+
+
+
+
+ class</nobr></td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatchConfig.Builder.html">TurnBasedMatchConfig.Builder</a></td>
+ <td class="jd-descrcol" width="100%">Builder class for <code><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatchConfig.html">TurnBasedMatchConfig</a></code>. </td>
</tr>
-
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol">int</td>
- <td class="jd-linkcol">PARCELABLE_WRITE_RETURN_VALUE</td>
- <td class="jd-descrcol" width="100%"></td>
- </tr>
-
-
-</table>
- </div>
-</div>
-</td></tr>
-
-
-</table>
-
-
-
-
-<!-- =========== FIELD SUMMARY =========== -->
-<table id="lfields" class="jd-sumtable"><tr><th colspan="12">Fields</th></tr>
-
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
- static
- final
- <a href="/reference/com/google/android/gms/auth/RecoveryDecisionCreator.html">RecoveryDecisionCreator</a></nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#CREATOR">CREATOR</a></td>
- <td class="jd-descrcol" width="100%"></td>
- </tr>
-
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- boolean</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#isRecoveryInfoNeeded">isRecoveryInfoNeeded</a></td>
- <td class="jd-descrcol" width="100%">Is <code>true</code> if either the account has no recovery information or it
- was updated long time back (controlled by server, default 1 year).</td>
- </tr>
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- boolean</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#isRecoveryInterstitialAllowed">isRecoveryInterstitialAllowed</a></td>
- <td class="jd-descrcol" width="100%">Is <code>true</code> iff the user has permission to update the account.</td>
- </tr>
-
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- PendingIntent</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#recoveryIntent">recoveryIntent</a></td>
- <td class="jd-descrcol" width="100%">A PendingIntent to an activity that gathers recovery information for the given account.</td>
- </tr>
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- PendingIntent</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#recoveryIntentWithoutIntro">recoveryIntentWithoutIntro</a></td>
- <td class="jd-descrcol" width="100%">A PendingIntent to an activity that gathers recovery information for the given account.</td>
- </tr>
-
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- boolean</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#showRecoveryInterstitial">showRecoveryInterstitial</a></td>
- <td class="jd-descrcol" width="100%">Represents the decision and should be obeyed by the client.</td>
- </tr>
-
-
-
-</table>
@@ -935,29 +810,22 @@
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
-
-
-
-
-
- </nobr>
- </td>
- <td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#RecoveryDecision()">RecoveryDecision</a></span>()</nobr>
-
- </td></tr>
-</table>
+
+
+
+
+
+
+
+
+
+
@@ -969,51 +837,112 @@
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
- int</nobr>
+
+
+
+ static
+
+ <a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatchConfig.Builder.html">TurnBasedMatchConfig.Builder</a></nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#describeContents()">describeContents</a></span>()</nobr>
-
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatchConfig.html#builder()">builder</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Creates a builder for assembling a <code><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatchConfig.html">TurnBasedMatchConfig</a></code>.</div>
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
- int</nobr>
+
+
+
+ static
+
+ Bundle</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#getVersionCode()">getVersionCode</a></span>()</nobr>
-
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatchConfig.html#createAutoMatchCriteria(int, int, long)">createAutoMatchCriteria</a></span>(int minAutoMatchPlayers, int maxAutoMatchPlayers, long exclusiveBitMask)</nobr>
+
+ <div class="jd-descrdiv">Creates an auto-match criteria <code>Bundle</code>.</div>
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
- void</nobr>
+
+
+
+
+
+ Bundle</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#writeToParcel(android.os.Parcel, int)">writeToParcel</a></span>(Parcel out, int flags)</nobr>
-
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatchConfig.html#getAutoMatchCriteria()">getAutoMatchCriteria</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Retrieves the criteria for auto-matching one or more players for the match.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ String[]</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatchConfig.html#getInvitedPlayerIds()">getInvitedPlayerIds</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Retrieves the player IDs to invite to the match.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatchConfig.html#getMinPlayers()">getMinPlayers</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Retrieves the minimum number of players that must be active in the match for the match to
+ continue.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatchConfig.html#getVariant()">getVariant</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Retrieves the developer-specified match variant.</div>
+
</td></tr>
@@ -1048,240 +977,182 @@
</div>
<div id="inherited-methods-java.lang.Object-summary" style="display: none;">
<table class="jd-sumtable-expando">
-
-
+
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
Object</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">clone</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
boolean</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">equals</span>(Object arg0)</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">finalize</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
Class<?></nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">getClass</span>()</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
int</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">hashCode</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">notify</span>()</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">notifyAll</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
String</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">toString</span>()</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">wait</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">wait</span>(long arg0)</nobr>
-
- </td></tr>
-
-</table>
- </div>
-</div>
-</td></tr>
-
-
-
-<tr class="api apilevel-" >
-<td colspan="12">
- <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-android.os.Parcelable" class="jd-expando-trigger closed"
- ><img id="inherited-methods-android.os.Parcelable-trigger"
- src="/assets/images/triangle-closed.png"
- class="jd-expando-trigger-img" /></a>
-From interface
-
- android.os.Parcelable
-
-<div id="inherited-methods-android.os.Parcelable">
- <div id="inherited-methods-android.os.Parcelable-list"
- class="jd-inheritedlinks">
- </div>
- <div id="inherited-methods-android.os.Parcelable-summary" style="display: none;">
- <table class="jd-sumtable-expando">
-
-
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
- abstract
-
-
-
-
- int</nobr>
- </td>
- <td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad">describeContents</span>()</nobr>
-
- </td></tr>
-
-
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol"><nobr>
- abstract
-
-
-
-
- void</nobr>
- </td>
- <td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad">writeToParcel</span>(Parcel arg0, int arg1)</nobr>
-
</td></tr>
@@ -1317,236 +1188,9 @@
<!-- Fields -->
-<!-- ========= FIELD DETAIL ======== -->
-<h2>Fields</h2>
-
-
-
-
-<A NAME="CREATOR"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
- static
- final
- <a href="/reference/com/google/android/gms/auth/RecoveryDecisionCreator.html">RecoveryDecisionCreator</a>
- </span>
- CREATOR
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
-
- </div>
-</div>
-
-
-
-<A NAME="isRecoveryInfoNeeded"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- boolean
- </span>
- isRecoveryInfoNeeded
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>Is <code>true</code> if either the account has no recovery information or it
- was updated long time back (controlled by server, default 1 year).
-</p></div>
-
-
- </div>
-</div>
-
-
-
-<A NAME="isRecoveryInterstitialAllowed"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- boolean
- </span>
- isRecoveryInterstitialAllowed
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>Is <code>true</code> iff the user has permission to update the account.
- Dasher accounts can have recovery information edit disabled by the administrator.
- Eg: @google.com
-</p></div>
-
-
- </div>
-</div>
-
-
-
-<A NAME="recoveryIntent"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- PendingIntent
- </span>
- recoveryIntent
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>A PendingIntent to an activity that gathers recovery information for the given account.
- This intent will be null iff isRecoveryInterstitialAllowed is <code>false</code>.
-</p></div>
-
-
- </div>
-</div>
-
-
-
-<A NAME="recoveryIntentWithoutIntro"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- PendingIntent
- </span>
- recoveryIntentWithoutIntro
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>A PendingIntent to an activity that gathers recovery information for the given account.
- This intent will be null iff isRecoveryInterstitialAllowed is <code>false</code>.
- This intent directly skips to the input activity without showing the intro message.
-</p></div>
-
-
- </div>
-</div>
-
-
-
-<A NAME="showRecoveryInterstitial"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- boolean
- </span>
- showRecoveryInterstitial
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>Represents the decision and should be obeyed by the client. The remaining
- two flags are provided as additional information for one off decisions. This value
- is <code>true</code> iff isRecoveryInfoNeeded is <code>true</code>, isRecoveryInterstitialAllowed is
- <code>true</code> and a specified period (controlled by server, default 2 months) has passed
- since the user was shown a prompt for recovery information on any google property
- (Android, Web, etc.)
-</p></div>
-
-
- </div>
-</div>
-
-
-
-
<!-- Public ctors -->
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<h2>Public Constructors</h2>
-
-
-
-<A NAME="RecoveryDecision()"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
-
-
-
- </span>
- <span class="sympad">RecoveryDecision</span>
- <span class="normal">()</span>
- </h4>
- <div class="api-level">
- <div></div>
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
- </div>
-</div>
-
-
-
-
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<!-- Protected ctors -->
@@ -1560,88 +1204,226 @@
-<A NAME="describeContents()"></A>
+<A NAME="builder()"></A>
-<div class="jd-details api apilevel-">
+<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
- public
-
-
-
-
- int
+ public
+ static
+
+
+
+ <a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatchConfig.Builder.html">TurnBasedMatchConfig.Builder</a>
</span>
- <span class="sympad">describeContents</span>
+ <span class="sympad">builder</span>
<span class="normal">()</span>
</h4>
<div class="api-level">
<div></div>
-
-
+
+
</div>
<div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+ <div class="jd-tagdata jd-tagdescr"><p>Creates a builder for assembling a <code><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatchConfig.html">TurnBasedMatchConfig</a></code>.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>An instance of a builder.
+</li></ul>
+ </div>
</div>
</div>
-<A NAME="getVersionCode()"></A>
+<A NAME="createAutoMatchCriteria(int, int, long)"></A>
-<div class="jd-details api apilevel-">
+<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
- public
-
-
-
-
- int
+ public
+ static
+
+
+
+ Bundle
</span>
- <span class="sympad">getVersionCode</span>
- <span class="normal">()</span>
+ <span class="sympad">createAutoMatchCriteria</span>
+ <span class="normal">(int minAutoMatchPlayers, int maxAutoMatchPlayers, long exclusiveBitMask)</span>
</h4>
<div class="api-level">
<div></div>
-
-
+
+
</div>
<div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+ <div class="jd-tagdata jd-tagdescr"><p>Creates an auto-match criteria <code>Bundle</code>. Can be passed to
+ createMatch(GoogleApiClient, TurnBasedMatchConfig) to create a match for a turn-based game.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>minAutoMatchPlayers</td>
+ <td>min number of auto-matched players.</td>
+ </tr>
+ <tr>
+ <th>maxAutoMatchPlayers</td>
+ <td>max number of auto-matched players.</td>
+ </tr>
+ <tr>
+ <th>exclusiveBitMask</td>
+ <td>exclusive bitmask for exclusive roles for the player. The exclusive
+ bitmask of each pairing of players must equal zero for auto-match.</td>
+ </tr>
+ </table>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>bundle of auto-match criteria data.
+</li></ul>
+ </div>
</div>
</div>
-<A NAME="writeToParcel(android.os.Parcel, int)"></A>
+<A NAME="getAutoMatchCriteria()"></A>
-<div class="jd-details api apilevel-">
+<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
- public
-
-
-
-
- void
+ public
+
+
+
+
+ Bundle
</span>
- <span class="sympad">writeToParcel</span>
- <span class="normal">(Parcel out, int flags)</span>
+ <span class="sympad">getAutoMatchCriteria</span>
+ <span class="normal">()</span>
</h4>
<div class="api-level">
<div></div>
-
-
+
+
</div>
<div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+ <div class="jd-tagdata jd-tagdescr"><p>Retrieves the criteria for auto-matching one or more players for the match.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>The criteria for auto-matching one or more players for the match.
+</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="getInvitedPlayerIds()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ String[]
+ </span>
+ <span class="sympad">getInvitedPlayerIds</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Retrieves the player IDs to invite to the match.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>The player IDs to invite to the match.
+</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="getMinPlayers()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ int
+ </span>
+ <span class="sympad">getMinPlayers</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Retrieves the minimum number of players that must be active in the match for the match to
+ continue.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>The minimum number of players that must be active in the match for the match to
+ continue.
+</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="getVariant()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ int
+ </span>
+ <span class="sympad">getVariant</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Retrieves the developer-specified match variant.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>The developer-specified match variant.
+</li></ul>
+ </div>
</div>
</div>
@@ -1658,17 +1440,17 @@
<A NAME="navbar_top"></A>
<div id="footer" class="wrap" >
-
+
<div id="copyright">
-
+
Except as noted, this content is licensed under <a
- href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.
+ href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.
For details and restrictions, see the <a href="/license.html">
Content License</a>.
</div>
<div id="build_info">
-
+
<script src="/timestamp.js" type="text/javascript"></script>
<script>document.write(BUILD_TIMESTAMP)</script>
@@ -1676,7 +1458,7 @@
<div id="footerlinks">
-
+
<p>
<a href="/about/index.html">About Android</a> |
<a href="/legal.html">Legal</a> |
@@ -1689,7 +1471,7 @@
</div><!-- end doc-content -->
-</div> <!-- end body-content -->
+</div> <!-- end body-content -->
diff --git a/docs/html/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatchEntity.html b/docs/html/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatchEntity.html
new file mode 100644
index 0000000..a13ee01
--- /dev/null
+++ b/docs/html/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatchEntity.html
@@ -0,0 +1,3611 @@
+<!DOCTYPE html>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<html>
+<head>
+
+
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<meta name="viewport" content="width=device-width" />
+
+<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
+<title>TurnBasedMatchEntity | Android Developers</title>
+
+<!-- STYLESHEETS -->
+<link rel="stylesheet"
+href="//fonts.googleapis.com/css?family=Roboto:regular,medium,thin,italic,mediumitalic,bold" title="roboto">
+<link href="/assets/css/default.css" rel="stylesheet" type="text/css">
+
+
+
+<!-- JAVASCRIPT -->
+<script src="//www.google.com/jsapi" type="text/javascript"></script>
+<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
+<script type="text/javascript">
+ var toRoot = "/";
+ var metaTags = [];
+ var devsite = false;
+</script>
+<script src="/assets/js/docs.js" type="text/javascript"></script>
+
+<script type="text/javascript">
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-5831155-1']);
+ _gaq.push(['_trackPageview']);
+
+ (function() {
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+ })();
+</script>
+</head>
+<body class="gc-documentation google
+ develop" itemscope itemtype="http://schema.org/Article">
+ <div id="doc-api-level" class="" style="display:none"></div>
+ <a name="top"></a>
+
+<a name="top"></a>
+
+ <!-- Header -->
+ <div id="header">
+ <div class="wrap" id="header-wrap">
+ <div class="col-3 logo">
+ <a href="/index.html">
+ <img src="/assets/images/dac_logo.png" width="123" height="25" alt="Android Developers" />
+ </a>
+ <div class="btn-quicknav" id="btn-quicknav">
+ <a href="#" class="arrow-inactive">Quicknav</a>
+ <a href="#" class="arrow-active">Quicknav</a>
+ </div>
+ </div>
+ <ul class="nav-x col-9">
+ <li class="design">
+ <a href="/design/index.html"
+ zh-tw-lang="設計"
+ zh-cn-lang="设计"
+ ru-lang="Проектирование"
+ ko-lang="디자인"
+ ja-lang="設計"
+ es-lang="Diseñar"
+ >Design</a></li>
+ <li class="develop"><a href="/develop/index.html"
+ zh-tw-lang="開發"
+ zh-cn-lang="开发"
+ ru-lang="Разработка"
+ ko-lang="개발"
+ ja-lang="開発"
+ es-lang="Desarrollar"
+ >Develop</a></li>
+ <li class="distribute last"><a href="/distribute/index.html"
+ zh-tw-lang="發佈"
+ zh-cn-lang="分发"
+ ru-lang="Распространение"
+ ko-lang="배포"
+ ja-lang="配布"
+ es-lang="Distribuir"
+ >Distribute</a></li>
+ </ul>
+
+ <!-- New Search -->
+ <div class="menu-container">
+ <div class="moremenu">
+ <div id="more-btn"></div>
+ </div>
+ <div class="morehover" id="moremenu">
+ <div class="top"></div>
+ <div class="mid">
+ <div class="header">Links</div>
+ <ul>
+ <li><a href="https://play.google.com/apps/publish/">Google Play Developer Console</a></li>
+ <li><a href="http://android-developers.blogspot.com/">Android Developers Blog</a></li>
+ <li><a href="/about/index.html">About Android</a></li>
+ </ul>
+ <div class="header">Android Sites</div>
+ <ul>
+ <li><a href="http://www.android.com">Android.com</a></li>
+ <li class="active"><a>Android Developers</a></li>
+ <li><a href="http://source.android.com">Android Open Source Project</a></li>
+ </ul>
+
+
+
+ <div class="header">Language</div>
+ <div id="language" class="locales">
+ <select name="language" onChange="changeLangPref(this.value, true)">
+ <option value="en">English</option>
+ <option value="es">Español</option>
+ <option value="ja">日本語</option>
+ <option value="ko">한국어</option>
+ <option value="ru">Русский</option>
+ <option value="zh-cn">中文 (中国)</option>
+ <option value="zh-tw">中文 (台灣)</option>
+ </select>
+ </div>
+ <script type="text/javascript">
+ <!--
+ loadLangPref();
+ //-->
+ </script>
+
+
+
+
+ <br class="clearfix" />
+ </div>
+ <div class="bottom"></div>
+ </div>
+ <div class="search" id="search-container">
+ <div class="search-inner">
+ <div id="search-btn"></div>
+ <div class="left"></div>
+ <form onsubmit="return submit_search()">
+ <input id="search_autocomplete" type="text" value="" autocomplete="off" name="q"
+onfocus="search_focus_changed(this, true)" onblur="search_focus_changed(this, false)"
+onkeydown="return search_changed(event, true, '/')"
+onkeyup="return search_changed(event, false, '/')" />
+ </form>
+ <div class="right"></div>
+ <a class="close hide">close</a>
+ <div class="left"></div>
+ <div class="right"></div>
+ </div>
+ </div>
+
+ <div class="search_filtered_wrapper reference">
+ <div class="suggest-card reference no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ </div>
+
+ <div class="search_filtered_wrapper docs">
+ <div class="suggest-card dummy no-display"> </div>
+ <div class="suggest-card develop no-display">
+ <ul class="search_filtered">
+ </ul>
+ <div class="child-card guides no-display">
+ </div>
+ <div class="child-card training no-display">
+ </div>
+ <div class="child-card samples no-display">
+ </div>
+ </div>
+ <div class="suggest-card design no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ <div class="suggest-card distribute no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ </div>
+
+ </div>
+ <!-- /New Search>
+
+
+ <!-- Expanded quicknav -->
+ <div id="quicknav" class="col-9">
+ <ul>
+ <li class="design">
+ <ul>
+ <li><a href="/design/index.html">Get Started</a></li>
+ <li><a href="/design/style/index.html">Style</a></li>
+ <li><a href="/design/patterns/index.html">Patterns</a></li>
+ <li><a href="/design/building-blocks/index.html">Building Blocks</a></li>
+ <li><a href="/design/downloads/index.html">Downloads</a></li>
+ <li><a href="/design/videos/index.html">Videos</a></li>
+ </ul>
+ </li>
+ <li class="develop">
+ <ul>
+ <li><a href="/training/index.html"
+ zh-tw-lang="訓練課程"
+ zh-cn-lang="培训"
+ ru-lang="Курсы"
+ ko-lang="교육"
+ ja-lang="トレーニング"
+ es-lang="Capacitación"
+ >Training</a></li>
+ <li><a href="/guide/index.html"
+ zh-tw-lang="API 指南"
+ zh-cn-lang="API 指南"
+ ru-lang="Руководства по API"
+ ko-lang="API 가이드"
+ ja-lang="API ガイド"
+ es-lang="Guías de la API"
+ >API Guides</a></li>
+ <li><a href="/reference/packages.html"
+ zh-tw-lang="參考資源"
+ zh-cn-lang="参考"
+ ru-lang="Справочник"
+ ko-lang="참조문서"
+ ja-lang="リファレンス"
+ es-lang="Referencia"
+ >Reference</a></li>
+ <li><a href="/tools/index.html"
+ zh-tw-lang="相關工具"
+ zh-cn-lang="工具"
+ ru-lang="Инструменты"
+ ko-lang="도구"
+ ja-lang="ツール"
+ es-lang="Herramientas"
+ >Tools</a>
+ <ul><li><a href="/sdk/index.html">Get the SDK</a></li></ul>
+ </li>
+ <li><a href="/google/index.html">Google Services</a>
+ </li>
+
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
+ </ul>
+ </li>
+ <li class="distribute last">
+ <ul>
+ <li><a href="/distribute/index.html">Google Play</a></li>
+ <li><a href="/distribute/googleplay/publish/index.html">Publishing</a></li>
+ <li><a href="/distribute/googleplay/promote/index.html">Promoting</a></li>
+ <li><a href="/distribute/googleplay/quality/index.html">App Quality</a></li>
+ <li><a href="/distribute/googleplay/spotlight/index.html">Spotlight</a></li>
+ <li><a href="/distribute/open.html">Open Distribution</a></li>
+ </ul>
+ </li>
+ </ul>
+ </div>
+ <!-- /Expanded quicknav -->
+ </div>
+ </div>
+ <!-- /Header -->
+
+
+ <div id="searchResults" class="wrap" style="display:none;">
+ <h2 id="searchTitle">Results</h2>
+ <div id="leftSearchControl" class="search-control">Loading...</div>
+ </div>
+
+
+
+ <!-- Secondary x-nav -->
+ <div id="nav-x">
+ <div class="wrap">
+ <ul class="nav-x col-9 develop" style="width:100%">
+ <li class="training"><a href="/training/index.html"
+ zh-tw-lang="訓練課程"
+ zh-cn-lang="培训"
+ ru-lang="Курсы"
+ ko-lang="교육"
+ ja-lang="トレーニング"
+ es-lang="Capacitación"
+ >Training</a></li>
+ <li class="guide"><a href="/guide/index.html"
+ zh-tw-lang="API 指南"
+ zh-cn-lang="API 指南"
+ ru-lang="Руководства по API"
+ ko-lang="API 가이드"
+ ja-lang="API ガイド"
+ es-lang="Guías de la API"
+ >API Guides</a></li>
+ <li class="reference"><a href="/reference/packages.html"
+ zh-tw-lang="參考資源"
+ zh-cn-lang="参考"
+ ru-lang="Справочник"
+ ko-lang="참조문서"
+ ja-lang="リファレンス"
+ es-lang="Referencia"
+ >Reference</a></li>
+ <li class="tools"><a href="/tools/index.html"
+ zh-tw-lang="相關工具"
+ zh-cn-lang="工具"
+ ru-lang="Инструменты"
+ ko-lang="도구"
+ ja-lang="ツール"
+ es-lang="Herramientas"
+ >Tools</a></li>
+ <li class="google"><a href="/google/index.html"
+ >Google Services</a>
+ </li>
+
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
+ </ul>
+ </div>
+
+ </div>
+ <!-- /Sendondary x-nav -->
+
+
+
+
+
+
+
+
+
+ <div class="wrap clearfix" id="body-content">
+ <div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
+ <div id="devdoc-nav" class="scroll-pane">
+<a class="totop" href="#top" data-g-event="left-nav-top">to top</a>
+
+
+
+<ul id="nav">
+
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/index.html">
+ <span class="en">Overview</span>
+ </a></div>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/games.html">
+ <span class="en">Games</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/location.html">
+ <span class="en">Location</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/plus.html">
+ <span class="en">Google+</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/maps.html">
+ <span class="en">Maps</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play-services/ads.html">
+ <span class="en">Ads</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play-services/id.html">
+ <span class="en">Advertising ID</span></a>
+ </li>
+ </ul>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/wallet.html">
+ <span class="en">Wallet</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/auth.html">
+ <span class="en">Authorization</span>
+ </a></div>
+ </li>
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play-services/index.html">
+ <span class="en">Google Play Services</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play-services/setup.html">
+ <span class="en">Setup</span></a>
+ </li>
+ <li id="gms-tree-list" class="nav-section">
+ <div class="nav-section-header">
+ <a href="/reference/gms-packages.html">
+ <span class="en">Reference</span>
+ </a>
+ <div>
+ </li>
+ </ul>
+ </li>
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/billing/index.html">
+ <span class="en">Google Play In-app Billing</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/billing/billing_overview.html">
+ <span class="en">Overview</span></a>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/api.html">
+ <span class="en">Version 3 API</span></a></div>
+ <ul>
+ <li><a href="/google/play/billing/billing_integrate.html">
+ <span class="en">Implementing the API</span></a></li>
+ <li><a href="/google/play/billing/billing_reference.html">
+ <span class="en">Reference</span></a></li>
+ </ul>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/v2/api.html">
+ <span class="en">Version 2 API</span></a></div>
+ <ul>
+ <li><a href="/google/play/billing/v2/billing_integrate.html">
+ <span class="en">Implementing the API</span></a></li>
+ <li><a href="/google/play/billing/v2/billing_subscriptions.html">
+ <span class="en">Subscriptions</span></a></li>
+ <li><a href="/google/play/billing/v2/billing_reference.html">
+ <span class="en">Reference</span></a></li>
+ </ul>
+ </li>
+ <li><a href="/google/play/billing/billing_subscriptions.html">
+ <span class="en">Subscriptions</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_best_practices.html">
+ <span class="en">Security and Design</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_testing.html">
+ <span class="en">Testing In-app Billing</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_admin.html">
+ <span class="en">Administering In-app Billing</span></a>
+ </li>
+ <li><a href="/google/play/billing/gp-purchase-status-api.html">
+ <span class="en">Purchase Status API</span></a>
+ </li>
+ <li><a href="/google/play/billing/versions.html">
+ <span class="en">Version Notes</span></a>
+ </li>
+ </ul>
+ </li>
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/gcm/index.html">
+ <span class="en">Google Cloud Messaging</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
+ <li><a href="/google/gcm/gs.html">
+ <span class="en">Getting Started</span></a>
+ </li>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
+ </li>
+ <li><a href="/google/gcm/notifications.html">
+ <span class="en">User Notifications</span></a>
+ </li>
+ <li><a href="/google/gcm/adv.html">
+ <span class="en">Advanced Topics</span></a>
+ </li>
+ <li><a href="/google/gcm/c2dm.html">
+ <span class="en">Migration</span></a>
+ </li>
+ <li id="gcm-tree-list" class="nav-section">
+ <div class="nav-section-header">
+ <a href="/reference/gcm-packages.html">
+ <span class="en">Reference</span>
+ </a>
+ <div>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/dist.html">
+ <span class="en">Google Play Distribution</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/filters.html">
+ <span class="en">Filters on Google Play</span></a>
+ </li>
+
+ <li><a href="/google/play/publishing/multiple-apks.html">
+ <span class="en">Multiple APK Support</span></a>
+ </li>
+ <li><a href="/google/play/expansion-files.html">
+ <span class="en">APK Expansion Files</span></a>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/licensing/index.html">
+ <span class="en">Application Licensing</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/licensing/overview.html">
+ <span class="en">Licensing Overview</span></a>
+ </li>
+ <li><a href="/google/play/licensing/setting-up.html">
+ <span class="en">Setting Up for Licensing</span></a>
+ </li>
+ <li><a href="/google/play/licensing/adding-licensing.html">
+ <span class="en">Adding Licensing to Your App</span></a>
+ </li>
+ <li><a href="/google/play/licensing/licensing-reference.html">
+ <span class="en">Licensing Reference</span></a>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/backup/index.html">
+ Android Backup Service</a>
+ </div>
+ <ul>
+ <li><a href="/google/backup/signup.html">
+ Register</a>
+ </li>
+ </ul>
+ </li>
+
+ </ul>
+
+</li>
+
+
+
+</ul>
+
+<script type="text/javascript">
+<!--
+ buildToggleLists();
+ changeNavLang(getLangPref());
+//-->
+</script>
+
+
+
+
+ </div>
+ <script type="text/javascript">
+ showGoogleRefTree();
+
+ </script>
+ </div> <!-- end side-nav -->
+ <script>
+ $(document).ready(function() {
+ scrollIntoView("devdoc-nav");
+ });
+ </script>
+
+
+
+
+
+
+<div class="col-12" id="doc-col">
+
+<div id="api-info-block">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<div class="sum-details-links">
+
+Summary:
+
+
+
+
+
+
+ <a href="#inhconstants">Inherited Constants</a>
+
+
+
+ | <a href="#lfields">Fields</a>
+
+
+
+ | <a href="#inhfields">Inherited Fields</a>
+
+
+
+
+
+ | <a href="#pubmethods">Methods</a>
+
+
+
+
+ | <a href="#inhmethods">Inherited Methods</a>
+
+| <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
+
+</div><!-- end sum-details-links -->
+<div class="api-level">
+
+
+
+
+</div>
+</div><!-- end api-info-block -->
+
+
+<!-- ======== START OF CLASS DATA ======== -->
+
+<div id="jd-header">
+ public
+
+ final
+
+ class
+<h1 itemprop="name">TurnBasedMatchEntity</h1>
+
+
+
+
+ extends Object<br/>
+
+
+
+
+
+
+ implements
+
+ Parcelable
+
+ <a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html">TurnBasedMatch</a>
+
+
+
+
+
+</div><!-- end header -->
+
+<div id="naMessage"></div>
+
+<div id="jd-content" class="api apilevel-">
+<table class="jd-inheritance-table">
+
+
+ <tr>
+
+ <td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
+ </tr>
+
+
+ <tr>
+
+ <td class="jd-inheritance-space"> ↳</td>
+
+ <td colspan="1" class="jd-inheritance-class-cell">com.google.android.gms.games.multiplayer.turnbased.TurnBasedMatchEntity</td>
+ </tr>
+
+
+</table>
+
+
+
+
+
+
+
+<div class="jd-descr">
+
+
+<h2>Class Overview</h2>
+<p itemprop="articleBody">Data object representing the data for a turn-based match. This is immutable, and therefore safe
+ to cache or store. Note, however, that the data it represents may grow stale.
+ <p>
+ This class exists solely to support parceling these objects and should not be used directly.
+</p>
+
+
+
+
+
+</div><!-- jd-descr -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<div class="jd-descr">
+
+
+<h2>Summary</h2>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<!-- =========== ENUM CONSTANT SUMMARY =========== -->
+<table id="inhconstants" class="jd-sumtable"><tr><th>
+ <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
+ <div style="clear:left;">Inherited Constants</div></th></tr>
+
+
+
+
+<tr class="api apilevel-" >
+<td colspan="12">
+
+ <a href="#" onclick="return toggleInherited(this, null)" id="inherited-constants-android.os.Parcelable" class="jd-expando-trigger closed"
+ ><img id="inherited-constants-android.os.Parcelable-trigger"
+ src="/assets/images/triangle-closed.png"
+ class="jd-expando-trigger-img" /></a>From interface
+android.os.Parcelable
+<div id="inherited-constants-android.os.Parcelable">
+ <div id="inherited-constants-android.os.Parcelable-list"
+ class="jd-inheritedlinks">
+ </div>
+ <div id="inherited-constants-android.os.Parcelable-summary" style="display: none;">
+ <table class="jd-sumtable-expando">
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">CONTENTS_FILE_DESCRIPTOR</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol">PARCELABLE_WRITE_RETURN_VALUE</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+</table>
+ </div>
+</div>
+</td></tr>
+
+
+
+
+
+
+
+<tr class="api apilevel-" >
+<td colspan="12">
+
+ <a href="#" onclick="return toggleInherited(this, null)" id="inherited-constants-com.google.android.gms.games.multiplayer.turnbased.TurnBasedMatch" class="jd-expando-trigger closed"
+ ><img id="inherited-constants-com.google.android.gms.games.multiplayer.turnbased.TurnBasedMatch-trigger"
+ src="/assets/images/triangle-closed.png"
+ class="jd-expando-trigger-img" /></a>From interface
+<a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html">com.google.android.gms.games.multiplayer.turnbased.TurnBasedMatch</a>
+<div id="inherited-constants-com.google.android.gms.games.multiplayer.turnbased.TurnBasedMatch">
+ <div id="inherited-constants-com.google.android.gms.games.multiplayer.turnbased.TurnBasedMatch-list"
+ class="jd-inheritedlinks">
+ </div>
+ <div id="inherited-constants-com.google.android.gms.games.multiplayer.turnbased.TurnBasedMatch-summary" style="display: none;">
+ <table class="jd-sumtable-expando">
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html#MATCH_STATUS_ACTIVE">MATCH_STATUS_ACTIVE</a></td>
+ <td class="jd-descrcol" width="100%">Constant returned by <code><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html#getStatus()">getStatus()</a></code> indicating that the match has started.</td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html#MATCH_STATUS_AUTO_MATCHING">MATCH_STATUS_AUTO_MATCHING</a></td>
+ <td class="jd-descrcol" width="100%">Constant returned by <code><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html#getStatus()">getStatus()</a></code> indicating that one or more slots are waiting to be
+ filled by auto-matching.</td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html#MATCH_STATUS_CANCELED">MATCH_STATUS_CANCELED</a></td>
+ <td class="jd-descrcol" width="100%">Constant returned by <code><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html#getStatus()">getStatus()</a></code> indicating that the match was canceled by one of
+ the participants.</td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html#MATCH_STATUS_COMPLETE">MATCH_STATUS_COMPLETE</a></td>
+ <td class="jd-descrcol" width="100%">Constant returned by <code><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html#getStatus()">getStatus()</a></code> indicating that the match has finished.</td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html#MATCH_STATUS_EXPIRED">MATCH_STATUS_EXPIRED</a></td>
+ <td class="jd-descrcol" width="100%">Constant returned by <code><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html#getStatus()">getStatus()</a></code> indicating that the match expired.</td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html#MATCH_TURN_STATUS_COMPLETE">MATCH_TURN_STATUS_COMPLETE</a></td>
+ <td class="jd-descrcol" width="100%">Turn status constant for matches which have been completed.</td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html#MATCH_TURN_STATUS_INVITED">MATCH_TURN_STATUS_INVITED</a></td>
+ <td class="jd-descrcol" width="100%">Turn status constant for matches which the current player has been invited to.</td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html#MATCH_TURN_STATUS_MY_TURN">MATCH_TURN_STATUS_MY_TURN</a></td>
+ <td class="jd-descrcol" width="100%">Turn status constant for matches where it is the current player's turn.</td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html#MATCH_TURN_STATUS_THEIR_TURN">MATCH_TURN_STATUS_THEIR_TURN</a></td>
+ <td class="jd-descrcol" width="100%">Turn status constant for matches where it is not the current player's turn.</td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol">int</td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html#MATCH_VARIANT_ANY">MATCH_VARIANT_ANY</a></td>
+ <td class="jd-descrcol" width="100%">Constant used to indicate that the variant for a match is unspecified.</td>
+ </tr>
+
+
+</table>
+ </div>
+</div>
+</td></tr>
+
+
+</table>
+
+
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+<table id="lfields" class="jd-sumtable"><tr><th colspan="12">Fields</th></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ public
+ static
+ final
+ <a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatchEntityCreator.html">TurnBasedMatchEntityCreator</a></nobr></td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatchEntity.html#CREATOR">CREATOR</a></td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+
+</table>
+
+
+
+
+
+<!-- =========== FIELD SUMMARY =========== -->
+<table id="inhfields" class="jd-sumtable"><tr><th>
+ <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
+ <div style="clear:left;">Inherited Fields</div></th></tr>
+
+
+
+
+
+
+
+
+
+
+<tr class="api apilevel-" >
+<td colspan="12">
+
+ <a href="#" onclick="return toggleInherited(this, null)" id="inherited-fields-com.google.android.gms.games.multiplayer.turnbased.TurnBasedMatch" class="jd-expando-trigger closed"
+ ><img id="inherited-fields-com.google.android.gms.games.multiplayer.turnbased.TurnBasedMatch-trigger"
+ src="/assets/images/triangle-closed.png"
+ class="jd-expando-trigger-img" /></a>From interface
+<a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html">com.google.android.gms.games.multiplayer.turnbased.TurnBasedMatch</a>
+<div id="inherited-fields-com.google.android.gms.games.multiplayer.turnbased.TurnBasedMatch">
+ <div id="inherited-fields-com.google.android.gms.games.multiplayer.turnbased.TurnBasedMatch-list"
+ class="jd-inheritedlinks">
+ </div>
+ <div id="inherited-fields-com.google.android.gms.games.multiplayer.turnbased.TurnBasedMatch-summary" style="display: none;">
+ <table class="jd-sumtable-expando">
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ public
+ static
+ final
+ int[]</nobr></td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html#MATCH_TURN_STATUS_ALL">MATCH_TURN_STATUS_ALL</a></td>
+ <td class="jd-descrcol" width="100%">Array of all the turn status constants.</td>
+ </tr>
+
+
+</table>
+ </div>
+</div>
+</td></tr>
+
+
+</table>
+
+
+
+
+
+
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
+
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatchEntity.html#canRematch()">canRematch</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Return whether or not this match can be rematched.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatchEntity.html#describeContents()">describeContents</a></span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatchEntity.html#equals(java.lang.Object)">equals</a></span>(Object obj)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ <a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html">TurnBasedMatch</a></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatchEntity.html#freeze()">freeze</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Freeze a volatile representation into an immutable representation.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ Bundle</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatchEntity.html#getAutoMatchCriteria()">getAutoMatchCriteria</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Retrieves the automatch criteria used to create or join this match, if any.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatchEntity.html#getAvailableAutoMatchSlots()">getAvailableAutoMatchSlots</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Return the maximum number of available automatch slots for this match.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ long</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatchEntity.html#getCreationTimestamp()">getCreationTimestamp</a></span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ String</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatchEntity.html#getCreatorId()">getCreatorId</a></span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ byte[]</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatchEntity.html#getData()">getData</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Return the current (game-specific) data for this match.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ <a href="/reference/com/google/android/gms/games/Game.html">Game</a></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatchEntity.html#getGame()">getGame</a></span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ long</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatchEntity.html#getLastUpdatedTimestamp()">getLastUpdatedTimestamp</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Return the timestamp at which the match was last modified.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ String</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatchEntity.html#getLastUpdaterId()">getLastUpdaterId</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Return the ID of the participant who updated the match most recently.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ String</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatchEntity.html#getMatchId()">getMatchId</a></span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatchEntity.html#getMatchNumber()">getMatchNumber</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Return the match sequence number for this match.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ <a href="/reference/com/google/android/gms/games/multiplayer/Participant.html">Participant</a></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatchEntity.html#getParticipant(java.lang.String)">getParticipant</a></span>(String participantId)</nobr>
+
+ <div class="jd-descrdiv">Get a participant in a match by its ID.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ String</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatchEntity.html#getParticipantId(java.lang.String)">getParticipantId</a></span>(String playerId)</nobr>
+
+ <div class="jd-descrdiv">Get the participant ID for a given player.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ ArrayList<String></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatchEntity.html#getParticipantIds()">getParticipantIds</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Get the IDs of the participants of the given match.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatchEntity.html#getParticipantStatus(java.lang.String)">getParticipantStatus</a></span>(String participantId)</nobr>
+
+ <div class="jd-descrdiv">Get the status of a participant in a match.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ ArrayList<<a href="/reference/com/google/android/gms/games/multiplayer/Participant.html">Participant</a>></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatchEntity.html#getParticipants()">getParticipants</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Retrieve the <code><a href="/reference/com/google/android/gms/games/multiplayer/Participant.html">Participant</a></code>s for this object.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ String</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatchEntity.html#getPendingParticipantId()">getPendingParticipantId</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Return the ID of the participant that is considered pending.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ byte[]</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatchEntity.html#getPreviousMatchData()">getPreviousMatchData</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Return the match data from the previous match, if available.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ String</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatchEntity.html#getRematchId()">getRematchId</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Return the match ID of the rematch that was created from this match, if any.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatchEntity.html#getStatus()">getStatus</a></span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatchEntity.html#getTurnStatus()">getTurnStatus</a></span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatchEntity.html#getVariant()">getVariant</a></span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatchEntity.html#getVersion()">getVersion</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Return the current version of the match.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatchEntity.html#hashCode()">hashCode</a></span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatchEntity.html#isDataValid()">isDataValid</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Check to see if this object is valid for use.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatchEntity.html#isLocallyModified()">isLocallyModified</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Return whether or not this match has been locally modified.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ String</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatchEntity.html#toString()">toString</a></span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatchEntity.html#writeToParcel(android.os.Parcel, int)">writeToParcel</a></span>(Parcel out, int flags)</nobr>
+
+ </td></tr>
+
+
+
+</table>
+
+
+
+
+
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+<table id="inhmethods" class="jd-sumtable"><tr><th>
+ <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
+ <div style="clear:left;">Inherited Methods</div></th></tr>
+
+
+<tr class="api apilevel-" >
+<td colspan="12">
+ <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-java.lang.Object" class="jd-expando-trigger closed"
+ ><img id="inherited-methods-java.lang.Object-trigger"
+ src="/assets/images/triangle-closed.png"
+ class="jd-expando-trigger-img" /></a>
+From class
+
+ java.lang.Object
+
+<div id="inherited-methods-java.lang.Object">
+ <div id="inherited-methods-java.lang.Object-list"
+ class="jd-inheritedlinks">
+ </div>
+ <div id="inherited-methods-java.lang.Object-summary" style="display: none;">
+ <table class="jd-sumtable-expando">
+
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ Object</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">clone</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">equals</span>(Object arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">finalize</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ Class<?></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getClass</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">hashCode</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">notify</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">notifyAll</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ String</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">toString</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">wait</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">wait</span>(long arg0, int arg1)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">wait</span>(long arg0)</nobr>
+
+ </td></tr>
+
+
+</table>
+ </div>
+</div>
+</td></tr>
+
+
+
+<tr class="api apilevel-" >
+<td colspan="12">
+ <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-android.os.Parcelable" class="jd-expando-trigger closed"
+ ><img id="inherited-methods-android.os.Parcelable-trigger"
+ src="/assets/images/triangle-closed.png"
+ class="jd-expando-trigger-img" /></a>
+From interface
+
+ android.os.Parcelable
+
+<div id="inherited-methods-android.os.Parcelable">
+ <div id="inherited-methods-android.os.Parcelable-list"
+ class="jd-inheritedlinks">
+ </div>
+ <div id="inherited-methods-android.os.Parcelable-summary" style="display: none;">
+ <table class="jd-sumtable-expando">
+
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">describeContents</span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">writeToParcel</span>(Parcel arg0, int arg1)</nobr>
+
+ </td></tr>
+
+
+</table>
+ </div>
+</div>
+</td></tr>
+
+
+
+<tr class="api apilevel-" >
+<td colspan="12">
+ <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.android.gms.common.data.Freezable" class="jd-expando-trigger closed"
+ ><img id="inherited-methods-com.google.android.gms.common.data.Freezable-trigger"
+ src="/assets/images/triangle-closed.png"
+ class="jd-expando-trigger-img" /></a>
+From interface
+
+ <a href="/reference/com/google/android/gms/common/data/Freezable.html">com.google.android.gms.common.data.Freezable</a>
+
+<div id="inherited-methods-com.google.android.gms.common.data.Freezable">
+ <div id="inherited-methods-com.google.android.gms.common.data.Freezable-list"
+ class="jd-inheritedlinks">
+ </div>
+ <div id="inherited-methods-com.google.android.gms.common.data.Freezable-summary" style="display: none;">
+ <table class="jd-sumtable-expando">
+
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ T</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/common/data/Freezable.html#freeze()">freeze</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Freeze a volatile representation into an immutable representation.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/common/data/Freezable.html#isDataValid()">isDataValid</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Check to see if this object is valid for use.</div>
+
+ </td></tr>
+
+
+</table>
+ </div>
+</div>
+</td></tr>
+
+
+
+<tr class="api apilevel-" >
+<td colspan="12">
+ <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.android.gms.games.multiplayer.Participatable" class="jd-expando-trigger closed"
+ ><img id="inherited-methods-com.google.android.gms.games.multiplayer.Participatable-trigger"
+ src="/assets/images/triangle-closed.png"
+ class="jd-expando-trigger-img" /></a>
+From interface
+
+ <a href="/reference/com/google/android/gms/games/multiplayer/Participatable.html">com.google.android.gms.games.multiplayer.Participatable</a>
+
+<div id="inherited-methods-com.google.android.gms.games.multiplayer.Participatable">
+ <div id="inherited-methods-com.google.android.gms.games.multiplayer.Participatable-list"
+ class="jd-inheritedlinks">
+ </div>
+ <div id="inherited-methods-com.google.android.gms.games.multiplayer.Participatable-summary" style="display: none;">
+ <table class="jd-sumtable-expando">
+
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ ArrayList<<a href="/reference/com/google/android/gms/games/multiplayer/Participant.html">Participant</a>></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/Participatable.html#getParticipants()">getParticipants</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Retrieve the <code><a href="/reference/com/google/android/gms/games/multiplayer/Participant.html">Participant</a></code>s for this object.</div>
+
+ </td></tr>
+
+
+</table>
+ </div>
+</div>
+</td></tr>
+
+
+
+<tr class="api apilevel-" >
+<td colspan="12">
+ <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.android.gms.games.multiplayer.turnbased.TurnBasedMatch" class="jd-expando-trigger closed"
+ ><img id="inherited-methods-com.google.android.gms.games.multiplayer.turnbased.TurnBasedMatch-trigger"
+ src="/assets/images/triangle-closed.png"
+ class="jd-expando-trigger-img" /></a>
+From interface
+
+ <a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html">com.google.android.gms.games.multiplayer.turnbased.TurnBasedMatch</a>
+
+<div id="inherited-methods-com.google.android.gms.games.multiplayer.turnbased.TurnBasedMatch">
+ <div id="inherited-methods-com.google.android.gms.games.multiplayer.turnbased.TurnBasedMatch-list"
+ class="jd-inheritedlinks">
+ </div>
+ <div id="inherited-methods-com.google.android.gms.games.multiplayer.turnbased.TurnBasedMatch-summary" style="display: none;">
+ <table class="jd-sumtable-expando">
+
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html#canRematch()">canRematch</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Return whether or not this match can be rematched.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ Bundle</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html#getAutoMatchCriteria()">getAutoMatchCriteria</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Retrieves the automatch criteria used to create or join this match, if any.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html#getAvailableAutoMatchSlots()">getAvailableAutoMatchSlots</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Return the maximum number of available automatch slots for this match.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ long</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html#getCreationTimestamp()">getCreationTimestamp</a></span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ String</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html#getCreatorId()">getCreatorId</a></span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ byte[]</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html#getData()">getData</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Return the current (game-specific) data for this match.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ <a href="/reference/com/google/android/gms/games/Game.html">Game</a></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html#getGame()">getGame</a></span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ long</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html#getLastUpdatedTimestamp()">getLastUpdatedTimestamp</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Return the timestamp at which the match was last modified.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ String</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html#getLastUpdaterId()">getLastUpdaterId</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Return the ID of the participant who updated the match most recently.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ String</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html#getMatchId()">getMatchId</a></span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html#getMatchNumber()">getMatchNumber</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Return the match sequence number for this match.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ <a href="/reference/com/google/android/gms/games/multiplayer/Participant.html">Participant</a></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html#getParticipant(java.lang.String)">getParticipant</a></span>(String participantId)</nobr>
+
+ <div class="jd-descrdiv">Get a participant in a match by its ID.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ String</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html#getParticipantId(java.lang.String)">getParticipantId</a></span>(String playerId)</nobr>
+
+ <div class="jd-descrdiv">Get the participant ID for a given player.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ ArrayList<String></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html#getParticipantIds()">getParticipantIds</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Get the IDs of the participants of the given match.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html#getParticipantStatus(java.lang.String)">getParticipantStatus</a></span>(String participantId)</nobr>
+
+ <div class="jd-descrdiv">Get the status of a participant in a match.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ String</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html#getPendingParticipantId()">getPendingParticipantId</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Return the ID of the participant that is considered pending.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ byte[]</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html#getPreviousMatchData()">getPreviousMatchData</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Return the match data from the previous match, if available.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ String</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html#getRematchId()">getRematchId</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Return the match ID of the rematch that was created from this match, if any.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html#getStatus()">getStatus</a></span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html#getTurnStatus()">getTurnStatus</a></span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html#getVariant()">getVariant</a></span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html#getVersion()">getVersion</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Return the current version of the match.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html#isLocallyModified()">isLocallyModified</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Return whether or not this match has been locally modified.</div>
+
+ </td></tr>
+
+
+</table>
+ </div>
+</div>
+</td></tr>
+
+
+</table>
+
+
+</div><!-- jd-descr (summary) -->
+
+<!-- Details -->
+
+
+
+
+
+
+
+
+<!-- XML Attributes -->
+
+
+<!-- Enum Values -->
+
+
+<!-- Constants -->
+
+
+<!-- Fields -->
+
+
+<!-- ========= FIELD DETAIL ======== -->
+<h2>Fields</h2>
+
+
+
+
+<A NAME="CREATOR"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+ static
+ final
+ <a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatchEntityCreator.html">TurnBasedMatchEntityCreator</a>
+ </span>
+ CREATOR
+ </h4>
+ <div class="api-level">
+
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+
+ </div>
+</div>
+
+
+
+
+<!-- Public ctors -->
+
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<!-- Protected ctors -->
+
+
+
+<!-- ========= METHOD DETAIL ======== -->
+<!-- Public methdos -->
+
+<h2>Public Methods</h2>
+
+
+
+<A NAME="canRematch()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ boolean
+ </span>
+ <span class="sympad">canRematch</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Return whether or not this match can be rematched. This will return true when the match has
+ complete and has not already been rematched.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>Whether or not this match can be rematched.
+</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="describeContents()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ int
+ </span>
+ <span class="sympad">describeContents</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+ </div>
+</div>
+
+
+<A NAME="equals(java.lang.Object)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ boolean
+ </span>
+ <span class="sympad">equals</span>
+ <span class="normal">(Object obj)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+ </div>
+</div>
+
+
+<A NAME="freeze()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ <a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html">TurnBasedMatch</a>
+ </span>
+ <span class="sympad">freeze</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Freeze a volatile representation into an immutable representation. Objects returned from this
+ call are safe to cache.
+ <p>
+ Note that the output of <code>freeze</code> may not be identical to the parent object, but should
+ be equal. In other words:
+
+ <pre>
+ <code>
+ Freezable f1 = new Freezable();
+ Freezable f2 = f1.freeze();
+ f1 == f2 may not be true.
+ f1.equals(f2) will be true.
+ </code>
+ </pre></p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>A concrete implementation of the data object.
+</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="getAutoMatchCriteria()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ Bundle
+ </span>
+ <span class="sympad">getAutoMatchCriteria</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Retrieves the automatch criteria used to create or join this match, if any. May be null if
+ the match has no automatch properties.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>A bundle containing the automatch criteria for this match.
+</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="getAvailableAutoMatchSlots()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ int
+ </span>
+ <span class="sympad">getAvailableAutoMatchSlots</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Return the maximum number of available automatch slots for this match. If automatch criteria
+ were not specified during match creation, or if all slots have been filled, this will return
+ 0.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>The maximum number of additional players that can be added to this match.
+</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="getCreationTimestamp()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ long
+ </span>
+ <span class="sympad">getCreationTimestamp</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+ </div>
+</div>
+
+
+<A NAME="getCreatorId()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ String
+ </span>
+ <span class="sympad">getCreatorId</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+ </div>
+</div>
+
+
+<A NAME="getData()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ byte[]
+ </span>
+ <span class="sympad">getData</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Return the current (game-specific) data for this match.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>Byte array representing the current (game-specific) match state data.
+</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="getGame()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ <a href="/reference/com/google/android/gms/games/Game.html">Game</a>
+ </span>
+ <span class="sympad">getGame</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+ </div>
+</div>
+
+
+<A NAME="getLastUpdatedTimestamp()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ long
+ </span>
+ <span class="sympad">getLastUpdatedTimestamp</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Return the timestamp at which the match was last modified.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>The server timestamp at which the match was last modified.
+</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="getLastUpdaterId()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ String
+ </span>
+ <span class="sympad">getLastUpdaterId</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Return the ID of the participant who updated the match most recently.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>The ID of the last participant who updated this Match object.
+</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="getMatchId()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ String
+ </span>
+ <span class="sympad">getMatchId</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+ </div>
+</div>
+
+
+<A NAME="getMatchNumber()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ int
+ </span>
+ <span class="sympad">getMatchNumber</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Return the match sequence number for this match. This number starts at 1, and increases every
+ time a rematch is created.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>The match sequence number for this match.
+</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="getParticipant(java.lang.String)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ <a href="/reference/com/google/android/gms/games/multiplayer/Participant.html">Participant</a>
+ </span>
+ <span class="sympad">getParticipant</span>
+ <span class="normal">(String participantId)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Get a participant in a match by its ID. Note that the participant ID must correspond to a
+ participant in this match, or this method will throw an exception.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>participantId</td>
+ <td>Match-local ID of the participant to retrieve status for.</td>
+ </tr>
+ </table>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>The participant corresponding to the given ID.</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="getParticipantId(java.lang.String)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ String
+ </span>
+ <span class="sympad">getParticipantId</span>
+ <span class="normal">(String playerId)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Get the participant ID for a given player. This will only return a non-null ID if the player
+ is actually a participant in the match and that player's identity is visible to the current
+ player. Note that this will always return non-null for the current player.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>playerId</td>
+ <td>Player ID to find participant ID for.</td>
+ </tr>
+ </table>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>The participant ID corresponding to given player, or null if none found.
+</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="getParticipantIds()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ ArrayList<String>
+ </span>
+ <span class="sympad">getParticipantIds</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Get the IDs of the participants of the given match.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>The IDs of the participants in this match. These are returned in the participant
+ order of the match. Note that these are not stable across matches.
+</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="getParticipantStatus(java.lang.String)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ int
+ </span>
+ <span class="sympad">getParticipantStatus</span>
+ <span class="normal">(String participantId)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Get the status of a participant in a match. Note that the participant ID must correspond to a
+ participant in this match, or this method will throw an exception.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>participantId</td>
+ <td>Match-local ID of the participant to retrieve status for.</td>
+ </tr>
+ </table>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>The current status of the participant in this match. One of
+ <code><a href="/reference/com/google/android/gms/games/multiplayer/Participant.html#STATUS_INVITED">STATUS_INVITED</a></code>, <code><a href="/reference/com/google/android/gms/games/multiplayer/Participant.html#STATUS_JOINED">STATUS_JOINED</a></code>,
+ <code><a href="/reference/com/google/android/gms/games/multiplayer/Participant.html#STATUS_DECLINED">STATUS_DECLINED</a></code>, <code><a href="/reference/com/google/android/gms/games/multiplayer/Participant.html#STATUS_LEFT">STATUS_LEFT</a></code>,
+ or <code><a href="/reference/com/google/android/gms/games/multiplayer/Participant.html#STATUS_NOT_INVITED_YET">STATUS_NOT_INVITED_YET</a></code>.</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="getParticipants()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ ArrayList<<a href="/reference/com/google/android/gms/games/multiplayer/Participant.html">Participant</a>>
+ </span>
+ <span class="sympad">getParticipants</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Retrieve the <code><a href="/reference/com/google/android/gms/games/multiplayer/Participant.html">Participant</a></code>s for this object. This is a list of all Participants
+ applicable to the given object.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>A list of <code><a href="/reference/com/google/android/gms/games/multiplayer/Participant.html">Participant</a></code>s for this object.
+</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="getPendingParticipantId()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ String
+ </span>
+ <span class="sympad">getPendingParticipantId</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Return the ID of the participant that is considered pending. If no participant is considered
+ pending (ie, the match is over, etc), this function will return null.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>The ID of the participant that is considered pending, if any. Returns null if no
+ participant is pending.
+</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="getPreviousMatchData()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ byte[]
+ </span>
+ <span class="sympad">getPreviousMatchData</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Return the match data from the previous match, if available. Note that this is only provided
+ on the first turn of a rematched match.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>Byte array of data from the previous match of a rematch, or null if not available.
+</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="getRematchId()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ String
+ </span>
+ <span class="sympad">getRematchId</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Return the match ID of the rematch that was created from this match, if any. This will only
+ be non-null if a rematch has been created.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>The match ID of the rematch, or null if no rematch exists.
+</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="getStatus()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ int
+ </span>
+ <span class="sympad">getStatus</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+ </div>
+</div>
+
+
+<A NAME="getTurnStatus()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ int
+ </span>
+ <span class="sympad">getTurnStatus</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+ </div>
+</div>
+
+
+<A NAME="getVariant()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ int
+ </span>
+ <span class="sympad">getVariant</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+ </div>
+</div>
+
+
+<A NAME="getVersion()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ int
+ </span>
+ <span class="sympad">getVersion</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Return the current version of the match.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>The current version of the match.
+</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="hashCode()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ int
+ </span>
+ <span class="sympad">hashCode</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+ </div>
+</div>
+
+
+<A NAME="isDataValid()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ boolean
+ </span>
+ <span class="sympad">isDataValid</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Check to see if this object is valid for use. If the object is still volatile, this method
+ will indicate whether or not the object can be safely used. The output of a call to
+ <code><a href="/reference/com/google/android/gms/common/data/Freezable.html#freeze()">freeze()</a></code> will always be valid.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>whether or not the object is valid for use.
+</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="isLocallyModified()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ boolean
+ </span>
+ <span class="sympad">isLocallyModified</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Return whether or not this match has been locally modified. If this is true, the local device
+ has match state which has not successfully synced to the server yet. In this state, further
+ mutations to the match will fail with a status of
+ STATUS_MATCH_ERROR_LOCALLY_MODIFIED.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>Whether this match has local modifications or not.
+</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="toString()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ String
+ </span>
+ <span class="sympad">toString</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+ </div>
+</div>
+
+
+<A NAME="writeToParcel(android.os.Parcel, int)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ void
+ </span>
+ <span class="sympad">writeToParcel</span>
+ <span class="normal">(Parcel out, int flags)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+ </div>
+</div>
+
+
+
+
+
+<!-- ========= METHOD DETAIL ======== -->
+
+
+
+<!-- ========= END OF CLASS DATA ========= -->
+<A NAME="navbar_top"></A>
+
+<div id="footer" class="wrap" >
+
+
+ <div id="copyright">
+
+ Except as noted, this content is licensed under <a
+ href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.
+ For details and restrictions, see the <a href="/license.html">
+ Content License</a>.
+ </div>
+ <div id="build_info">
+
+<script src="/timestamp.js" type="text/javascript"></script>
+<script>document.write(BUILD_TIMESTAMP)</script>
+
+ </div>
+
+
+ <div id="footerlinks">
+
+ <p>
+ <a href="/about/index.html">About Android</a> |
+ <a href="/legal.html">Legal</a> |
+ <a href="/support.html">Support</a>
+ </p>
+ </div>
+
+</div> <!-- end footer -->
+</div> <!-- jd-content -->
+
+</div><!-- end doc-content -->
+
+</div> <!-- end body-content -->
+
+
+
+
+
+
+</body>
+</html>
diff --git a/docs/html/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMultiplayerListener.html b/docs/html/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMultiplayerListener.html
new file mode 100644
index 0000000..d8f7cb07
--- /dev/null
+++ b/docs/html/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMultiplayerListener.html
@@ -0,0 +1,1297 @@
+<!DOCTYPE html>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<html>
+<head>
+
+
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<meta name="viewport" content="width=device-width" />
+
+<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
+<title>TurnBasedMultiplayerListener | Android Developers</title>
+
+<!-- STYLESHEETS -->
+<link rel="stylesheet"
+href="//fonts.googleapis.com/css?family=Roboto:regular,medium,thin,italic,mediumitalic,bold" title="roboto">
+<link href="/assets/css/default.css" rel="stylesheet" type="text/css">
+
+
+
+<!-- JAVASCRIPT -->
+<script src="//www.google.com/jsapi" type="text/javascript"></script>
+<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
+<script type="text/javascript">
+ var toRoot = "/";
+ var metaTags = [];
+ var devsite = false;
+</script>
+<script src="/assets/js/docs.js" type="text/javascript"></script>
+
+<script type="text/javascript">
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-5831155-1']);
+ _gaq.push(['_trackPageview']);
+
+ (function() {
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+ })();
+</script>
+</head>
+<body class="gc-documentation google
+ develop" itemscope itemtype="http://schema.org/Article">
+ <div id="doc-api-level" class="" style="display:none"></div>
+ <a name="top"></a>
+
+<a name="top"></a>
+
+ <!-- Header -->
+ <div id="header">
+ <div class="wrap" id="header-wrap">
+ <div class="col-3 logo">
+ <a href="/index.html">
+ <img src="/assets/images/dac_logo.png" width="123" height="25" alt="Android Developers" />
+ </a>
+ <div class="btn-quicknav" id="btn-quicknav">
+ <a href="#" class="arrow-inactive">Quicknav</a>
+ <a href="#" class="arrow-active">Quicknav</a>
+ </div>
+ </div>
+ <ul class="nav-x col-9">
+ <li class="design">
+ <a href="/design/index.html"
+ zh-tw-lang="設計"
+ zh-cn-lang="设计"
+ ru-lang="Проектирование"
+ ko-lang="디자인"
+ ja-lang="設計"
+ es-lang="Diseñar"
+ >Design</a></li>
+ <li class="develop"><a href="/develop/index.html"
+ zh-tw-lang="開發"
+ zh-cn-lang="开发"
+ ru-lang="Разработка"
+ ko-lang="개발"
+ ja-lang="開発"
+ es-lang="Desarrollar"
+ >Develop</a></li>
+ <li class="distribute last"><a href="/distribute/index.html"
+ zh-tw-lang="發佈"
+ zh-cn-lang="分发"
+ ru-lang="Распространение"
+ ko-lang="배포"
+ ja-lang="配布"
+ es-lang="Distribuir"
+ >Distribute</a></li>
+ </ul>
+
+ <!-- New Search -->
+ <div class="menu-container">
+ <div class="moremenu">
+ <div id="more-btn"></div>
+ </div>
+ <div class="morehover" id="moremenu">
+ <div class="top"></div>
+ <div class="mid">
+ <div class="header">Links</div>
+ <ul>
+ <li><a href="https://play.google.com/apps/publish/">Google Play Developer Console</a></li>
+ <li><a href="http://android-developers.blogspot.com/">Android Developers Blog</a></li>
+ <li><a href="/about/index.html">About Android</a></li>
+ </ul>
+ <div class="header">Android Sites</div>
+ <ul>
+ <li><a href="http://www.android.com">Android.com</a></li>
+ <li class="active"><a>Android Developers</a></li>
+ <li><a href="http://source.android.com">Android Open Source Project</a></li>
+ </ul>
+
+
+
+ <div class="header">Language</div>
+ <div id="language" class="locales">
+ <select name="language" onChange="changeLangPref(this.value, true)">
+ <option value="en">English</option>
+ <option value="es">Español</option>
+ <option value="ja">日本語</option>
+ <option value="ko">한국어</option>
+ <option value="ru">Русский</option>
+ <option value="zh-cn">中文 (中国)</option>
+ <option value="zh-tw">中文 (台灣)</option>
+ </select>
+ </div>
+ <script type="text/javascript">
+ <!--
+ loadLangPref();
+ //-->
+ </script>
+
+
+
+
+ <br class="clearfix" />
+ </div>
+ <div class="bottom"></div>
+ </div>
+ <div class="search" id="search-container">
+ <div class="search-inner">
+ <div id="search-btn"></div>
+ <div class="left"></div>
+ <form onsubmit="return submit_search()">
+ <input id="search_autocomplete" type="text" value="" autocomplete="off" name="q"
+onfocus="search_focus_changed(this, true)" onblur="search_focus_changed(this, false)"
+onkeydown="return search_changed(event, true, '/')"
+onkeyup="return search_changed(event, false, '/')" />
+ </form>
+ <div class="right"></div>
+ <a class="close hide">close</a>
+ <div class="left"></div>
+ <div class="right"></div>
+ </div>
+ </div>
+
+ <div class="search_filtered_wrapper reference">
+ <div class="suggest-card reference no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ </div>
+
+ <div class="search_filtered_wrapper docs">
+ <div class="suggest-card dummy no-display"> </div>
+ <div class="suggest-card develop no-display">
+ <ul class="search_filtered">
+ </ul>
+ <div class="child-card guides no-display">
+ </div>
+ <div class="child-card training no-display">
+ </div>
+ <div class="child-card samples no-display">
+ </div>
+ </div>
+ <div class="suggest-card design no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ <div class="suggest-card distribute no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ </div>
+
+ </div>
+ <!-- /New Search>
+
+
+ <!-- Expanded quicknav -->
+ <div id="quicknav" class="col-9">
+ <ul>
+ <li class="design">
+ <ul>
+ <li><a href="/design/index.html">Get Started</a></li>
+ <li><a href="/design/style/index.html">Style</a></li>
+ <li><a href="/design/patterns/index.html">Patterns</a></li>
+ <li><a href="/design/building-blocks/index.html">Building Blocks</a></li>
+ <li><a href="/design/downloads/index.html">Downloads</a></li>
+ <li><a href="/design/videos/index.html">Videos</a></li>
+ </ul>
+ </li>
+ <li class="develop">
+ <ul>
+ <li><a href="/training/index.html"
+ zh-tw-lang="訓練課程"
+ zh-cn-lang="培训"
+ ru-lang="Курсы"
+ ko-lang="교육"
+ ja-lang="トレーニング"
+ es-lang="Capacitación"
+ >Training</a></li>
+ <li><a href="/guide/index.html"
+ zh-tw-lang="API 指南"
+ zh-cn-lang="API 指南"
+ ru-lang="Руководства по API"
+ ko-lang="API 가이드"
+ ja-lang="API ガイド"
+ es-lang="Guías de la API"
+ >API Guides</a></li>
+ <li><a href="/reference/packages.html"
+ zh-tw-lang="參考資源"
+ zh-cn-lang="参考"
+ ru-lang="Справочник"
+ ko-lang="참조문서"
+ ja-lang="リファレンス"
+ es-lang="Referencia"
+ >Reference</a></li>
+ <li><a href="/tools/index.html"
+ zh-tw-lang="相關工具"
+ zh-cn-lang="工具"
+ ru-lang="Инструменты"
+ ko-lang="도구"
+ ja-lang="ツール"
+ es-lang="Herramientas"
+ >Tools</a>
+ <ul><li><a href="/sdk/index.html">Get the SDK</a></li></ul>
+ </li>
+ <li><a href="/google/index.html">Google Services</a>
+ </li>
+
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
+ </ul>
+ </li>
+ <li class="distribute last">
+ <ul>
+ <li><a href="/distribute/index.html">Google Play</a></li>
+ <li><a href="/distribute/googleplay/publish/index.html">Publishing</a></li>
+ <li><a href="/distribute/googleplay/promote/index.html">Promoting</a></li>
+ <li><a href="/distribute/googleplay/quality/index.html">App Quality</a></li>
+ <li><a href="/distribute/googleplay/spotlight/index.html">Spotlight</a></li>
+ <li><a href="/distribute/open.html">Open Distribution</a></li>
+ </ul>
+ </li>
+ </ul>
+ </div>
+ <!-- /Expanded quicknav -->
+ </div>
+ </div>
+ <!-- /Header -->
+
+
+ <div id="searchResults" class="wrap" style="display:none;">
+ <h2 id="searchTitle">Results</h2>
+ <div id="leftSearchControl" class="search-control">Loading...</div>
+ </div>
+
+
+
+ <!-- Secondary x-nav -->
+ <div id="nav-x">
+ <div class="wrap">
+ <ul class="nav-x col-9 develop" style="width:100%">
+ <li class="training"><a href="/training/index.html"
+ zh-tw-lang="訓練課程"
+ zh-cn-lang="培训"
+ ru-lang="Курсы"
+ ko-lang="교육"
+ ja-lang="トレーニング"
+ es-lang="Capacitación"
+ >Training</a></li>
+ <li class="guide"><a href="/guide/index.html"
+ zh-tw-lang="API 指南"
+ zh-cn-lang="API 指南"
+ ru-lang="Руководства по API"
+ ko-lang="API 가이드"
+ ja-lang="API ガイド"
+ es-lang="Guías de la API"
+ >API Guides</a></li>
+ <li class="reference"><a href="/reference/packages.html"
+ zh-tw-lang="參考資源"
+ zh-cn-lang="参考"
+ ru-lang="Справочник"
+ ko-lang="참조문서"
+ ja-lang="リファレンス"
+ es-lang="Referencia"
+ >Reference</a></li>
+ <li class="tools"><a href="/tools/index.html"
+ zh-tw-lang="相關工具"
+ zh-cn-lang="工具"
+ ru-lang="Инструменты"
+ ko-lang="도구"
+ ja-lang="ツール"
+ es-lang="Herramientas"
+ >Tools</a></li>
+ <li class="google"><a href="/google/index.html"
+ >Google Services</a>
+ </li>
+
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
+ </ul>
+ </div>
+
+ </div>
+ <!-- /Sendondary x-nav -->
+
+
+
+
+
+
+
+
+
+ <div class="wrap clearfix" id="body-content">
+ <div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
+ <div id="devdoc-nav" class="scroll-pane">
+<a class="totop" href="#top" data-g-event="left-nav-top">to top</a>
+
+
+
+<ul id="nav">
+
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/index.html">
+ <span class="en">Overview</span>
+ </a></div>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/games.html">
+ <span class="en">Games</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/location.html">
+ <span class="en">Location</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/plus.html">
+ <span class="en">Google+</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/maps.html">
+ <span class="en">Maps</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play-services/ads.html">
+ <span class="en">Ads</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play-services/id.html">
+ <span class="en">Advertising ID</span></a>
+ </li>
+ </ul>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/wallet.html">
+ <span class="en">Wallet</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/auth.html">
+ <span class="en">Authorization</span>
+ </a></div>
+ </li>
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play-services/index.html">
+ <span class="en">Google Play Services</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play-services/setup.html">
+ <span class="en">Setup</span></a>
+ </li>
+ <li id="gms-tree-list" class="nav-section">
+ <div class="nav-section-header">
+ <a href="/reference/gms-packages.html">
+ <span class="en">Reference</span>
+ </a>
+ <div>
+ </li>
+ </ul>
+ </li>
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/billing/index.html">
+ <span class="en">Google Play In-app Billing</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/billing/billing_overview.html">
+ <span class="en">Overview</span></a>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/api.html">
+ <span class="en">Version 3 API</span></a></div>
+ <ul>
+ <li><a href="/google/play/billing/billing_integrate.html">
+ <span class="en">Implementing the API</span></a></li>
+ <li><a href="/google/play/billing/billing_reference.html">
+ <span class="en">Reference</span></a></li>
+ </ul>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/v2/api.html">
+ <span class="en">Version 2 API</span></a></div>
+ <ul>
+ <li><a href="/google/play/billing/v2/billing_integrate.html">
+ <span class="en">Implementing the API</span></a></li>
+ <li><a href="/google/play/billing/v2/billing_subscriptions.html">
+ <span class="en">Subscriptions</span></a></li>
+ <li><a href="/google/play/billing/v2/billing_reference.html">
+ <span class="en">Reference</span></a></li>
+ </ul>
+ </li>
+ <li><a href="/google/play/billing/billing_subscriptions.html">
+ <span class="en">Subscriptions</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_best_practices.html">
+ <span class="en">Security and Design</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_testing.html">
+ <span class="en">Testing In-app Billing</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_admin.html">
+ <span class="en">Administering In-app Billing</span></a>
+ </li>
+ <li><a href="/google/play/billing/gp-purchase-status-api.html">
+ <span class="en">Purchase Status API</span></a>
+ </li>
+ <li><a href="/google/play/billing/versions.html">
+ <span class="en">Version Notes</span></a>
+ </li>
+ </ul>
+ </li>
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/gcm/index.html">
+ <span class="en">Google Cloud Messaging</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
+ <li><a href="/google/gcm/gs.html">
+ <span class="en">Getting Started</span></a>
+ </li>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
+ </li>
+ <li><a href="/google/gcm/notifications.html">
+ <span class="en">User Notifications</span></a>
+ </li>
+ <li><a href="/google/gcm/adv.html">
+ <span class="en">Advanced Topics</span></a>
+ </li>
+ <li><a href="/google/gcm/c2dm.html">
+ <span class="en">Migration</span></a>
+ </li>
+ <li id="gcm-tree-list" class="nav-section">
+ <div class="nav-section-header">
+ <a href="/reference/gcm-packages.html">
+ <span class="en">Reference</span>
+ </a>
+ <div>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/dist.html">
+ <span class="en">Google Play Distribution</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/filters.html">
+ <span class="en">Filters on Google Play</span></a>
+ </li>
+
+ <li><a href="/google/play/publishing/multiple-apks.html">
+ <span class="en">Multiple APK Support</span></a>
+ </li>
+ <li><a href="/google/play/expansion-files.html">
+ <span class="en">APK Expansion Files</span></a>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/licensing/index.html">
+ <span class="en">Application Licensing</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/licensing/overview.html">
+ <span class="en">Licensing Overview</span></a>
+ </li>
+ <li><a href="/google/play/licensing/setting-up.html">
+ <span class="en">Setting Up for Licensing</span></a>
+ </li>
+ <li><a href="/google/play/licensing/adding-licensing.html">
+ <span class="en">Adding Licensing to Your App</span></a>
+ </li>
+ <li><a href="/google/play/licensing/licensing-reference.html">
+ <span class="en">Licensing Reference</span></a>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/backup/index.html">
+ Android Backup Service</a>
+ </div>
+ <ul>
+ <li><a href="/google/backup/signup.html">
+ Register</a>
+ </li>
+ </ul>
+ </li>
+
+ </ul>
+
+</li>
+
+
+
+</ul>
+
+<script type="text/javascript">
+<!--
+ buildToggleLists();
+ changeNavLang(getLangPref());
+//-->
+</script>
+
+
+
+
+ </div>
+ <script type="text/javascript">
+ showGoogleRefTree();
+
+ </script>
+ </div> <!-- end side-nav -->
+ <script>
+ $(document).ready(function() {
+ scrollIntoView("devdoc-nav");
+ });
+ </script>
+
+
+
+
+
+
+<div class="col-12" id="doc-col">
+
+<div id="api-info-block">
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<div class="sum-details-links">
+
+Summary:
+
+
+
+
+
+
+
+
+
+
+
+
+
+ <a href="#inhmethods">Inherited Methods</a>
+
+| <a href="#" onclick="return toggleAllClassInherited()" id="toggleAllClassInherited">[Expand All]</a>
+
+</div><!-- end sum-details-links -->
+<div class="api-level">
+
+
+
+
+</div>
+</div><!-- end api-info-block -->
+
+
+<!-- ======== START OF CLASS DATA ======== -->
+
+<div id="jd-header">
+ public
+
+
+
+ interface
+<h1 itemprop="name">TurnBasedMultiplayerListener</h1>
+
+
+
+
+
+ implements
+
+ <a href="/reference/com/google/android/gms/games/multiplayer/OnInvitationReceivedListener.html">OnInvitationReceivedListener</a>
+
+ <a href="/reference/com/google/android/gms/games/multiplayer/turnbased/OnTurnBasedMatchCanceledListener.html">OnTurnBasedMatchCanceledListener</a>
+
+ <a href="/reference/com/google/android/gms/games/multiplayer/turnbased/OnTurnBasedMatchInitiatedListener.html">OnTurnBasedMatchInitiatedListener</a>
+
+ <a href="/reference/com/google/android/gms/games/multiplayer/turnbased/OnTurnBasedMatchLeftListener.html">OnTurnBasedMatchLeftListener</a>
+
+ <a href="/reference/com/google/android/gms/games/multiplayer/turnbased/OnTurnBasedMatchUpdateReceivedListener.html">OnTurnBasedMatchUpdateReceivedListener</a>
+
+ <a href="/reference/com/google/android/gms/games/multiplayer/turnbased/OnTurnBasedMatchUpdatedListener.html">OnTurnBasedMatchUpdatedListener</a>
+
+ <a href="/reference/com/google/android/gms/games/multiplayer/turnbased/OnTurnBasedMatchesLoadedListener.html">OnTurnBasedMatchesLoadedListener</a>
+
+
+
+
+
+</div><!-- end header -->
+
+<div id="naMessage"></div>
+
+<div id="jd-content" class="api apilevel-">
+<table class="jd-inheritance-table">
+
+
+ <tr>
+
+ <td colspan="1" class="jd-inheritance-class-cell">com.google.android.gms.games.multiplayer.turnbased.TurnBasedMultiplayerListener</td>
+ </tr>
+
+
+</table>
+
+
+
+
+
+
+
+<div class="jd-descr">
+
+
+<h2>Class Overview</h2>
+<p itemprop="articleBody">Helper interface compounding all of the necessary listeners to implement a turn-based multiplayer
+ game.
+</p>
+
+
+
+
+
+</div><!-- jd-descr -->
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<div class="jd-descr">
+
+
+<h2>Summary</h2>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+<table id="inhmethods" class="jd-sumtable"><tr><th>
+ <a href="#" class="toggle-all" onclick="return toggleAllInherited(this, null)">[Expand]</a>
+ <div style="clear:left;">Inherited Methods</div></th></tr>
+
+
+<tr class="api apilevel-" >
+<td colspan="12">
+ <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.android.gms.games.multiplayer.OnInvitationReceivedListener" class="jd-expando-trigger closed"
+ ><img id="inherited-methods-com.google.android.gms.games.multiplayer.OnInvitationReceivedListener-trigger"
+ src="/assets/images/triangle-closed.png"
+ class="jd-expando-trigger-img" /></a>
+From interface
+
+ <a href="/reference/com/google/android/gms/games/multiplayer/OnInvitationReceivedListener.html">com.google.android.gms.games.multiplayer.OnInvitationReceivedListener</a>
+
+<div id="inherited-methods-com.google.android.gms.games.multiplayer.OnInvitationReceivedListener">
+ <div id="inherited-methods-com.google.android.gms.games.multiplayer.OnInvitationReceivedListener-list"
+ class="jd-inheritedlinks">
+ </div>
+ <div id="inherited-methods-com.google.android.gms.games.multiplayer.OnInvitationReceivedListener-summary" style="display: none;">
+ <table class="jd-sumtable-expando">
+
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/OnInvitationReceivedListener.html#onInvitationReceived(com.google.android.gms.games.multiplayer.Invitation)">onInvitationReceived</a></span>(<a href="/reference/com/google/android/gms/games/multiplayer/Invitation.html">Invitation</a> invitation)</nobr>
+
+ <div class="jd-descrdiv">Callback invoked when a new invitation is received.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/OnInvitationReceivedListener.html#onInvitationRemoved(java.lang.String)">onInvitationRemoved</a></span>(String invitationId)</nobr>
+
+ <div class="jd-descrdiv">Callback invoked when a previously received invitation has been removed from the local
+ device.</div>
+
+ </td></tr>
+
+
+</table>
+ </div>
+</div>
+</td></tr>
+
+
+
+<tr class="api apilevel-" >
+<td colspan="12">
+ <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.android.gms.games.multiplayer.turnbased.OnTurnBasedMatchCanceledListener" class="jd-expando-trigger closed"
+ ><img id="inherited-methods-com.google.android.gms.games.multiplayer.turnbased.OnTurnBasedMatchCanceledListener-trigger"
+ src="/assets/images/triangle-closed.png"
+ class="jd-expando-trigger-img" /></a>
+From interface
+
+ <a href="/reference/com/google/android/gms/games/multiplayer/turnbased/OnTurnBasedMatchCanceledListener.html">com.google.android.gms.games.multiplayer.turnbased.OnTurnBasedMatchCanceledListener</a>
+
+<div id="inherited-methods-com.google.android.gms.games.multiplayer.turnbased.OnTurnBasedMatchCanceledListener">
+ <div id="inherited-methods-com.google.android.gms.games.multiplayer.turnbased.OnTurnBasedMatchCanceledListener-list"
+ class="jd-inheritedlinks">
+ </div>
+ <div id="inherited-methods-com.google.android.gms.games.multiplayer.turnbased.OnTurnBasedMatchCanceledListener-summary" style="display: none;">
+ <table class="jd-sumtable-expando">
+
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/OnTurnBasedMatchCanceledListener.html#onTurnBasedMatchCanceled(int, java.lang.String)">onTurnBasedMatchCanceled</a></span>(int statusCode, String matchId)</nobr>
+
+ <div class="jd-descrdiv">Called when the match has been canceled.</div>
+
+ </td></tr>
+
+
+</table>
+ </div>
+</div>
+</td></tr>
+
+
+
+<tr class="api apilevel-" >
+<td colspan="12">
+ <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.android.gms.games.multiplayer.turnbased.OnTurnBasedMatchInitiatedListener" class="jd-expando-trigger closed"
+ ><img id="inherited-methods-com.google.android.gms.games.multiplayer.turnbased.OnTurnBasedMatchInitiatedListener-trigger"
+ src="/assets/images/triangle-closed.png"
+ class="jd-expando-trigger-img" /></a>
+From interface
+
+ <a href="/reference/com/google/android/gms/games/multiplayer/turnbased/OnTurnBasedMatchInitiatedListener.html">com.google.android.gms.games.multiplayer.turnbased.OnTurnBasedMatchInitiatedListener</a>
+
+<div id="inherited-methods-com.google.android.gms.games.multiplayer.turnbased.OnTurnBasedMatchInitiatedListener">
+ <div id="inherited-methods-com.google.android.gms.games.multiplayer.turnbased.OnTurnBasedMatchInitiatedListener-list"
+ class="jd-inheritedlinks">
+ </div>
+ <div id="inherited-methods-com.google.android.gms.games.multiplayer.turnbased.OnTurnBasedMatchInitiatedListener-summary" style="display: none;">
+ <table class="jd-sumtable-expando">
+
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/OnTurnBasedMatchInitiatedListener.html#onTurnBasedMatchInitiated(int, com.google.android.gms.games.multiplayer.turnbased.TurnBasedMatch)">onTurnBasedMatchInitiated</a></span>(int statusCode, <a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html">TurnBasedMatch</a> match)</nobr>
+
+ <div class="jd-descrdiv">Called when match has been initiated.</div>
+
+ </td></tr>
+
+
+</table>
+ </div>
+</div>
+</td></tr>
+
+
+
+<tr class="api apilevel-" >
+<td colspan="12">
+ <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.android.gms.games.multiplayer.turnbased.OnTurnBasedMatchLeftListener" class="jd-expando-trigger closed"
+ ><img id="inherited-methods-com.google.android.gms.games.multiplayer.turnbased.OnTurnBasedMatchLeftListener-trigger"
+ src="/assets/images/triangle-closed.png"
+ class="jd-expando-trigger-img" /></a>
+From interface
+
+ <a href="/reference/com/google/android/gms/games/multiplayer/turnbased/OnTurnBasedMatchLeftListener.html">com.google.android.gms.games.multiplayer.turnbased.OnTurnBasedMatchLeftListener</a>
+
+<div id="inherited-methods-com.google.android.gms.games.multiplayer.turnbased.OnTurnBasedMatchLeftListener">
+ <div id="inherited-methods-com.google.android.gms.games.multiplayer.turnbased.OnTurnBasedMatchLeftListener-list"
+ class="jd-inheritedlinks">
+ </div>
+ <div id="inherited-methods-com.google.android.gms.games.multiplayer.turnbased.OnTurnBasedMatchLeftListener-summary" style="display: none;">
+ <table class="jd-sumtable-expando">
+
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/OnTurnBasedMatchLeftListener.html#onTurnBasedMatchLeft(int, com.google.android.gms.games.multiplayer.turnbased.TurnBasedMatch)">onTurnBasedMatchLeft</a></span>(int statusCode, <a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html">TurnBasedMatch</a> match)</nobr>
+
+ <div class="jd-descrdiv">Called when the player has left the match.</div>
+
+ </td></tr>
+
+
+</table>
+ </div>
+</div>
+</td></tr>
+
+
+
+<tr class="api apilevel-" >
+<td colspan="12">
+ <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.android.gms.games.multiplayer.turnbased.OnTurnBasedMatchUpdateReceivedListener" class="jd-expando-trigger closed"
+ ><img id="inherited-methods-com.google.android.gms.games.multiplayer.turnbased.OnTurnBasedMatchUpdateReceivedListener-trigger"
+ src="/assets/images/triangle-closed.png"
+ class="jd-expando-trigger-img" /></a>
+From interface
+
+ <a href="/reference/com/google/android/gms/games/multiplayer/turnbased/OnTurnBasedMatchUpdateReceivedListener.html">com.google.android.gms.games.multiplayer.turnbased.OnTurnBasedMatchUpdateReceivedListener</a>
+
+<div id="inherited-methods-com.google.android.gms.games.multiplayer.turnbased.OnTurnBasedMatchUpdateReceivedListener">
+ <div id="inherited-methods-com.google.android.gms.games.multiplayer.turnbased.OnTurnBasedMatchUpdateReceivedListener-list"
+ class="jd-inheritedlinks">
+ </div>
+ <div id="inherited-methods-com.google.android.gms.games.multiplayer.turnbased.OnTurnBasedMatchUpdateReceivedListener-summary" style="display: none;">
+ <table class="jd-sumtable-expando">
+
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/OnTurnBasedMatchUpdateReceivedListener.html#onTurnBasedMatchReceived(com.google.android.gms.games.multiplayer.turnbased.TurnBasedMatch)">onTurnBasedMatchReceived</a></span>(<a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html">TurnBasedMatch</a> match)</nobr>
+
+ <div class="jd-descrdiv">Callback invoked when a new update to a match arrives.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/OnTurnBasedMatchUpdateReceivedListener.html#onTurnBasedMatchRemoved(java.lang.String)">onTurnBasedMatchRemoved</a></span>(String matchId)</nobr>
+
+ <div class="jd-descrdiv">Callback invoked when a match has been removed from the local device.</div>
+
+ </td></tr>
+
+
+</table>
+ </div>
+</div>
+</td></tr>
+
+
+
+<tr class="api apilevel-" >
+<td colspan="12">
+ <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.android.gms.games.multiplayer.turnbased.OnTurnBasedMatchUpdatedListener" class="jd-expando-trigger closed"
+ ><img id="inherited-methods-com.google.android.gms.games.multiplayer.turnbased.OnTurnBasedMatchUpdatedListener-trigger"
+ src="/assets/images/triangle-closed.png"
+ class="jd-expando-trigger-img" /></a>
+From interface
+
+ <a href="/reference/com/google/android/gms/games/multiplayer/turnbased/OnTurnBasedMatchUpdatedListener.html">com.google.android.gms.games.multiplayer.turnbased.OnTurnBasedMatchUpdatedListener</a>
+
+<div id="inherited-methods-com.google.android.gms.games.multiplayer.turnbased.OnTurnBasedMatchUpdatedListener">
+ <div id="inherited-methods-com.google.android.gms.games.multiplayer.turnbased.OnTurnBasedMatchUpdatedListener-list"
+ class="jd-inheritedlinks">
+ </div>
+ <div id="inherited-methods-com.google.android.gms.games.multiplayer.turnbased.OnTurnBasedMatchUpdatedListener-summary" style="display: none;">
+ <table class="jd-sumtable-expando">
+
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/OnTurnBasedMatchUpdatedListener.html#onTurnBasedMatchUpdated(int, com.google.android.gms.games.multiplayer.turnbased.TurnBasedMatch)">onTurnBasedMatchUpdated</a></span>(int statusCode, <a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html">TurnBasedMatch</a> match)</nobr>
+
+ <div class="jd-descrdiv">Called when match has been updated.</div>
+
+ </td></tr>
+
+
+</table>
+ </div>
+</div>
+</td></tr>
+
+
+
+<tr class="api apilevel-" >
+<td colspan="12">
+ <a href="#" onclick="return toggleInherited(this, null)" id="inherited-methods-com.google.android.gms.games.multiplayer.turnbased.OnTurnBasedMatchesLoadedListener" class="jd-expando-trigger closed"
+ ><img id="inherited-methods-com.google.android.gms.games.multiplayer.turnbased.OnTurnBasedMatchesLoadedListener-trigger"
+ src="/assets/images/triangle-closed.png"
+ class="jd-expando-trigger-img" /></a>
+From interface
+
+ <a href="/reference/com/google/android/gms/games/multiplayer/turnbased/OnTurnBasedMatchesLoadedListener.html">com.google.android.gms.games.multiplayer.turnbased.OnTurnBasedMatchesLoadedListener</a>
+
+<div id="inherited-methods-com.google.android.gms.games.multiplayer.turnbased.OnTurnBasedMatchesLoadedListener">
+ <div id="inherited-methods-com.google.android.gms.games.multiplayer.turnbased.OnTurnBasedMatchesLoadedListener-list"
+ class="jd-inheritedlinks">
+ </div>
+ <div id="inherited-methods-com.google.android.gms.games.multiplayer.turnbased.OnTurnBasedMatchesLoadedListener-summary" style="display: none;">
+ <table class="jd-sumtable-expando">
+
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ abstract
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/OnTurnBasedMatchesLoadedListener.html#onTurnBasedMatchesLoaded(int, com.google.android.gms.games.multiplayer.turnbased.LoadMatchesResponse)">onTurnBasedMatchesLoaded</a></span>(int statusCode, <a href="/reference/com/google/android/gms/games/multiplayer/turnbased/LoadMatchesResponse.html">LoadMatchesResponse</a> response)</nobr>
+
+ <div class="jd-descrdiv">Called when matches have been loaded.</div>
+
+ </td></tr>
+
+
+</table>
+ </div>
+</div>
+</td></tr>
+
+
+</table>
+
+
+</div><!-- jd-descr (summary) -->
+
+<!-- Details -->
+
+
+
+
+
+
+
+
+<!-- XML Attributes -->
+
+
+<!-- Enum Values -->
+
+
+<!-- Constants -->
+
+
+<!-- Fields -->
+
+
+<!-- Public ctors -->
+
+
+
+<!-- ========= CONSTRUCTOR DETAIL ======== -->
+<!-- Protected ctors -->
+
+
+
+<!-- ========= METHOD DETAIL ======== -->
+<!-- Public methdos -->
+
+
+
+<!-- ========= METHOD DETAIL ======== -->
+
+
+
+<!-- ========= END OF CLASS DATA ========= -->
+<A NAME="navbar_top"></A>
+
+<div id="footer" class="wrap" >
+
+
+ <div id="copyright">
+
+ Except as noted, this content is licensed under <a
+ href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.
+ For details and restrictions, see the <a href="/license.html">
+ Content License</a>.
+ </div>
+ <div id="build_info">
+
+<script src="/timestamp.js" type="text/javascript"></script>
+<script>document.write(BUILD_TIMESTAMP)</script>
+
+ </div>
+
+
+ <div id="footerlinks">
+
+ <p>
+ <a href="/about/index.html">About Android</a> |
+ <a href="/legal.html">Legal</a> |
+ <a href="/support.html">Support</a>
+ </p>
+ </div>
+
+</div> <!-- end footer -->
+</div> <!-- jd-content -->
+
+</div><!-- end doc-content -->
+
+</div> <!-- end body-content -->
+
+
+
+
+
+
+</body>
+</html>
diff --git a/docs/html/reference/com/google/android/gms/games/multiplayer/turnbased/package-summary.html b/docs/html/reference/com/google/android/gms/games/multiplayer/turnbased/package-summary.html
new file mode 100644
index 0000000..77f9cb5
--- /dev/null
+++ b/docs/html/reference/com/google/android/gms/games/multiplayer/turnbased/package-summary.html
@@ -0,0 +1,810 @@
+<!DOCTYPE html>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+<html>
+<head>
+
+
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+<meta name="viewport" content="width=device-width" />
+
+<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
+<title>com.google.android.gms.games.multiplayer.turnbased | Android Developers</title>
+
+<!-- STYLESHEETS -->
+<link rel="stylesheet"
+href="//fonts.googleapis.com/css?family=Roboto:regular,medium,thin,italic,mediumitalic,bold" title="roboto">
+<link href="/assets/css/default.css" rel="stylesheet" type="text/css">
+
+
+
+<!-- JAVASCRIPT -->
+<script src="//www.google.com/jsapi" type="text/javascript"></script>
+<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
+<script type="text/javascript">
+ var toRoot = "/";
+ var metaTags = [];
+ var devsite = false;
+</script>
+<script src="/assets/js/docs.js" type="text/javascript"></script>
+
+<script type="text/javascript">
+ var _gaq = _gaq || [];
+ _gaq.push(['_setAccount', 'UA-5831155-1']);
+ _gaq.push(['_trackPageview']);
+
+ (function() {
+ var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
+ ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
+ var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
+ })();
+</script>
+</head>
+
+<body class="gc-documentation google
+ develop">
+ <div id="doc-api-level" class="" style="display:none"></div>
+ <a name="top"></a>
+
+<a name="top"></a>
+
+ <!-- Header -->
+ <div id="header">
+ <div class="wrap" id="header-wrap">
+ <div class="col-3 logo">
+ <a href="/index.html">
+ <img src="/assets/images/dac_logo.png" width="123" height="25" alt="Android Developers" />
+ </a>
+ <div class="btn-quicknav" id="btn-quicknav">
+ <a href="#" class="arrow-inactive">Quicknav</a>
+ <a href="#" class="arrow-active">Quicknav</a>
+ </div>
+ </div>
+ <ul class="nav-x col-9">
+ <li class="design">
+ <a href="/design/index.html"
+ zh-tw-lang="設計"
+ zh-cn-lang="设计"
+ ru-lang="Проектирование"
+ ko-lang="디자인"
+ ja-lang="設計"
+ es-lang="Diseñar"
+ >Design</a></li>
+ <li class="develop"><a href="/develop/index.html"
+ zh-tw-lang="開發"
+ zh-cn-lang="开发"
+ ru-lang="Разработка"
+ ko-lang="개발"
+ ja-lang="開発"
+ es-lang="Desarrollar"
+ >Develop</a></li>
+ <li class="distribute last"><a href="/distribute/index.html"
+ zh-tw-lang="發佈"
+ zh-cn-lang="分发"
+ ru-lang="Распространение"
+ ko-lang="배포"
+ ja-lang="配布"
+ es-lang="Distribuir"
+ >Distribute</a></li>
+ </ul>
+
+ <!-- New Search -->
+ <div class="menu-container">
+ <div class="moremenu">
+ <div id="more-btn"></div>
+ </div>
+ <div class="morehover" id="moremenu">
+ <div class="top"></div>
+ <div class="mid">
+ <div class="header">Links</div>
+ <ul>
+ <li><a href="https://play.google.com/apps/publish/">Google Play Developer Console</a></li>
+ <li><a href="http://android-developers.blogspot.com/">Android Developers Blog</a></li>
+ <li><a href="/about/index.html">About Android</a></li>
+ </ul>
+ <div class="header">Android Sites</div>
+ <ul>
+ <li><a href="http://www.android.com">Android.com</a></li>
+ <li class="active"><a>Android Developers</a></li>
+ <li><a href="http://source.android.com">Android Open Source Project</a></li>
+ </ul>
+
+
+
+ <div class="header">Language</div>
+ <div id="language" class="locales">
+ <select name="language" onChange="changeLangPref(this.value, true)">
+ <option value="en">English</option>
+ <option value="es">Español</option>
+ <option value="ja">日本語</option>
+ <option value="ko">한국어</option>
+ <option value="ru">Русский</option>
+ <option value="zh-cn">中文 (中国)</option>
+ <option value="zh-tw">中文 (台灣)</option>
+ </select>
+ </div>
+ <script type="text/javascript">
+ <!--
+ loadLangPref();
+ //-->
+ </script>
+
+
+
+
+ <br class="clearfix" />
+ </div>
+ <div class="bottom"></div>
+ </div>
+ <div class="search" id="search-container">
+ <div class="search-inner">
+ <div id="search-btn"></div>
+ <div class="left"></div>
+ <form onsubmit="return submit_search()">
+ <input id="search_autocomplete" type="text" value="" autocomplete="off" name="q"
+onfocus="search_focus_changed(this, true)" onblur="search_focus_changed(this, false)"
+onkeydown="return search_changed(event, true, '/')"
+onkeyup="return search_changed(event, false, '/')" />
+ </form>
+ <div class="right"></div>
+ <a class="close hide">close</a>
+ <div class="left"></div>
+ <div class="right"></div>
+ </div>
+ </div>
+
+ <div class="search_filtered_wrapper reference">
+ <div class="suggest-card reference no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ </div>
+
+ <div class="search_filtered_wrapper docs">
+ <div class="suggest-card dummy no-display"> </div>
+ <div class="suggest-card develop no-display">
+ <ul class="search_filtered">
+ </ul>
+ <div class="child-card guides no-display">
+ </div>
+ <div class="child-card training no-display">
+ </div>
+ <div class="child-card samples no-display">
+ </div>
+ </div>
+ <div class="suggest-card design no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ <div class="suggest-card distribute no-display">
+ <ul class="search_filtered">
+ </ul>
+ </div>
+ </div>
+
+ </div>
+ <!-- /New Search>
+
+
+ <!-- Expanded quicknav -->
+ <div id="quicknav" class="col-9">
+ <ul>
+ <li class="design">
+ <ul>
+ <li><a href="/design/index.html">Get Started</a></li>
+ <li><a href="/design/style/index.html">Style</a></li>
+ <li><a href="/design/patterns/index.html">Patterns</a></li>
+ <li><a href="/design/building-blocks/index.html">Building Blocks</a></li>
+ <li><a href="/design/downloads/index.html">Downloads</a></li>
+ <li><a href="/design/videos/index.html">Videos</a></li>
+ </ul>
+ </li>
+ <li class="develop">
+ <ul>
+ <li><a href="/training/index.html"
+ zh-tw-lang="訓練課程"
+ zh-cn-lang="培训"
+ ru-lang="Курсы"
+ ko-lang="교육"
+ ja-lang="トレーニング"
+ es-lang="Capacitación"
+ >Training</a></li>
+ <li><a href="/guide/index.html"
+ zh-tw-lang="API 指南"
+ zh-cn-lang="API 指南"
+ ru-lang="Руководства по API"
+ ko-lang="API 가이드"
+ ja-lang="API ガイド"
+ es-lang="Guías de la API"
+ >API Guides</a></li>
+ <li><a href="/reference/packages.html"
+ zh-tw-lang="參考資源"
+ zh-cn-lang="参考"
+ ru-lang="Справочник"
+ ko-lang="참조문서"
+ ja-lang="リファレンス"
+ es-lang="Referencia"
+ >Reference</a></li>
+ <li><a href="/tools/index.html"
+ zh-tw-lang="相關工具"
+ zh-cn-lang="工具"
+ ru-lang="Инструменты"
+ ko-lang="도구"
+ ja-lang="ツール"
+ es-lang="Herramientas"
+ >Tools</a>
+ <ul><li><a href="/sdk/index.html">Get the SDK</a></li></ul>
+ </li>
+ <li><a href="/google/index.html">Google Services</a>
+ </li>
+
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
+ </ul>
+ </li>
+ <li class="distribute last">
+ <ul>
+ <li><a href="/distribute/index.html">Google Play</a></li>
+ <li><a href="/distribute/googleplay/publish/index.html">Publishing</a></li>
+ <li><a href="/distribute/googleplay/promote/index.html">Promoting</a></li>
+ <li><a href="/distribute/googleplay/quality/index.html">App Quality</a></li>
+ <li><a href="/distribute/googleplay/spotlight/index.html">Spotlight</a></li>
+ <li><a href="/distribute/open.html">Open Distribution</a></li>
+ </ul>
+ </li>
+ </ul>
+ </div>
+ <!-- /Expanded quicknav -->
+ </div>
+ </div>
+ <!-- /Header -->
+
+
+ <div id="searchResults" class="wrap" style="display:none;">
+ <h2 id="searchTitle">Results</h2>
+ <div id="leftSearchControl" class="search-control">Loading...</div>
+ </div>
+
+
+
+ <!-- Secondary x-nav -->
+ <div id="nav-x">
+ <div class="wrap">
+ <ul class="nav-x col-9 develop" style="width:100%">
+ <li class="training"><a href="/training/index.html"
+ zh-tw-lang="訓練課程"
+ zh-cn-lang="培训"
+ ru-lang="Курсы"
+ ko-lang="교육"
+ ja-lang="トレーニング"
+ es-lang="Capacitación"
+ >Training</a></li>
+ <li class="guide"><a href="/guide/index.html"
+ zh-tw-lang="API 指南"
+ zh-cn-lang="API 指南"
+ ru-lang="Руководства по API"
+ ko-lang="API 가이드"
+ ja-lang="API ガイド"
+ es-lang="Guías de la API"
+ >API Guides</a></li>
+ <li class="reference"><a href="/reference/packages.html"
+ zh-tw-lang="參考資源"
+ zh-cn-lang="参考"
+ ru-lang="Справочник"
+ ko-lang="참조문서"
+ ja-lang="リファレンス"
+ es-lang="Referencia"
+ >Reference</a></li>
+ <li class="tools"><a href="/tools/index.html"
+ zh-tw-lang="相關工具"
+ zh-cn-lang="工具"
+ ru-lang="Инструменты"
+ ko-lang="도구"
+ ja-lang="ツール"
+ es-lang="Herramientas"
+ >Tools</a></li>
+ <li class="google"><a href="/google/index.html"
+ >Google Services</a>
+ </li>
+
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
+ </ul>
+ </div>
+
+ </div>
+ <!-- /Sendondary x-nav -->
+
+
+
+
+
+
+
+
+
+ <div class="wrap clearfix" id="body-content">
+ <div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
+ <div id="devdoc-nav" class="scroll-pane">
+<a class="totop" href="#top" data-g-event="left-nav-top">to top</a>
+
+
+
+<ul id="nav">
+
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/index.html">
+ <span class="en">Overview</span>
+ </a></div>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/games.html">
+ <span class="en">Games</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/location.html">
+ <span class="en">Location</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/plus.html">
+ <span class="en">Google+</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/maps.html">
+ <span class="en">Maps</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play-services/ads.html">
+ <span class="en">Ads</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play-services/id.html">
+ <span class="en">Advertising ID</span></a>
+ </li>
+ </ul>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/wallet.html">
+ <span class="en">Wallet</span>
+ </a></div>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header empty"><a href="/google/play-services/auth.html">
+ <span class="en">Authorization</span>
+ </a></div>
+ </li>
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play-services/index.html">
+ <span class="en">Google Play Services</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play-services/setup.html">
+ <span class="en">Setup</span></a>
+ </li>
+ <li id="gms-tree-list" class="nav-section">
+ <div class="nav-section-header">
+ <a href="/reference/gms-packages.html">
+ <span class="en">Reference</span>
+ </a>
+ <div>
+ </li>
+ </ul>
+ </li>
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/billing/index.html">
+ <span class="en">Google Play In-app Billing</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/billing/billing_overview.html">
+ <span class="en">Overview</span></a>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/api.html">
+ <span class="en">Version 3 API</span></a></div>
+ <ul>
+ <li><a href="/google/play/billing/billing_integrate.html">
+ <span class="en">Implementing the API</span></a></li>
+ <li><a href="/google/play/billing/billing_reference.html">
+ <span class="en">Reference</span></a></li>
+ </ul>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/play/billing/v2/api.html">
+ <span class="en">Version 2 API</span></a></div>
+ <ul>
+ <li><a href="/google/play/billing/v2/billing_integrate.html">
+ <span class="en">Implementing the API</span></a></li>
+ <li><a href="/google/play/billing/v2/billing_subscriptions.html">
+ <span class="en">Subscriptions</span></a></li>
+ <li><a href="/google/play/billing/v2/billing_reference.html">
+ <span class="en">Reference</span></a></li>
+ </ul>
+ </li>
+ <li><a href="/google/play/billing/billing_subscriptions.html">
+ <span class="en">Subscriptions</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_best_practices.html">
+ <span class="en">Security and Design</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_testing.html">
+ <span class="en">Testing In-app Billing</span></a>
+ </li>
+ <li><a href="/google/play/billing/billing_admin.html">
+ <span class="en">Administering In-app Billing</span></a>
+ </li>
+ <li><a href="/google/play/billing/gp-purchase-status-api.html">
+ <span class="en">Purchase Status API</span></a>
+ </li>
+ <li><a href="/google/play/billing/versions.html">
+ <span class="en">Version Notes</span></a>
+ </li>
+ </ul>
+ </li>
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/gcm/index.html">
+ <span class="en">Google Cloud Messaging</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
+ <li><a href="/google/gcm/gs.html">
+ <span class="en">Getting Started</span></a>
+ </li>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
+ </li>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
+ </li>
+ <li><a href="/google/gcm/notifications.html">
+ <span class="en">User Notifications</span></a>
+ </li>
+ <li><a href="/google/gcm/adv.html">
+ <span class="en">Advanced Topics</span></a>
+ </li>
+ <li><a href="/google/gcm/c2dm.html">
+ <span class="en">Migration</span></a>
+ </li>
+ <li id="gcm-tree-list" class="nav-section">
+ <div class="nav-section-header">
+ <a href="/reference/gcm-packages.html">
+ <span class="en">Reference</span>
+ </a>
+ <div>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/dist.html">
+ <span class="en">Google Play Distribution</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/filters.html">
+ <span class="en">Filters on Google Play</span></a>
+ </li>
+
+ <li><a href="/google/play/publishing/multiple-apks.html">
+ <span class="en">Multiple APK Support</span></a>
+ </li>
+ <li><a href="/google/play/expansion-files.html">
+ <span class="en">APK Expansion Files</span></a>
+ </li>
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/play/licensing/index.html">
+ <span class="en">Application Licensing</span></a>
+ </div>
+ <ul>
+ <li><a href="/google/play/licensing/overview.html">
+ <span class="en">Licensing Overview</span></a>
+ </li>
+ <li><a href="/google/play/licensing/setting-up.html">
+ <span class="en">Setting Up for Licensing</span></a>
+ </li>
+ <li><a href="/google/play/licensing/adding-licensing.html">
+ <span class="en">Adding Licensing to Your App</span></a>
+ </li>
+ <li><a href="/google/play/licensing/licensing-reference.html">
+ <span class="en">Licensing Reference</span></a>
+ </li>
+ </ul>
+ </li>
+
+ <li class="nav-section">
+ <div class="nav-section-header"><a href="/google/backup/index.html">
+ Android Backup Service</a>
+ </div>
+ <ul>
+ <li><a href="/google/backup/signup.html">
+ Register</a>
+ </li>
+ </ul>
+ </li>
+
+ </ul>
+
+</li>
+
+
+
+</ul>
+
+<script type="text/javascript">
+<!--
+ buildToggleLists();
+ changeNavLang(getLangPref());
+//-->
+</script>
+
+
+
+
+ </div>
+ <script type="text/javascript">
+ showGoogleRefTree();
+
+ </script>
+ </div> <!-- end side-nav -->
+ <script>
+ $(document).ready(function() {
+ scrollIntoView("devdoc-nav");
+ });
+ </script>
+
+
+
+
+
+
+<div class="col-12" id="doc-col">
+
+<div id="api-info-block">
+<div class="api-level">
+
+
+
+
+</div>
+</div>
+
+<div id="jd-header">
+ package
+ <h1>com.google.android.gms.games.multiplayer.turnbased</h1>
+</div><!-- end header -->
+
+<div id="naMessage"></div>
+
+<div id="jd-content" class="api apilevel-">
+
+
+ <div class="jd-descr">
+ Contains data classes for turn-based multiplayer functionality.
+
+ </div>
+
+
+
+
+
+
+ <h2>Interfaces</h2>
+ <div class="jd-sumtable">
+
+ <table class="jd-sumtable-expando">
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/OnTurnBasedMatchCanceledListener.html">OnTurnBasedMatchCanceledListener</a></td>
+ <td class="jd-descrcol" width="100%">Listener for receiving callbacks when a match has been canceled. </td>
+ </tr>
+ <tr class=" api apilevel-" >
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/OnTurnBasedMatchesLoadedListener.html">OnTurnBasedMatchesLoadedListener</a></td>
+ <td class="jd-descrcol" width="100%">Listener for receiving callbacks when matches have been loaded. </td>
+ </tr>
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/OnTurnBasedMatchInitiatedListener.html">OnTurnBasedMatchInitiatedListener</a></td>
+ <td class="jd-descrcol" width="100%">Listener for receiving callbacks when a match has been initiated. </td>
+ </tr>
+ <tr class=" api apilevel-" >
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/OnTurnBasedMatchLeftListener.html">OnTurnBasedMatchLeftListener</a></td>
+ <td class="jd-descrcol" width="100%">Listener for receiving callbacks when a player leaves a turn-based match. </td>
+ </tr>
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/OnTurnBasedMatchLoadedListener.html">OnTurnBasedMatchLoadedListener</a></td>
+ <td class="jd-descrcol" width="100%">Listener for receiving callbacks when a match has been loaded. </td>
+ </tr>
+ <tr class=" api apilevel-" >
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/OnTurnBasedMatchUpdatedListener.html">OnTurnBasedMatchUpdatedListener</a></td>
+ <td class="jd-descrcol" width="100%">Listener for receiving callbacks when a match has been updated. </td>
+ </tr>
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/OnTurnBasedMatchUpdateReceivedListener.html">OnTurnBasedMatchUpdateReceivedListener</a></td>
+ <td class="jd-descrcol" width="100%">Listener invoked when an update to a turn-based match is received. </td>
+ </tr>
+ <tr class=" api apilevel-" >
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html">TurnBasedMatch</a></td>
+ <td class="jd-descrcol" width="100%">Data interface for turn-based specific match functionality. </td>
+ </tr>
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMultiplayerListener.html">TurnBasedMultiplayerListener</a></td>
+ <td class="jd-descrcol" width="100%">Helper interface compounding all of the necessary listeners to implement a turn-based multiplayer
+ game. </td>
+ </tr>
+ </table>
+ </div>
+
+
+
+
+ <h2>Classes</h2>
+ <div class="jd-sumtable">
+
+ <table class="jd-sumtable-expando">
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/LoadMatchesResponse.html">LoadMatchesResponse</a></td>
+ <td class="jd-descrcol" width="100%">Response object containing the data requested in a
+ loadMatchesByStatus(GoogleApiClient, int...) call. </td>
+ </tr>
+ <tr class=" api apilevel-" >
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatchBuffer.html">TurnBasedMatchBuffer</a></td>
+ <td class="jd-descrcol" width="100%"><code><a href="/reference/com/google/android/gms/common/data/DataBuffer.html">DataBuffer</a></code> implementation containing TurnBasedMatch details. </td>
+ </tr>
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatchConfig.html">TurnBasedMatchConfig</a></td>
+ <td class="jd-descrcol" width="100%">Configuration for creating a new turn-based match. </td>
+ </tr>
+ <tr class=" api apilevel-" >
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatchConfig.Builder.html">TurnBasedMatchConfig.Builder</a></td>
+ <td class="jd-descrcol" width="100%">Builder class for <code><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatchConfig.html">TurnBasedMatchConfig</a></code>. </td>
+ </tr>
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatchEntity.html">TurnBasedMatchEntity</a></td>
+ <td class="jd-descrcol" width="100%">Data object representing the data for a turn-based match. </td>
+ </tr>
+ </table>
+ </div>
+
+
+
+
+
+
+
+
+
+
+
+
+<div id="footer" class="wrap" >
+
+
+ <div id="copyright">
+
+ Except as noted, this content is licensed under <a
+ href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.
+ For details and restrictions, see the <a href="/license.html">
+ Content License</a>.
+ </div>
+ <div id="build_info">
+
+<script src="/timestamp.js" type="text/javascript"></script>
+<script>document.write(BUILD_TIMESTAMP)</script>
+
+ </div>
+
+
+ <div id="footerlinks">
+
+ <p>
+ <a href="/about/index.html">About Android</a> |
+ <a href="/legal.html">Legal</a> |
+ <a href="/support.html">Support</a>
+ </p>
+ </div>
+
+</div> <!-- end footer -->
+</div><!-- end jd-content -->
+</div><!-- doc-content -->
+
+</div> <!-- end body-content -->
+
+
+
+
+
+
+</body>
+</html>
diff --git a/docs/html/reference/com/google/android/gms/games/package-summary.html b/docs/html/reference/com/google/android/gms/games/package-summary.html
index 53379f6..7655358 100644
--- a/docs/html/reference/com/google/android/gms/games/package-summary.html
+++ b/docs/html/reference/com/google/android/gms/games/package-summary.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -242,6 +243,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -280,7 +283,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -309,6 +312,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -348,7 +354,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -376,6 +382,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -518,29 +528,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
@@ -718,7 +731,7 @@
</tr>
<tr class=" api apilevel-" >
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/GamesClient.html">GamesClient</a></td>
- <td class="jd-descrcol" width="100%">Main public API entry point for the games client. </td>
+ <td class="jd-descrcol" width="100%">Main public entry point for Games APIs. </td>
</tr>
<tr class="alt-color api apilevel-" >
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/games/GamesClient.Builder.html">GamesClient.Builder</a></td>
diff --git a/docs/html/reference/com/google/android/gms/gcm/GoogleCloudMessaging.html b/docs/html/reference/com/google/android/gms/gcm/GoogleCloudMessaging.html
index d16cea3..6e3e7f0 100644
--- a/docs/html/reference/com/google/android/gms/gcm/GoogleCloudMessaging.html
+++ b/docs/html/reference/com/google/android/gms/gcm/GoogleCloudMessaging.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/gcm/package-summary.html b/docs/html/reference/com/google/android/gms/gcm/package-summary.html
index f500dd2..46cc1aa 100644
--- a/docs/html/reference/com/google/android/gms/gcm/package-summary.html
+++ b/docs/html/reference/com/google/android/gms/gcm/package-summary.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -242,6 +243,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -280,7 +283,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -309,6 +312,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -348,7 +354,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -376,6 +382,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -518,29 +528,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/location/ActivityRecognitionClient.html b/docs/html/reference/com/google/android/gms/location/ActivityRecognitionClient.html
index 5b2719c..9488acf 100644
--- a/docs/html/reference/com/google/android/gms/location/ActivityRecognitionClient.html
+++ b/docs/html/reference/com/google/android/gms/location/ActivityRecognitionClient.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/location/ActivityRecognitionResult.html b/docs/html/reference/com/google/android/gms/location/ActivityRecognitionResult.html
index c05f728..b44d63e 100644
--- a/docs/html/reference/com/google/android/gms/location/ActivityRecognitionResult.html
+++ b/docs/html/reference/com/google/android/gms/location/ActivityRecognitionResult.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/location/DetectedActivity.html b/docs/html/reference/com/google/android/gms/location/DetectedActivity.html
index b1b63ca..d4cb607 100644
--- a/docs/html/reference/com/google/android/gms/location/DetectedActivity.html
+++ b/docs/html/reference/com/google/android/gms/location/DetectedActivity.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/location/Geofence.Builder.html b/docs/html/reference/com/google/android/gms/location/Geofence.Builder.html
index e90c228..f2069fa 100644
--- a/docs/html/reference/com/google/android/gms/location/Geofence.Builder.html
+++ b/docs/html/reference/com/google/android/gms/location/Geofence.Builder.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/location/Geofence.html b/docs/html/reference/com/google/android/gms/location/Geofence.html
index 4abc3e5..956cf27 100644
--- a/docs/html/reference/com/google/android/gms/location/Geofence.html
+++ b/docs/html/reference/com/google/android/gms/location/Geofence.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/location/LocationClient.OnAddGeofencesResultListener.html b/docs/html/reference/com/google/android/gms/location/LocationClient.OnAddGeofencesResultListener.html
index 6744610..95b9e6e 100644
--- a/docs/html/reference/com/google/android/gms/location/LocationClient.OnAddGeofencesResultListener.html
+++ b/docs/html/reference/com/google/android/gms/location/LocationClient.OnAddGeofencesResultListener.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/location/LocationClient.OnRemoveGeofencesResultListener.html b/docs/html/reference/com/google/android/gms/location/LocationClient.OnRemoveGeofencesResultListener.html
index d5c9fdb..b706d43 100644
--- a/docs/html/reference/com/google/android/gms/location/LocationClient.OnRemoveGeofencesResultListener.html
+++ b/docs/html/reference/com/google/android/gms/location/LocationClient.OnRemoveGeofencesResultListener.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/location/LocationClient.html b/docs/html/reference/com/google/android/gms/location/LocationClient.html
index c083d31..bfc4c1f 100644
--- a/docs/html/reference/com/google/android/gms/location/LocationClient.html
+++ b/docs/html/reference/com/google/android/gms/location/LocationClient.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/location/LocationListener.html b/docs/html/reference/com/google/android/gms/location/LocationListener.html
index 12befe4..d8ee114 100644
--- a/docs/html/reference/com/google/android/gms/location/LocationListener.html
+++ b/docs/html/reference/com/google/android/gms/location/LocationListener.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/location/LocationRequest.html b/docs/html/reference/com/google/android/gms/location/LocationRequest.html
index 711374b..407708a 100644
--- a/docs/html/reference/com/google/android/gms/location/LocationRequest.html
+++ b/docs/html/reference/com/google/android/gms/location/LocationRequest.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
@@ -2447,7 +2460,12 @@
<p>By default locations are continuously updated until the request is explicitly removed,
however you can optionally request a set number of updates. For example, if your
application only needs a single fresh location, then call this method with a value of 1
- before passing the request to the location client.</p></div>
+ before passing the request to the location client.
+
+ <p>When using this option care must be taken to either explicitly remove the request
+ when no longer needed or to set an expiration with (<code><a href="/reference/com/google/android/gms/location/LocationRequest.html#setExpirationDuration(long)">setExpirationDuration(long)</a></code> or
+ <code><a href="/reference/com/google/android/gms/location/LocationRequest.html#setExpirationTime(long)">setExpirationTime(long)</a></code>. Otherwise in some cases if a location can't be computed, this
+ request could stay active indefinitely consuming power.</p></div>
<div class="jd-tagdata">
<h5 class="jd-tagtitle">Parameters</h5>
<table class="jd-tagtable">
diff --git a/docs/html/reference/com/google/android/gms/location/LocationStatusCodes.html b/docs/html/reference/com/google/android/gms/location/LocationStatusCodes.html
index b9e5968..45df07d 100644
--- a/docs/html/reference/com/google/android/gms/location/LocationStatusCodes.html
+++ b/docs/html/reference/com/google/android/gms/location/LocationStatusCodes.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/location/package-summary.html b/docs/html/reference/com/google/android/gms/location/package-summary.html
index ea7798e..ccf489c 100644
--- a/docs/html/reference/com/google/android/gms/location/package-summary.html
+++ b/docs/html/reference/com/google/android/gms/location/package-summary.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -242,6 +243,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -280,7 +283,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -309,6 +312,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -348,7 +354,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -376,6 +382,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -518,29 +528,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/maps/CameraUpdate.html b/docs/html/reference/com/google/android/gms/maps/CameraUpdate.html
index 8295ce0..610e10b 100644
--- a/docs/html/reference/com/google/android/gms/maps/CameraUpdate.html
+++ b/docs/html/reference/com/google/android/gms/maps/CameraUpdate.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/maps/CameraUpdateFactory.html b/docs/html/reference/com/google/android/gms/maps/CameraUpdateFactory.html
index f4684cc..a9d0da7 100644
--- a/docs/html/reference/com/google/android/gms/maps/CameraUpdateFactory.html
+++ b/docs/html/reference/com/google/android/gms/maps/CameraUpdateFactory.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/maps/GoogleMap.CancelableCallback.html b/docs/html/reference/com/google/android/gms/maps/GoogleMap.CancelableCallback.html
index 6ddaed5a..b6cde17 100644
--- a/docs/html/reference/com/google/android/gms/maps/GoogleMap.CancelableCallback.html
+++ b/docs/html/reference/com/google/android/gms/maps/GoogleMap.CancelableCallback.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/maps/GoogleMap.InfoWindowAdapter.html b/docs/html/reference/com/google/android/gms/maps/GoogleMap.InfoWindowAdapter.html
index 8c1885e..710dd8c 100644
--- a/docs/html/reference/com/google/android/gms/maps/GoogleMap.InfoWindowAdapter.html
+++ b/docs/html/reference/com/google/android/gms/maps/GoogleMap.InfoWindowAdapter.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/maps/GoogleMap.OnCameraChangeListener.html b/docs/html/reference/com/google/android/gms/maps/GoogleMap.OnCameraChangeListener.html
index 356776e..a185c09 100644
--- a/docs/html/reference/com/google/android/gms/maps/GoogleMap.OnCameraChangeListener.html
+++ b/docs/html/reference/com/google/android/gms/maps/GoogleMap.OnCameraChangeListener.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/maps/GoogleMap.OnInfoWindowClickListener.html b/docs/html/reference/com/google/android/gms/maps/GoogleMap.OnInfoWindowClickListener.html
index 748eb5e..d53210e 100644
--- a/docs/html/reference/com/google/android/gms/maps/GoogleMap.OnInfoWindowClickListener.html
+++ b/docs/html/reference/com/google/android/gms/maps/GoogleMap.OnInfoWindowClickListener.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/maps/GoogleMap.OnMapClickListener.html b/docs/html/reference/com/google/android/gms/maps/GoogleMap.OnMapClickListener.html
index be3c396..219a9eb 100644
--- a/docs/html/reference/com/google/android/gms/maps/GoogleMap.OnMapClickListener.html
+++ b/docs/html/reference/com/google/android/gms/maps/GoogleMap.OnMapClickListener.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/maps/GoogleMap.OnMapLoadedCallback.html b/docs/html/reference/com/google/android/gms/maps/GoogleMap.OnMapLoadedCallback.html
index 10c6904..7be5e07 100644
--- a/docs/html/reference/com/google/android/gms/maps/GoogleMap.OnMapLoadedCallback.html
+++ b/docs/html/reference/com/google/android/gms/maps/GoogleMap.OnMapLoadedCallback.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/maps/GoogleMap.OnMapLongClickListener.html b/docs/html/reference/com/google/android/gms/maps/GoogleMap.OnMapLongClickListener.html
index 2811b2e..4b4059b 100644
--- a/docs/html/reference/com/google/android/gms/maps/GoogleMap.OnMapLongClickListener.html
+++ b/docs/html/reference/com/google/android/gms/maps/GoogleMap.OnMapLongClickListener.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/maps/GoogleMap.OnMarkerClickListener.html b/docs/html/reference/com/google/android/gms/maps/GoogleMap.OnMarkerClickListener.html
index 3f5ef8b..d814416 100644
--- a/docs/html/reference/com/google/android/gms/maps/GoogleMap.OnMarkerClickListener.html
+++ b/docs/html/reference/com/google/android/gms/maps/GoogleMap.OnMarkerClickListener.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/maps/GoogleMap.OnMarkerDragListener.html b/docs/html/reference/com/google/android/gms/maps/GoogleMap.OnMarkerDragListener.html
index dffd596..6c4ca80 100644
--- a/docs/html/reference/com/google/android/gms/maps/GoogleMap.OnMarkerDragListener.html
+++ b/docs/html/reference/com/google/android/gms/maps/GoogleMap.OnMarkerDragListener.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/maps/GoogleMap.OnMyLocationButtonClickListener.html b/docs/html/reference/com/google/android/gms/maps/GoogleMap.OnMyLocationButtonClickListener.html
index 2163ac9..3efb854 100644
--- a/docs/html/reference/com/google/android/gms/maps/GoogleMap.OnMyLocationButtonClickListener.html
+++ b/docs/html/reference/com/google/android/gms/maps/GoogleMap.OnMyLocationButtonClickListener.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/maps/GoogleMap.OnMyLocationChangeListener.html b/docs/html/reference/com/google/android/gms/maps/GoogleMap.OnMyLocationChangeListener.html
index 2938e8a..5396ae8 100644
--- a/docs/html/reference/com/google/android/gms/maps/GoogleMap.OnMyLocationChangeListener.html
+++ b/docs/html/reference/com/google/android/gms/maps/GoogleMap.OnMyLocationChangeListener.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/maps/GoogleMap.SnapshotReadyCallback.html b/docs/html/reference/com/google/android/gms/maps/GoogleMap.SnapshotReadyCallback.html
index 4ce045e..2b90054 100644
--- a/docs/html/reference/com/google/android/gms/maps/GoogleMap.SnapshotReadyCallback.html
+++ b/docs/html/reference/com/google/android/gms/maps/GoogleMap.SnapshotReadyCallback.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/maps/GoogleMap.html b/docs/html/reference/com/google/android/gms/maps/GoogleMap.html
index 4ec1355..9bf44e8 100644
--- a/docs/html/reference/com/google/android/gms/maps/GoogleMap.html
+++ b/docs/html/reference/com/google/android/gms/maps/GoogleMap.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/maps/GoogleMapOptions.html b/docs/html/reference/com/google/android/gms/maps/GoogleMapOptions.html
index c4cc20e..8847173 100644
--- a/docs/html/reference/com/google/android/gms/maps/GoogleMapOptions.html
+++ b/docs/html/reference/com/google/android/gms/maps/GoogleMapOptions.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/maps/LocationSource.OnLocationChangedListener.html b/docs/html/reference/com/google/android/gms/maps/LocationSource.OnLocationChangedListener.html
index e6e0593..22a370f 100644
--- a/docs/html/reference/com/google/android/gms/maps/LocationSource.OnLocationChangedListener.html
+++ b/docs/html/reference/com/google/android/gms/maps/LocationSource.OnLocationChangedListener.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/maps/LocationSource.html b/docs/html/reference/com/google/android/gms/maps/LocationSource.html
index d30c652..369aaad 100644
--- a/docs/html/reference/com/google/android/gms/maps/LocationSource.html
+++ b/docs/html/reference/com/google/android/gms/maps/LocationSource.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/maps/MapFragment.html b/docs/html/reference/com/google/android/gms/maps/MapFragment.html
index 41131993..80c6dc8 100644
--- a/docs/html/reference/com/google/android/gms/maps/MapFragment.html
+++ b/docs/html/reference/com/google/android/gms/maps/MapFragment.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/maps/MapView.html b/docs/html/reference/com/google/android/gms/maps/MapView.html
index 0798249..2d711ca 100644
--- a/docs/html/reference/com/google/android/gms/maps/MapView.html
+++ b/docs/html/reference/com/google/android/gms/maps/MapView.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
@@ -1434,145 +1447,152 @@
<tr class="alt-color api apilevel-" >
<td class="jd-typecol">int</td>
- <td class="jd-linkcol">SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN</td>
+ <td class="jd-linkcol">SYSTEM_UI_FLAG_IMMERSIVE_STICKY</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
<tr class=" api apilevel-" >
<td class="jd-typecol">int</td>
+ <td class="jd-linkcol">SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
<td class="jd-linkcol">SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol">SYSTEM_UI_FLAG_LAYOUT_STABLE</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol">SYSTEM_UI_FLAG_LOW_PROFILE</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol">SYSTEM_UI_FLAG_VISIBLE</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol">SYSTEM_UI_LAYOUT_FLAGS</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol">TEXT_ALIGNMENT_CENTER</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol">TEXT_ALIGNMENT_GRAVITY</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol">TEXT_ALIGNMENT_INHERIT</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol">TEXT_ALIGNMENT_TEXT_END</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol">TEXT_ALIGNMENT_TEXT_START</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol">TEXT_ALIGNMENT_VIEW_END</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol">TEXT_ALIGNMENT_VIEW_START</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol">TEXT_DIRECTION_ANY_RTL</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol">TEXT_DIRECTION_FIRST_STRONG</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol">TEXT_DIRECTION_INHERIT</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol">TEXT_DIRECTION_LOCALE</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol">TEXT_DIRECTION_LTR</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol">TEXT_DIRECTION_RTL</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
-
-
- <tr class=" api apilevel-" >
+
+
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol">String</td>
<td class="jd-linkcol">VIEW_LOG_TAG</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol">VISIBLE</td>
<td class="jd-descrcol" width="100%"></td>
diff --git a/docs/html/reference/com/google/android/gms/maps/MapsInitializer.html b/docs/html/reference/com/google/android/gms/maps/MapsInitializer.html
index da53ea6..b2ebc35 100644
--- a/docs/html/reference/com/google/android/gms/maps/MapsInitializer.html
+++ b/docs/html/reference/com/google/android/gms/maps/MapsInitializer.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/maps/Projection.html b/docs/html/reference/com/google/android/gms/maps/Projection.html
index b117307..536250d 100644
--- a/docs/html/reference/com/google/android/gms/maps/Projection.html
+++ b/docs/html/reference/com/google/android/gms/maps/Projection.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/maps/SupportMapFragment.html b/docs/html/reference/com/google/android/gms/maps/SupportMapFragment.html
index 87dc7a0..2082cce 100644
--- a/docs/html/reference/com/google/android/gms/maps/SupportMapFragment.html
+++ b/docs/html/reference/com/google/android/gms/maps/SupportMapFragment.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/maps/UiSettings.html b/docs/html/reference/com/google/android/gms/maps/UiSettings.html
index 21ee737..06acec0 100644
--- a/docs/html/reference/com/google/android/gms/maps/UiSettings.html
+++ b/docs/html/reference/com/google/android/gms/maps/UiSettings.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/maps/model/BitmapDescriptor.html b/docs/html/reference/com/google/android/gms/maps/model/BitmapDescriptor.html
index 629875d..6028ecd 100644
--- a/docs/html/reference/com/google/android/gms/maps/model/BitmapDescriptor.html
+++ b/docs/html/reference/com/google/android/gms/maps/model/BitmapDescriptor.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/maps/model/BitmapDescriptorFactory.html b/docs/html/reference/com/google/android/gms/maps/model/BitmapDescriptorFactory.html
index 0c04cdf..570f7e7 100644
--- a/docs/html/reference/com/google/android/gms/maps/model/BitmapDescriptorFactory.html
+++ b/docs/html/reference/com/google/android/gms/maps/model/BitmapDescriptorFactory.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/maps/model/CameraPosition.Builder.html b/docs/html/reference/com/google/android/gms/maps/model/CameraPosition.Builder.html
index 4348e30..f789295 100644
--- a/docs/html/reference/com/google/android/gms/maps/model/CameraPosition.Builder.html
+++ b/docs/html/reference/com/google/android/gms/maps/model/CameraPosition.Builder.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/maps/model/CameraPosition.html b/docs/html/reference/com/google/android/gms/maps/model/CameraPosition.html
index 51c897e..94248ac 100644
--- a/docs/html/reference/com/google/android/gms/maps/model/CameraPosition.html
+++ b/docs/html/reference/com/google/android/gms/maps/model/CameraPosition.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/maps/model/Circle.html b/docs/html/reference/com/google/android/gms/maps/model/Circle.html
index 7331a35..898e9ff 100644
--- a/docs/html/reference/com/google/android/gms/maps/model/Circle.html
+++ b/docs/html/reference/com/google/android/gms/maps/model/Circle.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/maps/model/CircleOptions.html b/docs/html/reference/com/google/android/gms/maps/model/CircleOptions.html
index 2ce4d54..f1d322f 100644
--- a/docs/html/reference/com/google/android/gms/maps/model/CircleOptions.html
+++ b/docs/html/reference/com/google/android/gms/maps/model/CircleOptions.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/maps/model/GroundOverlay.html b/docs/html/reference/com/google/android/gms/maps/model/GroundOverlay.html
index 37e2209..ad5d341 100644
--- a/docs/html/reference/com/google/android/gms/maps/model/GroundOverlay.html
+++ b/docs/html/reference/com/google/android/gms/maps/model/GroundOverlay.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/maps/model/GroundOverlayOptions.html b/docs/html/reference/com/google/android/gms/maps/model/GroundOverlayOptions.html
index ab48973..6738c49 100644
--- a/docs/html/reference/com/google/android/gms/maps/model/GroundOverlayOptions.html
+++ b/docs/html/reference/com/google/android/gms/maps/model/GroundOverlayOptions.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/maps/model/LatLng.html b/docs/html/reference/com/google/android/gms/maps/model/LatLng.html
index a882cc0..a152379 100644
--- a/docs/html/reference/com/google/android/gms/maps/model/LatLng.html
+++ b/docs/html/reference/com/google/android/gms/maps/model/LatLng.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/maps/model/LatLngBounds.Builder.html b/docs/html/reference/com/google/android/gms/maps/model/LatLngBounds.Builder.html
index 6b7f7ab..fdc5352 100644
--- a/docs/html/reference/com/google/android/gms/maps/model/LatLngBounds.Builder.html
+++ b/docs/html/reference/com/google/android/gms/maps/model/LatLngBounds.Builder.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/maps/model/LatLngBounds.html b/docs/html/reference/com/google/android/gms/maps/model/LatLngBounds.html
index 5a3b9bd..f6862c3 100644
--- a/docs/html/reference/com/google/android/gms/maps/model/LatLngBounds.html
+++ b/docs/html/reference/com/google/android/gms/maps/model/LatLngBounds.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/maps/model/Marker.html b/docs/html/reference/com/google/android/gms/maps/model/Marker.html
index eadb9f6..7f40aa6 100644
--- a/docs/html/reference/com/google/android/gms/maps/model/Marker.html
+++ b/docs/html/reference/com/google/android/gms/maps/model/Marker.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/maps/model/MarkerOptions.html b/docs/html/reference/com/google/android/gms/maps/model/MarkerOptions.html
index becca22..aa4befa 100644
--- a/docs/html/reference/com/google/android/gms/maps/model/MarkerOptions.html
+++ b/docs/html/reference/com/google/android/gms/maps/model/MarkerOptions.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/maps/model/Polygon.html b/docs/html/reference/com/google/android/gms/maps/model/Polygon.html
index 6767f94..a368cc1 100644
--- a/docs/html/reference/com/google/android/gms/maps/model/Polygon.html
+++ b/docs/html/reference/com/google/android/gms/maps/model/Polygon.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/maps/model/PolygonOptions.html b/docs/html/reference/com/google/android/gms/maps/model/PolygonOptions.html
index fc889a6e..7c22f57 100644
--- a/docs/html/reference/com/google/android/gms/maps/model/PolygonOptions.html
+++ b/docs/html/reference/com/google/android/gms/maps/model/PolygonOptions.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/maps/model/Polyline.html b/docs/html/reference/com/google/android/gms/maps/model/Polyline.html
index 35c59f4..d83c37c 100644
--- a/docs/html/reference/com/google/android/gms/maps/model/Polyline.html
+++ b/docs/html/reference/com/google/android/gms/maps/model/Polyline.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/maps/model/PolylineOptions.html b/docs/html/reference/com/google/android/gms/maps/model/PolylineOptions.html
index b260f58..8860b52 100644
--- a/docs/html/reference/com/google/android/gms/maps/model/PolylineOptions.html
+++ b/docs/html/reference/com/google/android/gms/maps/model/PolylineOptions.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/maps/model/RuntimeRemoteException.html b/docs/html/reference/com/google/android/gms/maps/model/RuntimeRemoteException.html
index 61071a0..391d197 100644
--- a/docs/html/reference/com/google/android/gms/maps/model/RuntimeRemoteException.html
+++ b/docs/html/reference/com/google/android/gms/maps/model/RuntimeRemoteException.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
@@ -930,7 +943,23 @@
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
- synchronized
+
+ final
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">addSuppressed</span>(Throwable arg0)</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
@@ -943,7 +972,7 @@
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
@@ -959,7 +988,7 @@
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
@@ -975,7 +1004,7 @@
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
@@ -991,7 +1020,7 @@
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
@@ -1007,10 +1036,26 @@
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+ final
+
+
+ Throwable[]</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad">getSuppressed</span>()</nobr>
+
+ </td></tr>
+
+
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
- synchronized
+
@@ -1033,7 +1078,7 @@
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad">printStackTrace</span>(PrintWriter arg0)</nobr>
+ <span class="sympad">printStackTrace</span>(PrintStream arg0)</nobr>
</td></tr>
@@ -1049,7 +1094,7 @@
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad">printStackTrace</span>(PrintStream arg0)</nobr>
+ <span class="sympad">printStackTrace</span>(PrintWriter arg0)</nobr>
</td></tr>
diff --git a/docs/html/reference/com/google/android/gms/maps/model/Tile.html b/docs/html/reference/com/google/android/gms/maps/model/Tile.html
index 9fd011b..545701d 100644
--- a/docs/html/reference/com/google/android/gms/maps/model/Tile.html
+++ b/docs/html/reference/com/google/android/gms/maps/model/Tile.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/maps/model/TileOverlay.html b/docs/html/reference/com/google/android/gms/maps/model/TileOverlay.html
index 2018867..11ecd69 100644
--- a/docs/html/reference/com/google/android/gms/maps/model/TileOverlay.html
+++ b/docs/html/reference/com/google/android/gms/maps/model/TileOverlay.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
@@ -901,6 +914,24 @@
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/maps/model/TileOverlay.html#getFadeIn()">getFadeIn</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Gets whether the tiles should fade in.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
String</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
@@ -912,7 +943,7 @@
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
@@ -930,7 +961,7 @@
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
@@ -946,7 +977,7 @@
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
@@ -964,7 +995,7 @@
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
@@ -982,6 +1013,24 @@
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ void</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/maps/model/TileOverlay.html#setFadeIn(boolean)">setFadeIn</a></span>(boolean fadeIn)</nobr>
+
+ <div class="jd-descrdiv">Sets whether the tiles should fade in.</div>
+
+ </td></tr>
+
+
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
@@ -1336,6 +1385,40 @@
</div>
+<A NAME="getFadeIn()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ boolean
+ </span>
+ <span class="sympad">getFadeIn</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Gets whether the tiles should fade in.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li><code>true</code> if the tiles are to fade in; <code>false</code> if it is not.
+</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
<A NAME="getId()"></A>
<div class="jd-details api apilevel-">
@@ -1495,6 +1578,46 @@
</div>
+<A NAME="setFadeIn(boolean)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ void
+ </span>
+ <span class="sympad">setFadeIn</span>
+ <span class="normal">(boolean fadeIn)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Sets whether the tiles should fade in.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>fadeIn</td>
+ <td>if <code>true</code>, then the tiles will fade in; if <code>false</code>, the tiles
+ will not fade in.
+</td>
+ </tr>
+ </table>
+ </div>
+
+ </div>
+</div>
+
+
<A NAME="setVisible(boolean)"></A>
<div class="jd-details api apilevel-">
diff --git a/docs/html/reference/com/google/android/gms/maps/model/TileOverlayOptions.html b/docs/html/reference/com/google/android/gms/maps/model/TileOverlayOptions.html
index 2f4b7fb..fa4c8ef 100644
--- a/docs/html/reference/com/google/android/gms/maps/model/TileOverlayOptions.html
+++ b/docs/html/reference/com/google/android/gms/maps/model/TileOverlayOptions.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
@@ -943,6 +956,42 @@
+ <a href="/reference/com/google/android/gms/maps/model/TileOverlayOptions.html">TileOverlayOptions</a></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/maps/model/TileOverlayOptions.html#fadeIn(boolean)">fadeIn</a></span>(boolean fadeIn)</nobr>
+
+ <div class="jd-descrdiv">Specifies whether the tiles should fade in.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/maps/model/TileOverlayOptions.html#getFadeIn()">getFadeIn</a></span>()</nobr>
+
+ <div class="jd-descrdiv">Gets whether the tiles should fade in.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
<a href="/reference/com/google/android/gms/maps/model/TileProvider.html">TileProvider</a></nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
@@ -1476,6 +1525,74 @@
</div>
+<A NAME="fadeIn(boolean)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ <a href="/reference/com/google/android/gms/maps/model/TileOverlayOptions.html">TileOverlayOptions</a>
+ </span>
+ <span class="sympad">fadeIn</span>
+ <span class="normal">(boolean fadeIn)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Specifies whether the tiles should fade in. The default is <code>true</code>.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>this <code><a href="/reference/com/google/android/gms/maps/model/TileOverlayOptions.html">TileOverlayOptions</a></code> object with a new visibility setting.
+</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="getFadeIn()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ boolean
+ </span>
+ <span class="sympad">getFadeIn</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Gets whether the tiles should fade in.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li><code>true</code> if the tiles are to fade in; <code>false</code> if it is not.
+</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
<A NAME="getTileProvider()"></A>
<div class="jd-details api apilevel-">
diff --git a/docs/html/reference/com/google/android/gms/maps/model/TileProvider.html b/docs/html/reference/com/google/android/gms/maps/model/TileProvider.html
index e093cc7..e076a33 100644
--- a/docs/html/reference/com/google/android/gms/maps/model/TileProvider.html
+++ b/docs/html/reference/com/google/android/gms/maps/model/TileProvider.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/maps/model/UrlTileProvider.html b/docs/html/reference/com/google/android/gms/maps/model/UrlTileProvider.html
index 5b25b14..e65ee14 100644
--- a/docs/html/reference/com/google/android/gms/maps/model/UrlTileProvider.html
+++ b/docs/html/reference/com/google/android/gms/maps/model/UrlTileProvider.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/maps/model/VisibleRegion.html b/docs/html/reference/com/google/android/gms/maps/model/VisibleRegion.html
index 80cc1c4..5a69c4b 100644
--- a/docs/html/reference/com/google/android/gms/maps/model/VisibleRegion.html
+++ b/docs/html/reference/com/google/android/gms/maps/model/VisibleRegion.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/maps/model/package-summary.html b/docs/html/reference/com/google/android/gms/maps/model/package-summary.html
index 21e5538..4ca2503 100644
--- a/docs/html/reference/com/google/android/gms/maps/model/package-summary.html
+++ b/docs/html/reference/com/google/android/gms/maps/model/package-summary.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -242,6 +243,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -280,7 +283,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -309,6 +312,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -348,7 +354,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -376,6 +382,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -518,29 +528,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/maps/package-summary.html b/docs/html/reference/com/google/android/gms/maps/package-summary.html
index ed2100c..6ee4d58 100644
--- a/docs/html/reference/com/google/android/gms/maps/package-summary.html
+++ b/docs/html/reference/com/google/android/gms/maps/package-summary.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -242,6 +243,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -280,7 +283,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -309,6 +312,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -348,7 +354,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -376,6 +382,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -518,29 +528,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/package-summary.html b/docs/html/reference/com/google/android/gms/package-summary.html
index c703b46..b39c32b 100644
--- a/docs/html/reference/com/google/android/gms/package-summary.html
+++ b/docs/html/reference/com/google/android/gms/package-summary.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -242,6 +243,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -280,7 +283,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -309,6 +312,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -348,7 +354,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -376,6 +382,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -518,29 +528,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/panorama/PanoramaClient.OnPanoramaInfoLoadedListener.html b/docs/html/reference/com/google/android/gms/panorama/PanoramaClient.OnPanoramaInfoLoadedListener.html
index 3357549..d5054fc 100644
--- a/docs/html/reference/com/google/android/gms/panorama/PanoramaClient.OnPanoramaInfoLoadedListener.html
+++ b/docs/html/reference/com/google/android/gms/panorama/PanoramaClient.OnPanoramaInfoLoadedListener.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
@@ -772,8 +785,6 @@
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad"><a href="/reference/com/google/android/gms/panorama/PanoramaClient.OnPanoramaInfoLoadedListener.html#onPanoramaInfoLoaded(com.google.android.gms.common.ConnectionResult, android.content.Intent)">onPanoramaInfoLoaded</a></span>(<a href="/reference/com/google/android/gms/common/ConnectionResult.html">ConnectionResult</a> result, Intent viewerIntent)</nobr>
- <div class="jd-descrdiv">Called on the main thread when panorama info is loaded.</div>
-
</td></tr>
@@ -848,23 +859,7 @@
</div>
<div class="jd-details-descr">
- <div class="jd-tagdata jd-tagdescr"><p>Called on the main thread when panorama info is loaded.</p></div>
- <div class="jd-tagdata">
- <h5 class="jd-tagtitle">Parameters</h5>
- <table class="jd-tagtable">
- <tr>
- <th>result</td>
- <td>result of the operation. isSuccess() will return true if the request
- succeeded.</td>
- </tr>
- <tr>
- <th>viewerIntent</td>
- <td>if the image is a panorama this is not null and will launch
- a viewer when started. If the image is not a panorama this will be null.
-</td>
- </tr>
- </table>
- </div>
+ <div class="jd-tagdata jd-tagdescr"><p></p></div>
</div>
</div>
diff --git a/docs/html/reference/com/google/android/gms/panorama/PanoramaClient.html b/docs/html/reference/com/google/android/gms/panorama/PanoramaClient.html
index 21714a3..579598b 100644
--- a/docs/html/reference/com/google/android/gms/panorama/PanoramaClient.html
+++ b/docs/html/reference/com/google/android/gms/panorama/PanoramaClient.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
@@ -759,7 +772,8 @@
<h2>Class Overview</h2>
-<p itemprop="articleBody">The main entry point for panorama integration.
+<p itemprop="articleBody">This class has been deprecated. Please migrate to <code><a href="/reference/com/google/android/gms/common/api/GoogleApiClient.html">GoogleApiClient</a></code> and use the static
+ APIs in <code>com.google.android.gms.panorama</code>.
Use the PanoramaClient after the asynchronous <code><a href="/reference/com/google/android/gms/panorama/PanoramaClient.html#connect()">connect()</a></code> method
has been called and your listener's
diff --git a/docs/html/reference/com/google/android/gms/panorama/package-summary.html b/docs/html/reference/com/google/android/gms/panorama/package-summary.html
index f132452..e938dc6 100644
--- a/docs/html/reference/com/google/android/gms/panorama/package-summary.html
+++ b/docs/html/reference/com/google/android/gms/panorama/package-summary.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -242,6 +243,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -280,7 +283,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -309,6 +312,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -348,7 +354,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -376,6 +382,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -518,29 +528,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
@@ -684,7 +697,7 @@
<table class="jd-sumtable-expando">
<tr class="alt-color api apilevel-" >
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/panorama/PanoramaClient.html">PanoramaClient</a></td>
- <td class="jd-descrcol" width="100%">The main entry point for panorama integration. </td>
+ <td class="jd-descrcol" width="100%">This class has been deprecated. </td>
</tr>
</table>
</div>
diff --git a/docs/html/reference/com/google/android/gms/plus/PlusClient.Builder.html b/docs/html/reference/com/google/android/gms/plus/PlusClient.Builder.html
index 8158a2b..75ae048 100644
--- a/docs/html/reference/com/google/android/gms/plus/PlusClient.Builder.html
+++ b/docs/html/reference/com/google/android/gms/plus/PlusClient.Builder.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/plus/PlusClient.OnAccessRevokedListener.html b/docs/html/reference/com/google/android/gms/plus/PlusClient.OnAccessRevokedListener.html
index 47849f4..864d788 100644
--- a/docs/html/reference/com/google/android/gms/plus/PlusClient.OnAccessRevokedListener.html
+++ b/docs/html/reference/com/google/android/gms/plus/PlusClient.OnAccessRevokedListener.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/plus/PlusClient.OnMomentsLoadedListener.html b/docs/html/reference/com/google/android/gms/plus/PlusClient.OnMomentsLoadedListener.html
index 43486e0..7a41ea8 100644
--- a/docs/html/reference/com/google/android/gms/plus/PlusClient.OnMomentsLoadedListener.html
+++ b/docs/html/reference/com/google/android/gms/plus/PlusClient.OnMomentsLoadedListener.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/plus/PlusClient.OnPeopleLoadedListener.html b/docs/html/reference/com/google/android/gms/plus/PlusClient.OnPeopleLoadedListener.html
index 8285506..58049a4 100644
--- a/docs/html/reference/com/google/android/gms/plus/PlusClient.OnPeopleLoadedListener.html
+++ b/docs/html/reference/com/google/android/gms/plus/PlusClient.OnPeopleLoadedListener.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/plus/PlusClient.OrderBy.html b/docs/html/reference/com/google/android/gms/plus/PlusClient.OrderBy.html
index 0d9d025..0b9de23 100644
--- a/docs/html/reference/com/google/android/gms/plus/PlusClient.OrderBy.html
+++ b/docs/html/reference/com/google/android/gms/plus/PlusClient.OrderBy.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/plus/PlusClient.html b/docs/html/reference/com/google/android/gms/plus/PlusClient.html
index 194dfa8..a09843d 100644
--- a/docs/html/reference/com/google/android/gms/plus/PlusClient.html
+++ b/docs/html/reference/com/google/android/gms/plus/PlusClient.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/plus/PlusOneButton.DefaultOnPlusOneClickListener.html b/docs/html/reference/com/google/android/gms/plus/PlusOneButton.DefaultOnPlusOneClickListener.html
index d0b19cc..9e24257 100644
--- a/docs/html/reference/com/google/android/gms/plus/PlusOneButton.DefaultOnPlusOneClickListener.html
+++ b/docs/html/reference/com/google/android/gms/plus/PlusOneButton.DefaultOnPlusOneClickListener.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/plus/PlusOneButton.OnPlusOneClickListener.html b/docs/html/reference/com/google/android/gms/plus/PlusOneButton.OnPlusOneClickListener.html
index 9f5d227..40244f6 100644
--- a/docs/html/reference/com/google/android/gms/plus/PlusOneButton.OnPlusOneClickListener.html
+++ b/docs/html/reference/com/google/android/gms/plus/PlusOneButton.OnPlusOneClickListener.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/plus/PlusOneButton.html b/docs/html/reference/com/google/android/gms/plus/PlusOneButton.html
index a9c5566..c01bada 100644
--- a/docs/html/reference/com/google/android/gms/plus/PlusOneButton.html
+++ b/docs/html/reference/com/google/android/gms/plus/PlusOneButton.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
@@ -1515,145 +1528,152 @@
<tr class="alt-color api apilevel-" >
<td class="jd-typecol">int</td>
- <td class="jd-linkcol">SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN</td>
+ <td class="jd-linkcol">SYSTEM_UI_FLAG_IMMERSIVE_STICKY</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
<tr class=" api apilevel-" >
<td class="jd-typecol">int</td>
+ <td class="jd-linkcol">SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
<td class="jd-linkcol">SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol">SYSTEM_UI_FLAG_LAYOUT_STABLE</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol">SYSTEM_UI_FLAG_LOW_PROFILE</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol">SYSTEM_UI_FLAG_VISIBLE</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol">SYSTEM_UI_LAYOUT_FLAGS</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol">TEXT_ALIGNMENT_CENTER</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol">TEXT_ALIGNMENT_GRAVITY</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol">TEXT_ALIGNMENT_INHERIT</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol">TEXT_ALIGNMENT_TEXT_END</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol">TEXT_ALIGNMENT_TEXT_START</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol">TEXT_ALIGNMENT_VIEW_END</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol">TEXT_ALIGNMENT_VIEW_START</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol">TEXT_DIRECTION_ANY_RTL</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol">TEXT_DIRECTION_FIRST_STRONG</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol">TEXT_DIRECTION_INHERIT</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol">TEXT_DIRECTION_LOCALE</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol">TEXT_DIRECTION_LTR</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol">TEXT_DIRECTION_RTL</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
-
-
- <tr class=" api apilevel-" >
+
+
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol">String</td>
<td class="jd-linkcol">VIEW_LOG_TAG</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol">VISIBLE</td>
<td class="jd-descrcol" width="100%"></td>
diff --git a/docs/html/reference/com/google/android/gms/plus/PlusOneButtonWithPopup.html b/docs/html/reference/com/google/android/gms/plus/PlusOneButtonWithPopup.html
index 8072051..e7f13a3 100644
--- a/docs/html/reference/com/google/android/gms/plus/PlusOneButtonWithPopup.html
+++ b/docs/html/reference/com/google/android/gms/plus/PlusOneButtonWithPopup.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
@@ -1379,145 +1392,152 @@
<tr class="alt-color api apilevel-" >
<td class="jd-typecol">int</td>
- <td class="jd-linkcol">SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN</td>
+ <td class="jd-linkcol">SYSTEM_UI_FLAG_IMMERSIVE_STICKY</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
<tr class=" api apilevel-" >
<td class="jd-typecol">int</td>
+ <td class="jd-linkcol">SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
<td class="jd-linkcol">SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol">SYSTEM_UI_FLAG_LAYOUT_STABLE</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol">SYSTEM_UI_FLAG_LOW_PROFILE</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol">SYSTEM_UI_FLAG_VISIBLE</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol">SYSTEM_UI_LAYOUT_FLAGS</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol">TEXT_ALIGNMENT_CENTER</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol">TEXT_ALIGNMENT_GRAVITY</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol">TEXT_ALIGNMENT_INHERIT</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol">TEXT_ALIGNMENT_TEXT_END</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol">TEXT_ALIGNMENT_TEXT_START</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol">TEXT_ALIGNMENT_VIEW_END</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol">TEXT_ALIGNMENT_VIEW_START</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol">TEXT_DIRECTION_ANY_RTL</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol">TEXT_DIRECTION_FIRST_STRONG</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol">TEXT_DIRECTION_INHERIT</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol">TEXT_DIRECTION_LOCALE</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol">TEXT_DIRECTION_LTR</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol">TEXT_DIRECTION_RTL</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
-
-
- <tr class=" api apilevel-" >
+
+
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol">String</td>
<td class="jd-linkcol">VIEW_LOG_TAG</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol">VISIBLE</td>
<td class="jd-descrcol" width="100%"></td>
diff --git a/docs/html/reference/com/google/android/gms/plus/PlusOneDummyView.html b/docs/html/reference/com/google/android/gms/plus/PlusOneDummyView.html
index 27ecdbd..9f2f583 100644
--- a/docs/html/reference/com/google/android/gms/plus/PlusOneDummyView.html
+++ b/docs/html/reference/com/google/android/gms/plus/PlusOneDummyView.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
@@ -1420,145 +1433,152 @@
<tr class="alt-color api apilevel-" >
<td class="jd-typecol">int</td>
- <td class="jd-linkcol">SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN</td>
+ <td class="jd-linkcol">SYSTEM_UI_FLAG_IMMERSIVE_STICKY</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
<tr class=" api apilevel-" >
<td class="jd-typecol">int</td>
+ <td class="jd-linkcol">SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN</td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol">int</td>
<td class="jd-linkcol">SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol">SYSTEM_UI_FLAG_LAYOUT_STABLE</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol">SYSTEM_UI_FLAG_LOW_PROFILE</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol">SYSTEM_UI_FLAG_VISIBLE</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol">SYSTEM_UI_LAYOUT_FLAGS</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol">TEXT_ALIGNMENT_CENTER</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol">TEXT_ALIGNMENT_GRAVITY</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol">TEXT_ALIGNMENT_INHERIT</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol">TEXT_ALIGNMENT_TEXT_END</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol">TEXT_ALIGNMENT_TEXT_START</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol">TEXT_ALIGNMENT_VIEW_END</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol">TEXT_ALIGNMENT_VIEW_START</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol">TEXT_DIRECTION_ANY_RTL</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol">TEXT_DIRECTION_FIRST_STRONG</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol">TEXT_DIRECTION_INHERIT</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol">TEXT_DIRECTION_LOCALE</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol">TEXT_DIRECTION_LTR</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol">TEXT_DIRECTION_RTL</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
-
-
- <tr class=" api apilevel-" >
+
+
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol">String</td>
<td class="jd-linkcol">VIEW_LOG_TAG</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol">VISIBLE</td>
<td class="jd-descrcol" width="100%"></td>
diff --git a/docs/html/reference/com/google/android/gms/plus/PlusShare.Builder.html b/docs/html/reference/com/google/android/gms/plus/PlusShare.Builder.html
index e983cfc..676384c 100644
--- a/docs/html/reference/com/google/android/gms/plus/PlusShare.Builder.html
+++ b/docs/html/reference/com/google/android/gms/plus/PlusShare.Builder.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
@@ -845,7 +858,10 @@
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad"><a href="/reference/com/google/android/gms/plus/PlusShare.Builder.html#PlusShare.Builder(android.app.Activity, com.google.android.gms.plus.PlusClient)">PlusShare.Builder</a></span>(Activity launchingActivity, <a href="/reference/com/google/android/gms/plus/PlusClient.html">PlusClient</a> plusClient)</nobr>
- <div class="jd-descrdiv">Create a new Builder for launching a sharing action from launchingActivity.</div>
+ <div class="jd-descrdiv"><em>
+ This constructor is deprecated.
+ Please migrate to <code><a href="/">ERROR(/#Builder(Activity))</a></code>, the PlusClient is optional.
+</em></div>
</td></tr>
@@ -984,7 +1000,8 @@
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad"><a href="/reference/com/google/android/gms/plus/PlusShare.Builder.html#setRecipients(java.util.List<com.google.android.gms.plus.model.people.Person>)">setRecipients</a></span>(List<<a href="/reference/com/google/android/gms/plus/model/people/Person.html">Person</a>> recipientList)</nobr>
- <div class="jd-descrdiv">Sets a list of people to send the interactive post to.</div>
+ <div class="jd-descrdiv">Deprecated, use the constructor <code><a href="/">ERROR(/#Builder(Activity))</a></code> and call
+ <code><a href="/">ERROR(/#setRecipients(Person, List<Person>))</a></code>.</div>
</td></tr>
@@ -1000,6 +1017,24 @@
<a href="/reference/com/google/android/gms/plus/PlusShare.Builder.html">PlusShare.Builder</a></nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/plus/PlusShare.Builder.html#setRecipients(com.google.android.gms.plus.model.people.Person, java.util.List<com.google.android.gms.plus.model.people.Person>)">setRecipients</a></span>(<a href="/reference/com/google/android/gms/plus/model/people/Person.html">Person</a> user, List<<a href="/reference/com/google/android/gms/plus/model/people/Person.html">Person</a>> recipientList)</nobr>
+
+ <div class="jd-descrdiv">Sets a list of people to send the interactive post to.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ <a href="/reference/com/google/android/gms/plus/PlusShare.Builder.html">PlusShare.Builder</a></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
<span class="sympad"><a href="/reference/com/google/android/gms/plus/PlusShare.Builder.html#setStream(android.net.Uri)">setStream</a></span>(Uri streamUri)</nobr>
<div class="jd-descrdiv">Set a stream URI to the data that should be shared.</div>
@@ -1008,7 +1043,7 @@
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
@@ -1026,7 +1061,7 @@
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
@@ -1393,24 +1428,13 @@
</div>
<div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>Create a new Builder for launching a sharing action from launchingActivity. You
- must provide a connected <code><a href="/reference/com/google/android/gms/plus/PlusClient.html">PlusClient</a></code> that has the <code><a href="/reference/com/google/android/gms/common/Scopes.html#PLUS_LOGIN">PLUS_LOGIN</a></code> scope
- when creating an interactive post with a call-to-action button.</p></div>
- <div class="jd-tagdata">
- <h5 class="jd-tagtitle">Parameters</h5>
- <table class="jd-tagtable">
- <tr>
- <th>launchingActivity</td>
- <td>Activity that the share will be launched from</td>
- </tr>
- <tr>
- <th>plusClient</td>
- <td>The connected <code><a href="/reference/com/google/android/gms/plus/PlusClient.html">PlusClient</a></code> object.
-</td>
- </tr>
- </table>
- </div>
+ <p>
+ <p class="caution"><strong>
+ This constructor is deprecated.</strong><br/>
+ Please migrate to <code><a href="/">ERROR(/#Builder(Activity))</a></code>, the PlusClient is optional.
+
+ </p>
+ <div class="jd-tagdata jd-tagdescr"><p></p></div>
</div>
</div>
@@ -1739,6 +1763,55 @@
</div>
<div class="jd-details-descr">
+ <div class="jd-tagdata jd-tagdescr"><p>Deprecated, use the constructor <code><a href="/">ERROR(/#Builder(Activity))</a></code> and call
+ <code><a href="/">ERROR(/#setRecipients(Person, List<Person>))</a></code>. Sets a list of people
+ to send the interactive post to.
+
+ <p>This sets the initial people to share with, but the user can change who the post
+ is shared with before posting. A maximum of ten recipients are allowed.</p></p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>recipientList</td>
+ <td>A list of recipients. See <code><a href="/reference/com/google/android/gms/plus/PlusClient.html#loadPeople(com.google.android.gms.plus.PlusClient.OnPeopleLoadedListener, java.lang.String...)">loadPeople(PlusClient.OnPeopleLoadedListener, String...)</a></code> and
+ <code><a href="/reference/com/google/android/gms/plus/PlusShare.html#createPerson(java.lang.String, java.lang.String)">createPerson(String, String)</a></code>.</td>
+ </tr>
+ </table>
+ </div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>This Builder for method chaining.
+</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="setRecipients(com.google.android.gms.plus.model.people.Person, java.util.List<com.google.android.gms.plus.model.people.Person>)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ <a href="/reference/com/google/android/gms/plus/PlusShare.Builder.html">PlusShare.Builder</a>
+ </span>
+ <span class="sympad">setRecipients</span>
+ <span class="normal">(<a href="/reference/com/google/android/gms/plus/model/people/Person.html">Person</a> user, List<<a href="/reference/com/google/android/gms/plus/model/people/Person.html">Person</a>> recipientList)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
<div class="jd-tagdata jd-tagdescr"><p>Sets a list of people to send the interactive post to.
<p>This sets the initial people to share with, but the user can change who the post
@@ -1747,6 +1820,11 @@
<h5 class="jd-tagtitle">Parameters</h5>
<table class="jd-tagtable">
<tr>
+ <th>user</td>
+ <td>The user to send the post as, see
+ <code><a href="/">ERROR(/People#getCurrentPerson(com.google.android.gms.GoogleApiClient))</a></code>.</td>
+ </tr>
+ <tr>
<th>recipientList</td>
<td>A list of recipients. See <code><a href="/reference/com/google/android/gms/plus/PlusClient.html#loadPeople(com.google.android.gms.plus.PlusClient.OnPeopleLoadedListener, java.lang.String...)">loadPeople(PlusClient.OnPeopleLoadedListener, String...)</a></code> and
<code><a href="/reference/com/google/android/gms/plus/PlusShare.html#createPerson(java.lang.String, java.lang.String)">createPerson(String, String)</a></code>.</td>
diff --git a/docs/html/reference/com/google/android/gms/plus/PlusShare.html b/docs/html/reference/com/google/android/gms/plus/PlusShare.html
index 4382746..817c27e 100644
--- a/docs/html/reference/com/google/android/gms/plus/PlusShare.html
+++ b/docs/html/reference/com/google/android/gms/plus/PlusShare.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
@@ -1459,7 +1472,7 @@
<div class="jd-tagdata jd-tagdescr"><p>The ID of the sender on Google+.</p></div>
<div class="jd-tagdata">
<h5 class="jd-tagtitle">See Also</h5>
- <ul class="nolist"><li><code><a href="/reference/com/google/android/gms/plus/model/people/Person.html#getId()">getId()</a></code></li><li><code><a href="/reference/com/google/android/gms/plus/PlusClient.html#getCurrentPerson()">getCurrentPerson()</a></code></li>
+ <ul class="nolist"><li><code><a href="/reference/com/google/android/gms/plus/model/people/Person.html#getId()">getId()</a></code></li><li><code><a href="/">ERROR(/com.google.android.gms.plus.People#getCurrentPerson)</a></code></li>
</ul>
</div>
@@ -1833,7 +1846,7 @@
<div class="jd-details-descr">
<div class="jd-tagdata jd-tagdescr"><p>Creates a person to use as a recipient with the given ID and display name.
- See <code><a href="/reference/com/google/android/gms/plus/PlusShare.Builder.html#setRecipients(java.util.List<com.google.android.gms.plus.model.people.Person>)">setRecipients(List<Person>)</a></code>.</p></div>
+ See <code><a href="/reference/com/google/android/gms/plus/PlusShare.Builder.html#setRecipients(com.google.android.gms.plus.model.people.Person, java.util.List<com.google.android.gms.plus.model.people.Person>)">setRecipients(Person, List<Person>)</a></code>.</p></div>
<div class="jd-tagdata">
<h5 class="jd-tagtitle">Parameters</h5>
<table class="jd-tagtable">
diff --git a/docs/html/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html b/docs/html/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html
index b443b38..4ed320d 100644
--- a/docs/html/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html
+++ b/docs/html/reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/plus/model/moments/ItemScope.html b/docs/html/reference/com/google/android/gms/plus/model/moments/ItemScope.html
index f5e6595..0fc87f9 100644
--- a/docs/html/reference/com/google/android/gms/plus/model/moments/ItemScope.html
+++ b/docs/html/reference/com/google/android/gms/plus/model/moments/ItemScope.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/plus/model/moments/Moment.Builder.html b/docs/html/reference/com/google/android/gms/plus/model/moments/Moment.Builder.html
index 63ffc51..dae79dc 100644
--- a/docs/html/reference/com/google/android/gms/plus/model/moments/Moment.Builder.html
+++ b/docs/html/reference/com/google/android/gms/plus/model/moments/Moment.Builder.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/plus/model/moments/Moment.html b/docs/html/reference/com/google/android/gms/plus/model/moments/Moment.html
index 8f22f7f..bddfe19 100644
--- a/docs/html/reference/com/google/android/gms/plus/model/moments/Moment.html
+++ b/docs/html/reference/com/google/android/gms/plus/model/moments/Moment.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/plus/model/moments/MomentBuffer.html b/docs/html/reference/com/google/android/gms/plus/model/moments/MomentBuffer.html
index 6a69fed..41d940c 100644
--- a/docs/html/reference/com/google/android/gms/plus/model/moments/MomentBuffer.html
+++ b/docs/html/reference/com/google/android/gms/plus/model/moments/MomentBuffer.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/plus/model/moments/package-summary.html b/docs/html/reference/com/google/android/gms/plus/model/moments/package-summary.html
index 86485d4..094f239 100644
--- a/docs/html/reference/com/google/android/gms/plus/model/moments/package-summary.html
+++ b/docs/html/reference/com/google/android/gms/plus/model/moments/package-summary.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -242,6 +243,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -280,7 +283,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -309,6 +312,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -348,7 +354,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -376,6 +382,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -518,29 +528,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/plus/model/people/Person.AgeRange.html b/docs/html/reference/com/google/android/gms/plus/model/people/Person.AgeRange.html
index ca9aa93..a24a607 100644
--- a/docs/html/reference/com/google/android/gms/plus/model/people/Person.AgeRange.html
+++ b/docs/html/reference/com/google/android/gms/plus/model/people/Person.AgeRange.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/plus/model/people/Person.Cover.CoverInfo.html b/docs/html/reference/com/google/android/gms/plus/model/people/Person.Cover.CoverInfo.html
index d311a63..28046c3 100644
--- a/docs/html/reference/com/google/android/gms/plus/model/people/Person.Cover.CoverInfo.html
+++ b/docs/html/reference/com/google/android/gms/plus/model/people/Person.Cover.CoverInfo.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/plus/model/people/Person.Cover.CoverPhoto.html b/docs/html/reference/com/google/android/gms/plus/model/people/Person.Cover.CoverPhoto.html
index 8731ce7..6f56b3d 100644
--- a/docs/html/reference/com/google/android/gms/plus/model/people/Person.Cover.CoverPhoto.html
+++ b/docs/html/reference/com/google/android/gms/plus/model/people/Person.Cover.CoverPhoto.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/plus/model/people/Person.Cover.Layout.html b/docs/html/reference/com/google/android/gms/plus/model/people/Person.Cover.Layout.html
index a0f829a..3ae9348 100644
--- a/docs/html/reference/com/google/android/gms/plus/model/people/Person.Cover.Layout.html
+++ b/docs/html/reference/com/google/android/gms/plus/model/people/Person.Cover.Layout.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/plus/model/people/Person.Cover.html b/docs/html/reference/com/google/android/gms/plus/model/people/Person.Cover.html
index dc93b4c..1cda290 100644
--- a/docs/html/reference/com/google/android/gms/plus/model/people/Person.Cover.html
+++ b/docs/html/reference/com/google/android/gms/plus/model/people/Person.Cover.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/plus/model/people/Person.Gender.html b/docs/html/reference/com/google/android/gms/plus/model/people/Person.Gender.html
index 2bbdb30..ff403ad 100644
--- a/docs/html/reference/com/google/android/gms/plus/model/people/Person.Gender.html
+++ b/docs/html/reference/com/google/android/gms/plus/model/people/Person.Gender.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/plus/model/people/Person.Image.html b/docs/html/reference/com/google/android/gms/plus/model/people/Person.Image.html
index 77364bd..94e3c7f 100644
--- a/docs/html/reference/com/google/android/gms/plus/model/people/Person.Image.html
+++ b/docs/html/reference/com/google/android/gms/plus/model/people/Person.Image.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/plus/model/people/Person.Name.html b/docs/html/reference/com/google/android/gms/plus/model/people/Person.Name.html
index c8d6d79..22ddd95 100644
--- a/docs/html/reference/com/google/android/gms/plus/model/people/Person.Name.html
+++ b/docs/html/reference/com/google/android/gms/plus/model/people/Person.Name.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/plus/model/people/Person.ObjectType.html b/docs/html/reference/com/google/android/gms/plus/model/people/Person.ObjectType.html
index 3667ddc..9026551 100644
--- a/docs/html/reference/com/google/android/gms/plus/model/people/Person.ObjectType.html
+++ b/docs/html/reference/com/google/android/gms/plus/model/people/Person.ObjectType.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/plus/model/people/Person.Organizations.Type.html b/docs/html/reference/com/google/android/gms/plus/model/people/Person.Organizations.Type.html
index 027814b..db250bc9 100644
--- a/docs/html/reference/com/google/android/gms/plus/model/people/Person.Organizations.Type.html
+++ b/docs/html/reference/com/google/android/gms/plus/model/people/Person.Organizations.Type.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/plus/model/people/Person.Organizations.html b/docs/html/reference/com/google/android/gms/plus/model/people/Person.Organizations.html
index 82b1be5..e6e6282 100644
--- a/docs/html/reference/com/google/android/gms/plus/model/people/Person.Organizations.html
+++ b/docs/html/reference/com/google/android/gms/plus/model/people/Person.Organizations.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/plus/model/people/Person.PlacesLived.html b/docs/html/reference/com/google/android/gms/plus/model/people/Person.PlacesLived.html
index 231aba1..3ac3cf8 100644
--- a/docs/html/reference/com/google/android/gms/plus/model/people/Person.PlacesLived.html
+++ b/docs/html/reference/com/google/android/gms/plus/model/people/Person.PlacesLived.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/plus/model/people/Person.RelationshipStatus.html b/docs/html/reference/com/google/android/gms/plus/model/people/Person.RelationshipStatus.html
index 82730d3b..01f9daf 100644
--- a/docs/html/reference/com/google/android/gms/plus/model/people/Person.RelationshipStatus.html
+++ b/docs/html/reference/com/google/android/gms/plus/model/people/Person.RelationshipStatus.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/plus/model/people/Person.Urls.Type.html b/docs/html/reference/com/google/android/gms/plus/model/people/Person.Urls.Type.html
index 4830c12..f8c0085 100644
--- a/docs/html/reference/com/google/android/gms/plus/model/people/Person.Urls.Type.html
+++ b/docs/html/reference/com/google/android/gms/plus/model/people/Person.Urls.Type.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/plus/model/people/Person.Urls.html b/docs/html/reference/com/google/android/gms/plus/model/people/Person.Urls.html
index 0709156..4338a70 100644
--- a/docs/html/reference/com/google/android/gms/plus/model/people/Person.Urls.html
+++ b/docs/html/reference/com/google/android/gms/plus/model/people/Person.Urls.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/plus/model/people/Person.html b/docs/html/reference/com/google/android/gms/plus/model/people/Person.html
index 7cf1032..8a795a4 100644
--- a/docs/html/reference/com/google/android/gms/plus/model/people/Person.html
+++ b/docs/html/reference/com/google/android/gms/plus/model/people/Person.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/plus/model/people/PersonBuffer.html b/docs/html/reference/com/google/android/gms/plus/model/people/PersonBuffer.html
index aaa6d9c..088c885 100644
--- a/docs/html/reference/com/google/android/gms/plus/model/people/PersonBuffer.html
+++ b/docs/html/reference/com/google/android/gms/plus/model/people/PersonBuffer.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/plus/model/people/package-summary.html b/docs/html/reference/com/google/android/gms/plus/model/people/package-summary.html
index 5c493ca..6417fdd 100644
--- a/docs/html/reference/com/google/android/gms/plus/model/people/package-summary.html
+++ b/docs/html/reference/com/google/android/gms/plus/model/people/package-summary.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -242,6 +243,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -280,7 +283,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -309,6 +312,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -348,7 +354,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -376,6 +382,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -518,29 +528,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/plus/package-summary.html b/docs/html/reference/com/google/android/gms/plus/package-summary.html
index 7f6dfad..fd44065 100644
--- a/docs/html/reference/com/google/android/gms/plus/package-summary.html
+++ b/docs/html/reference/com/google/android/gms/plus/package-summary.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -242,6 +243,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -280,7 +283,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -309,6 +312,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -348,7 +354,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -376,6 +382,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -518,29 +528,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/wallet/Address.html b/docs/html/reference/com/google/android/gms/wallet/Address.html
index 37e715d..e5b2b0a 100644
--- a/docs/html/reference/com/google/android/gms/wallet/Address.html
+++ b/docs/html/reference/com/google/android/gms/wallet/Address.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
@@ -678,9 +691,6 @@
- | <a href="#pubctors">Ctors</a>
-
-
| <a href="#pubmethods">Methods</a>
@@ -883,31 +893,6 @@
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
-
-
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
-
-
-
-
-
- </nobr>
- </td>
- <td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/wallet/Address.html#Address()">Address</a></span>()</nobr>
-
- </td></tr>
-
-
-
-</table>
-
-
@@ -1479,42 +1464,6 @@
<!-- Public ctors -->
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<h2>Public Constructors</h2>
-
-
-
-<A NAME="Address()"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
-
-
-
- </span>
- <span class="sympad">Address</span>
- <span class="normal">()</span>
- </h4>
- <div class="api-level">
- <div></div>
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
- </div>
-</div>
-
-
-
-
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<!-- Protected ctors -->
diff --git a/docs/html/reference/com/google/android/gms/wallet/Cart.Builder.html b/docs/html/reference/com/google/android/gms/wallet/Cart.Builder.html
index 935b05e..272b3c3 100644
--- a/docs/html/reference/com/google/android/gms/wallet/Cart.Builder.html
+++ b/docs/html/reference/com/google/android/gms/wallet/Cart.Builder.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/wallet/Cart.html b/docs/html/reference/com/google/android/gms/wallet/Cart.html
index 4a3ef7a..a608dce 100644
--- a/docs/html/reference/com/google/android/gms/wallet/Cart.html
+++ b/docs/html/reference/com/google/android/gms/wallet/Cart.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
@@ -681,9 +694,6 @@
- | <a href="#pubctors">Ctors</a>
-
-
| <a href="#pubmethods">Methods</a>
@@ -710,7 +720,7 @@
<div id="jd-header">
public
-
+ final
class
<h1 itemprop="name">Cart</h1>
@@ -767,7 +777,7 @@
<h2>Class Overview</h2>
-<p itemprop="articleBody">Parcelable representing a shopping cart in <code><a href="/reference/com/google/android/gms/wallet/FullWalletRequest.html">FullWalletRequest</a></code>.
+<p itemprop="articleBody">Parcelable representing a shopping cart.
</p>
@@ -906,31 +916,6 @@
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
-
-
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
-
-
-
-
-
- </nobr>
- </td>
- <td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/wallet/Cart.html#Cart()">Cart</a></span>()</nobr>
-
- </td></tr>
-
-
-
-</table>
-
-
@@ -1390,42 +1375,6 @@
<!-- Public ctors -->
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<h2>Public Constructors</h2>
-
-
-
-<A NAME="Cart()"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
-
-
-
- </span>
- <span class="sympad">Cart</span>
- <span class="normal">()</span>
- </h4>
- <div class="api-level">
- <div></div>
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
- </div>
-</div>
-
-
-
-
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<!-- Protected ctors -->
diff --git a/docs/html/reference/com/google/android/gms/auth/RecoveryDecision.html b/docs/html/reference/com/google/android/gms/wallet/CountrySpecification.html
similarity index 75%
copy from docs/html/reference/com/google/android/gms/auth/RecoveryDecision.html
copy to docs/html/reference/com/google/android/gms/wallet/CountrySpecification.html
index 59a1346..71c567f 100644
--- a/docs/html/reference/com/google/android/gms/auth/RecoveryDecision.html
+++ b/docs/html/reference/com/google/android/gms/wallet/CountrySpecification.html
@@ -83,7 +83,7 @@
<meta name="viewport" content="width=device-width" />
<link rel="shortcut icon" type="image/x-icon" href="/favicon.ico" />
-<title>RecoveryDecision | Android Developers</title>
+<title>CountrySpecification | Android Developers</title>
<!-- STYLESHEETS -->
<link rel="stylesheet"
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -128,7 +129,7 @@
<img src="/assets/images/dac_logo.png" width="123" height="25" alt="Android Developers" />
</a>
<div class="btn-quicknav" id="btn-quicknav">
- <a href="#" class="arrow-inactive">Quicknav</a>
+ <a href="#" class="arrow-inactive">Quicknav</a>
<a href="#" class="arrow-active">Quicknav</a>
</div>
</div>
@@ -140,7 +141,7 @@
ru-lang="Проектирование"
ko-lang="디자인"
ja-lang="設計"
- es-lang="Diseñar"
+ es-lang="Diseñar"
>Design</a></li>
<li class="develop"><a href="/develop/index.html"
zh-tw-lang="開發"
@@ -148,7 +149,7 @@
ru-lang="Разработка"
ko-lang="개발"
ja-lang="開発"
- es-lang="Desarrollar"
+ es-lang="Desarrollar"
>Develop</a></li>
<li class="distribute last"><a href="/distribute/index.html"
zh-tw-lang="發佈"
@@ -156,10 +157,10 @@
ru-lang="Распространение"
ko-lang="배포"
ja-lang="配布"
- es-lang="Distribuir"
+ es-lang="Distribuir"
>Distribute</a></li>
</ul>
-
+
<!-- New Search -->
<div class="menu-container">
<div class="moremenu">
@@ -180,9 +181,9 @@
<li class="active"><a>Android Developers</a></li>
<li><a href="http://source.android.com">Android Open Source Project</a></li>
</ul>
-
-
-
+
+
+
<div class="header">Language</div>
<div id="language" class="locales">
<select name="language" onChange="changeLangPref(this.value, true)">
@@ -200,8 +201,8 @@
loadLangPref();
//-->
</script>
-
-
+
+
<br class="clearfix" />
@@ -215,7 +216,7 @@
<form onsubmit="return submit_search()">
<input id="search_autocomplete" type="text" value="" autocomplete="off" name="q"
onfocus="search_focus_changed(this, true)" onblur="search_focus_changed(this, false)"
-onkeydown="return search_changed(event, true, '/')"
+onkeydown="return search_changed(event, true, '/')"
onkeyup="return search_changed(event, false, '/')" />
</form>
<div class="right"></div>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -254,8 +257,8 @@
</div>
<!-- /New Search>
-
-
+
+
<!-- Expanded quicknav -->
<div id="quicknav" class="col-9">
<ul>
@@ -277,15 +280,15 @@
ru-lang="Курсы"
ko-lang="교육"
ja-lang="トレーニング"
- es-lang="Capacitación"
+ es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
ko-lang="API 가이드"
ja-lang="API ガイド"
- es-lang="Guías de la API"
+ es-lang="Guías de la API"
>API Guides</a></li>
<li><a href="/reference/packages.html"
zh-tw-lang="參考資源"
@@ -293,7 +296,7 @@
ru-lang="Справочник"
ko-lang="참조문서"
ja-lang="リファレンス"
- es-lang="Referencia"
+ es-lang="Referencia"
>Reference</a></li>
<li><a href="/tools/index.html"
zh-tw-lang="相關工具"
@@ -301,13 +304,16 @@
ru-lang="Инструменты"
ko-lang="도구"
ja-lang="ツール"
- es-lang="Herramientas"
+ es-lang="Herramientas"
>Tools</a>
<ul><li><a href="/sdk/index.html">Get the SDK</a></li></ul>
</li>
<li><a href="/google/index.html">Google Services</a>
</li>
-
+
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -326,15 +332,15 @@
</div>
</div>
<!-- /Header -->
-
-
+
+
<div id="searchResults" class="wrap" style="display:none;">
<h2 id="searchTitle">Results</h2>
<div id="leftSearchControl" class="search-control">Loading...</div>
</div>
-
-
-
+
+
+
<!-- Secondary x-nav -->
<div id="nav-x">
<div class="wrap">
@@ -345,15 +351,15 @@
ru-lang="Курсы"
ko-lang="교육"
ja-lang="トレーニング"
- es-lang="Capacitación"
+ es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
ko-lang="API 가이드"
ja-lang="API ガイド"
- es-lang="Guías de la API"
+ es-lang="Guías de la API"
>API Guides</a></li>
<li class="reference"><a href="/reference/packages.html"
zh-tw-lang="參考資源"
@@ -361,7 +367,7 @@
ru-lang="Справочник"
ko-lang="참조문서"
ja-lang="リファレンス"
- es-lang="Referencia"
+ es-lang="Referencia"
>Reference</a></li>
<li class="tools"><a href="/tools/index.html"
zh-tw-lang="相關工具"
@@ -374,21 +380,25 @@
<li class="google"><a href="/google/index.html"
>Google Services</a>
</li>
-
+
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
-
+
</div>
<!-- /Sendondary x-nav -->
-
-
-
+
+
+
<div class="wrap clearfix" id="body-content">
<div class="col-4" id="side-nav" itemscope itemtype="http://schema.org/SiteNavigationElement">
<div id="devdoc-nav" class="scroll-pane">
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
@@ -618,12 +631,12 @@
</script>
-
+
</div>
<script type="text/javascript">
showGoogleRefTree();
-
+
</script>
</div> <!-- end side-nav -->
<script>
@@ -633,7 +646,7 @@
</script>
-
+
@@ -643,21 +656,21 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
<div class="sum-details-links">
@@ -670,21 +683,21 @@
<a href="#inhconstants">Inherited Constants</a>
-
+
| <a href="#lfields">Fields</a>
-
+
| <a href="#pubctors">Ctors</a>
-
+
| <a href="#pubmethods">Methods</a>
-
+
@@ -694,9 +707,9 @@
</div><!-- end sum-details-links -->
<div class="api-level">
-
-
-
+
+
+
</div>
</div><!-- end api-info-block -->
@@ -706,28 +719,28 @@
<div id="jd-header">
public
-
-
-
+
+
+
class
-<h1 itemprop="name">RecoveryDecision</h1>
+<h1 itemprop="name">CountrySpecification</h1>
-
+
extends Object<br/>
-
-
-
-
-
- implements
-
- Parcelable
-
-
-
+
+
+
+
+
+ implements
+
+ Parcelable
+
+
+
</div><!-- end header -->
@@ -739,18 +752,18 @@
<tr>
-
+
<td colspan="2" class="jd-inheritance-class-cell">java.lang.Object</td>
</tr>
-
+
<tr>
-
+
<td class="jd-inheritance-space"> ↳</td>
-
- <td colspan="1" class="jd-inheritance-class-cell">com.google.android.gms.auth.RecoveryDecision</td>
+
+ <td colspan="1" class="jd-inheritance-class-cell">com.google.android.gms.wallet.CountrySpecification</td>
</tr>
-
+
</table>
@@ -763,6 +776,10 @@
<div class="jd-descr">
+<h2>Class Overview</h2>
+<p itemprop="articleBody">Parcelable representing a country.
+</p>
+
@@ -826,23 +843,23 @@
</div>
<div id="inherited-constants-android.os.Parcelable-summary" style="display: none;">
<table class="jd-sumtable-expando">
-
-
+
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol">CONTENTS_FILE_DESCRIPTOR</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
-
-
+
+
<tr class=" api apilevel-" >
<td class="jd-typecol">int</td>
<td class="jd-linkcol">PARCELABLE_WRITE_RETURN_VALUE</td>
<td class="jd-descrcol" width="100%"></td>
</tr>
-
-
+
+
</table>
</div>
</div>
@@ -858,74 +875,18 @@
<table id="lfields" class="jd-sumtable"><tr><th colspan="12">Fields</th></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
public
static
final
- <a href="/reference/com/google/android/gms/auth/RecoveryDecisionCreator.html">RecoveryDecisionCreator</a></nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#CREATOR">CREATOR</a></td>
+ Creator<<a href="/reference/com/google/android/gms/wallet/CountrySpecification.html">CountrySpecification</a>></nobr></td>
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/wallet/CountrySpecification.html#CREATOR">CREATOR</a></td>
<td class="jd-descrcol" width="100%"></td>
</tr>
-
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- boolean</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#isRecoveryInfoNeeded">isRecoveryInfoNeeded</a></td>
- <td class="jd-descrcol" width="100%">Is <code>true</code> if either the account has no recovery information or it
- was updated long time back (controlled by server, default 1 year).</td>
- </tr>
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- boolean</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#isRecoveryInterstitialAllowed">isRecoveryInterstitialAllowed</a></td>
- <td class="jd-descrcol" width="100%">Is <code>true</code> iff the user has permission to update the account.</td>
- </tr>
-
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- PendingIntent</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#recoveryIntent">recoveryIntent</a></td>
- <td class="jd-descrcol" width="100%">A PendingIntent to an activity that gathers recovery information for the given account.</td>
- </tr>
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- PendingIntent</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#recoveryIntentWithoutIntro">recoveryIntentWithoutIntro</a></td>
- <td class="jd-descrcol" width="100%">A PendingIntent to an activity that gathers recovery information for the given account.</td>
- </tr>
-
-
- <tr class=" api apilevel-" >
- <td class="jd-typecol"><nobr>
- public
-
-
- boolean</nobr></td>
- <td class="jd-linkcol"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#showRecoveryInterstitial">showRecoveryInterstitial</a></td>
- <td class="jd-descrcol" width="100%">Represents the decision and should be obeyed by the client.</td>
- </tr>
-
-
+
+
</table>
@@ -940,19 +901,21 @@
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#RecoveryDecision()">RecoveryDecision</a></span>()</nobr>
-
+ <span class="sympad"><a href="/reference/com/google/android/gms/wallet/CountrySpecification.html#CountrySpecification(java.lang.String)">CountrySpecification</a></span>(String countryCode)</nobr>
+
+ <div class="jd-descrdiv">Constructs a country specification based on a country code.</div>
+
</td></tr>
@@ -969,51 +932,67 @@
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
int</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#describeContents()">describeContents</a></span>()</nobr>
-
+ <span class="sympad"><a href="/reference/com/google/android/gms/wallet/CountrySpecification.html#describeContents()">describeContents</a></span>()</nobr>
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
- int</nobr>
+
+
+
+
+
+ String</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#getVersionCode()">getVersionCode</a></span>()</nobr>
-
+ <span class="sympad"><a href="/reference/com/google/android/gms/wallet/CountrySpecification.html#getCountryCode()">getCountryCode</a></span>()</nobr>
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
+ int</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/wallet/CountrySpecification.html#getVersionCode()">getVersionCode</a></span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/auth/RecoveryDecision.html#writeToParcel(android.os.Parcel, int)">writeToParcel</a></span>(Parcel out, int flags)</nobr>
-
+ <span class="sympad"><a href="/reference/com/google/android/gms/wallet/CountrySpecification.html#writeToParcel(android.os.Parcel, int)">writeToParcel</a></span>(Parcel dest, int flags)</nobr>
+
</td></tr>
@@ -1048,182 +1027,182 @@
</div>
<div id="inherited-methods-java.lang.Object-summary" style="display: none;">
<table class="jd-sumtable-expando">
-
-
+
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
Object</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">clone</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
boolean</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">equals</span>(Object arg0)</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">finalize</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
Class<?></nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">getClass</span>()</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
int</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">hashCode</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">notify</span>()</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">notifyAll</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
String</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">toString</span>()</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">wait</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">wait</span>(long arg0, int arg1)</nobr>
-
+
</td></tr>
-
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
+
+
final
-
-
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">wait</span>(long arg0)</nobr>
-
+
</td></tr>
@@ -1250,38 +1229,38 @@
</div>
<div id="inherited-methods-android.os.Parcelable-summary" style="display: none;">
<table class="jd-sumtable-expando">
-
-
+
+
<tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
abstract
-
-
-
-
+
+
+
+
int</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">describeContents</span>()</nobr>
-
+
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
abstract
-
-
-
-
+
+
+
+
void</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad">writeToParcel</span>(Parcel arg0, int arg1)</nobr>
-
+
</td></tr>
@@ -1325,183 +1304,27 @@
<A NAME="CREATOR"></A>
-<div class="jd-details api apilevel-">
+<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
- public
- static
- final
- <a href="/reference/com/google/android/gms/auth/RecoveryDecisionCreator.html">RecoveryDecisionCreator</a>
+ public
+ static
+ final
+ Creator<<a href="/reference/com/google/android/gms/wallet/CountrySpecification.html">CountrySpecification</a>>
</span>
CREATOR
</h4>
<div class="api-level">
-
-
-
+
+
+
</div>
<div class="jd-details-descr">
-
+
<div class="jd-tagdata jd-tagdescr"><p></p></div>
-
- </div>
-</div>
-
-
-<A NAME="isRecoveryInfoNeeded"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- boolean
- </span>
- isRecoveryInfoNeeded
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>Is <code>true</code> if either the account has no recovery information or it
- was updated long time back (controlled by server, default 1 year).
-</p></div>
-
-
- </div>
-</div>
-
-
-
-<A NAME="isRecoveryInterstitialAllowed"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- boolean
- </span>
- isRecoveryInterstitialAllowed
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>Is <code>true</code> iff the user has permission to update the account.
- Dasher accounts can have recovery information edit disabled by the administrator.
- Eg: @google.com
-</p></div>
-
-
- </div>
-</div>
-
-
-
-<A NAME="recoveryIntent"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- PendingIntent
- </span>
- recoveryIntent
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>A PendingIntent to an activity that gathers recovery information for the given account.
- This intent will be null iff isRecoveryInterstitialAllowed is <code>false</code>.
-</p></div>
-
-
- </div>
-</div>
-
-
-
-<A NAME="recoveryIntentWithoutIntro"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- PendingIntent
- </span>
- recoveryIntentWithoutIntro
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>A PendingIntent to an activity that gathers recovery information for the given account.
- This intent will be null iff isRecoveryInterstitialAllowed is <code>false</code>.
- This intent directly skips to the input activity without showing the intro message.
-</p></div>
-
-
- </div>
-</div>
-
-
-
-<A NAME="showRecoveryInterstitial"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
- boolean
- </span>
- showRecoveryInterstitial
- </h4>
- <div class="api-level">
-
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p>Represents the decision and should be obeyed by the client. The remaining
- two flags are provided as additional information for one off decisions. This value
- is <code>true</code> iff isRecoveryInfoNeeded is <code>true</code>, isRecoveryInterstitialAllowed is
- <code>true</code> and a specified period (controlled by server, default 2 months) has passed
- since the user was shown a prompt for recovery information on any google property
- (Android, Web, etc.)
-</p></div>
-
-
</div>
</div>
@@ -1516,30 +1339,44 @@
-<A NAME="RecoveryDecision()"></A>
+<A NAME="CountrySpecification(java.lang.String)"></A>
-<div class="jd-details api apilevel-">
+<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
- public
-
-
-
-
-
+ public
+
+
+
+
+
</span>
- <span class="sympad">RecoveryDecision</span>
- <span class="normal">()</span>
+ <span class="sympad">CountrySpecification</span>
+ <span class="normal">(String countryCode)</span>
</h4>
<div class="api-level">
<div></div>
-
-
+
+
</div>
<div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+ <div class="jd-tagdata jd-tagdescr"><p>Constructs a country specification based on a country code.
+
+ Country code should follow the ISO 3166-2 format (ex: "US", "CA", "JP"). Providing a
+ country code that is not supported or malformed will return
+ <code><a href="/reference/com/google/android/gms/wallet/WalletConstants.html#ERROR_CODE_INVALID_PARAMETERS">ERROR_CODE_INVALID_PARAMETERS</a></code>.</p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Parameters</h5>
+ <table class="jd-tagtable">
+ <tr>
+ <th>countryCode</td>
+ <td>an ISO 3166-2 formatted country code
+</td>
+ </tr>
+ </table>
+ </div>
</div>
</div>
@@ -1562,14 +1399,14 @@
<A NAME="describeContents()"></A>
-<div class="jd-details api apilevel-">
+<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
- public
-
-
-
-
+ public
+
+
+
+
int
</span>
<span class="sympad">describeContents</span>
@@ -1577,28 +1414,62 @@
</h4>
<div class="api-level">
<div></div>
-
-
+
+
</div>
<div class="jd-details-descr">
-
+
<div class="jd-tagdata jd-tagdescr"><p></p></div>
</div>
</div>
+<A NAME="getCountryCode()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ String
+ </span>
+ <span class="sympad">getCountryCode</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p></p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>the country code for this specification.
+</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
<A NAME="getVersionCode()"></A>
-<div class="jd-details api apilevel-">
+<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
- public
-
-
-
-
+ public
+
+
+
+
int
</span>
<span class="sympad">getVersionCode</span>
@@ -1606,12 +1477,12 @@
</h4>
<div class="api-level">
<div></div>
-
-
+
+
</div>
<div class="jd-details-descr">
-
+
<div class="jd-tagdata jd-tagdescr"><p></p></div>
</div>
@@ -1620,27 +1491,27 @@
<A NAME="writeToParcel(android.os.Parcel, int)"></A>
-<div class="jd-details api apilevel-">
+<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
- public
-
-
-
-
+ public
+
+
+
+
void
</span>
<span class="sympad">writeToParcel</span>
- <span class="normal">(Parcel out, int flags)</span>
+ <span class="normal">(Parcel dest, int flags)</span>
</h4>
<div class="api-level">
<div></div>
-
-
+
+
</div>
<div class="jd-details-descr">
-
+
<div class="jd-tagdata jd-tagdescr"><p></p></div>
</div>
@@ -1658,17 +1529,17 @@
<A NAME="navbar_top"></A>
<div id="footer" class="wrap" >
-
+
<div id="copyright">
-
+
Except as noted, this content is licensed under <a
- href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.
+ href="http://www.apache.org/licenses/LICENSE-2.0">Apache 2.0</a>.
For details and restrictions, see the <a href="/license.html">
Content License</a>.
</div>
<div id="build_info">
-
+
<script src="/timestamp.js" type="text/javascript"></script>
<script>document.write(BUILD_TIMESTAMP)</script>
@@ -1676,7 +1547,7 @@
<div id="footerlinks">
-
+
<p>
<a href="/about/index.html">About Android</a> |
<a href="/legal.html">Legal</a> |
@@ -1689,7 +1560,7 @@
</div><!-- end doc-content -->
-</div> <!-- end body-content -->
+</div> <!-- end body-content -->
diff --git a/docs/html/reference/com/google/android/gms/wallet/EnableWalletOptimizationReceiver.html b/docs/html/reference/com/google/android/gms/wallet/EnableWalletOptimizationReceiver.html
index 1e2422c..7a61f3e 100644
--- a/docs/html/reference/com/google/android/gms/wallet/EnableWalletOptimizationReceiver.html
+++ b/docs/html/reference/com/google/android/gms/wallet/EnableWalletOptimizationReceiver.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/wallet/FullWallet.html b/docs/html/reference/com/google/android/gms/wallet/FullWallet.html
index 60a5b92..3018343 100644
--- a/docs/html/reference/com/google/android/gms/wallet/FullWallet.html
+++ b/docs/html/reference/com/google/android/gms/wallet/FullWallet.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
@@ -678,9 +691,6 @@
- | <a href="#pubctors">Ctors</a>
-
-
| <a href="#pubmethods">Methods</a>
@@ -883,31 +893,6 @@
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
-
-
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
-
-
-
-
-
- </nobr>
- </td>
- <td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/wallet/FullWallet.html#FullWallet()">FullWallet</a></span>()</nobr>
-
- </td></tr>
-
-
-
-</table>
-
-
@@ -1415,42 +1400,6 @@
<!-- Public ctors -->
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<h2>Public Constructors</h2>
-
-
-
-<A NAME="FullWallet()"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
-
-
-
- </span>
- <span class="sympad">FullWallet</span>
- <span class="normal">()</span>
- </h4>
- <div class="api-level">
- <div></div>
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
- </div>
-</div>
-
-
-
-
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<!-- Protected ctors -->
diff --git a/docs/html/reference/com/google/android/gms/wallet/FullWalletRequest.Builder.html b/docs/html/reference/com/google/android/gms/wallet/FullWalletRequest.Builder.html
index 9124a15..9ced2e1 100644
--- a/docs/html/reference/com/google/android/gms/wallet/FullWalletRequest.Builder.html
+++ b/docs/html/reference/com/google/android/gms/wallet/FullWalletRequest.Builder.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/wallet/FullWalletRequest.html b/docs/html/reference/com/google/android/gms/wallet/FullWalletRequest.html
index 816067f..503b6f7 100644
--- a/docs/html/reference/com/google/android/gms/wallet/FullWalletRequest.html
+++ b/docs/html/reference/com/google/android/gms/wallet/FullWalletRequest.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
@@ -681,9 +694,6 @@
- | <a href="#pubctors">Ctors</a>
-
-
| <a href="#pubmethods">Methods</a>
@@ -710,7 +720,7 @@
<div id="jd-header">
public
-
+ final
class
<h1 itemprop="name">FullWalletRequest</h1>
@@ -906,31 +916,6 @@
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
-
-
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
-
-
-
-
-
- </nobr>
- </td>
- <td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/wallet/FullWalletRequest.html#FullWalletRequest()">FullWalletRequest</a></span>()</nobr>
-
- </td></tr>
-
-
-
-</table>
-
-
@@ -1390,42 +1375,6 @@
<!-- Public ctors -->
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<h2>Public Constructors</h2>
-
-
-
-<A NAME="FullWalletRequest()"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
-
-
-
- </span>
- <span class="sympad">FullWalletRequest</span>
- <span class="normal">()</span>
- </h4>
- <div class="api-level">
- <div></div>
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
- </div>
-</div>
-
-
-
-
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<!-- Protected ctors -->
diff --git a/docs/html/reference/com/google/android/gms/wallet/LineItem.Builder.html b/docs/html/reference/com/google/android/gms/wallet/LineItem.Builder.html
index ed4a156..2457fa7 100644
--- a/docs/html/reference/com/google/android/gms/wallet/LineItem.Builder.html
+++ b/docs/html/reference/com/google/android/gms/wallet/LineItem.Builder.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/wallet/LineItem.Role.html b/docs/html/reference/com/google/android/gms/wallet/LineItem.Role.html
index f00653f..ff22b44 100644
--- a/docs/html/reference/com/google/android/gms/wallet/LineItem.Role.html
+++ b/docs/html/reference/com/google/android/gms/wallet/LineItem.Role.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/wallet/LineItem.html b/docs/html/reference/com/google/android/gms/wallet/LineItem.html
index 466e5e5..1565fed 100644
--- a/docs/html/reference/com/google/android/gms/wallet/LineItem.html
+++ b/docs/html/reference/com/google/android/gms/wallet/LineItem.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
@@ -681,9 +694,6 @@
- | <a href="#pubctors">Ctors</a>
-
-
| <a href="#pubmethods">Methods</a>
@@ -710,7 +720,7 @@
<div id="jd-header">
public
-
+ final
class
<h1 itemprop="name">LineItem</h1>
@@ -918,31 +928,6 @@
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
-
-
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
-
-
-
-
-
- </nobr>
- </td>
- <td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/wallet/LineItem.html#LineItem()">LineItem</a></span>()</nobr>
-
- </td></tr>
-
-
-
-</table>
-
-
@@ -1450,42 +1435,6 @@
<!-- Public ctors -->
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<h2>Public Constructors</h2>
-
-
-
-<A NAME="LineItem()"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
-
-
-
- </span>
- <span class="sympad">LineItem</span>
- <span class="normal">()</span>
- </h4>
- <div class="api-level">
- <div></div>
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
- </div>
-</div>
-
-
-
-
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<!-- Protected ctors -->
diff --git a/docs/html/reference/com/google/android/gms/wallet/LoyaltyWalletObject.html b/docs/html/reference/com/google/android/gms/wallet/LoyaltyWalletObject.html
index 5e73d64..9653dbd 100644
--- a/docs/html/reference/com/google/android/gms/wallet/LoyaltyWalletObject.html
+++ b/docs/html/reference/com/google/android/gms/wallet/LoyaltyWalletObject.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
@@ -678,9 +691,6 @@
- | <a href="#pubctors">Ctors</a>
-
-
| <a href="#pubmethods">Methods</a>
@@ -707,7 +717,7 @@
<div id="jd-header">
public
-
+ final
class
<h1 itemprop="name">LoyaltyWalletObject</h1>
@@ -764,9 +774,8 @@
<h2>Class Overview</h2>
-<p itemprop="articleBody">Parcelable representing a loyalty wallet object. A LoyaltyWalletObject has a buyerId used to
- identify the user. An example of this could be a rewards program with a membership number that
- would map to the buyerId.
+<p itemprop="articleBody">Parcelable representing a loyalty wallet object. An example loyalty wallet object could be a
+ rewards membership where the membership id is placed in the accountId.
</p>
@@ -885,31 +894,6 @@
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
-
-
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
-
-
-
-
-
- </nobr>
- </td>
- <td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/wallet/LoyaltyWalletObject.html#LoyaltyWalletObject()">LoyaltyWalletObject</a></span>()</nobr>
-
- </td></tr>
-
-
-
-</table>
-
-
@@ -935,19 +919,19 @@
</td></tr>
-
+
<tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
String</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad"><a href="/reference/com/google/android/gms/wallet/LoyaltyWalletObject.html#getAccountId()">getAccountId</a></span>()</nobr>
-
+
</td></tr>
@@ -978,7 +962,7 @@
String</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/wallet/LoyaltyWalletObject.html#getId()">getId</a></span>()</nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/wallet/LoyaltyWalletObject.html#getBarcodeAlternateText()">getBarcodeAlternateText</a></span>()</nobr>
</td></tr>
@@ -994,13 +978,61 @@
String</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/wallet/LoyaltyWalletObject.html#getBarcodeType()">getBarcodeType</a></span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ String</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/wallet/LoyaltyWalletObject.html#getBarcodeValue()">getBarcodeValue</a></span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ String</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/wallet/LoyaltyWalletObject.html#getId()">getId</a></span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ String</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
<span class="sympad"><a href="/reference/com/google/android/gms/wallet/LoyaltyWalletObject.html#getIssuerName()">getIssuerName</a></span>()</nobr>
</td></tr>
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
@@ -1011,18 +1043,18 @@
</td>
<td class="jd-linkcol" width="100%"><nobr>
<span class="sympad"><a href="/reference/com/google/android/gms/wallet/LoyaltyWalletObject.html#getProgramName()">getProgramName</a></span>()</nobr>
-
+
</td></tr>
-
- <tr class="alt-color api apilevel-" >
+
+ <tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
-
-
-
-
-
+
+
+
+
+
int</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
@@ -1032,7 +1064,7 @@
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
@@ -1385,42 +1417,6 @@
<!-- Public ctors -->
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<h2>Public Constructors</h2>
-
-
-
-<A NAME="LoyaltyWalletObject()"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
-
-
-
- </span>
- <span class="sympad">LoyaltyWalletObject</span>
- <span class="normal">()</span>
- </h4>
- <div class="api-level">
- <div></div>
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
- </div>
-</div>
-
-
-
-
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<!-- Protected ctors -->
@@ -1465,14 +1461,14 @@
<A NAME="getAccountId()"></A>
-<div class="jd-details api apilevel-">
+<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
- public
-
-
-
-
+ public
+
+
+
+
String
</span>
<span class="sympad">getAccountId</span>
@@ -1480,17 +1476,16 @@
</h4>
<div class="api-level">
<div></div>
-
-
+
+
</div>
<div class="jd-details-descr">
-
+
<div class="jd-tagdata jd-tagdescr"><p></p></div>
<div class="jd-tagdata">
<h5 class="jd-tagtitle">Returns</h5>
- <ul class="nolist"><li>The buyer's id, as defined by the merchant. This identifies the user in the
- merchant's loyalty program.
+ <ul class="nolist"><li>Loyalty account identifier to be displayed to the user (ex: "12345678").
</li></ul>
</div>
@@ -1500,6 +1495,40 @@
<A NAME="getAccountName()"></A>
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ String
+ </span>
+ <span class="sympad">getAccountName</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p></p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>Loyalty account holder name (ex: "John Smith").
+</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="getBarcodeAlternateText()"></A>
+
<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
<span class="normal">
@@ -1510,7 +1539,7 @@
String
</span>
- <span class="sympad">getAccountName</span>
+ <span class="sympad">getBarcodeAlternateText</span>
<span class="normal">()</span>
</h4>
<div class="api-level">
@@ -1524,7 +1553,76 @@
<div class="jd-tagdata jd-tagdescr"><p></p></div>
<div class="jd-tagdata">
<h5 class="jd-tagtitle">Returns</h5>
- <ul class="nolist"><li>The buyer's name in the loyalty program
+ <ul class="nolist"><li>Human-readable text to display to the user in addition to the encoded barcode value
+ (ex: "3492013").
+</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="getBarcodeType()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ String
+ </span>
+ <span class="sympad">getBarcodeType</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p></p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>Barcode type. Possible values include "codabar", "qrCode", "textOnly", etc...
+</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="getBarcodeValue()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ String
+ </span>
+ <span class="sympad">getBarcodeValue</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p></p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>Encoded barcode value.
</li></ul>
</div>
@@ -1592,7 +1690,7 @@
<div class="jd-tagdata jd-tagdescr"><p></p></div>
<div class="jd-tagdata">
<h5 class="jd-tagtitle">Returns</h5>
- <ul class="nolist"><li>The name of who issued this loyalty object
+ <ul class="nolist"><li>The name of who issued this loyalty object.
</li></ul>
</div>
@@ -1626,7 +1724,7 @@
<div class="jd-tagdata jd-tagdescr"><p></p></div>
<div class="jd-tagdata">
<h5 class="jd-tagtitle">Returns</h5>
- <ul class="nolist"><li>The name of the loyalty program associated to this object
+ <ul class="nolist"><li>The name of the loyalty program associated to this object.
</li></ul>
</div>
diff --git a/docs/html/reference/com/google/android/gms/wallet/MaskedWallet.html b/docs/html/reference/com/google/android/gms/wallet/MaskedWallet.html
index 40047b8..0f31748 100644
--- a/docs/html/reference/com/google/android/gms/wallet/MaskedWallet.html
+++ b/docs/html/reference/com/google/android/gms/wallet/MaskedWallet.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
@@ -678,9 +691,6 @@
- | <a href="#pubctors">Ctors</a>
-
-
| <a href="#pubmethods">Methods</a>
@@ -883,31 +893,6 @@
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
-
-
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
-
-
-
-
-
- </nobr>
- </td>
- <td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/wallet/MaskedWallet.html#MaskedWallet()">MaskedWallet</a></span>()</nobr>
-
- </td></tr>
-
-
-
-</table>
-
-
@@ -1431,42 +1416,6 @@
<!-- Public ctors -->
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<h2>Public Constructors</h2>
-
-
-
-<A NAME="MaskedWallet()"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
-
-
-
- </span>
- <span class="sympad">MaskedWallet</span>
- <span class="normal">()</span>
- </h4>
- <div class="api-level">
- <div></div>
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
- </div>
-</div>
-
-
-
-
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<!-- Protected ctors -->
diff --git a/docs/html/reference/com/google/android/gms/wallet/MaskedWalletRequest.Builder.html b/docs/html/reference/com/google/android/gms/wallet/MaskedWalletRequest.Builder.html
index 4e2d6b64..11c875f 100644
--- a/docs/html/reference/com/google/android/gms/wallet/MaskedWalletRequest.Builder.html
+++ b/docs/html/reference/com/google/android/gms/wallet/MaskedWalletRequest.Builder.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
@@ -828,6 +841,60 @@
<a href="/reference/com/google/android/gms/wallet/MaskedWalletRequest.Builder.html">MaskedWalletRequest.Builder</a></nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/wallet/MaskedWalletRequest.Builder.html#setAllowDebitCard(boolean)">setAllowDebitCard</a></span>(boolean allowDebitCard)</nobr>
+
+ <div class="jd-descrdiv">Indicates whether a debit card may be used for this transaction.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ <a href="/reference/com/google/android/gms/wallet/MaskedWalletRequest.Builder.html">MaskedWalletRequest.Builder</a></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/wallet/MaskedWalletRequest.Builder.html#setAllowPrepaidCard(boolean)">setAllowPrepaidCard</a></span>(boolean allowPrepaidCard)</nobr>
+
+ <div class="jd-descrdiv">Indicates whether a prepaid card may be used for this transaction.</div>
+
+ </td></tr>
+
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ <a href="/reference/com/google/android/gms/wallet/MaskedWalletRequest.Builder.html">MaskedWalletRequest.Builder</a></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/wallet/MaskedWalletRequest.Builder.html#setAllowedShippingCountrySpecifications(com.google.android.gms.wallet.CountrySpecification[])">setAllowedShippingCountrySpecifications</a></span>(<a href="/reference/com/google/android/gms/wallet/CountrySpecification.html">CountrySpecification[]</a> allowedShippingCountrySpecifications)</nobr>
+
+ <div class="jd-descrdiv">Sets an optional set of country specifications that should be allowed for shipping.</div>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
+ <a href="/reference/com/google/android/gms/wallet/MaskedWalletRequest.Builder.html">MaskedWalletRequest.Builder</a></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
<span class="sympad"><a href="/reference/com/google/android/gms/wallet/MaskedWalletRequest.Builder.html#setCart(com.google.android.gms.wallet.Cart)">setCart</a></span>(<a href="/reference/com/google/android/gms/wallet/Cart.html">Cart</a> cart)</nobr>
<div class="jd-descrdiv">Sets an optional shopping cart to use for this purchase.</div>
@@ -836,7 +903,7 @@
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
@@ -854,7 +921,7 @@
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
@@ -872,7 +939,7 @@
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
@@ -891,7 +958,7 @@
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
@@ -909,7 +976,7 @@
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
@@ -927,7 +994,7 @@
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
@@ -945,7 +1012,7 @@
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
@@ -963,7 +1030,7 @@
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
@@ -982,7 +1049,7 @@
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
@@ -1286,6 +1353,100 @@
</div>
+<A NAME="setAllowDebitCard(boolean)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ <a href="/reference/com/google/android/gms/wallet/MaskedWalletRequest.Builder.html">MaskedWalletRequest.Builder</a>
+ </span>
+ <span class="sympad">setAllowDebitCard</span>
+ <span class="normal">(boolean allowDebitCard)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Indicates whether a debit card may be used for this transaction.
+ If omitted, defaults to <code>true</code>.
+</p></div>
+
+ </div>
+</div>
+
+
+<A NAME="setAllowPrepaidCard(boolean)"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ <a href="/reference/com/google/android/gms/wallet/MaskedWalletRequest.Builder.html">MaskedWalletRequest.Builder</a>
+ </span>
+ <span class="sympad">setAllowPrepaidCard</span>
+ <span class="normal">(boolean allowPrepaidCard)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Indicates whether a prepaid card may be used for this transaction.
+ If omitted, defaults to <code>true</code>.
+</p></div>
+
+ </div>
+</div>
+
+
+<A NAME="setAllowedShippingCountrySpecifications(com.google.android.gms.wallet.CountrySpecification[])"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ <a href="/reference/com/google/android/gms/wallet/MaskedWalletRequest.Builder.html">MaskedWalletRequest.Builder</a>
+ </span>
+ <span class="sympad">setAllowedShippingCountrySpecifications</span>
+ <span class="normal">(<a href="/reference/com/google/android/gms/wallet/CountrySpecification.html">CountrySpecification[]</a> allowedShippingCountrySpecifications)</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p>Sets an optional set of country specifications that should be allowed for shipping.
+ If omitted or a null / empty array is provided the API will default to using a country
+ specification that only allows shipping in the US.
+</p></div>
+
+ </div>
+</div>
+
+
<A NAME="setCart(com.google.android.gms.wallet.Cart)"></A>
<div class="jd-details api apilevel-">
diff --git a/docs/html/reference/com/google/android/gms/wallet/MaskedWalletRequest.html b/docs/html/reference/com/google/android/gms/wallet/MaskedWalletRequest.html
index 10844b9..fca6306 100644
--- a/docs/html/reference/com/google/android/gms/wallet/MaskedWalletRequest.html
+++ b/docs/html/reference/com/google/android/gms/wallet/MaskedWalletRequest.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
@@ -681,9 +694,6 @@
- | <a href="#pubctors">Ctors</a>
-
-
| <a href="#pubmethods">Methods</a>
@@ -710,7 +720,7 @@
<div id="jd-header">
public
-
+ final
class
<h1 itemprop="name">MaskedWalletRequest</h1>
@@ -906,8 +916,12 @@
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
+
+
+
+
+<!-- ========== METHOD SUMMARY =========== -->
+<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
@@ -919,25 +933,28 @@
- </nobr>
+ boolean</nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/wallet/MaskedWalletRequest.html#MaskedWalletRequest()">MaskedWalletRequest</a></span>()</nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/wallet/MaskedWalletRequest.html#allowDebitCard()">allowDebitCard</a></span>()</nobr>
</td></tr>
-</table>
+ <tr class=" api apilevel-" >
+ <td class="jd-typecol"><nobr>
+ boolean</nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/wallet/MaskedWalletRequest.html#allowPrepaidCard()">allowPrepaidCard</a></span>()</nobr>
-<!-- ========== METHOD SUMMARY =========== -->
-<table id="pubmethods" class="jd-sumtable"><tr><th colspan="12">Public Methods</th></tr>
-
+ </td></tr>
@@ -964,6 +981,22 @@
+ <a href="/reference/com/google/android/gms/wallet/CountrySpecification.html">CountrySpecification[]</a></nobr>
+ </td>
+ <td class="jd-linkcol" width="100%"><nobr>
+ <span class="sympad"><a href="/reference/com/google/android/gms/wallet/MaskedWalletRequest.html#getAllowedShippingCountrySpecifications()">getAllowedShippingCountrySpecifications</a></span>()</nobr>
+
+ </td></tr>
+
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-typecol"><nobr>
+
+
+
+
+
<a href="/reference/com/google/android/gms/wallet/Cart.html">Cart</a></nobr>
</td>
<td class="jd-linkcol" width="100%"><nobr>
@@ -973,7 +1006,7 @@
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
@@ -989,7 +1022,7 @@
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
@@ -1005,7 +1038,7 @@
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
@@ -1021,7 +1054,7 @@
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
@@ -1037,7 +1070,7 @@
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
@@ -1053,7 +1086,7 @@
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
@@ -1069,7 +1102,7 @@
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
@@ -1085,7 +1118,7 @@
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
@@ -1101,7 +1134,7 @@
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
@@ -1117,7 +1150,7 @@
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
@@ -1133,7 +1166,7 @@
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-typecol"><nobr>
@@ -1149,7 +1182,7 @@
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-typecol"><nobr>
@@ -1502,42 +1535,6 @@
<!-- Public ctors -->
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<h2>Public Constructors</h2>
-
-
-
-<A NAME="MaskedWalletRequest()"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
-
-
-
- </span>
- <span class="sympad">MaskedWalletRequest</span>
- <span class="normal">()</span>
- </h4>
- <div class="api-level">
- <div></div>
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
- </div>
-</div>
-
-
-
-
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<!-- Protected ctors -->
@@ -1551,7 +1548,7 @@
-<A NAME="describeContents()"></A>
+<A NAME="allowDebitCard()"></A>
<div class="jd-details api apilevel-">
<h4 class="jd-details-title">
@@ -1561,9 +1558,9 @@
- int
+ boolean
</span>
- <span class="sympad">describeContents</span>
+ <span class="sympad">allowDebitCard</span>
<span class="normal">()</span>
</h4>
<div class="api-level">
@@ -1575,6 +1572,108 @@
<div class="jd-details-descr">
<div class="jd-tagdata jd-tagdescr"><p></p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>whether a debit card may be used as the backing card for this transaction
+</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="allowPrepaidCard()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ boolean
+ </span>
+ <span class="sympad">allowPrepaidCard</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p></p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>whether a prepaid card may be used as the backing card for this transaction
+</li></ul>
+ </div>
+
+ </div>
+</div>
+
+
+<A NAME="describeContents()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ int
+ </span>
+ <span class="sympad">describeContents</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p></p></div>
+
+ </div>
+</div>
+
+
+<A NAME="getAllowedShippingCountrySpecifications()"></A>
+
+<div class="jd-details api apilevel-">
+ <h4 class="jd-details-title">
+ <span class="normal">
+ public
+
+
+
+
+ <a href="/reference/com/google/android/gms/wallet/CountrySpecification.html">CountrySpecification[]</a>
+ </span>
+ <span class="sympad">getAllowedShippingCountrySpecifications</span>
+ <span class="normal">()</span>
+ </h4>
+ <div class="api-level">
+ <div></div>
+
+
+
+ </div>
+ <div class="jd-details-descr">
+
+ <div class="jd-tagdata jd-tagdescr"><p></p></div>
+ <div class="jd-tagdata">
+ <h5 class="jd-tagtitle">Returns</h5>
+ <ul class="nolist"><li>the allowed set of shipping country specifications
+</li></ul>
+ </div>
</div>
</div>
diff --git a/docs/html/reference/com/google/android/gms/wallet/NotifyTransactionStatusRequest.Builder.html b/docs/html/reference/com/google/android/gms/wallet/NotifyTransactionStatusRequest.Builder.html
index 6e62892..038da1f 100644
--- a/docs/html/reference/com/google/android/gms/wallet/NotifyTransactionStatusRequest.Builder.html
+++ b/docs/html/reference/com/google/android/gms/wallet/NotifyTransactionStatusRequest.Builder.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/wallet/NotifyTransactionStatusRequest.Status.Error.html b/docs/html/reference/com/google/android/gms/wallet/NotifyTransactionStatusRequest.Status.Error.html
index 8cab605..f19f6a4 100644
--- a/docs/html/reference/com/google/android/gms/wallet/NotifyTransactionStatusRequest.Status.Error.html
+++ b/docs/html/reference/com/google/android/gms/wallet/NotifyTransactionStatusRequest.Status.Error.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/wallet/NotifyTransactionStatusRequest.Status.html b/docs/html/reference/com/google/android/gms/wallet/NotifyTransactionStatusRequest.Status.html
index 5282ce5..d833232 100644
--- a/docs/html/reference/com/google/android/gms/wallet/NotifyTransactionStatusRequest.Status.html
+++ b/docs/html/reference/com/google/android/gms/wallet/NotifyTransactionStatusRequest.Status.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
diff --git a/docs/html/reference/com/google/android/gms/wallet/NotifyTransactionStatusRequest.html b/docs/html/reference/com/google/android/gms/wallet/NotifyTransactionStatusRequest.html
index d2a357f..cdc067f 100644
--- a/docs/html/reference/com/google/android/gms/wallet/NotifyTransactionStatusRequest.html
+++ b/docs/html/reference/com/google/android/gms/wallet/NotifyTransactionStatusRequest.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
@@ -681,9 +694,6 @@
- | <a href="#pubctors">Ctors</a>
-
-
| <a href="#pubmethods">Methods</a>
@@ -710,7 +720,7 @@
<div id="jd-header">
public
-
+ final
class
<h1 itemprop="name">NotifyTransactionStatusRequest</h1>
@@ -925,31 +935,6 @@
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
-
-
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
-
-
-
-
-
- </nobr>
- </td>
- <td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/wallet/NotifyTransactionStatusRequest.html#NotifyTransactionStatusRequest()">NotifyTransactionStatusRequest</a></span>()</nobr>
-
- </td></tr>
-
-
-
-</table>
-
-
@@ -1409,42 +1394,6 @@
<!-- Public ctors -->
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<h2>Public Constructors</h2>
-
-
-
-<A NAME="NotifyTransactionStatusRequest()"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
-
-
-
- </span>
- <span class="sympad">NotifyTransactionStatusRequest</span>
- <span class="normal">()</span>
- </h4>
- <div class="api-level">
- <div></div>
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
- </div>
-</div>
-
-
-
-
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<!-- Protected ctors -->
diff --git a/docs/html/reference/com/google/android/gms/wallet/OfferWalletObject.html b/docs/html/reference/com/google/android/gms/wallet/OfferWalletObject.html
index 558bbb6..59fc4be 100644
--- a/docs/html/reference/com/google/android/gms/wallet/OfferWalletObject.html
+++ b/docs/html/reference/com/google/android/gms/wallet/OfferWalletObject.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
@@ -678,9 +691,6 @@
- | <a href="#pubctors">Ctors</a>
-
-
| <a href="#pubmethods">Methods</a>
@@ -707,7 +717,7 @@
<div id="jd-header">
public
-
+ final
class
<h1 itemprop="name">OfferWalletObject</h1>
@@ -887,31 +897,6 @@
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
-
-
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
-
-
-
-
-
- </nobr>
- </td>
- <td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/wallet/OfferWalletObject.html#OfferWalletObject()">OfferWalletObject</a></span>()</nobr>
-
- </td></tr>
-
-
-
-</table>
-
-
@@ -1339,42 +1324,6 @@
<!-- Public ctors -->
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<h2>Public Constructors</h2>
-
-
-
-<A NAME="OfferWalletObject()"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
-
-
-
- </span>
- <span class="sympad">OfferWalletObject</span>
- <span class="normal">()</span>
- </h4>
- <div class="api-level">
- <div></div>
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
- </div>
-</div>
-
-
-
-
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<!-- Protected ctors -->
diff --git a/docs/html/reference/com/google/android/gms/wallet/ProxyCard.html b/docs/html/reference/com/google/android/gms/wallet/ProxyCard.html
index 9cc1c28..0ea7cb1 100644
--- a/docs/html/reference/com/google/android/gms/wallet/ProxyCard.html
+++ b/docs/html/reference/com/google/android/gms/wallet/ProxyCard.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
@@ -678,9 +691,6 @@
- | <a href="#pubctors">Ctors</a>
-
-
| <a href="#pubmethods">Methods</a>
@@ -883,31 +893,6 @@
-<!-- ======== CONSTRUCTOR SUMMARY ======== -->
-<table id="pubctors" class="jd-sumtable"><tr><th colspan="12">Public Constructors</th></tr>
-
-
-
-
- <tr class="alt-color api apilevel-" >
- <td class="jd-typecol"><nobr>
-
-
-
-
-
- </nobr>
- </td>
- <td class="jd-linkcol" width="100%"><nobr>
- <span class="sympad"><a href="/reference/com/google/android/gms/wallet/ProxyCard.html#ProxyCard(java.lang.String, java.lang.String, int, int)">ProxyCard</a></span>(String pan, String cvn, int expirationMonth, int expirationYear)</nobr>
-
- </td></tr>
-
-
-
-</table>
-
-
@@ -1367,42 +1352,6 @@
<!-- Public ctors -->
-<!-- ========= CONSTRUCTOR DETAIL ======== -->
-<h2>Public Constructors</h2>
-
-
-
-<A NAME="ProxyCard(java.lang.String, java.lang.String, int, int)"></A>
-
-<div class="jd-details api apilevel-">
- <h4 class="jd-details-title">
- <span class="normal">
- public
-
-
-
-
-
- </span>
- <span class="sympad">ProxyCard</span>
- <span class="normal">(String pan, String cvn, int expirationMonth, int expirationYear)</span>
- </h4>
- <div class="api-level">
- <div></div>
-
-
-
- </div>
- <div class="jd-details-descr">
-
- <div class="jd-tagdata jd-tagdescr"><p></p></div>
-
- </div>
-</div>
-
-
-
-
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<!-- Protected ctors -->
diff --git a/docs/html/reference/com/google/android/gms/wallet/WalletClient.html b/docs/html/reference/com/google/android/gms/wallet/WalletClient.html
index 654013c..5a884c1 100644
--- a/docs/html/reference/com/google/android/gms/wallet/WalletClient.html
+++ b/docs/html/reference/com/google/android/gms/wallet/WalletClient.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
@@ -782,7 +795,8 @@
new account and do not reuse the Google transaction ID associated with the old account - this is
a new transaction.
<p>
- We recommend that you <a href="http://getinstantbuy.withgoogle.com/">apply for API access</a>
+ We recommend that you apply for API access at
+ <a href="http://getinstantbuy.withgoogle.com/">http://getinstantbuy.withgoogle.com/</a>
before starting development. During development, use the sandbox environment by specifying
<code><a href="/reference/com/google/android/gms/wallet/WalletConstants.html#ENVIRONMENT_SANDBOX">ENVIRONMENT_SANDBOX</a></code> in the constructor.
</p>
@@ -1800,6 +1814,17 @@
<h5 class="jd-tagtitle">Parameters</h5>
<table class="jd-tagtable">
<tr>
+ <th>googleTransactionId</td>
+ <td>Required field. Must be identical to the value returned in an
+ earlier <code><a href="/reference/com/google/android/gms/wallet/MaskedWallet.html">MaskedWallet</a></code> in the same transaction.</td>
+ </tr>
+ <tr>
+ <th>merchantTransactionId</td>
+ <td>Optional merchant identifier for the transaction. The value
+ will be echoed back in <code><a href="/reference/com/google/android/gms/wallet/MaskedWallet.html">MaskedWallet</a></code>, but is not
+ otherwise used by the Wallet API. To omit, pass <code>null</code></td>
+ </tr>
+ <tr>
<th>requestCode</td>
<td>will be passed back in onActivityResult where you can retrieve the result
via <code><a href="/reference/com/google/android/gms/wallet/WalletConstants.html#EXTRA_MASKED_WALLET">EXTRA_MASKED_WALLET</a></code>.
diff --git a/docs/html/reference/com/google/android/gms/wallet/WalletConstants.html b/docs/html/reference/com/google/android/gms/wallet/WalletConstants.html
index 3d61c1c..46541c7 100644
--- a/docs/html/reference/com/google/android/gms/wallet/WalletConstants.html
+++ b/docs/html/reference/com/google/android/gms/wallet/WalletConstants.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -241,6 +242,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -279,7 +282,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -308,6 +311,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -347,7 +353,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -375,6 +381,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -517,29 +527,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
@@ -1411,7 +1424,7 @@
operation.</p></div>
<div class="jd-tagdata">
<h5 class="jd-tagtitle">See Also</h5>
- <ul class="nolist"><li><code><a href="/reference/com/google/android/gms/common/ConnectionResult.html#NETWORK_ERROR">NETWORK_ERROR</a></code></li><li><code><a href="/">ERROR(/#ERROR_CODE_BUYER_CANCELLED)</a></code></li>
+ <ul class="nolist"><li><code><a href="/reference/com/google/android/gms/common/ConnectionResult.html#NETWORK_ERROR">NETWORK_ERROR</a></code></li><li><code><a href="/">ERROR(/Activity.RESULT_CANCELED)</a></code></li>
</ul>
</div>
diff --git a/docs/html/reference/com/google/android/gms/wallet/package-summary.html b/docs/html/reference/com/google/android/gms/wallet/package-summary.html
index 88436d1..3f73b8c 100644
--- a/docs/html/reference/com/google/android/gms/wallet/package-summary.html
+++ b/docs/html/reference/com/google/android/gms/wallet/package-summary.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -242,6 +243,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -280,7 +283,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -309,6 +312,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -348,7 +354,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -376,6 +382,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -518,29 +528,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
@@ -701,75 +714,79 @@
</tr>
<tr class=" api apilevel-" >
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/wallet/Cart.html">Cart</a></td>
- <td class="jd-descrcol" width="100%">Parcelable representing a shopping cart in <code><a href="/reference/com/google/android/gms/wallet/FullWalletRequest.html">FullWalletRequest</a></code>. </td>
+ <td class="jd-descrcol" width="100%">Parcelable representing a shopping cart. </td>
</tr>
<tr class="alt-color api apilevel-" >
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/wallet/Cart.Builder.html">Cart.Builder</a></td>
<td class="jd-descrcol" width="100%">Builder to create a <code><a href="/reference/com/google/android/gms/wallet/Cart.html">Cart</a></code>. </td>
</tr>
<tr class=" api apilevel-" >
+ <td class="jd-linkcol"><a href="/reference/com/google/android/gms/wallet/CountrySpecification.html">CountrySpecification</a></td>
+ <td class="jd-descrcol" width="100%">Parcelable representing a country. </td>
+ </tr>
+ <tr class="alt-color api apilevel-" >
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/wallet/EnableWalletOptimizationReceiver.html">EnableWalletOptimizationReceiver</a></td>
<td class="jd-descrcol" width="100%">A dummy BroadcastReceiver used with an IntentFilter specifying action
<code><a href="/reference/com/google/android/gms/wallet/WalletConstants.html#ACTION_ENABLE_WALLET_OPTIMIZATION">ACTION_ENABLE_WALLET_OPTIMIZATION</a></code> to signal that your application uses
Wallet. </td>
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/wallet/FullWallet.html">FullWallet</a></td>
<td class="jd-descrcol" width="100%">Parcelable representing a full wallet response. </td>
</tr>
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/wallet/FullWalletRequest.html">FullWalletRequest</a></td>
<td class="jd-descrcol" width="100%">Parcelable representing a full wallet request. </td>
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/wallet/FullWalletRequest.Builder.html">FullWalletRequest.Builder</a></td>
<td class="jd-descrcol" width="100%">Builder to create a <code><a href="/reference/com/google/android/gms/wallet/FullWalletRequest.html">FullWalletRequest</a></code>. </td>
</tr>
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/wallet/LineItem.html">LineItem</a></td>
<td class="jd-descrcol" width="100%">Parcelable representing a line item in a shopping cart. </td>
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/wallet/LineItem.Builder.html">LineItem.Builder</a></td>
<td class="jd-descrcol" width="100%">Builder to create a <code><a href="/reference/com/google/android/gms/wallet/LineItem.html">LineItem</a></code>. </td>
</tr>
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/wallet/LoyaltyWalletObject.html">LoyaltyWalletObject</a></td>
<td class="jd-descrcol" width="100%">Parcelable representing a loyalty wallet object. </td>
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/wallet/MaskedWallet.html">MaskedWallet</a></td>
<td class="jd-descrcol" width="100%">Parcelable representing a masked wallet response. </td>
</tr>
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/wallet/MaskedWalletRequest.html">MaskedWalletRequest</a></td>
<td class="jd-descrcol" width="100%">Parcelable representing a masked wallet request. </td>
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/wallet/MaskedWalletRequest.Builder.html">MaskedWalletRequest.Builder</a></td>
<td class="jd-descrcol" width="100%">Builder to create a <code><a href="/reference/com/google/android/gms/wallet/MaskedWalletRequest.html">MaskedWalletRequest</a></code>. </td>
</tr>
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/wallet/NotifyTransactionStatusRequest.html">NotifyTransactionStatusRequest</a></td>
<td class="jd-descrcol" width="100%">Parcelable representing a notify transaction status request. </td>
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/wallet/NotifyTransactionStatusRequest.Builder.html">NotifyTransactionStatusRequest.Builder</a></td>
<td class="jd-descrcol" width="100%">Builder to create a <code><a href="/reference/com/google/android/gms/wallet/NotifyTransactionStatusRequest.html">NotifyTransactionStatusRequest</a></code>. </td>
</tr>
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/wallet/OfferWalletObject.html">OfferWalletObject</a></td>
<td class="jd-descrcol" width="100%">Parcelable representing an offer wallet object. </td>
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/wallet/ProxyCard.html">ProxyCard</a></td>
<td class="jd-descrcol" width="100%">Parcelable representing a credit card. </td>
</tr>
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/wallet/WalletClient.html">WalletClient</a></td>
<td class="jd-descrcol" width="100%">The main entry point for Google Wallet integration. </td>
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-linkcol"><a href="/reference/com/google/android/gms/wallet/WalletConstants.html">WalletConstants</a></td>
<td class="jd-descrcol" width="100%">Collection of constant values used by the ClientLibrary. </td>
</tr>
diff --git a/docs/html/reference/gms-packages.html b/docs/html/reference/gms-packages.html
index 47ee3bb..7c7dfe7 100644
--- a/docs/html/reference/gms-packages.html
+++ b/docs/html/reference/gms-packages.html
@@ -97,6 +97,7 @@
<script src="/assets/js/android_3p-bundle.js" type="text/javascript"></script>
<script type="text/javascript">
var toRoot = "/";
+ var metaTags = [];
var devsite = false;
</script>
<script src="/assets/js/docs.js" type="text/javascript"></script>
@@ -240,6 +241,8 @@
</div>
<div class="child-card training no-display">
</div>
+ <div class="child-card samples no-display">
+ </div>
</div>
<div class="suggest-card design no-display">
<ul class="search_filtered">
@@ -278,7 +281,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li><a href="/guide/components/index.html"
+ <li><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -307,6 +310,9 @@
<li><a href="/google/index.html">Google Services</a>
</li>
+ <li><a href="/samples/index.html">Samples</a>
+ </li>
+
</ul>
</li>
<li class="distribute last">
@@ -346,7 +352,7 @@
ja-lang="トレーニング"
es-lang="Capacitación"
>Training</a></li>
- <li class="guide"><a href="/guide/components/index.html"
+ <li class="guide"><a href="/guide/index.html"
zh-tw-lang="API 指南"
zh-cn-lang="API 指南"
ru-lang="Руководства по API"
@@ -374,6 +380,10 @@
>Google Services</a>
</li>
+ <li class="samples"><a href="/samples/index.html"
+ >Samples</a>
+ </li>
+
</ul>
</div>
@@ -516,29 +526,32 @@
- <li class="nav-section">
+ <li class="nav-section">
<div class="nav-section-header"><a href="/google/gcm/index.html">
<span class="en">Google Cloud Messaging</span></a>
</div>
<ul>
+ <li><a href="/google/gcm/gcm.html">
+ <span class="en">Overview</span></a>
+ </li>
<li><a href="/google/gcm/gs.html">
<span class="en">Getting Started</span></a>
</li>
- <li><a href="/google/gcm/gcm.html">
- <span class="en">Architectural Overview</span></a>
+ <li><a href="/google/gcm/client.html">
+ <span class="en">Implementing GCM Client</span></a>
</li>
- <li><a href="/google/gcm/ccs.html">
- <span class="en">Cloud Connection Server</span></a>
+ <li class="nav-section"><div class="nav-section-header"><a href="/google/gcm/server.html">
+ <span class="en">Implementing GCM Server</span></a></div>
+ <ul>
+ <li><a href="/google/gcm/ccs.html">
+ <span class="en">CCS (XMPP)</span></a></li>
+ <li><a href="/google/gcm/http.html">
+ <span class="en">HTTP</span></a></li>
+ </ul>
</li>
<li><a href="/google/gcm/notifications.html">
<span class="en">User Notifications</span></a>
</li>
- <li><a href="/google/gcm/client.html">
- <span class="en">GCM Client</span></a>
- </li>
- <li><a href="/google/gcm/server.html">
- <span class="en">GCM Server</span></a>
- </li>
<li><a href="/google/gcm/adv.html">
<span class="en">Advanced Topics</span></a>
</li>
@@ -661,35 +674,49 @@
<tr class=" api apilevel-" >
<td class="jd-linkcol">
<a href="/reference/com/google/android/gms/ads/package-summary.html">com.google.android.gms.ads</a></td>
- <td class="jd-descrcol" width="100%">Contains classes for Google Ads.</td>
+ <td class="jd-descrcol" width="100%">Contains classes for Google Mobile Ads.</td>
</tr>
<tr class="alt-color api apilevel-" >
<td class="jd-linkcol">
+ <a href="/reference/com/google/android/gms/ads/doubleclick/package-summary.html">com.google.android.gms.ads.doubleclick</a></td>
+ <td class="jd-descrcol" width="100%">Contains classes for DoubleClick for Publishers.</td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-linkcol">
<a href="/reference/com/google/android/gms/ads/identifier/package-summary.html">com.google.android.gms.ads.identifier</a></td>
<td class="jd-descrcol" width="100%"></td>
</tr>
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-linkcol">
<a href="/reference/com/google/android/gms/ads/mediation/package-summary.html">com.google.android.gms.ads.mediation</a></td>
- <td class="jd-descrcol" width="100%">Contains classes for Google Ads mediation adapters.</td>
+ <td class="jd-descrcol" width="100%">Contains classes for Google Mobile Ads mediation adapters.</td>
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-linkcol">
<a href="/reference/com/google/android/gms/ads/mediation/admob/package-summary.html">com.google.android.gms.ads.mediation.admob</a></td>
<td class="jd-descrcol" width="100%">Contains classes for the AdMob mediation adapter.</td>
</tr>
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-linkcol">
<a href="/reference/com/google/android/gms/ads/mediation/customevent/package-summary.html">com.google.android.gms.ads.mediation.customevent</a></td>
- <td class="jd-descrcol" width="100%">Contains classes for Google Ads mediation custom events.</td>
+ <td class="jd-descrcol" width="100%">Contains classes for Google Mobile Ads mediation custom events.</td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-linkcol">
+ <a href="/reference/com/google/android/gms/ads/search/package-summary.html">com.google.android.gms.ads.search</a></td>
+ <td class="jd-descrcol" width="100%">Contains classes for Search Ads for Apps.</td>
</tr>
@@ -716,6 +743,20 @@
<tr class=" api apilevel-" >
<td class="jd-linkcol">
+ <a href="/reference/com/google/android/gms/common/annotation/package-summary.html">com.google.android.gms.common.annotation</a></td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-linkcol">
+ <a href="/reference/com/google/android/gms/common/api/package-summary.html">com.google.android.gms.common.api</a></td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-linkcol">
<a href="/reference/com/google/android/gms/common/data/package-summary.html">com.google.android.gms.common.data</a></td>
<td class="jd-descrcol" width="100%">Contains classes for accessing data from Google Play services.</td>
</tr>
@@ -730,6 +771,34 @@
<tr class=" api apilevel-" >
<td class="jd-linkcol">
+ <a href="/reference/com/google/android/gms/drive/package-summary.html">com.google.android.gms.drive</a></td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-linkcol">
+ <a href="/reference/com/google/android/gms/drive/metadata/package-summary.html">com.google.android.gms.drive.metadata</a></td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-linkcol">
+ <a href="/reference/com/google/android/gms/drive/query/package-summary.html">com.google.android.gms.drive.query</a></td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class="alt-color api apilevel-" >
+ <td class="jd-linkcol">
+ <a href="/reference/com/google/android/gms/drive/widget/package-summary.html">com.google.android.gms.drive.widget</a></td>
+ <td class="jd-descrcol" width="100%"></td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-linkcol">
<a href="/reference/com/google/android/gms/games/package-summary.html">com.google.android.gms.games</a></td>
<td class="jd-descrcol" width="100%">Contains the games client class.</td>
</tr>
@@ -765,61 +834,68 @@
<tr class="alt-color api apilevel-" >
<td class="jd-linkcol">
+ <a href="/reference/com/google/android/gms/games/multiplayer/turnbased/package-summary.html">com.google.android.gms.games.multiplayer.turnbased</a></td>
+ <td class="jd-descrcol" width="100%">Contains data classes for turn-based multiplayer functionality.</td>
+ </tr>
+
+
+ <tr class=" api apilevel-" >
+ <td class="jd-linkcol">
<a href="/reference/com/google/android/gms/gcm/package-summary.html">com.google.android.gms.gcm</a></td>
<td class="jd-descrcol" width="100%"></td>
</tr>
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-linkcol">
<a href="/reference/com/google/android/gms/location/package-summary.html">com.google.android.gms.location</a></td>
<td class="jd-descrcol" width="100%"></td>
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-linkcol">
<a href="/reference/com/google/android/gms/maps/package-summary.html">com.google.android.gms.maps</a></td>
<td class="jd-descrcol" width="100%">Contains the Google Maps Android API classes.</td>
</tr>
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-linkcol">
<a href="/reference/com/google/android/gms/maps/model/package-summary.html">com.google.android.gms.maps.model</a></td>
<td class="jd-descrcol" width="100%">Contains the Google Maps Android API model classes.</td>
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-linkcol">
<a href="/reference/com/google/android/gms/panorama/package-summary.html">com.google.android.gms.panorama</a></td>
<td class="jd-descrcol" width="100%"></td>
</tr>
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-linkcol">
<a href="/reference/com/google/android/gms/plus/package-summary.html">com.google.android.gms.plus</a></td>
<td class="jd-descrcol" width="100%">Contains the Google+ platform for Android.</td>
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-linkcol">
<a href="/reference/com/google/android/gms/plus/model/moments/package-summary.html">com.google.android.gms.plus.model.moments</a></td>
<td class="jd-descrcol" width="100%"></td>
</tr>
- <tr class=" api apilevel-" >
+ <tr class="alt-color api apilevel-" >
<td class="jd-linkcol">
<a href="/reference/com/google/android/gms/plus/model/people/package-summary.html">com.google.android.gms.plus.model.people</a></td>
<td class="jd-descrcol" width="100%"></td>
</tr>
- <tr class="alt-color api apilevel-" >
+ <tr class=" api apilevel-" >
<td class="jd-linkcol">
<a href="/reference/com/google/android/gms/wallet/package-summary.html">com.google.android.gms.wallet</a></td>
<td class="jd-descrcol" width="100%">Contains the Wallet Client for Google Play services.</td>
diff --git a/docs/html/reference/gms_lists.js b/docs/html/reference/gms_lists.js
index 41a0742..461bc0e 100644
--- a/docs/html/reference/gms_lists.js
+++ b/docs/html/reference/gms_lists.js
@@ -15,231 +15,316 @@
{ id:13, label:"com.google.android.gms.ads.AdSize", link:"reference/com/google/android/gms/ads/AdSize.html", type:"class", deprecated:"false" },
{ id:14, label:"com.google.android.gms.ads.AdView", link:"reference/com/google/android/gms/ads/AdView.html", type:"class", deprecated:"false" },
{ id:15, label:"com.google.android.gms.ads.InterstitialAd", link:"reference/com/google/android/gms/ads/InterstitialAd.html", type:"class", deprecated:"false" },
- { id:16, label:"com.google.android.gms.ads.identifier", link:"reference/com/google/android/gms/ads/identifier/package-summary.html", type:"package", deprecated:"false" },
- { id:17, label:"com.google.android.gms.ads.identifier.AdvertisingIdClient", link:"reference/com/google/android/gms/ads/identifier/AdvertisingIdClient.html", type:"class", deprecated:"false" },
- { id:18, label:"com.google.android.gms.ads.identifier.AdvertisingIdClient.Info", link:"reference/com/google/android/gms/ads/identifier/AdvertisingIdClient.Info.html", type:"class", deprecated:"false" },
- { id:19, label:"com.google.android.gms.ads.mediation", link:"reference/com/google/android/gms/ads/mediation/package-summary.html", type:"package", deprecated:"false" },
- { id:20, label:"com.google.android.gms.ads.mediation.NetworkExtras", link:"reference/com/google/android/gms/ads/mediation/NetworkExtras.html", type:"class", deprecated:"false" },
- { id:21, label:"com.google.android.gms.ads.mediation.admob", link:"reference/com/google/android/gms/ads/mediation/admob/package-summary.html", type:"package", deprecated:"false" },
- { id:22, label:"com.google.android.gms.ads.mediation.admob.AdMobExtras", link:"reference/com/google/android/gms/ads/mediation/admob/AdMobExtras.html", type:"class", deprecated:"false" },
- { id:23, label:"com.google.android.gms.ads.mediation.customevent", link:"reference/com/google/android/gms/ads/mediation/customevent/package-summary.html", type:"package", deprecated:"false" },
- { id:24, label:"com.google.android.gms.ads.mediation.customevent.CustomEventExtras", link:"reference/com/google/android/gms/ads/mediation/customevent/CustomEventExtras.html", type:"class", deprecated:"false" },
- { id:25, label:"com.google.android.gms.appstate", link:"reference/com/google/android/gms/appstate/package-summary.html", type:"package", deprecated:"false" },
- { id:26, label:"com.google.android.gms.appstate.AppState", link:"reference/com/google/android/gms/appstate/AppState.html", type:"class", deprecated:"false" },
- { id:27, label:"com.google.android.gms.appstate.AppStateBuffer", link:"reference/com/google/android/gms/appstate/AppStateBuffer.html", type:"class", deprecated:"false" },
- { id:28, label:"com.google.android.gms.appstate.AppStateClient", link:"reference/com/google/android/gms/appstate/AppStateClient.html", type:"class", deprecated:"false" },
- { id:29, label:"com.google.android.gms.appstate.AppStateClient.Builder", link:"reference/com/google/android/gms/appstate/AppStateClient.Builder.html", type:"class", deprecated:"false" },
- { id:30, label:"com.google.android.gms.appstate.OnSignOutCompleteListener", link:"reference/com/google/android/gms/appstate/OnSignOutCompleteListener.html", type:"class", deprecated:"false" },
- { id:31, label:"com.google.android.gms.appstate.OnStateDeletedListener", link:"reference/com/google/android/gms/appstate/OnStateDeletedListener.html", type:"class", deprecated:"false" },
- { id:32, label:"com.google.android.gms.appstate.OnStateListLoadedListener", link:"reference/com/google/android/gms/appstate/OnStateListLoadedListener.html", type:"class", deprecated:"false" },
- { id:33, label:"com.google.android.gms.appstate.OnStateLoadedListener", link:"reference/com/google/android/gms/appstate/OnStateLoadedListener.html", type:"class", deprecated:"false" },
- { id:34, label:"com.google.android.gms.auth", link:"reference/com/google/android/gms/auth/package-summary.html", type:"package", deprecated:"false" },
- { id:35, label:"com.google.android.gms.auth.GoogleAuthException", link:"reference/com/google/android/gms/auth/GoogleAuthException.html", type:"class", deprecated:"false" },
- { id:36, label:"com.google.android.gms.auth.GoogleAuthUtil", link:"reference/com/google/android/gms/auth/GoogleAuthUtil.html", type:"class", deprecated:"false" },
- { id:37, label:"com.google.android.gms.auth.GooglePlayServicesAvailabilityException", link:"reference/com/google/android/gms/auth/GooglePlayServicesAvailabilityException.html", type:"class", deprecated:"false" },
- { id:38, label:"com.google.android.gms.auth.RecoveryDecision", link:"reference/com/google/android/gms/auth/RecoveryDecision.html", type:"class", deprecated:"false" },
- { id:39, label:"com.google.android.gms.auth.UserRecoverableAuthException", link:"reference/com/google/android/gms/auth/UserRecoverableAuthException.html", type:"class", deprecated:"false" },
- { id:40, label:"com.google.android.gms.auth.UserRecoverableNotifiedException", link:"reference/com/google/android/gms/auth/UserRecoverableNotifiedException.html", type:"class", deprecated:"false" },
- { id:41, label:"com.google.android.gms.common", link:"reference/com/google/android/gms/common/package-summary.html", type:"package", deprecated:"false" },
- { id:42, label:"com.google.android.gms.common.AccountPicker", link:"reference/com/google/android/gms/common/AccountPicker.html", type:"class", deprecated:"false" },
- { id:43, label:"com.google.android.gms.common.ConnectionResult", link:"reference/com/google/android/gms/common/ConnectionResult.html", type:"class", deprecated:"false" },
- { id:44, label:"com.google.android.gms.common.GooglePlayServicesClient", link:"reference/com/google/android/gms/common/GooglePlayServicesClient.html", type:"class", deprecated:"false" },
- { id:45, label:"com.google.android.gms.common.GooglePlayServicesClient.ConnectionCallbacks", link:"reference/com/google/android/gms/common/GooglePlayServicesClient.ConnectionCallbacks.html", type:"class", deprecated:"false" },
- { id:46, label:"com.google.android.gms.common.GooglePlayServicesClient.OnConnectionFailedListener", link:"reference/com/google/android/gms/common/GooglePlayServicesClient.OnConnectionFailedListener.html", type:"class", deprecated:"false" },
- { id:47, label:"com.google.android.gms.common.GooglePlayServicesNotAvailableException", link:"reference/com/google/android/gms/common/GooglePlayServicesNotAvailableException.html", type:"class", deprecated:"false" },
- { id:48, label:"com.google.android.gms.common.GooglePlayServicesRepairableException", link:"reference/com/google/android/gms/common/GooglePlayServicesRepairableException.html", type:"class", deprecated:"false" },
- { id:49, label:"com.google.android.gms.common.GooglePlayServicesUtil", link:"reference/com/google/android/gms/common/GooglePlayServicesUtil.html", type:"class", deprecated:"false" },
- { id:50, label:"com.google.android.gms.common.Scopes", link:"reference/com/google/android/gms/common/Scopes.html", type:"class", deprecated:"false" },
- { id:51, label:"com.google.android.gms.common.SignInButton", link:"reference/com/google/android/gms/common/SignInButton.html", type:"class", deprecated:"false" },
- { id:52, label:"com.google.android.gms.common.UserRecoverableException", link:"reference/com/google/android/gms/common/UserRecoverableException.html", type:"class", deprecated:"false" },
- { id:53, label:"com.google.android.gms.common.annotation", link:"reference/com/google/android/gms/common/annotation/package-summary.html", type:"package", deprecated:"false" },
- { id:54, label:"com.google.android.gms.common.annotation.KeepName", link:"reference/com/google/android/gms/common/annotation/KeepName.html", type:"class", deprecated:"false" },
- { id:55, label:"com.google.android.gms.common.data", link:"reference/com/google/android/gms/common/data/package-summary.html", type:"package", deprecated:"false" },
- { id:56, label:"com.google.android.gms.common.data.DataBuffer", link:"reference/com/google/android/gms/common/data/DataBuffer.html", type:"class", deprecated:"false" },
- { id:57, label:"com.google.android.gms.common.data.DataBufferUtils", link:"reference/com/google/android/gms/common/data/DataBufferUtils.html", type:"class", deprecated:"false" },
- { id:58, label:"com.google.android.gms.common.data.Freezable", link:"reference/com/google/android/gms/common/data/Freezable.html", type:"class", deprecated:"false" },
- { id:59, label:"com.google.android.gms.common.images", link:"reference/com/google/android/gms/common/images/package-summary.html", type:"package", deprecated:"false" },
- { id:60, label:"com.google.android.gms.common.images.ImageManager", link:"reference/com/google/android/gms/common/images/ImageManager.html", type:"class", deprecated:"false" },
- { id:61, label:"com.google.android.gms.common.images.ImageManager.OnImageLoadedListener", link:"reference/com/google/android/gms/common/images/ImageManager.OnImageLoadedListener.html", type:"class", deprecated:"false" },
- { id:62, label:"com.google.android.gms.games", link:"reference/com/google/android/gms/games/package-summary.html", type:"package", deprecated:"false" },
- { id:63, label:"com.google.android.gms.games.Game", link:"reference/com/google/android/gms/games/Game.html", type:"class", deprecated:"false" },
- { id:64, label:"com.google.android.gms.games.GameBuffer", link:"reference/com/google/android/gms/games/GameBuffer.html", type:"class", deprecated:"false" },
- { id:65, label:"com.google.android.gms.games.GameEntity", link:"reference/com/google/android/gms/games/GameEntity.html", type:"class", deprecated:"false" },
- { id:66, label:"com.google.android.gms.games.GamesActivityResultCodes", link:"reference/com/google/android/gms/games/GamesActivityResultCodes.html", type:"class", deprecated:"false" },
- { id:67, label:"com.google.android.gms.games.GamesClient", link:"reference/com/google/android/gms/games/GamesClient.html", type:"class", deprecated:"false" },
- { id:68, label:"com.google.android.gms.games.GamesClient.Builder", link:"reference/com/google/android/gms/games/GamesClient.Builder.html", type:"class", deprecated:"false" },
- { id:69, label:"com.google.android.gms.games.OnGamesLoadedListener", link:"reference/com/google/android/gms/games/OnGamesLoadedListener.html", type:"class", deprecated:"false" },
- { id:70, label:"com.google.android.gms.games.OnPlayersLoadedListener", link:"reference/com/google/android/gms/games/OnPlayersLoadedListener.html", type:"class", deprecated:"false" },
- { id:71, label:"com.google.android.gms.games.OnSignOutCompleteListener", link:"reference/com/google/android/gms/games/OnSignOutCompleteListener.html", type:"class", deprecated:"false" },
- { id:72, label:"com.google.android.gms.games.PageDirection", link:"reference/com/google/android/gms/games/PageDirection.html", type:"class", deprecated:"false" },
- { id:73, label:"com.google.android.gms.games.Player", link:"reference/com/google/android/gms/games/Player.html", type:"class", deprecated:"false" },
- { id:74, label:"com.google.android.gms.games.PlayerBuffer", link:"reference/com/google/android/gms/games/PlayerBuffer.html", type:"class", deprecated:"false" },
- { id:75, label:"com.google.android.gms.games.PlayerEntity", link:"reference/com/google/android/gms/games/PlayerEntity.html", type:"class", deprecated:"false" },
- { id:76, label:"com.google.android.gms.games.achievement", link:"reference/com/google/android/gms/games/achievement/package-summary.html", type:"package", deprecated:"false" },
- { id:77, label:"com.google.android.gms.games.achievement.Achievement", link:"reference/com/google/android/gms/games/achievement/Achievement.html", type:"class", deprecated:"false" },
- { id:78, label:"com.google.android.gms.games.achievement.AchievementBuffer", link:"reference/com/google/android/gms/games/achievement/AchievementBuffer.html", type:"class", deprecated:"false" },
- { id:79, label:"com.google.android.gms.games.achievement.OnAchievementUpdatedListener", link:"reference/com/google/android/gms/games/achievement/OnAchievementUpdatedListener.html", type:"class", deprecated:"false" },
- { id:80, label:"com.google.android.gms.games.achievement.OnAchievementsLoadedListener", link:"reference/com/google/android/gms/games/achievement/OnAchievementsLoadedListener.html", type:"class", deprecated:"false" },
- { id:81, label:"com.google.android.gms.games.leaderboard", link:"reference/com/google/android/gms/games/leaderboard/package-summary.html", type:"package", deprecated:"false" },
- { id:82, label:"com.google.android.gms.games.leaderboard.Leaderboard", link:"reference/com/google/android/gms/games/leaderboard/Leaderboard.html", type:"class", deprecated:"false" },
- { id:83, label:"com.google.android.gms.games.leaderboard.LeaderboardBuffer", link:"reference/com/google/android/gms/games/leaderboard/LeaderboardBuffer.html", type:"class", deprecated:"false" },
- { id:84, label:"com.google.android.gms.games.leaderboard.LeaderboardScore", link:"reference/com/google/android/gms/games/leaderboard/LeaderboardScore.html", type:"class", deprecated:"false" },
- { id:85, label:"com.google.android.gms.games.leaderboard.LeaderboardScoreBuffer", link:"reference/com/google/android/gms/games/leaderboard/LeaderboardScoreBuffer.html", type:"class", deprecated:"false" },
- { id:86, label:"com.google.android.gms.games.leaderboard.LeaderboardVariant", link:"reference/com/google/android/gms/games/leaderboard/LeaderboardVariant.html", type:"class", deprecated:"false" },
- { id:87, label:"com.google.android.gms.games.leaderboard.OnLeaderboardMetadataLoadedListener", link:"reference/com/google/android/gms/games/leaderboard/OnLeaderboardMetadataLoadedListener.html", type:"class", deprecated:"false" },
- { id:88, label:"com.google.android.gms.games.leaderboard.OnLeaderboardScoresLoadedListener", link:"reference/com/google/android/gms/games/leaderboard/OnLeaderboardScoresLoadedListener.html", type:"class", deprecated:"false" },
- { id:89, label:"com.google.android.gms.games.leaderboard.OnScoreSubmittedListener", link:"reference/com/google/android/gms/games/leaderboard/OnScoreSubmittedListener.html", type:"class", deprecated:"false" },
- { id:90, label:"com.google.android.gms.games.leaderboard.SubmitScoreResult", link:"reference/com/google/android/gms/games/leaderboard/SubmitScoreResult.html", type:"class", deprecated:"false" },
- { id:91, label:"com.google.android.gms.games.leaderboard.SubmitScoreResult.Result", link:"reference/com/google/android/gms/games/leaderboard/SubmitScoreResult.Result.html", type:"class", deprecated:"false" },
- { id:92, label:"com.google.android.gms.games.multiplayer", link:"reference/com/google/android/gms/games/multiplayer/package-summary.html", type:"package", deprecated:"false" },
- { id:93, label:"com.google.android.gms.games.multiplayer.Invitation", link:"reference/com/google/android/gms/games/multiplayer/Invitation.html", type:"class", deprecated:"false" },
- { id:94, label:"com.google.android.gms.games.multiplayer.InvitationBuffer", link:"reference/com/google/android/gms/games/multiplayer/InvitationBuffer.html", type:"class", deprecated:"false" },
- { id:95, label:"com.google.android.gms.games.multiplayer.InvitationEntity", link:"reference/com/google/android/gms/games/multiplayer/InvitationEntity.html", type:"class", deprecated:"false" },
- { id:96, label:"com.google.android.gms.games.multiplayer.OnInvitationReceivedListener", link:"reference/com/google/android/gms/games/multiplayer/OnInvitationReceivedListener.html", type:"class", deprecated:"false" },
- { id:97, label:"com.google.android.gms.games.multiplayer.OnInvitationsLoadedListener", link:"reference/com/google/android/gms/games/multiplayer/OnInvitationsLoadedListener.html", type:"class", deprecated:"false" },
- { id:98, label:"com.google.android.gms.games.multiplayer.Participant", link:"reference/com/google/android/gms/games/multiplayer/Participant.html", type:"class", deprecated:"false" },
- { id:99, label:"com.google.android.gms.games.multiplayer.ParticipantBuffer", link:"reference/com/google/android/gms/games/multiplayer/ParticipantBuffer.html", type:"class", deprecated:"false" },
- { id:100, label:"com.google.android.gms.games.multiplayer.ParticipantEntity", link:"reference/com/google/android/gms/games/multiplayer/ParticipantEntity.html", type:"class", deprecated:"false" },
- { id:101, label:"com.google.android.gms.games.multiplayer.ParticipantUtils", link:"reference/com/google/android/gms/games/multiplayer/ParticipantUtils.html", type:"class", deprecated:"false" },
- { id:102, label:"com.google.android.gms.games.multiplayer.Participatable", link:"reference/com/google/android/gms/games/multiplayer/Participatable.html", type:"class", deprecated:"false" },
- { id:103, label:"com.google.android.gms.games.multiplayer.realtime", link:"reference/com/google/android/gms/games/multiplayer/realtime/package-summary.html", type:"package", deprecated:"false" },
- { id:104, label:"com.google.android.gms.games.multiplayer.realtime.RealTimeMessage", link:"reference/com/google/android/gms/games/multiplayer/realtime/RealTimeMessage.html", type:"class", deprecated:"false" },
- { id:105, label:"com.google.android.gms.games.multiplayer.realtime.RealTimeMessageReceivedListener", link:"reference/com/google/android/gms/games/multiplayer/realtime/RealTimeMessageReceivedListener.html", type:"class", deprecated:"false" },
- { id:106, label:"com.google.android.gms.games.multiplayer.realtime.RealTimeReliableMessageSentListener", link:"reference/com/google/android/gms/games/multiplayer/realtime/RealTimeReliableMessageSentListener.html", type:"class", deprecated:"false" },
- { id:107, label:"com.google.android.gms.games.multiplayer.realtime.RealTimeSocket", link:"reference/com/google/android/gms/games/multiplayer/realtime/RealTimeSocket.html", type:"class", deprecated:"false" },
- { id:108, label:"com.google.android.gms.games.multiplayer.realtime.Room", link:"reference/com/google/android/gms/games/multiplayer/realtime/Room.html", type:"class", deprecated:"false" },
- { id:109, label:"com.google.android.gms.games.multiplayer.realtime.RoomConfig", link:"reference/com/google/android/gms/games/multiplayer/realtime/RoomConfig.html", type:"class", deprecated:"false" },
- { id:110, label:"com.google.android.gms.games.multiplayer.realtime.RoomConfig.Builder", link:"reference/com/google/android/gms/games/multiplayer/realtime/RoomConfig.Builder.html", type:"class", deprecated:"false" },
- { id:111, label:"com.google.android.gms.games.multiplayer.realtime.RoomEntity", link:"reference/com/google/android/gms/games/multiplayer/realtime/RoomEntity.html", type:"class", deprecated:"false" },
- { id:112, label:"com.google.android.gms.games.multiplayer.realtime.RoomStatusUpdateListener", link:"reference/com/google/android/gms/games/multiplayer/realtime/RoomStatusUpdateListener.html", type:"class", deprecated:"false" },
- { id:113, label:"com.google.android.gms.games.multiplayer.realtime.RoomUpdateListener", link:"reference/com/google/android/gms/games/multiplayer/realtime/RoomUpdateListener.html", type:"class", deprecated:"false" },
- { id:114, label:"com.google.android.gms.gcm", link:"reference/com/google/android/gms/gcm/package-summary.html", type:"package", deprecated:"false" },
- { id:115, label:"com.google.android.gms.gcm.GoogleCloudMessaging", link:"reference/com/google/android/gms/gcm/GoogleCloudMessaging.html", type:"class", deprecated:"false" },
- { id:116, label:"com.google.android.gms.location", link:"reference/com/google/android/gms/location/package-summary.html", type:"package", deprecated:"false" },
- { id:117, label:"com.google.android.gms.location.ActivityRecognitionClient", link:"reference/com/google/android/gms/location/ActivityRecognitionClient.html", type:"class", deprecated:"false" },
- { id:118, label:"com.google.android.gms.location.ActivityRecognitionResult", link:"reference/com/google/android/gms/location/ActivityRecognitionResult.html", type:"class", deprecated:"false" },
- { id:119, label:"com.google.android.gms.location.DetectedActivity", link:"reference/com/google/android/gms/location/DetectedActivity.html", type:"class", deprecated:"false" },
- { id:120, label:"com.google.android.gms.location.Geofence", link:"reference/com/google/android/gms/location/Geofence.html", type:"class", deprecated:"false" },
- { id:121, label:"com.google.android.gms.location.Geofence.Builder", link:"reference/com/google/android/gms/location/Geofence.Builder.html", type:"class", deprecated:"false" },
- { id:122, label:"com.google.android.gms.location.LocationClient", link:"reference/com/google/android/gms/location/LocationClient.html", type:"class", deprecated:"false" },
- { id:123, label:"com.google.android.gms.location.LocationClient.OnAddGeofencesResultListener", link:"reference/com/google/android/gms/location/LocationClient.OnAddGeofencesResultListener.html", type:"class", deprecated:"false" },
- { id:124, label:"com.google.android.gms.location.LocationClient.OnRemoveGeofencesResultListener", link:"reference/com/google/android/gms/location/LocationClient.OnRemoveGeofencesResultListener.html", type:"class", deprecated:"false" },
- { id:125, label:"com.google.android.gms.location.LocationListener", link:"reference/com/google/android/gms/location/LocationListener.html", type:"class", deprecated:"false" },
- { id:126, label:"com.google.android.gms.location.LocationRequest", link:"reference/com/google/android/gms/location/LocationRequest.html", type:"class", deprecated:"false" },
- { id:127, label:"com.google.android.gms.location.LocationStatusCodes", link:"reference/com/google/android/gms/location/LocationStatusCodes.html", type:"class", deprecated:"false" },
- { id:128, label:"com.google.android.gms.maps", link:"reference/com/google/android/gms/maps/package-summary.html", type:"package", deprecated:"false" },
- { id:129, label:"com.google.android.gms.maps.CameraUpdate", link:"reference/com/google/android/gms/maps/CameraUpdate.html", type:"class", deprecated:"false" },
- { id:130, label:"com.google.android.gms.maps.CameraUpdateFactory", link:"reference/com/google/android/gms/maps/CameraUpdateFactory.html", type:"class", deprecated:"false" },
- { id:131, label:"com.google.android.gms.maps.GoogleMap", link:"reference/com/google/android/gms/maps/GoogleMap.html", type:"class", deprecated:"false" },
- { id:132, label:"com.google.android.gms.maps.GoogleMap.CancelableCallback", link:"reference/com/google/android/gms/maps/GoogleMap.CancelableCallback.html", type:"class", deprecated:"false" },
- { id:133, label:"com.google.android.gms.maps.GoogleMap.InfoWindowAdapter", link:"reference/com/google/android/gms/maps/GoogleMap.InfoWindowAdapter.html", type:"class", deprecated:"false" },
- { id:134, label:"com.google.android.gms.maps.GoogleMap.OnCameraChangeListener", link:"reference/com/google/android/gms/maps/GoogleMap.OnCameraChangeListener.html", type:"class", deprecated:"false" },
- { id:135, label:"com.google.android.gms.maps.GoogleMap.OnInfoWindowClickListener", link:"reference/com/google/android/gms/maps/GoogleMap.OnInfoWindowClickListener.html", type:"class", deprecated:"false" },
- { id:136, label:"com.google.android.gms.maps.GoogleMap.OnMapClickListener", link:"reference/com/google/android/gms/maps/GoogleMap.OnMapClickListener.html", type:"class", deprecated:"false" },
- { id:137, label:"com.google.android.gms.maps.GoogleMap.OnMapLoadedCallback", link:"reference/com/google/android/gms/maps/GoogleMap.OnMapLoadedCallback.html", type:"class", deprecated:"false" },
- { id:138, label:"com.google.android.gms.maps.GoogleMap.OnMapLongClickListener", link:"reference/com/google/android/gms/maps/GoogleMap.OnMapLongClickListener.html", type:"class", deprecated:"false" },
- { id:139, label:"com.google.android.gms.maps.GoogleMap.OnMarkerClickListener", link:"reference/com/google/android/gms/maps/GoogleMap.OnMarkerClickListener.html", type:"class", deprecated:"false" },
- { id:140, label:"com.google.android.gms.maps.GoogleMap.OnMarkerDragListener", link:"reference/com/google/android/gms/maps/GoogleMap.OnMarkerDragListener.html", type:"class", deprecated:"false" },
- { id:141, label:"com.google.android.gms.maps.GoogleMap.OnMyLocationButtonClickListener", link:"reference/com/google/android/gms/maps/GoogleMap.OnMyLocationButtonClickListener.html", type:"class", deprecated:"false" },
- { id:142, label:"com.google.android.gms.maps.GoogleMap.OnMyLocationChangeListener", link:"reference/com/google/android/gms/maps/GoogleMap.OnMyLocationChangeListener.html", type:"class", deprecated:"true" },
- { id:143, label:"com.google.android.gms.maps.GoogleMap.SnapshotReadyCallback", link:"reference/com/google/android/gms/maps/GoogleMap.SnapshotReadyCallback.html", type:"class", deprecated:"false" },
- { id:144, label:"com.google.android.gms.maps.GoogleMapOptions", link:"reference/com/google/android/gms/maps/GoogleMapOptions.html", type:"class", deprecated:"false" },
- { id:145, label:"com.google.android.gms.maps.LocationSource", link:"reference/com/google/android/gms/maps/LocationSource.html", type:"class", deprecated:"false" },
- { id:146, label:"com.google.android.gms.maps.LocationSource.OnLocationChangedListener", link:"reference/com/google/android/gms/maps/LocationSource.OnLocationChangedListener.html", type:"class", deprecated:"false" },
- { id:147, label:"com.google.android.gms.maps.MapFragment", link:"reference/com/google/android/gms/maps/MapFragment.html", type:"class", deprecated:"false" },
- { id:148, label:"com.google.android.gms.maps.MapView", link:"reference/com/google/android/gms/maps/MapView.html", type:"class", deprecated:"false" },
- { id:149, label:"com.google.android.gms.maps.MapsInitializer", link:"reference/com/google/android/gms/maps/MapsInitializer.html", type:"class", deprecated:"false" },
- { id:150, label:"com.google.android.gms.maps.Projection", link:"reference/com/google/android/gms/maps/Projection.html", type:"class", deprecated:"false" },
- { id:151, label:"com.google.android.gms.maps.SupportMapFragment", link:"reference/com/google/android/gms/maps/SupportMapFragment.html", type:"class", deprecated:"false" },
- { id:152, label:"com.google.android.gms.maps.UiSettings", link:"reference/com/google/android/gms/maps/UiSettings.html", type:"class", deprecated:"false" },
- { id:153, label:"com.google.android.gms.maps.model", link:"reference/com/google/android/gms/maps/model/package-summary.html", type:"package", deprecated:"false" },
- { id:154, label:"com.google.android.gms.maps.model.BitmapDescriptor", link:"reference/com/google/android/gms/maps/model/BitmapDescriptor.html", type:"class", deprecated:"false" },
- { id:155, label:"com.google.android.gms.maps.model.BitmapDescriptorFactory", link:"reference/com/google/android/gms/maps/model/BitmapDescriptorFactory.html", type:"class", deprecated:"false" },
- { id:156, label:"com.google.android.gms.maps.model.CameraPosition", link:"reference/com/google/android/gms/maps/model/CameraPosition.html", type:"class", deprecated:"false" },
- { id:157, label:"com.google.android.gms.maps.model.CameraPosition.Builder", link:"reference/com/google/android/gms/maps/model/CameraPosition.Builder.html", type:"class", deprecated:"false" },
- { id:158, label:"com.google.android.gms.maps.model.Circle", link:"reference/com/google/android/gms/maps/model/Circle.html", type:"class", deprecated:"false" },
- { id:159, label:"com.google.android.gms.maps.model.CircleOptions", link:"reference/com/google/android/gms/maps/model/CircleOptions.html", type:"class", deprecated:"false" },
- { id:160, label:"com.google.android.gms.maps.model.GroundOverlay", link:"reference/com/google/android/gms/maps/model/GroundOverlay.html", type:"class", deprecated:"false" },
- { id:161, label:"com.google.android.gms.maps.model.GroundOverlayOptions", link:"reference/com/google/android/gms/maps/model/GroundOverlayOptions.html", type:"class", deprecated:"false" },
- { id:162, label:"com.google.android.gms.maps.model.LatLng", link:"reference/com/google/android/gms/maps/model/LatLng.html", type:"class", deprecated:"false" },
- { id:163, label:"com.google.android.gms.maps.model.LatLngBounds", link:"reference/com/google/android/gms/maps/model/LatLngBounds.html", type:"class", deprecated:"false" },
- { id:164, label:"com.google.android.gms.maps.model.LatLngBounds.Builder", link:"reference/com/google/android/gms/maps/model/LatLngBounds.Builder.html", type:"class", deprecated:"false" },
- { id:165, label:"com.google.android.gms.maps.model.Marker", link:"reference/com/google/android/gms/maps/model/Marker.html", type:"class", deprecated:"false" },
- { id:166, label:"com.google.android.gms.maps.model.MarkerOptions", link:"reference/com/google/android/gms/maps/model/MarkerOptions.html", type:"class", deprecated:"false" },
- { id:167, label:"com.google.android.gms.maps.model.Polygon", link:"reference/com/google/android/gms/maps/model/Polygon.html", type:"class", deprecated:"false" },
- { id:168, label:"com.google.android.gms.maps.model.PolygonOptions", link:"reference/com/google/android/gms/maps/model/PolygonOptions.html", type:"class", deprecated:"false" },
- { id:169, label:"com.google.android.gms.maps.model.Polyline", link:"reference/com/google/android/gms/maps/model/Polyline.html", type:"class", deprecated:"false" },
- { id:170, label:"com.google.android.gms.maps.model.PolylineOptions", link:"reference/com/google/android/gms/maps/model/PolylineOptions.html", type:"class", deprecated:"false" },
- { id:171, label:"com.google.android.gms.maps.model.RuntimeRemoteException", link:"reference/com/google/android/gms/maps/model/RuntimeRemoteException.html", type:"class", deprecated:"false" },
- { id:172, label:"com.google.android.gms.maps.model.Tile", link:"reference/com/google/android/gms/maps/model/Tile.html", type:"class", deprecated:"false" },
- { id:173, label:"com.google.android.gms.maps.model.TileOverlay", link:"reference/com/google/android/gms/maps/model/TileOverlay.html", type:"class", deprecated:"false" },
- { id:174, label:"com.google.android.gms.maps.model.TileOverlayOptions", link:"reference/com/google/android/gms/maps/model/TileOverlayOptions.html", type:"class", deprecated:"false" },
- { id:175, label:"com.google.android.gms.maps.model.TileProvider", link:"reference/com/google/android/gms/maps/model/TileProvider.html", type:"class", deprecated:"false" },
- { id:176, label:"com.google.android.gms.maps.model.UrlTileProvider", link:"reference/com/google/android/gms/maps/model/UrlTileProvider.html", type:"class", deprecated:"false" },
- { id:177, label:"com.google.android.gms.maps.model.VisibleRegion", link:"reference/com/google/android/gms/maps/model/VisibleRegion.html", type:"class", deprecated:"false" },
- { id:178, label:"com.google.android.gms.panorama", link:"reference/com/google/android/gms/panorama/package-summary.html", type:"package", deprecated:"false" },
- { id:179, label:"com.google.android.gms.panorama.PanoramaClient", link:"reference/com/google/android/gms/panorama/PanoramaClient.html", type:"class", deprecated:"false" },
- { id:180, label:"com.google.android.gms.panorama.PanoramaClient.OnPanoramaInfoLoadedListener", link:"reference/com/google/android/gms/panorama/PanoramaClient.OnPanoramaInfoLoadedListener.html", type:"class", deprecated:"false" },
- { id:181, label:"com.google.android.gms.plus", link:"reference/com/google/android/gms/plus/package-summary.html", type:"package", deprecated:"false" },
- { id:182, label:"com.google.android.gms.plus.PlusClient", link:"reference/com/google/android/gms/plus/PlusClient.html", type:"class", deprecated:"false" },
- { id:183, label:"com.google.android.gms.plus.PlusClient.Builder", link:"reference/com/google/android/gms/plus/PlusClient.Builder.html", type:"class", deprecated:"false" },
- { id:184, label:"com.google.android.gms.plus.PlusClient.OnAccessRevokedListener", link:"reference/com/google/android/gms/plus/PlusClient.OnAccessRevokedListener.html", type:"class", deprecated:"false" },
- { id:185, label:"com.google.android.gms.plus.PlusClient.OnMomentsLoadedListener", link:"reference/com/google/android/gms/plus/PlusClient.OnMomentsLoadedListener.html", type:"class", deprecated:"false" },
- { id:186, label:"com.google.android.gms.plus.PlusClient.OnPeopleLoadedListener", link:"reference/com/google/android/gms/plus/PlusClient.OnPeopleLoadedListener.html", type:"class", deprecated:"false" },
- { id:187, label:"com.google.android.gms.plus.PlusClient.OrderBy", link:"reference/com/google/android/gms/plus/PlusClient.OrderBy.html", type:"class", deprecated:"false" },
- { id:188, label:"com.google.android.gms.plus.PlusOneButton", link:"reference/com/google/android/gms/plus/PlusOneButton.html", type:"class", deprecated:"false" },
- { id:189, label:"com.google.android.gms.plus.PlusOneButton.DefaultOnPlusOneClickListener", link:"reference/com/google/android/gms/plus/PlusOneButton.DefaultOnPlusOneClickListener.html", type:"class", deprecated:"false" },
- { id:190, label:"com.google.android.gms.plus.PlusOneButton.OnPlusOneClickListener", link:"reference/com/google/android/gms/plus/PlusOneButton.OnPlusOneClickListener.html", type:"class", deprecated:"false" },
- { id:191, label:"com.google.android.gms.plus.PlusOneButtonWithPopup", link:"reference/com/google/android/gms/plus/PlusOneButtonWithPopup.html", type:"class", deprecated:"false" },
- { id:192, label:"com.google.android.gms.plus.PlusOneDummyView", link:"reference/com/google/android/gms/plus/PlusOneDummyView.html", type:"class", deprecated:"false" },
- { id:193, label:"com.google.android.gms.plus.PlusShare", link:"reference/com/google/android/gms/plus/PlusShare.html", type:"class", deprecated:"false" },
- { id:194, label:"com.google.android.gms.plus.PlusShare.Builder", link:"reference/com/google/android/gms/plus/PlusShare.Builder.html", type:"class", deprecated:"false" },
- { id:195, label:"com.google.android.gms.plus.model.moments", link:"reference/com/google/android/gms/plus/model/moments/package-summary.html", type:"package", deprecated:"false" },
- { id:196, label:"com.google.android.gms.plus.model.moments.ItemScope", link:"reference/com/google/android/gms/plus/model/moments/ItemScope.html", type:"class", deprecated:"false" },
- { id:197, label:"com.google.android.gms.plus.model.moments.ItemScope.Builder", link:"reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html", type:"class", deprecated:"false" },
- { id:198, label:"com.google.android.gms.plus.model.moments.Moment", link:"reference/com/google/android/gms/plus/model/moments/Moment.html", type:"class", deprecated:"false" },
- { id:199, label:"com.google.android.gms.plus.model.moments.Moment.Builder", link:"reference/com/google/android/gms/plus/model/moments/Moment.Builder.html", type:"class", deprecated:"false" },
- { id:200, label:"com.google.android.gms.plus.model.moments.MomentBuffer", link:"reference/com/google/android/gms/plus/model/moments/MomentBuffer.html", type:"class", deprecated:"false" },
- { id:201, label:"com.google.android.gms.plus.model.people", link:"reference/com/google/android/gms/plus/model/people/package-summary.html", type:"package", deprecated:"false" },
- { id:202, label:"com.google.android.gms.plus.model.people.Person", link:"reference/com/google/android/gms/plus/model/people/Person.html", type:"class", deprecated:"false" },
- { id:203, label:"com.google.android.gms.plus.model.people.Person.AgeRange", link:"reference/com/google/android/gms/plus/model/people/Person.AgeRange.html", type:"class", deprecated:"false" },
- { id:204, label:"com.google.android.gms.plus.model.people.Person.Cover", link:"reference/com/google/android/gms/plus/model/people/Person.Cover.html", type:"class", deprecated:"false" },
- { id:205, label:"com.google.android.gms.plus.model.people.Person.Cover.CoverInfo", link:"reference/com/google/android/gms/plus/model/people/Person.Cover.CoverInfo.html", type:"class", deprecated:"false" },
- { id:206, label:"com.google.android.gms.plus.model.people.Person.Cover.CoverPhoto", link:"reference/com/google/android/gms/plus/model/people/Person.Cover.CoverPhoto.html", type:"class", deprecated:"false" },
- { id:207, label:"com.google.android.gms.plus.model.people.Person.Cover.Layout", link:"reference/com/google/android/gms/plus/model/people/Person.Cover.Layout.html", type:"class", deprecated:"false" },
- { id:208, label:"com.google.android.gms.plus.model.people.Person.Gender", link:"reference/com/google/android/gms/plus/model/people/Person.Gender.html", type:"class", deprecated:"false" },
- { id:209, label:"com.google.android.gms.plus.model.people.Person.Image", link:"reference/com/google/android/gms/plus/model/people/Person.Image.html", type:"class", deprecated:"false" },
- { id:210, label:"com.google.android.gms.plus.model.people.Person.Name", link:"reference/com/google/android/gms/plus/model/people/Person.Name.html", type:"class", deprecated:"false" },
- { id:211, label:"com.google.android.gms.plus.model.people.Person.ObjectType", link:"reference/com/google/android/gms/plus/model/people/Person.ObjectType.html", type:"class", deprecated:"false" },
- { id:212, label:"com.google.android.gms.plus.model.people.Person.Organizations", link:"reference/com/google/android/gms/plus/model/people/Person.Organizations.html", type:"class", deprecated:"false" },
- { id:213, label:"com.google.android.gms.plus.model.people.Person.Organizations.Type", link:"reference/com/google/android/gms/plus/model/people/Person.Organizations.Type.html", type:"class", deprecated:"false" },
- { id:214, label:"com.google.android.gms.plus.model.people.Person.PlacesLived", link:"reference/com/google/android/gms/plus/model/people/Person.PlacesLived.html", type:"class", deprecated:"false" },
- { id:215, label:"com.google.android.gms.plus.model.people.Person.RelationshipStatus", link:"reference/com/google/android/gms/plus/model/people/Person.RelationshipStatus.html", type:"class", deprecated:"false" },
- { id:216, label:"com.google.android.gms.plus.model.people.Person.Urls", link:"reference/com/google/android/gms/plus/model/people/Person.Urls.html", type:"class", deprecated:"false" },
- { id:217, label:"com.google.android.gms.plus.model.people.Person.Urls.Type", link:"reference/com/google/android/gms/plus/model/people/Person.Urls.Type.html", type:"class", deprecated:"false" },
- { id:218, label:"com.google.android.gms.plus.model.people.PersonBuffer", link:"reference/com/google/android/gms/plus/model/people/PersonBuffer.html", type:"class", deprecated:"false" },
- { id:219, label:"com.google.android.gms.wallet", link:"reference/com/google/android/gms/wallet/package-summary.html", type:"package", deprecated:"false" },
- { id:220, label:"com.google.android.gms.wallet.Address", link:"reference/com/google/android/gms/wallet/Address.html", type:"class", deprecated:"false" },
- { id:221, label:"com.google.android.gms.wallet.Cart", link:"reference/com/google/android/gms/wallet/Cart.html", type:"class", deprecated:"false" },
- { id:222, label:"com.google.android.gms.wallet.Cart.Builder", link:"reference/com/google/android/gms/wallet/Cart.Builder.html", type:"class", deprecated:"false" },
- { id:223, label:"com.google.android.gms.wallet.EnableWalletOptimizationReceiver", link:"reference/com/google/android/gms/wallet/EnableWalletOptimizationReceiver.html", type:"class", deprecated:"false" },
- { id:224, label:"com.google.android.gms.wallet.FullWallet", link:"reference/com/google/android/gms/wallet/FullWallet.html", type:"class", deprecated:"false" },
- { id:225, label:"com.google.android.gms.wallet.FullWalletRequest", link:"reference/com/google/android/gms/wallet/FullWalletRequest.html", type:"class", deprecated:"false" },
- { id:226, label:"com.google.android.gms.wallet.FullWalletRequest.Builder", link:"reference/com/google/android/gms/wallet/FullWalletRequest.Builder.html", type:"class", deprecated:"false" },
- { id:227, label:"com.google.android.gms.wallet.LineItem", link:"reference/com/google/android/gms/wallet/LineItem.html", type:"class", deprecated:"false" },
- { id:228, label:"com.google.android.gms.wallet.LineItem.Builder", link:"reference/com/google/android/gms/wallet/LineItem.Builder.html", type:"class", deprecated:"false" },
- { id:229, label:"com.google.android.gms.wallet.LineItem.Role", link:"reference/com/google/android/gms/wallet/LineItem.Role.html", type:"class", deprecated:"false" },
- { id:230, label:"com.google.android.gms.wallet.LoyaltyWalletObject", link:"reference/com/google/android/gms/wallet/LoyaltyWalletObject.html", type:"class", deprecated:"false" },
- { id:231, label:"com.google.android.gms.wallet.MaskedWallet", link:"reference/com/google/android/gms/wallet/MaskedWallet.html", type:"class", deprecated:"false" },
- { id:232, label:"com.google.android.gms.wallet.MaskedWalletRequest", link:"reference/com/google/android/gms/wallet/MaskedWalletRequest.html", type:"class", deprecated:"false" },
- { id:233, label:"com.google.android.gms.wallet.MaskedWalletRequest.Builder", link:"reference/com/google/android/gms/wallet/MaskedWalletRequest.Builder.html", type:"class", deprecated:"false" },
- { id:234, label:"com.google.android.gms.wallet.NotifyTransactionStatusRequest", link:"reference/com/google/android/gms/wallet/NotifyTransactionStatusRequest.html", type:"class", deprecated:"false" },
- { id:235, label:"com.google.android.gms.wallet.NotifyTransactionStatusRequest.Builder", link:"reference/com/google/android/gms/wallet/NotifyTransactionStatusRequest.Builder.html", type:"class", deprecated:"false" },
- { id:236, label:"com.google.android.gms.wallet.NotifyTransactionStatusRequest.Status", link:"reference/com/google/android/gms/wallet/NotifyTransactionStatusRequest.Status.html", type:"class", deprecated:"false" },
- { id:237, label:"com.google.android.gms.wallet.NotifyTransactionStatusRequest.Status.Error", link:"reference/com/google/android/gms/wallet/NotifyTransactionStatusRequest.Status.Error.html", type:"class", deprecated:"false" },
- { id:238, label:"com.google.android.gms.wallet.OfferWalletObject", link:"reference/com/google/android/gms/wallet/OfferWalletObject.html", type:"class", deprecated:"false" },
- { id:239, label:"com.google.android.gms.wallet.ProxyCard", link:"reference/com/google/android/gms/wallet/ProxyCard.html", type:"class", deprecated:"false" },
- { id:240, label:"com.google.android.gms.wallet.WalletClient", link:"reference/com/google/android/gms/wallet/WalletClient.html", type:"class", deprecated:"false" },
- { id:241, label:"com.google.android.gms.wallet.WalletConstants", link:"reference/com/google/android/gms/wallet/WalletConstants.html", type:"class", deprecated:"false" }
+ { id:16, label:"com.google.android.gms.ads.doubleclick", link:"reference/com/google/android/gms/ads/doubleclick/package-summary.html", type:"package", deprecated:"false" },
+ { id:17, label:"com.google.android.gms.ads.doubleclick.AppEventListener", link:"reference/com/google/android/gms/ads/doubleclick/AppEventListener.html", type:"class", deprecated:"false" },
+ { id:18, label:"com.google.android.gms.ads.doubleclick.PublisherAdRequest", link:"reference/com/google/android/gms/ads/doubleclick/PublisherAdRequest.html", type:"class", deprecated:"false" },
+ { id:19, label:"com.google.android.gms.ads.doubleclick.PublisherAdRequest.Builder", link:"reference/com/google/android/gms/ads/doubleclick/PublisherAdRequest.Builder.html", type:"class", deprecated:"false" },
+ { id:20, label:"com.google.android.gms.ads.doubleclick.PublisherAdView", link:"reference/com/google/android/gms/ads/doubleclick/PublisherAdView.html", type:"class", deprecated:"false" },
+ { id:21, label:"com.google.android.gms.ads.doubleclick.PublisherInterstitialAd", link:"reference/com/google/android/gms/ads/doubleclick/PublisherInterstitialAd.html", type:"class", deprecated:"false" },
+ { id:22, label:"com.google.android.gms.ads.identifier", link:"reference/com/google/android/gms/ads/identifier/package-summary.html", type:"package", deprecated:"false" },
+ { id:23, label:"com.google.android.gms.ads.identifier.AdvertisingIdClient", link:"reference/com/google/android/gms/ads/identifier/AdvertisingIdClient.html", type:"class", deprecated:"false" },
+ { id:24, label:"com.google.android.gms.ads.identifier.AdvertisingIdClient.Info", link:"reference/com/google/android/gms/ads/identifier/AdvertisingIdClient.Info.html", type:"class", deprecated:"false" },
+ { id:25, label:"com.google.android.gms.ads.mediation", link:"reference/com/google/android/gms/ads/mediation/package-summary.html", type:"package", deprecated:"false" },
+ { id:26, label:"com.google.android.gms.ads.mediation.NetworkExtras", link:"reference/com/google/android/gms/ads/mediation/NetworkExtras.html", type:"class", deprecated:"false" },
+ { id:27, label:"com.google.android.gms.ads.mediation.admob", link:"reference/com/google/android/gms/ads/mediation/admob/package-summary.html", type:"package", deprecated:"false" },
+ { id:28, label:"com.google.android.gms.ads.mediation.admob.AdMobExtras", link:"reference/com/google/android/gms/ads/mediation/admob/AdMobExtras.html", type:"class", deprecated:"false" },
+ { id:29, label:"com.google.android.gms.ads.mediation.customevent", link:"reference/com/google/android/gms/ads/mediation/customevent/package-summary.html", type:"package", deprecated:"false" },
+ { id:30, label:"com.google.android.gms.ads.mediation.customevent.CustomEventExtras", link:"reference/com/google/android/gms/ads/mediation/customevent/CustomEventExtras.html", type:"class", deprecated:"false" },
+ { id:31, label:"com.google.android.gms.ads.search", link:"reference/com/google/android/gms/ads/search/package-summary.html", type:"package", deprecated:"false" },
+ { id:32, label:"com.google.android.gms.ads.search.SearchAdRequest", link:"reference/com/google/android/gms/ads/search/SearchAdRequest.html", type:"class", deprecated:"false" },
+ { id:33, label:"com.google.android.gms.ads.search.SearchAdRequest.Builder", link:"reference/com/google/android/gms/ads/search/SearchAdRequest.Builder.html", type:"class", deprecated:"false" },
+ { id:34, label:"com.google.android.gms.ads.search.SearchAdView", link:"reference/com/google/android/gms/ads/search/SearchAdView.html", type:"class", deprecated:"false" },
+ { id:35, label:"com.google.android.gms.appstate", link:"reference/com/google/android/gms/appstate/package-summary.html", type:"package", deprecated:"false" },
+ { id:36, label:"com.google.android.gms.appstate.AppState", link:"reference/com/google/android/gms/appstate/AppState.html", type:"class", deprecated:"false" },
+ { id:37, label:"com.google.android.gms.appstate.AppStateBuffer", link:"reference/com/google/android/gms/appstate/AppStateBuffer.html", type:"class", deprecated:"false" },
+ { id:38, label:"com.google.android.gms.appstate.AppStateClient", link:"reference/com/google/android/gms/appstate/AppStateClient.html", type:"class", deprecated:"false" },
+ { id:39, label:"com.google.android.gms.appstate.AppStateClient.Builder", link:"reference/com/google/android/gms/appstate/AppStateClient.Builder.html", type:"class", deprecated:"false" },
+ { id:40, label:"com.google.android.gms.appstate.OnSignOutCompleteListener", link:"reference/com/google/android/gms/appstate/OnSignOutCompleteListener.html", type:"class", deprecated:"false" },
+ { id:41, label:"com.google.android.gms.appstate.OnStateDeletedListener", link:"reference/com/google/android/gms/appstate/OnStateDeletedListener.html", type:"class", deprecated:"false" },
+ { id:42, label:"com.google.android.gms.appstate.OnStateListLoadedListener", link:"reference/com/google/android/gms/appstate/OnStateListLoadedListener.html", type:"class", deprecated:"false" },
+ { id:43, label:"com.google.android.gms.appstate.OnStateLoadedListener", link:"reference/com/google/android/gms/appstate/OnStateLoadedListener.html", type:"class", deprecated:"false" },
+ { id:44, label:"com.google.android.gms.auth", link:"reference/com/google/android/gms/auth/package-summary.html", type:"package", deprecated:"false" },
+ { id:45, label:"com.google.android.gms.auth.GoogleAuthException", link:"reference/com/google/android/gms/auth/GoogleAuthException.html", type:"class", deprecated:"false" },
+ { id:46, label:"com.google.android.gms.auth.GoogleAuthUtil", link:"reference/com/google/android/gms/auth/GoogleAuthUtil.html", type:"class", deprecated:"false" },
+ { id:47, label:"com.google.android.gms.auth.GooglePlayServicesAvailabilityException", link:"reference/com/google/android/gms/auth/GooglePlayServicesAvailabilityException.html", type:"class", deprecated:"false" },
+ { id:48, label:"com.google.android.gms.auth.UserRecoverableAuthException", link:"reference/com/google/android/gms/auth/UserRecoverableAuthException.html", type:"class", deprecated:"false" },
+ { id:49, label:"com.google.android.gms.auth.UserRecoverableNotifiedException", link:"reference/com/google/android/gms/auth/UserRecoverableNotifiedException.html", type:"class", deprecated:"false" },
+ { id:50, label:"com.google.android.gms.common", link:"reference/com/google/android/gms/common/package-summary.html", type:"package", deprecated:"false" },
+ { id:51, label:"com.google.android.gms.common.AccountPicker", link:"reference/com/google/android/gms/common/AccountPicker.html", type:"class", deprecated:"false" },
+ { id:52, label:"com.google.android.gms.common.ConnectionResult", link:"reference/com/google/android/gms/common/ConnectionResult.html", type:"class", deprecated:"false" },
+ { id:53, label:"com.google.android.gms.common.GooglePlayServicesClient", link:"reference/com/google/android/gms/common/GooglePlayServicesClient.html", type:"class", deprecated:"false" },
+ { id:54, label:"com.google.android.gms.common.GooglePlayServicesClient.ConnectionCallbacks", link:"reference/com/google/android/gms/common/GooglePlayServicesClient.ConnectionCallbacks.html", type:"class", deprecated:"false" },
+ { id:55, label:"com.google.android.gms.common.GooglePlayServicesClient.OnConnectionFailedListener", link:"reference/com/google/android/gms/common/GooglePlayServicesClient.OnConnectionFailedListener.html", type:"class", deprecated:"false" },
+ { id:56, label:"com.google.android.gms.common.GooglePlayServicesNotAvailableException", link:"reference/com/google/android/gms/common/GooglePlayServicesNotAvailableException.html", type:"class", deprecated:"false" },
+ { id:57, label:"com.google.android.gms.common.GooglePlayServicesRepairableException", link:"reference/com/google/android/gms/common/GooglePlayServicesRepairableException.html", type:"class", deprecated:"false" },
+ { id:58, label:"com.google.android.gms.common.GooglePlayServicesUtil", link:"reference/com/google/android/gms/common/GooglePlayServicesUtil.html", type:"class", deprecated:"false" },
+ { id:59, label:"com.google.android.gms.common.OnStatusReceivedCallback", link:"reference/com/google/android/gms/common/OnStatusReceivedCallback.html", type:"class", deprecated:"false" },
+ { id:60, label:"com.google.android.gms.common.Scopes", link:"reference/com/google/android/gms/common/Scopes.html", type:"class", deprecated:"false" },
+ { id:61, label:"com.google.android.gms.common.SignInButton", link:"reference/com/google/android/gms/common/SignInButton.html", type:"class", deprecated:"false" },
+ { id:62, label:"com.google.android.gms.common.UserRecoverableException", link:"reference/com/google/android/gms/common/UserRecoverableException.html", type:"class", deprecated:"false" },
+ { id:63, label:"com.google.android.gms.common.annotation", link:"reference/com/google/android/gms/common/annotation/package-summary.html", type:"package", deprecated:"false" },
+ { id:64, label:"com.google.android.gms.common.annotation.KeepName", link:"reference/com/google/android/gms/common/annotation/KeepName.html", type:"class", deprecated:"false" },
+ { id:65, label:"com.google.android.gms.common.api", link:"reference/com/google/android/gms/common/api/package-summary.html", type:"package", deprecated:"false" },
+ { id:66, label:"com.google.android.gms.common.api.Api", link:"reference/com/google/android/gms/common/api/Api.html", type:"class", deprecated:"false" },
+ { id:67, label:"com.google.android.gms.common.api.GoogleApiClient", link:"reference/com/google/android/gms/common/api/GoogleApiClient.html", type:"class", deprecated:"false" },
+ { id:68, label:"com.google.android.gms.common.api.GoogleApiClient.ApiOptions", link:"reference/com/google/android/gms/common/api/GoogleApiClient.ApiOptions.html", type:"class", deprecated:"false" },
+ { id:69, label:"com.google.android.gms.common.api.GoogleApiClient.Builder", link:"reference/com/google/android/gms/common/api/GoogleApiClient.Builder.html", type:"class", deprecated:"false" },
+ { id:70, label:"com.google.android.gms.common.api.GoogleApiClient.ConnectionCallbacks", link:"reference/com/google/android/gms/common/api/GoogleApiClient.ConnectionCallbacks.html", type:"class", deprecated:"false" },
+ { id:71, label:"com.google.android.gms.common.api.GoogleApiClient.OnConnectionFailedListener", link:"reference/com/google/android/gms/common/api/GoogleApiClient.OnConnectionFailedListener.html", type:"class", deprecated:"false" },
+ { id:72, label:"com.google.android.gms.common.api.PendingResult", link:"reference/com/google/android/gms/common/api/PendingResult.html", type:"class", deprecated:"false" },
+ { id:73, label:"com.google.android.gms.common.api.Releasable", link:"reference/com/google/android/gms/common/api/Releasable.html", type:"class", deprecated:"false" },
+ { id:74, label:"com.google.android.gms.common.api.Result", link:"reference/com/google/android/gms/common/api/Result.html", type:"class", deprecated:"false" },
+ { id:75, label:"com.google.android.gms.common.api.Scope", link:"reference/com/google/android/gms/common/api/Scope.html", type:"class", deprecated:"false" },
+ { id:76, label:"com.google.android.gms.common.api.Status", link:"reference/com/google/android/gms/common/api/Status.html", type:"class", deprecated:"false" },
+ { id:77, label:"com.google.android.gms.common.data", link:"reference/com/google/android/gms/common/data/package-summary.html", type:"package", deprecated:"false" },
+ { id:78, label:"com.google.android.gms.common.data.DataBuffer", link:"reference/com/google/android/gms/common/data/DataBuffer.html", type:"class", deprecated:"false" },
+ { id:79, label:"com.google.android.gms.common.data.DataBufferUtils", link:"reference/com/google/android/gms/common/data/DataBufferUtils.html", type:"class", deprecated:"false" },
+ { id:80, label:"com.google.android.gms.common.data.FilteredDataBuffer", link:"reference/com/google/android/gms/common/data/FilteredDataBuffer.html", type:"class", deprecated:"false" },
+ { id:81, label:"com.google.android.gms.common.data.Freezable", link:"reference/com/google/android/gms/common/data/Freezable.html", type:"class", deprecated:"false" },
+ { id:82, label:"com.google.android.gms.common.images", link:"reference/com/google/android/gms/common/images/package-summary.html", type:"package", deprecated:"false" },
+ { id:83, label:"com.google.android.gms.common.images.ImageManager", link:"reference/com/google/android/gms/common/images/ImageManager.html", type:"class", deprecated:"false" },
+ { id:84, label:"com.google.android.gms.common.images.ImageManager.OnImageLoadedListener", link:"reference/com/google/android/gms/common/images/ImageManager.OnImageLoadedListener.html", type:"class", deprecated:"false" },
+ { id:85, label:"com.google.android.gms.drive", link:"reference/com/google/android/gms/drive/package-summary.html", type:"package", deprecated:"false" },
+ { id:86, label:"com.google.android.gms.drive.Contents", link:"reference/com/google/android/gms/drive/Contents.html", type:"class", deprecated:"false" },
+ { id:87, label:"com.google.android.gms.drive.CreateFileActivityBuilder", link:"reference/com/google/android/gms/drive/CreateFileActivityBuilder.html", type:"class", deprecated:"false" },
+ { id:88, label:"com.google.android.gms.drive.Drive", link:"reference/com/google/android/gms/drive/Drive.html", type:"class", deprecated:"false" },
+ { id:89, label:"com.google.android.gms.drive.DriveApi", link:"reference/com/google/android/gms/drive/DriveApi.html", type:"class", deprecated:"false" },
+ { id:90, label:"com.google.android.gms.drive.DriveApi.ContentsResult", link:"reference/com/google/android/gms/drive/DriveApi.ContentsResult.html", type:"class", deprecated:"false" },
+ { id:91, label:"com.google.android.gms.drive.DriveApi.IntentSenderResult", link:"reference/com/google/android/gms/drive/DriveApi.IntentSenderResult.html", type:"class", deprecated:"false" },
+ { id:92, label:"com.google.android.gms.drive.DriveApi.MetadataBufferResult", link:"reference/com/google/android/gms/drive/DriveApi.MetadataBufferResult.html", type:"class", deprecated:"false" },
+ { id:93, label:"com.google.android.gms.drive.DriveApi.OnContentsDiscardedCallback", link:"reference/com/google/android/gms/drive/DriveApi.OnContentsDiscardedCallback.html", type:"class", deprecated:"false" },
+ { id:94, label:"com.google.android.gms.drive.DriveApi.OnNewContentsCallback", link:"reference/com/google/android/gms/drive/DriveApi.OnNewContentsCallback.html", type:"class", deprecated:"false" },
+ { id:95, label:"com.google.android.gms.drive.DriveApi.OnSyncFinishCallback", link:"reference/com/google/android/gms/drive/DriveApi.OnSyncFinishCallback.html", type:"class", deprecated:"false" },
+ { id:96, label:"com.google.android.gms.drive.DriveFile", link:"reference/com/google/android/gms/drive/DriveFile.html", type:"class", deprecated:"false" },
+ { id:97, label:"com.google.android.gms.drive.DriveFile.DownloadProgressListener", link:"reference/com/google/android/gms/drive/DriveFile.DownloadProgressListener.html", type:"class", deprecated:"false" },
+ { id:98, label:"com.google.android.gms.drive.DriveFile.OnContentsClosedCallback", link:"reference/com/google/android/gms/drive/DriveFile.OnContentsClosedCallback.html", type:"class", deprecated:"false" },
+ { id:99, label:"com.google.android.gms.drive.DriveFile.OnContentsOpenedCallback", link:"reference/com/google/android/gms/drive/DriveFile.OnContentsOpenedCallback.html", type:"class", deprecated:"false" },
+ { id:100, label:"com.google.android.gms.drive.DriveFolder", link:"reference/com/google/android/gms/drive/DriveFolder.html", type:"class", deprecated:"false" },
+ { id:101, label:"com.google.android.gms.drive.DriveFolder.DriveFileResult", link:"reference/com/google/android/gms/drive/DriveFolder.DriveFileResult.html", type:"class", deprecated:"false" },
+ { id:102, label:"com.google.android.gms.drive.DriveFolder.DriveFolderResult", link:"reference/com/google/android/gms/drive/DriveFolder.DriveFolderResult.html", type:"class", deprecated:"false" },
+ { id:103, label:"com.google.android.gms.drive.DriveFolder.OnChildrenRetrievedCallback", link:"reference/com/google/android/gms/drive/DriveFolder.OnChildrenRetrievedCallback.html", type:"class", deprecated:"false" },
+ { id:104, label:"com.google.android.gms.drive.DriveFolder.OnCreateFileCallback", link:"reference/com/google/android/gms/drive/DriveFolder.OnCreateFileCallback.html", type:"class", deprecated:"false" },
+ { id:105, label:"com.google.android.gms.drive.DriveFolder.OnCreateFolderCallback", link:"reference/com/google/android/gms/drive/DriveFolder.OnCreateFolderCallback.html", type:"class", deprecated:"false" },
+ { id:106, label:"com.google.android.gms.drive.DriveId", link:"reference/com/google/android/gms/drive/DriveId.html", type:"class", deprecated:"false" },
+ { id:107, label:"com.google.android.gms.drive.DriveResource", link:"reference/com/google/android/gms/drive/DriveResource.html", type:"class", deprecated:"false" },
+ { id:108, label:"com.google.android.gms.drive.DriveResource.MetadataResult", link:"reference/com/google/android/gms/drive/DriveResource.MetadataResult.html", type:"class", deprecated:"false" },
+ { id:109, label:"com.google.android.gms.drive.DriveResource.OnMetadataRetrievedCallback", link:"reference/com/google/android/gms/drive/DriveResource.OnMetadataRetrievedCallback.html", type:"class", deprecated:"false" },
+ { id:110, label:"com.google.android.gms.drive.DriveResource.OnMetadataUpdatedCallback", link:"reference/com/google/android/gms/drive/DriveResource.OnMetadataUpdatedCallback.html", type:"class", deprecated:"false" },
+ { id:111, label:"com.google.android.gms.drive.Metadata", link:"reference/com/google/android/gms/drive/Metadata.html", type:"class", deprecated:"false" },
+ { id:112, label:"com.google.android.gms.drive.MetadataBuffer", link:"reference/com/google/android/gms/drive/MetadataBuffer.html", type:"class", deprecated:"false" },
+ { id:113, label:"com.google.android.gms.drive.MetadataChangeSet", link:"reference/com/google/android/gms/drive/MetadataChangeSet.html", type:"class", deprecated:"false" },
+ { id:114, label:"com.google.android.gms.drive.MetadataChangeSet.Builder", link:"reference/com/google/android/gms/drive/MetadataChangeSet.Builder.html", type:"class", deprecated:"false" },
+ { id:115, label:"com.google.android.gms.drive.OpenFileActivityBuilder", link:"reference/com/google/android/gms/drive/OpenFileActivityBuilder.html", type:"class", deprecated:"false" },
+ { id:116, label:"com.google.android.gms.drive.metadata", link:"reference/com/google/android/gms/drive/metadata/package-summary.html", type:"package", deprecated:"false" },
+ { id:117, label:"com.google.android.gms.drive.metadata.CollectionMetadataField", link:"reference/com/google/android/gms/drive/metadata/CollectionMetadataField.html", type:"class", deprecated:"false" },
+ { id:118, label:"com.google.android.gms.drive.metadata.MetadataField", link:"reference/com/google/android/gms/drive/metadata/MetadataField.html", type:"class", deprecated:"false" },
+ { id:119, label:"com.google.android.gms.drive.metadata.OrderedMetadataField", link:"reference/com/google/android/gms/drive/metadata/OrderedMetadataField.html", type:"class", deprecated:"false" },
+ { id:120, label:"com.google.android.gms.drive.metadata.StringMetadataField", link:"reference/com/google/android/gms/drive/metadata/StringMetadataField.html", type:"class", deprecated:"false" },
+ { id:121, label:"com.google.android.gms.drive.query", link:"reference/com/google/android/gms/drive/query/package-summary.html", type:"package", deprecated:"false" },
+ { id:122, label:"com.google.android.gms.drive.query.Filter", link:"reference/com/google/android/gms/drive/query/Filter.html", type:"class", deprecated:"false" },
+ { id:123, label:"com.google.android.gms.drive.query.Filters", link:"reference/com/google/android/gms/drive/query/Filters.html", type:"class", deprecated:"false" },
+ { id:124, label:"com.google.android.gms.drive.query.Query", link:"reference/com/google/android/gms/drive/query/Query.html", type:"class", deprecated:"false" },
+ { id:125, label:"com.google.android.gms.drive.query.Query.Builder", link:"reference/com/google/android/gms/drive/query/Query.Builder.html", type:"class", deprecated:"false" },
+ { id:126, label:"com.google.android.gms.drive.query.SearchableField", link:"reference/com/google/android/gms/drive/query/SearchableField.html", type:"class", deprecated:"false" },
+ { id:127, label:"com.google.android.gms.drive.widget", link:"reference/com/google/android/gms/drive/widget/package-summary.html", type:"package", deprecated:"false" },
+ { id:128, label:"com.google.android.gms.drive.widget.DataBufferAdapter", link:"reference/com/google/android/gms/drive/widget/DataBufferAdapter.html", type:"class", deprecated:"false" },
+ { id:129, label:"com.google.android.gms.games", link:"reference/com/google/android/gms/games/package-summary.html", type:"package", deprecated:"false" },
+ { id:130, label:"com.google.android.gms.games.Game", link:"reference/com/google/android/gms/games/Game.html", type:"class", deprecated:"false" },
+ { id:131, label:"com.google.android.gms.games.GameBuffer", link:"reference/com/google/android/gms/games/GameBuffer.html", type:"class", deprecated:"false" },
+ { id:132, label:"com.google.android.gms.games.GameEntity", link:"reference/com/google/android/gms/games/GameEntity.html", type:"class", deprecated:"false" },
+ { id:133, label:"com.google.android.gms.games.GamesActivityResultCodes", link:"reference/com/google/android/gms/games/GamesActivityResultCodes.html", type:"class", deprecated:"false" },
+ { id:134, label:"com.google.android.gms.games.GamesClient", link:"reference/com/google/android/gms/games/GamesClient.html", type:"class", deprecated:"false" },
+ { id:135, label:"com.google.android.gms.games.GamesClient.Builder", link:"reference/com/google/android/gms/games/GamesClient.Builder.html", type:"class", deprecated:"false" },
+ { id:136, label:"com.google.android.gms.games.OnGamesLoadedListener", link:"reference/com/google/android/gms/games/OnGamesLoadedListener.html", type:"class", deprecated:"false" },
+ { id:137, label:"com.google.android.gms.games.OnPlayersLoadedListener", link:"reference/com/google/android/gms/games/OnPlayersLoadedListener.html", type:"class", deprecated:"false" },
+ { id:138, label:"com.google.android.gms.games.OnSignOutCompleteListener", link:"reference/com/google/android/gms/games/OnSignOutCompleteListener.html", type:"class", deprecated:"false" },
+ { id:139, label:"com.google.android.gms.games.PageDirection", link:"reference/com/google/android/gms/games/PageDirection.html", type:"class", deprecated:"false" },
+ { id:140, label:"com.google.android.gms.games.Player", link:"reference/com/google/android/gms/games/Player.html", type:"class", deprecated:"false" },
+ { id:141, label:"com.google.android.gms.games.PlayerBuffer", link:"reference/com/google/android/gms/games/PlayerBuffer.html", type:"class", deprecated:"false" },
+ { id:142, label:"com.google.android.gms.games.PlayerEntity", link:"reference/com/google/android/gms/games/PlayerEntity.html", type:"class", deprecated:"false" },
+ { id:143, label:"com.google.android.gms.games.achievement", link:"reference/com/google/android/gms/games/achievement/package-summary.html", type:"package", deprecated:"false" },
+ { id:144, label:"com.google.android.gms.games.achievement.Achievement", link:"reference/com/google/android/gms/games/achievement/Achievement.html", type:"class", deprecated:"false" },
+ { id:145, label:"com.google.android.gms.games.achievement.AchievementBuffer", link:"reference/com/google/android/gms/games/achievement/AchievementBuffer.html", type:"class", deprecated:"false" },
+ { id:146, label:"com.google.android.gms.games.achievement.OnAchievementUpdatedListener", link:"reference/com/google/android/gms/games/achievement/OnAchievementUpdatedListener.html", type:"class", deprecated:"false" },
+ { id:147, label:"com.google.android.gms.games.achievement.OnAchievementsLoadedListener", link:"reference/com/google/android/gms/games/achievement/OnAchievementsLoadedListener.html", type:"class", deprecated:"false" },
+ { id:148, label:"com.google.android.gms.games.leaderboard", link:"reference/com/google/android/gms/games/leaderboard/package-summary.html", type:"package", deprecated:"false" },
+ { id:149, label:"com.google.android.gms.games.leaderboard.Leaderboard", link:"reference/com/google/android/gms/games/leaderboard/Leaderboard.html", type:"class", deprecated:"false" },
+ { id:150, label:"com.google.android.gms.games.leaderboard.LeaderboardBuffer", link:"reference/com/google/android/gms/games/leaderboard/LeaderboardBuffer.html", type:"class", deprecated:"false" },
+ { id:151, label:"com.google.android.gms.games.leaderboard.LeaderboardScore", link:"reference/com/google/android/gms/games/leaderboard/LeaderboardScore.html", type:"class", deprecated:"false" },
+ { id:152, label:"com.google.android.gms.games.leaderboard.LeaderboardScoreBuffer", link:"reference/com/google/android/gms/games/leaderboard/LeaderboardScoreBuffer.html", type:"class", deprecated:"false" },
+ { id:153, label:"com.google.android.gms.games.leaderboard.LeaderboardVariant", link:"reference/com/google/android/gms/games/leaderboard/LeaderboardVariant.html", type:"class", deprecated:"false" },
+ { id:154, label:"com.google.android.gms.games.leaderboard.OnLeaderboardMetadataLoadedListener", link:"reference/com/google/android/gms/games/leaderboard/OnLeaderboardMetadataLoadedListener.html", type:"class", deprecated:"false" },
+ { id:155, label:"com.google.android.gms.games.leaderboard.OnLeaderboardScoresLoadedListener", link:"reference/com/google/android/gms/games/leaderboard/OnLeaderboardScoresLoadedListener.html", type:"class", deprecated:"false" },
+ { id:156, label:"com.google.android.gms.games.leaderboard.OnPlayerLeaderboardScoreLoadedListener", link:"reference/com/google/android/gms/games/leaderboard/OnPlayerLeaderboardScoreLoadedListener.html", type:"class", deprecated:"false" },
+ { id:157, label:"com.google.android.gms.games.leaderboard.OnScoreSubmittedListener", link:"reference/com/google/android/gms/games/leaderboard/OnScoreSubmittedListener.html", type:"class", deprecated:"false" },
+ { id:158, label:"com.google.android.gms.games.leaderboard.SubmitScoreResult", link:"reference/com/google/android/gms/games/leaderboard/SubmitScoreResult.html", type:"class", deprecated:"false" },
+ { id:159, label:"com.google.android.gms.games.leaderboard.SubmitScoreResult.Result", link:"reference/com/google/android/gms/games/leaderboard/SubmitScoreResult.Result.html", type:"class", deprecated:"false" },
+ { id:160, label:"com.google.android.gms.games.multiplayer", link:"reference/com/google/android/gms/games/multiplayer/package-summary.html", type:"package", deprecated:"false" },
+ { id:161, label:"com.google.android.gms.games.multiplayer.Invitation", link:"reference/com/google/android/gms/games/multiplayer/Invitation.html", type:"class", deprecated:"false" },
+ { id:162, label:"com.google.android.gms.games.multiplayer.InvitationBuffer", link:"reference/com/google/android/gms/games/multiplayer/InvitationBuffer.html", type:"class", deprecated:"false" },
+ { id:163, label:"com.google.android.gms.games.multiplayer.InvitationEntity", link:"reference/com/google/android/gms/games/multiplayer/InvitationEntity.html", type:"class", deprecated:"false" },
+ { id:164, label:"com.google.android.gms.games.multiplayer.OnInvitationReceivedListener", link:"reference/com/google/android/gms/games/multiplayer/OnInvitationReceivedListener.html", type:"class", deprecated:"false" },
+ { id:165, label:"com.google.android.gms.games.multiplayer.OnInvitationsLoadedListener", link:"reference/com/google/android/gms/games/multiplayer/OnInvitationsLoadedListener.html", type:"class", deprecated:"false" },
+ { id:166, label:"com.google.android.gms.games.multiplayer.Participant", link:"reference/com/google/android/gms/games/multiplayer/Participant.html", type:"class", deprecated:"false" },
+ { id:167, label:"com.google.android.gms.games.multiplayer.ParticipantBuffer", link:"reference/com/google/android/gms/games/multiplayer/ParticipantBuffer.html", type:"class", deprecated:"false" },
+ { id:168, label:"com.google.android.gms.games.multiplayer.ParticipantEntity", link:"reference/com/google/android/gms/games/multiplayer/ParticipantEntity.html", type:"class", deprecated:"false" },
+ { id:169, label:"com.google.android.gms.games.multiplayer.ParticipantResult", link:"reference/com/google/android/gms/games/multiplayer/ParticipantResult.html", type:"class", deprecated:"false" },
+ { id:170, label:"com.google.android.gms.games.multiplayer.ParticipantUtils", link:"reference/com/google/android/gms/games/multiplayer/ParticipantUtils.html", type:"class", deprecated:"false" },
+ { id:171, label:"com.google.android.gms.games.multiplayer.Participatable", link:"reference/com/google/android/gms/games/multiplayer/Participatable.html", type:"class", deprecated:"false" },
+ { id:172, label:"com.google.android.gms.games.multiplayer.realtime", link:"reference/com/google/android/gms/games/multiplayer/realtime/package-summary.html", type:"package", deprecated:"false" },
+ { id:173, label:"com.google.android.gms.games.multiplayer.realtime.RealTimeMessage", link:"reference/com/google/android/gms/games/multiplayer/realtime/RealTimeMessage.html", type:"class", deprecated:"false" },
+ { id:174, label:"com.google.android.gms.games.multiplayer.realtime.RealTimeMessageReceivedListener", link:"reference/com/google/android/gms/games/multiplayer/realtime/RealTimeMessageReceivedListener.html", type:"class", deprecated:"false" },
+ { id:175, label:"com.google.android.gms.games.multiplayer.realtime.RealTimeReliableMessageSentListener", link:"reference/com/google/android/gms/games/multiplayer/realtime/RealTimeReliableMessageSentListener.html", type:"class", deprecated:"false" },
+ { id:176, label:"com.google.android.gms.games.multiplayer.realtime.RealTimeSocket", link:"reference/com/google/android/gms/games/multiplayer/realtime/RealTimeSocket.html", type:"class", deprecated:"false" },
+ { id:177, label:"com.google.android.gms.games.multiplayer.realtime.Room", link:"reference/com/google/android/gms/games/multiplayer/realtime/Room.html", type:"class", deprecated:"false" },
+ { id:178, label:"com.google.android.gms.games.multiplayer.realtime.RoomConfig", link:"reference/com/google/android/gms/games/multiplayer/realtime/RoomConfig.html", type:"class", deprecated:"false" },
+ { id:179, label:"com.google.android.gms.games.multiplayer.realtime.RoomConfig.Builder", link:"reference/com/google/android/gms/games/multiplayer/realtime/RoomConfig.Builder.html", type:"class", deprecated:"false" },
+ { id:180, label:"com.google.android.gms.games.multiplayer.realtime.RoomEntity", link:"reference/com/google/android/gms/games/multiplayer/realtime/RoomEntity.html", type:"class", deprecated:"false" },
+ { id:181, label:"com.google.android.gms.games.multiplayer.realtime.RoomStatusUpdateListener", link:"reference/com/google/android/gms/games/multiplayer/realtime/RoomStatusUpdateListener.html", type:"class", deprecated:"false" },
+ { id:182, label:"com.google.android.gms.games.multiplayer.realtime.RoomUpdateListener", link:"reference/com/google/android/gms/games/multiplayer/realtime/RoomUpdateListener.html", type:"class", deprecated:"false" },
+ { id:183, label:"com.google.android.gms.games.multiplayer.turnbased", link:"reference/com/google/android/gms/games/multiplayer/turnbased/package-summary.html", type:"package", deprecated:"false" },
+ { id:184, label:"com.google.android.gms.games.multiplayer.turnbased.LoadMatchesResponse", link:"reference/com/google/android/gms/games/multiplayer/turnbased/LoadMatchesResponse.html", type:"class", deprecated:"false" },
+ { id:185, label:"com.google.android.gms.games.multiplayer.turnbased.OnTurnBasedMatchCanceledListener", link:"reference/com/google/android/gms/games/multiplayer/turnbased/OnTurnBasedMatchCanceledListener.html", type:"class", deprecated:"false" },
+ { id:186, label:"com.google.android.gms.games.multiplayer.turnbased.OnTurnBasedMatchInitiatedListener", link:"reference/com/google/android/gms/games/multiplayer/turnbased/OnTurnBasedMatchInitiatedListener.html", type:"class", deprecated:"false" },
+ { id:187, label:"com.google.android.gms.games.multiplayer.turnbased.OnTurnBasedMatchLeftListener", link:"reference/com/google/android/gms/games/multiplayer/turnbased/OnTurnBasedMatchLeftListener.html", type:"class", deprecated:"false" },
+ { id:188, label:"com.google.android.gms.games.multiplayer.turnbased.OnTurnBasedMatchLoadedListener", link:"reference/com/google/android/gms/games/multiplayer/turnbased/OnTurnBasedMatchLoadedListener.html", type:"class", deprecated:"false" },
+ { id:189, label:"com.google.android.gms.games.multiplayer.turnbased.OnTurnBasedMatchUpdateReceivedListener", link:"reference/com/google/android/gms/games/multiplayer/turnbased/OnTurnBasedMatchUpdateReceivedListener.html", type:"class", deprecated:"false" },
+ { id:190, label:"com.google.android.gms.games.multiplayer.turnbased.OnTurnBasedMatchUpdatedListener", link:"reference/com/google/android/gms/games/multiplayer/turnbased/OnTurnBasedMatchUpdatedListener.html", type:"class", deprecated:"false" },
+ { id:191, label:"com.google.android.gms.games.multiplayer.turnbased.OnTurnBasedMatchesLoadedListener", link:"reference/com/google/android/gms/games/multiplayer/turnbased/OnTurnBasedMatchesLoadedListener.html", type:"class", deprecated:"false" },
+ { id:192, label:"com.google.android.gms.games.multiplayer.turnbased.TurnBasedMatch", link:"reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatch.html", type:"class", deprecated:"false" },
+ { id:193, label:"com.google.android.gms.games.multiplayer.turnbased.TurnBasedMatchBuffer", link:"reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatchBuffer.html", type:"class", deprecated:"false" },
+ { id:194, label:"com.google.android.gms.games.multiplayer.turnbased.TurnBasedMatchConfig", link:"reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatchConfig.html", type:"class", deprecated:"false" },
+ { id:195, label:"com.google.android.gms.games.multiplayer.turnbased.TurnBasedMatchConfig.Builder", link:"reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatchConfig.Builder.html", type:"class", deprecated:"false" },
+ { id:196, label:"com.google.android.gms.games.multiplayer.turnbased.TurnBasedMatchEntity", link:"reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMatchEntity.html", type:"class", deprecated:"false" },
+ { id:197, label:"com.google.android.gms.games.multiplayer.turnbased.TurnBasedMultiplayerListener", link:"reference/com/google/android/gms/games/multiplayer/turnbased/TurnBasedMultiplayerListener.html", type:"class", deprecated:"false" },
+ { id:198, label:"com.google.android.gms.gcm", link:"reference/com/google/android/gms/gcm/package-summary.html", type:"package", deprecated:"false" },
+ { id:199, label:"com.google.android.gms.gcm.GoogleCloudMessaging", link:"reference/com/google/android/gms/gcm/GoogleCloudMessaging.html", type:"class", deprecated:"false" },
+ { id:200, label:"com.google.android.gms.location", link:"reference/com/google/android/gms/location/package-summary.html", type:"package", deprecated:"false" },
+ { id:201, label:"com.google.android.gms.location.ActivityRecognitionClient", link:"reference/com/google/android/gms/location/ActivityRecognitionClient.html", type:"class", deprecated:"false" },
+ { id:202, label:"com.google.android.gms.location.ActivityRecognitionResult", link:"reference/com/google/android/gms/location/ActivityRecognitionResult.html", type:"class", deprecated:"false" },
+ { id:203, label:"com.google.android.gms.location.DetectedActivity", link:"reference/com/google/android/gms/location/DetectedActivity.html", type:"class", deprecated:"false" },
+ { id:204, label:"com.google.android.gms.location.Geofence", link:"reference/com/google/android/gms/location/Geofence.html", type:"class", deprecated:"false" },
+ { id:205, label:"com.google.android.gms.location.Geofence.Builder", link:"reference/com/google/android/gms/location/Geofence.Builder.html", type:"class", deprecated:"false" },
+ { id:206, label:"com.google.android.gms.location.LocationClient", link:"reference/com/google/android/gms/location/LocationClient.html", type:"class", deprecated:"false" },
+ { id:207, label:"com.google.android.gms.location.LocationClient.OnAddGeofencesResultListener", link:"reference/com/google/android/gms/location/LocationClient.OnAddGeofencesResultListener.html", type:"class", deprecated:"false" },
+ { id:208, label:"com.google.android.gms.location.LocationClient.OnRemoveGeofencesResultListener", link:"reference/com/google/android/gms/location/LocationClient.OnRemoveGeofencesResultListener.html", type:"class", deprecated:"false" },
+ { id:209, label:"com.google.android.gms.location.LocationListener", link:"reference/com/google/android/gms/location/LocationListener.html", type:"class", deprecated:"false" },
+ { id:210, label:"com.google.android.gms.location.LocationRequest", link:"reference/com/google/android/gms/location/LocationRequest.html", type:"class", deprecated:"false" },
+ { id:211, label:"com.google.android.gms.location.LocationStatusCodes", link:"reference/com/google/android/gms/location/LocationStatusCodes.html", type:"class", deprecated:"false" },
+ { id:212, label:"com.google.android.gms.maps", link:"reference/com/google/android/gms/maps/package-summary.html", type:"package", deprecated:"false" },
+ { id:213, label:"com.google.android.gms.maps.CameraUpdate", link:"reference/com/google/android/gms/maps/CameraUpdate.html", type:"class", deprecated:"false" },
+ { id:214, label:"com.google.android.gms.maps.CameraUpdateFactory", link:"reference/com/google/android/gms/maps/CameraUpdateFactory.html", type:"class", deprecated:"false" },
+ { id:215, label:"com.google.android.gms.maps.GoogleMap", link:"reference/com/google/android/gms/maps/GoogleMap.html", type:"class", deprecated:"false" },
+ { id:216, label:"com.google.android.gms.maps.GoogleMap.CancelableCallback", link:"reference/com/google/android/gms/maps/GoogleMap.CancelableCallback.html", type:"class", deprecated:"false" },
+ { id:217, label:"com.google.android.gms.maps.GoogleMap.InfoWindowAdapter", link:"reference/com/google/android/gms/maps/GoogleMap.InfoWindowAdapter.html", type:"class", deprecated:"false" },
+ { id:218, label:"com.google.android.gms.maps.GoogleMap.OnCameraChangeListener", link:"reference/com/google/android/gms/maps/GoogleMap.OnCameraChangeListener.html", type:"class", deprecated:"false" },
+ { id:219, label:"com.google.android.gms.maps.GoogleMap.OnInfoWindowClickListener", link:"reference/com/google/android/gms/maps/GoogleMap.OnInfoWindowClickListener.html", type:"class", deprecated:"false" },
+ { id:220, label:"com.google.android.gms.maps.GoogleMap.OnMapClickListener", link:"reference/com/google/android/gms/maps/GoogleMap.OnMapClickListener.html", type:"class", deprecated:"false" },
+ { id:221, label:"com.google.android.gms.maps.GoogleMap.OnMapLoadedCallback", link:"reference/com/google/android/gms/maps/GoogleMap.OnMapLoadedCallback.html", type:"class", deprecated:"false" },
+ { id:222, label:"com.google.android.gms.maps.GoogleMap.OnMapLongClickListener", link:"reference/com/google/android/gms/maps/GoogleMap.OnMapLongClickListener.html", type:"class", deprecated:"false" },
+ { id:223, label:"com.google.android.gms.maps.GoogleMap.OnMarkerClickListener", link:"reference/com/google/android/gms/maps/GoogleMap.OnMarkerClickListener.html", type:"class", deprecated:"false" },
+ { id:224, label:"com.google.android.gms.maps.GoogleMap.OnMarkerDragListener", link:"reference/com/google/android/gms/maps/GoogleMap.OnMarkerDragListener.html", type:"class", deprecated:"false" },
+ { id:225, label:"com.google.android.gms.maps.GoogleMap.OnMyLocationButtonClickListener", link:"reference/com/google/android/gms/maps/GoogleMap.OnMyLocationButtonClickListener.html", type:"class", deprecated:"false" },
+ { id:226, label:"com.google.android.gms.maps.GoogleMap.OnMyLocationChangeListener", link:"reference/com/google/android/gms/maps/GoogleMap.OnMyLocationChangeListener.html", type:"class", deprecated:"true" },
+ { id:227, label:"com.google.android.gms.maps.GoogleMap.SnapshotReadyCallback", link:"reference/com/google/android/gms/maps/GoogleMap.SnapshotReadyCallback.html", type:"class", deprecated:"false" },
+ { id:228, label:"com.google.android.gms.maps.GoogleMapOptions", link:"reference/com/google/android/gms/maps/GoogleMapOptions.html", type:"class", deprecated:"false" },
+ { id:229, label:"com.google.android.gms.maps.LocationSource", link:"reference/com/google/android/gms/maps/LocationSource.html", type:"class", deprecated:"false" },
+ { id:230, label:"com.google.android.gms.maps.LocationSource.OnLocationChangedListener", link:"reference/com/google/android/gms/maps/LocationSource.OnLocationChangedListener.html", type:"class", deprecated:"false" },
+ { id:231, label:"com.google.android.gms.maps.MapFragment", link:"reference/com/google/android/gms/maps/MapFragment.html", type:"class", deprecated:"false" },
+ { id:232, label:"com.google.android.gms.maps.MapView", link:"reference/com/google/android/gms/maps/MapView.html", type:"class", deprecated:"false" },
+ { id:233, label:"com.google.android.gms.maps.MapsInitializer", link:"reference/com/google/android/gms/maps/MapsInitializer.html", type:"class", deprecated:"false" },
+ { id:234, label:"com.google.android.gms.maps.Projection", link:"reference/com/google/android/gms/maps/Projection.html", type:"class", deprecated:"false" },
+ { id:235, label:"com.google.android.gms.maps.SupportMapFragment", link:"reference/com/google/android/gms/maps/SupportMapFragment.html", type:"class", deprecated:"false" },
+ { id:236, label:"com.google.android.gms.maps.UiSettings", link:"reference/com/google/android/gms/maps/UiSettings.html", type:"class", deprecated:"false" },
+ { id:237, label:"com.google.android.gms.maps.model", link:"reference/com/google/android/gms/maps/model/package-summary.html", type:"package", deprecated:"false" },
+ { id:238, label:"com.google.android.gms.maps.model.BitmapDescriptor", link:"reference/com/google/android/gms/maps/model/BitmapDescriptor.html", type:"class", deprecated:"false" },
+ { id:239, label:"com.google.android.gms.maps.model.BitmapDescriptorFactory", link:"reference/com/google/android/gms/maps/model/BitmapDescriptorFactory.html", type:"class", deprecated:"false" },
+ { id:240, label:"com.google.android.gms.maps.model.CameraPosition", link:"reference/com/google/android/gms/maps/model/CameraPosition.html", type:"class", deprecated:"false" },
+ { id:241, label:"com.google.android.gms.maps.model.CameraPosition.Builder", link:"reference/com/google/android/gms/maps/model/CameraPosition.Builder.html", type:"class", deprecated:"false" },
+ { id:242, label:"com.google.android.gms.maps.model.Circle", link:"reference/com/google/android/gms/maps/model/Circle.html", type:"class", deprecated:"false" },
+ { id:243, label:"com.google.android.gms.maps.model.CircleOptions", link:"reference/com/google/android/gms/maps/model/CircleOptions.html", type:"class", deprecated:"false" },
+ { id:244, label:"com.google.android.gms.maps.model.GroundOverlay", link:"reference/com/google/android/gms/maps/model/GroundOverlay.html", type:"class", deprecated:"false" },
+ { id:245, label:"com.google.android.gms.maps.model.GroundOverlayOptions", link:"reference/com/google/android/gms/maps/model/GroundOverlayOptions.html", type:"class", deprecated:"false" },
+ { id:246, label:"com.google.android.gms.maps.model.LatLng", link:"reference/com/google/android/gms/maps/model/LatLng.html", type:"class", deprecated:"false" },
+ { id:247, label:"com.google.android.gms.maps.model.LatLngBounds", link:"reference/com/google/android/gms/maps/model/LatLngBounds.html", type:"class", deprecated:"false" },
+ { id:248, label:"com.google.android.gms.maps.model.LatLngBounds.Builder", link:"reference/com/google/android/gms/maps/model/LatLngBounds.Builder.html", type:"class", deprecated:"false" },
+ { id:249, label:"com.google.android.gms.maps.model.Marker", link:"reference/com/google/android/gms/maps/model/Marker.html", type:"class", deprecated:"false" },
+ { id:250, label:"com.google.android.gms.maps.model.MarkerOptions", link:"reference/com/google/android/gms/maps/model/MarkerOptions.html", type:"class", deprecated:"false" },
+ { id:251, label:"com.google.android.gms.maps.model.Polygon", link:"reference/com/google/android/gms/maps/model/Polygon.html", type:"class", deprecated:"false" },
+ { id:252, label:"com.google.android.gms.maps.model.PolygonOptions", link:"reference/com/google/android/gms/maps/model/PolygonOptions.html", type:"class", deprecated:"false" },
+ { id:253, label:"com.google.android.gms.maps.model.Polyline", link:"reference/com/google/android/gms/maps/model/Polyline.html", type:"class", deprecated:"false" },
+ { id:254, label:"com.google.android.gms.maps.model.PolylineOptions", link:"reference/com/google/android/gms/maps/model/PolylineOptions.html", type:"class", deprecated:"false" },
+ { id:255, label:"com.google.android.gms.maps.model.RuntimeRemoteException", link:"reference/com/google/android/gms/maps/model/RuntimeRemoteException.html", type:"class", deprecated:"false" },
+ { id:256, label:"com.google.android.gms.maps.model.Tile", link:"reference/com/google/android/gms/maps/model/Tile.html", type:"class", deprecated:"false" },
+ { id:257, label:"com.google.android.gms.maps.model.TileOverlay", link:"reference/com/google/android/gms/maps/model/TileOverlay.html", type:"class", deprecated:"false" },
+ { id:258, label:"com.google.android.gms.maps.model.TileOverlayOptions", link:"reference/com/google/android/gms/maps/model/TileOverlayOptions.html", type:"class", deprecated:"false" },
+ { id:259, label:"com.google.android.gms.maps.model.TileProvider", link:"reference/com/google/android/gms/maps/model/TileProvider.html", type:"class", deprecated:"false" },
+ { id:260, label:"com.google.android.gms.maps.model.UrlTileProvider", link:"reference/com/google/android/gms/maps/model/UrlTileProvider.html", type:"class", deprecated:"false" },
+ { id:261, label:"com.google.android.gms.maps.model.VisibleRegion", link:"reference/com/google/android/gms/maps/model/VisibleRegion.html", type:"class", deprecated:"false" },
+ { id:262, label:"com.google.android.gms.panorama", link:"reference/com/google/android/gms/panorama/package-summary.html", type:"package", deprecated:"false" },
+ { id:263, label:"com.google.android.gms.panorama.PanoramaClient", link:"reference/com/google/android/gms/panorama/PanoramaClient.html", type:"class", deprecated:"false" },
+ { id:264, label:"com.google.android.gms.panorama.PanoramaClient.OnPanoramaInfoLoadedListener", link:"reference/com/google/android/gms/panorama/PanoramaClient.OnPanoramaInfoLoadedListener.html", type:"class", deprecated:"false" },
+ { id:265, label:"com.google.android.gms.plus", link:"reference/com/google/android/gms/plus/package-summary.html", type:"package", deprecated:"false" },
+ { id:266, label:"com.google.android.gms.plus.PlusClient", link:"reference/com/google/android/gms/plus/PlusClient.html", type:"class", deprecated:"false" },
+ { id:267, label:"com.google.android.gms.plus.PlusClient.Builder", link:"reference/com/google/android/gms/plus/PlusClient.Builder.html", type:"class", deprecated:"false" },
+ { id:268, label:"com.google.android.gms.plus.PlusClient.OnAccessRevokedListener", link:"reference/com/google/android/gms/plus/PlusClient.OnAccessRevokedListener.html", type:"class", deprecated:"false" },
+ { id:269, label:"com.google.android.gms.plus.PlusClient.OnMomentsLoadedListener", link:"reference/com/google/android/gms/plus/PlusClient.OnMomentsLoadedListener.html", type:"class", deprecated:"false" },
+ { id:270, label:"com.google.android.gms.plus.PlusClient.OnPeopleLoadedListener", link:"reference/com/google/android/gms/plus/PlusClient.OnPeopleLoadedListener.html", type:"class", deprecated:"false" },
+ { id:271, label:"com.google.android.gms.plus.PlusClient.OrderBy", link:"reference/com/google/android/gms/plus/PlusClient.OrderBy.html", type:"class", deprecated:"false" },
+ { id:272, label:"com.google.android.gms.plus.PlusOneButton", link:"reference/com/google/android/gms/plus/PlusOneButton.html", type:"class", deprecated:"false" },
+ { id:273, label:"com.google.android.gms.plus.PlusOneButton.DefaultOnPlusOneClickListener", link:"reference/com/google/android/gms/plus/PlusOneButton.DefaultOnPlusOneClickListener.html", type:"class", deprecated:"false" },
+ { id:274, label:"com.google.android.gms.plus.PlusOneButton.OnPlusOneClickListener", link:"reference/com/google/android/gms/plus/PlusOneButton.OnPlusOneClickListener.html", type:"class", deprecated:"false" },
+ { id:275, label:"com.google.android.gms.plus.PlusOneButtonWithPopup", link:"reference/com/google/android/gms/plus/PlusOneButtonWithPopup.html", type:"class", deprecated:"false" },
+ { id:276, label:"com.google.android.gms.plus.PlusOneDummyView", link:"reference/com/google/android/gms/plus/PlusOneDummyView.html", type:"class", deprecated:"false" },
+ { id:277, label:"com.google.android.gms.plus.PlusShare", link:"reference/com/google/android/gms/plus/PlusShare.html", type:"class", deprecated:"false" },
+ { id:278, label:"com.google.android.gms.plus.PlusShare.Builder", link:"reference/com/google/android/gms/plus/PlusShare.Builder.html", type:"class", deprecated:"false" },
+ { id:279, label:"com.google.android.gms.plus.model.moments", link:"reference/com/google/android/gms/plus/model/moments/package-summary.html", type:"package", deprecated:"false" },
+ { id:280, label:"com.google.android.gms.plus.model.moments.ItemScope", link:"reference/com/google/android/gms/plus/model/moments/ItemScope.html", type:"class", deprecated:"false" },
+ { id:281, label:"com.google.android.gms.plus.model.moments.ItemScope.Builder", link:"reference/com/google/android/gms/plus/model/moments/ItemScope.Builder.html", type:"class", deprecated:"false" },
+ { id:282, label:"com.google.android.gms.plus.model.moments.Moment", link:"reference/com/google/android/gms/plus/model/moments/Moment.html", type:"class", deprecated:"false" },
+ { id:283, label:"com.google.android.gms.plus.model.moments.Moment.Builder", link:"reference/com/google/android/gms/plus/model/moments/Moment.Builder.html", type:"class", deprecated:"false" },
+ { id:284, label:"com.google.android.gms.plus.model.moments.MomentBuffer", link:"reference/com/google/android/gms/plus/model/moments/MomentBuffer.html", type:"class", deprecated:"false" },
+ { id:285, label:"com.google.android.gms.plus.model.people", link:"reference/com/google/android/gms/plus/model/people/package-summary.html", type:"package", deprecated:"false" },
+ { id:286, label:"com.google.android.gms.plus.model.people.Person", link:"reference/com/google/android/gms/plus/model/people/Person.html", type:"class", deprecated:"false" },
+ { id:287, label:"com.google.android.gms.plus.model.people.Person.AgeRange", link:"reference/com/google/android/gms/plus/model/people/Person.AgeRange.html", type:"class", deprecated:"false" },
+ { id:288, label:"com.google.android.gms.plus.model.people.Person.Cover", link:"reference/com/google/android/gms/plus/model/people/Person.Cover.html", type:"class", deprecated:"false" },
+ { id:289, label:"com.google.android.gms.plus.model.people.Person.Cover.CoverInfo", link:"reference/com/google/android/gms/plus/model/people/Person.Cover.CoverInfo.html", type:"class", deprecated:"false" },
+ { id:290, label:"com.google.android.gms.plus.model.people.Person.Cover.CoverPhoto", link:"reference/com/google/android/gms/plus/model/people/Person.Cover.CoverPhoto.html", type:"class", deprecated:"false" },
+ { id:291, label:"com.google.android.gms.plus.model.people.Person.Cover.Layout", link:"reference/com/google/android/gms/plus/model/people/Person.Cover.Layout.html", type:"class", deprecated:"false" },
+ { id:292, label:"com.google.android.gms.plus.model.people.Person.Gender", link:"reference/com/google/android/gms/plus/model/people/Person.Gender.html", type:"class", deprecated:"false" },
+ { id:293, label:"com.google.android.gms.plus.model.people.Person.Image", link:"reference/com/google/android/gms/plus/model/people/Person.Image.html", type:"class", deprecated:"false" },
+ { id:294, label:"com.google.android.gms.plus.model.people.Person.Name", link:"reference/com/google/android/gms/plus/model/people/Person.Name.html", type:"class", deprecated:"false" },
+ { id:295, label:"com.google.android.gms.plus.model.people.Person.ObjectType", link:"reference/com/google/android/gms/plus/model/people/Person.ObjectType.html", type:"class", deprecated:"false" },
+ { id:296, label:"com.google.android.gms.plus.model.people.Person.Organizations", link:"reference/com/google/android/gms/plus/model/people/Person.Organizations.html", type:"class", deprecated:"false" },
+ { id:297, label:"com.google.android.gms.plus.model.people.Person.Organizations.Type", link:"reference/com/google/android/gms/plus/model/people/Person.Organizations.Type.html", type:"class", deprecated:"false" },
+ { id:298, label:"com.google.android.gms.plus.model.people.Person.PlacesLived", link:"reference/com/google/android/gms/plus/model/people/Person.PlacesLived.html", type:"class", deprecated:"false" },
+ { id:299, label:"com.google.android.gms.plus.model.people.Person.RelationshipStatus", link:"reference/com/google/android/gms/plus/model/people/Person.RelationshipStatus.html", type:"class", deprecated:"false" },
+ { id:300, label:"com.google.android.gms.plus.model.people.Person.Urls", link:"reference/com/google/android/gms/plus/model/people/Person.Urls.html", type:"class", deprecated:"false" },
+ { id:301, label:"com.google.android.gms.plus.model.people.Person.Urls.Type", link:"reference/com/google/android/gms/plus/model/people/Person.Urls.Type.html", type:"class", deprecated:"false" },
+ { id:302, label:"com.google.android.gms.plus.model.people.PersonBuffer", link:"reference/com/google/android/gms/plus/model/people/PersonBuffer.html", type:"class", deprecated:"false" },
+ { id:303, label:"com.google.android.gms.wallet", link:"reference/com/google/android/gms/wallet/package-summary.html", type:"package", deprecated:"false" },
+ { id:304, label:"com.google.android.gms.wallet.Address", link:"reference/com/google/android/gms/wallet/Address.html", type:"class", deprecated:"false" },
+ { id:305, label:"com.google.android.gms.wallet.Cart", link:"reference/com/google/android/gms/wallet/Cart.html", type:"class", deprecated:"false" },
+ { id:306, label:"com.google.android.gms.wallet.Cart.Builder", link:"reference/com/google/android/gms/wallet/Cart.Builder.html", type:"class", deprecated:"false" },
+ { id:307, label:"com.google.android.gms.wallet.CountrySpecification", link:"reference/com/google/android/gms/wallet/CountrySpecification.html", type:"class", deprecated:"false" },
+ { id:308, label:"com.google.android.gms.wallet.EnableWalletOptimizationReceiver", link:"reference/com/google/android/gms/wallet/EnableWalletOptimizationReceiver.html", type:"class", deprecated:"false" },
+ { id:309, label:"com.google.android.gms.wallet.FullWallet", link:"reference/com/google/android/gms/wallet/FullWallet.html", type:"class", deprecated:"false" },
+ { id:310, label:"com.google.android.gms.wallet.FullWalletRequest", link:"reference/com/google/android/gms/wallet/FullWalletRequest.html", type:"class", deprecated:"false" },
+ { id:311, label:"com.google.android.gms.wallet.FullWalletRequest.Builder", link:"reference/com/google/android/gms/wallet/FullWalletRequest.Builder.html", type:"class", deprecated:"false" },
+ { id:312, label:"com.google.android.gms.wallet.LineItem", link:"reference/com/google/android/gms/wallet/LineItem.html", type:"class", deprecated:"false" },
+ { id:313, label:"com.google.android.gms.wallet.LineItem.Builder", link:"reference/com/google/android/gms/wallet/LineItem.Builder.html", type:"class", deprecated:"false" },
+ { id:314, label:"com.google.android.gms.wallet.LineItem.Role", link:"reference/com/google/android/gms/wallet/LineItem.Role.html", type:"class", deprecated:"false" },
+ { id:315, label:"com.google.android.gms.wallet.LoyaltyWalletObject", link:"reference/com/google/android/gms/wallet/LoyaltyWalletObject.html", type:"class", deprecated:"false" },
+ { id:316, label:"com.google.android.gms.wallet.MaskedWallet", link:"reference/com/google/android/gms/wallet/MaskedWallet.html", type:"class", deprecated:"false" },
+ { id:317, label:"com.google.android.gms.wallet.MaskedWalletRequest", link:"reference/com/google/android/gms/wallet/MaskedWalletRequest.html", type:"class", deprecated:"false" },
+ { id:318, label:"com.google.android.gms.wallet.MaskedWalletRequest.Builder", link:"reference/com/google/android/gms/wallet/MaskedWalletRequest.Builder.html", type:"class", deprecated:"false" },
+ { id:319, label:"com.google.android.gms.wallet.NotifyTransactionStatusRequest", link:"reference/com/google/android/gms/wallet/NotifyTransactionStatusRequest.html", type:"class", deprecated:"false" },
+ { id:320, label:"com.google.android.gms.wallet.NotifyTransactionStatusRequest.Builder", link:"reference/com/google/android/gms/wallet/NotifyTransactionStatusRequest.Builder.html", type:"class", deprecated:"false" },
+ { id:321, label:"com.google.android.gms.wallet.NotifyTransactionStatusRequest.Status", link:"reference/com/google/android/gms/wallet/NotifyTransactionStatusRequest.Status.html", type:"class", deprecated:"false" },
+ { id:322, label:"com.google.android.gms.wallet.NotifyTransactionStatusRequest.Status.Error", link:"reference/com/google/android/gms/wallet/NotifyTransactionStatusRequest.Status.Error.html", type:"class", deprecated:"false" },
+ { id:323, label:"com.google.android.gms.wallet.OfferWalletObject", link:"reference/com/google/android/gms/wallet/OfferWalletObject.html", type:"class", deprecated:"false" },
+ { id:324, label:"com.google.android.gms.wallet.ProxyCard", link:"reference/com/google/android/gms/wallet/ProxyCard.html", type:"class", deprecated:"false" },
+ { id:325, label:"com.google.android.gms.wallet.WalletClient", link:"reference/com/google/android/gms/wallet/WalletClient.html", type:"class", deprecated:"false" },
+ { id:326, label:"com.google.android.gms.wallet.WalletConstants", link:"reference/com/google/android/gms/wallet/WalletConstants.html", type:"class", deprecated:"false" }
];
diff --git a/docs/html/robots.txt b/docs/html/robots.txt
index 503e4b1..f522220 100644
--- a/docs/html/robots.txt
+++ b/docs/html/robots.txt
@@ -14,4 +14,5 @@
Disallow: /shareables/
Disallow: /guide/tutorials/
Disallow: /guide/samples/
+Disallow: /community/
Sitemap: http://developer.android.com/sitemap.txt
diff --git a/docs/html/samples/samples_toc.cs b/docs/html/samples/samples_toc.cs
index 18f7034..2007f22 100644
--- a/docs/html/samples/samples_toc.cs
+++ b/docs/html/samples/samples_toc.cs
@@ -1,6 +1,4 @@
-
<ul id="nav" class="samples-nav">
-
<script type="text/javascript">
<!--
buildToggleLists();
@@ -8,11 +6,9 @@
//-->
</script>
<li class="nav-section">
- <div class="nav-section-header empty"><a href="/samples/index.html">
+ <div class="nav-section-header empty"><a href="<?cs var:toroot ?>samples/index.html">
<span class="en">About the Samples</span></a>
</div>
</li>
-
-
- <li class="nav-section"><div class="nav-section-header"><a href="/samples/background.html" title="Background">Background</a></div><ul><li class="nav-section"><div class="nav-section-header"><a href="/samples/repeatingAlarm/index.html" title="repeatingAlarm">repeatingAlarm</a></div><ul><li><a href="/samples/repeatingAlarm/AndroidManifest.html" title="AndroidManifest.xml">AndroidManifest.xml</a></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="res">res/</a></div><ul><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-hdpi">drawable-hdpi/</a></div><ul><li><a href="/samples/repeatingAlarm/res/drawable-hdpi/ic_launcher.html" title="ic_launcher.png">ic_launcher.png</a></li><li><a href="/samples/repeatingAlarm/res/drawable-hdpi/tile.9.html" title="tile.9.png">tile.9.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-mdpi">drawable-mdpi/</a></div><ul><li><a href="/samples/repeatingAlarm/res/drawable-mdpi/ic_launcher.html" title="ic_launcher.png">ic_launcher.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-xhdpi">drawable-xhdpi/</a></div><ul><li><a href="/samples/repeatingAlarm/res/drawable-xhdpi/ic_launcher.html" title="ic_launcher.png">ic_launcher.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-xxhdpi">drawable-xxhdpi/</a></div><ul><li><a href="/samples/repeatingAlarm/res/drawable-xxhdpi/ic_launcher.html" title="ic_launcher.png">ic_launcher.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="layout">layout/</a></div><ul><li><a href="/samples/repeatingAlarm/res/layout/activity_main.html" title="activity_main.xml">activity_main.xml</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="menu">menu/</a></div><ul><li><a href="/samples/repeatingAlarm/res/menu/main.html" title="main.xml">main.xml</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="values">values/</a></div><ul><li><a href="/samples/repeatingAlarm/res/values/base-strings.html" title="base-strings.xml">base-strings.xml</a></li><li><a href="/samples/repeatingAlarm/res/values/dimens.html" title="dimens.xml">dimens.xml</a></li><li><a href="/samples/repeatingAlarm/res/values/strings.html" title="strings.xml">strings.xml</a></li><li><a href="/samples/repeatingAlarm/res/values/styles.html" title="styles.xml">styles.xml</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="values-sw600dp">values-sw600dp/</a></div><ul><li><a href="/samples/repeatingAlarm/res/values-sw600dp/dimens.html" title="dimens.xml">dimens.xml</a></li><li><a href="/samples/repeatingAlarm/res/values-sw600dp/styles.html" title="styles.xml">styles.xml</a></li></ul></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="src">src/</a></div><ul><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="com.example.android.common">com.example.android.common/</a></div><ul><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="activities">activities/</a></div><ul><li><a href="/samples/repeatingAlarm/src/com.example.android.common/activities/SampleActivityBase.html" title="SampleActivityBase.java">SampleActivityBase.java</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="logger">logger/</a></div><ul><li><a href="/samples/repeatingAlarm/src/com.example.android.common/logger/Log.html" title="Log.java">Log.java</a></li><li><a href="/samples/repeatingAlarm/src/com.example.android.common/logger/LogFragment.html" title="LogFragment.java">LogFragment.java</a></li><li><a href="/samples/repeatingAlarm/src/com.example.android.common/logger/LogNode.html" title="LogNode.java">LogNode.java</a></li><li><a href="/samples/repeatingAlarm/src/com.example.android.common/logger/LogView.html" title="LogView.java">LogView.java</a></li><li><a href="/samples/repeatingAlarm/src/com.example.android.common/logger/LogWrapper.html" title="LogWrapper.java">LogWrapper.java</a></li><li><a href="/samples/repeatingAlarm/src/com.example.android.common/logger/MessageOnlyLogFilter.html" title="MessageOnlyLogFilter.java">MessageOnlyLogFilter.java</a></li></ul></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="com.example.android.repeatingalarm">com.example.android.repeatingalarm/</a></div><ul><li><a href="/samples/repeatingAlarm/src/com.example.android.repeatingalarm/MainActivity.html" title="MainActivity.java">MainActivity.java</a></li><li><a href="/samples/repeatingAlarm/src/com.example.android.repeatingalarm/RepeatingAlarmFragment.html" title="RepeatingAlarmFragment.java">RepeatingAlarmFragment.java</a></li></ul></li></ul></li></ul></li></ul></li><li class="nav-section"><div class="nav-section-header"><a href="/samples/connectivity.html" title="Connectivity">Connectivity</a></div><ul><li class="nav-section"><div class="nav-section-header"><a href="/samples/BluetoothLeGatt/index.html" title="BluetoothLeGatt">BluetoothLeGatt</a></div><ul><li><a href="/samples/BluetoothLeGatt/AndroidManifest.html" title="AndroidManifest.xml">AndroidManifest.xml</a></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="res">res/</a></div><ul><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-hdpi">drawable-hdpi/</a></div><ul><li><a href="/samples/BluetoothLeGatt/res/drawable-hdpi/ic_launcher.html" title="ic_launcher.png">ic_launcher.png</a></li><li><a href="/samples/BluetoothLeGatt/res/drawable-hdpi/tile.9.html" title="tile.9.png">tile.9.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-mdpi">drawable-mdpi/</a></div><ul><li><a href="/samples/BluetoothLeGatt/res/drawable-mdpi/ic_launcher.html" title="ic_launcher.png">ic_launcher.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-xhdpi">drawable-xhdpi/</a></div><ul><li><a href="/samples/BluetoothLeGatt/res/drawable-xhdpi/ic_launcher.html" title="ic_launcher.png">ic_launcher.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-xxhdpi">drawable-xxhdpi/</a></div><ul><li><a href="/samples/BluetoothLeGatt/res/drawable-xxhdpi/ic_launcher.html" title="ic_launcher.png">ic_launcher.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="layout">layout/</a></div><ul><li><a href="/samples/BluetoothLeGatt/res/layout/actionbar_indeterminate_progress.html" title="actionbar_indeterminate_progress.xml">actionbar_indeterminate_progress.xml</a></li><li><a href="/samples/BluetoothLeGatt/res/layout/activity_main.html" title="activity_main.xml">activity_main.xml</a></li><li><a href="/samples/BluetoothLeGatt/res/layout/gatt_services_characteristics.html" title="gatt_services_characteristics.xml">gatt_services_characteristics.xml</a></li><li><a href="/samples/BluetoothLeGatt/res/layout/listitem_device.html" title="listitem_device.xml">listitem_device.xml</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="menu">menu/</a></div><ul><li><a href="/samples/BluetoothLeGatt/res/menu/gatt_services.html" title="gatt_services.xml">gatt_services.xml</a></li><li><a href="/samples/BluetoothLeGatt/res/menu/main.html" title="main.xml">main.xml</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="values">values/</a></div><ul><li><a href="/samples/BluetoothLeGatt/res/values/base-strings.html" title="base-strings.xml">base-strings.xml</a></li><li><a href="/samples/BluetoothLeGatt/res/values/dimens.html" title="dimens.xml">dimens.xml</a></li><li><a href="/samples/BluetoothLeGatt/res/values/strings.html" title="strings.xml">strings.xml</a></li><li><a href="/samples/BluetoothLeGatt/res/values/styles.html" title="styles.xml">styles.xml</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="values-sw600dp">values-sw600dp/</a></div><ul><li><a href="/samples/BluetoothLeGatt/res/values-sw600dp/dimens.html" title="dimens.xml">dimens.xml</a></li><li><a href="/samples/BluetoothLeGatt/res/values-sw600dp/styles.html" title="styles.xml">styles.xml</a></li></ul></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="src">src/</a></div><ul><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="com.example.android.bluetoothlegatt">com.example.android.bluetoothlegatt/</a></div><ul><li><a href="/samples/BluetoothLeGatt/src/com.example.android.bluetoothlegatt/BluetoothLeService.html" title="BluetoothLeService.java">BluetoothLeService.java</a></li><li><a href="/samples/BluetoothLeGatt/src/com.example.android.bluetoothlegatt/DeviceControlActivity.html" title="DeviceControlActivity.java">DeviceControlActivity.java</a></li><li><a href="/samples/BluetoothLeGatt/src/com.example.android.bluetoothlegatt/DeviceScanActivity.html" title="DeviceScanActivity.java">DeviceScanActivity.java</a></li><li><a href="/samples/BluetoothLeGatt/src/com.example.android.bluetoothlegatt/SampleGattAttributes.html" title="SampleGattAttributes.java">SampleGattAttributes.java</a></li></ul></li></ul></li></ul></li><li class="nav-section"><div class="nav-section-header"><a href="/samples/NetworkConnect/index.html" title="NetworkConnect">NetworkConnect</a></div><ul><li><a href="/samples/NetworkConnect/AndroidManifest.html" title="AndroidManifest.xml">AndroidManifest.xml</a></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="res">res/</a></div><ul><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-hdpi">drawable-hdpi/</a></div><ul><li><a href="/samples/NetworkConnect/res/drawable-hdpi/ic_launcher.html" title="ic_launcher.png">ic_launcher.png</a></li><li><a href="/samples/NetworkConnect/res/drawable-hdpi/tile.9.html" title="tile.9.png">tile.9.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-mdpi">drawable-mdpi/</a></div><ul><li><a href="/samples/NetworkConnect/res/drawable-mdpi/ic_launcher.html" title="ic_launcher.png">ic_launcher.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-xhdpi">drawable-xhdpi/</a></div><ul><li><a href="/samples/NetworkConnect/res/drawable-xhdpi/ic_launcher.html" title="ic_launcher.png">ic_launcher.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-xxhdpi">drawable-xxhdpi/</a></div><ul><li><a href="/samples/NetworkConnect/res/drawable-xxhdpi/ic_launcher.html" title="ic_launcher.png">ic_launcher.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="layout">layout/</a></div><ul><li><a href="/samples/NetworkConnect/res/layout/activity_main.html" title="activity_main.xml">activity_main.xml</a></li><li><a href="/samples/NetworkConnect/res/layout/sample_main.html" title="sample_main.xml">sample_main.xml</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="menu">menu/</a></div><ul><li><a href="/samples/NetworkConnect/res/menu/main.html" title="main.xml">main.xml</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="values">values/</a></div><ul><li><a href="/samples/NetworkConnect/res/values/base-strings.html" title="base-strings.xml">base-strings.xml</a></li><li><a href="/samples/NetworkConnect/res/values/dimens.html" title="dimens.xml">dimens.xml</a></li><li><a href="/samples/NetworkConnect/res/values/strings.html" title="strings.xml">strings.xml</a></li><li><a href="/samples/NetworkConnect/res/values/styles.html" title="styles.xml">styles.xml</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="values-sw600dp">values-sw600dp/</a></div><ul><li><a href="/samples/NetworkConnect/res/values-sw600dp/dimens.html" title="dimens.xml">dimens.xml</a></li><li><a href="/samples/NetworkConnect/res/values-sw600dp/styles.html" title="styles.xml">styles.xml</a></li></ul></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="src">src/</a></div><ul><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="com.example.android.common.logger">com.example.android.common.logger/</a></div><ul><li><a href="/samples/NetworkConnect/src/com.example.android.common.logger/Log.html" title="Log.java">Log.java</a></li><li><a href="/samples/NetworkConnect/src/com.example.android.common.logger/LogFragment.html" title="LogFragment.java">LogFragment.java</a></li><li><a href="/samples/NetworkConnect/src/com.example.android.common.logger/LogNode.html" title="LogNode.java">LogNode.java</a></li><li><a href="/samples/NetworkConnect/src/com.example.android.common.logger/LogView.html" title="LogView.java">LogView.java</a></li><li><a href="/samples/NetworkConnect/src/com.example.android.common.logger/LogWrapper.html" title="LogWrapper.java">LogWrapper.java</a></li><li><a href="/samples/NetworkConnect/src/com.example.android.common.logger/MessageOnlyLogFilter.html" title="MessageOnlyLogFilter.java">MessageOnlyLogFilter.java</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="com.example.android.networkconnect">com.example.android.networkconnect/</a></div><ul><li><a href="/samples/NetworkConnect/src/com.example.android.networkconnect/MainActivity.html" title="MainActivity.java">MainActivity.java</a></li><li><a href="/samples/NetworkConnect/src/com.example.android.networkconnect/SimpleTextFragment.html" title="SimpleTextFragment.java">SimpleTextFragment.java</a></li></ul></li></ul></li></ul></li><li class="nav-section"><div class="nav-section-header"><a href="/samples/BasicNetworking/index.html" title="BasicNetworking">BasicNetworking</a></div><ul><li><a href="/samples/BasicNetworking/AndroidManifest.html" title="AndroidManifest.xml">AndroidManifest.xml</a></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="res">res/</a></div><ul><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-hdpi">drawable-hdpi/</a></div><ul><li><a href="/samples/BasicNetworking/res/drawable-hdpi/ic_launcher.html" title="ic_launcher.png">ic_launcher.png</a></li><li><a href="/samples/BasicNetworking/res/drawable-hdpi/tile.9.html" title="tile.9.png">tile.9.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-mdpi">drawable-mdpi/</a></div><ul><li><a href="/samples/BasicNetworking/res/drawable-mdpi/ic_launcher.html" title="ic_launcher.png">ic_launcher.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-xhdpi">drawable-xhdpi/</a></div><ul><li><a href="/samples/BasicNetworking/res/drawable-xhdpi/ic_launcher.html" title="ic_launcher.png">ic_launcher.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-xxhdpi">drawable-xxhdpi/</a></div><ul><li><a href="/samples/BasicNetworking/res/drawable-xxhdpi/ic_launcher.html" title="ic_launcher.png">ic_launcher.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="layout">layout/</a></div><ul><li><a href="/samples/BasicNetworking/res/layout/activity_main.html" title="activity_main.xml">activity_main.xml</a></li><li><a href="/samples/BasicNetworking/res/layout/sample_main.html" title="sample_main.xml">sample_main.xml</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="menu">menu/</a></div><ul><li><a href="/samples/BasicNetworking/res/menu/main.html" title="main.xml">main.xml</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="values">values/</a></div><ul><li><a href="/samples/BasicNetworking/res/values/base-strings.html" title="base-strings.xml">base-strings.xml</a></li><li><a href="/samples/BasicNetworking/res/values/dimens.html" title="dimens.xml">dimens.xml</a></li><li><a href="/samples/BasicNetworking/res/values/strings.html" title="strings.xml">strings.xml</a></li><li><a href="/samples/BasicNetworking/res/values/styles.html" title="styles.xml">styles.xml</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="values-sw600dp">values-sw600dp/</a></div><ul><li><a href="/samples/BasicNetworking/res/values-sw600dp/dimens.html" title="dimens.xml">dimens.xml</a></li><li><a href="/samples/BasicNetworking/res/values-sw600dp/styles.html" title="styles.xml">styles.xml</a></li></ul></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="src">src/</a></div><ul><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="com.example.android.basicnetworking">com.example.android.basicnetworking/</a></div><ul><li><a href="/samples/BasicNetworking/src/com.example.android.basicnetworking/MainActivity.html" title="MainActivity.java">MainActivity.java</a></li><li><a href="/samples/BasicNetworking/src/com.example.android.basicnetworking/SimpleTextFragment.html" title="SimpleTextFragment.java">SimpleTextFragment.java</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="com.example.android.common.logger">com.example.android.common.logger/</a></div><ul><li><a href="/samples/BasicNetworking/src/com.example.android.common.logger/Log.html" title="Log.java">Log.java</a></li><li><a href="/samples/BasicNetworking/src/com.example.android.common.logger/LogFragment.html" title="LogFragment.java">LogFragment.java</a></li><li><a href="/samples/BasicNetworking/src/com.example.android.common.logger/LogNode.html" title="LogNode.java">LogNode.java</a></li><li><a href="/samples/BasicNetworking/src/com.example.android.common.logger/LogView.html" title="LogView.java">LogView.java</a></li><li><a href="/samples/BasicNetworking/src/com.example.android.common.logger/LogWrapper.html" title="LogWrapper.java">LogWrapper.java</a></li><li><a href="/samples/BasicNetworking/src/com.example.android.common.logger/MessageOnlyLogFilter.html" title="MessageOnlyLogFilter.java">MessageOnlyLogFilter.java</a></li></ul></li></ul></li></ul></li><li class="nav-section"><div class="nav-section-header"><a href="/samples/BasicSyncAdapter/index.html" title="BasicSyncAdapter">BasicSyncAdapter</a></div><ul><li><a href="/samples/BasicSyncAdapter/AndroidManifest.html" title="AndroidManifest.xml">AndroidManifest.xml</a></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="res">res/</a></div><ul><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-hdpi">drawable-hdpi/</a></div><ul><li><a href="/samples/BasicSyncAdapter/res/drawable-hdpi/ic_launcher.html" title="ic_launcher.png">ic_launcher.png</a></li><li><a href="/samples/BasicSyncAdapter/res/drawable-hdpi/tile.9.html" title="tile.9.png">tile.9.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-mdpi">drawable-mdpi/</a></div><ul><li><a href="/samples/BasicSyncAdapter/res/drawable-mdpi/ic_launcher.html" title="ic_launcher.png">ic_launcher.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-xhdpi">drawable-xhdpi/</a></div><ul><li><a href="/samples/BasicSyncAdapter/res/drawable-xhdpi/ic_action_refresh.html" title="ic_action_refresh.png">ic_action_refresh.png</a></li><li><a href="/samples/BasicSyncAdapter/res/drawable-xhdpi/ic_launcher.html" title="ic_launcher.png">ic_launcher.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-xxhdpi">drawable-xxhdpi/</a></div><ul><li><a href="/samples/BasicSyncAdapter/res/drawable-xxhdpi/ic_launcher.html" title="ic_launcher.png">ic_launcher.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="layout">layout/</a></div><ul><li><a href="/samples/BasicSyncAdapter/res/layout/actionbar_indeterminate_progress.html" title="actionbar_indeterminate_progress.xml">actionbar_indeterminate_progress.xml</a></li><li><a href="/samples/BasicSyncAdapter/res/layout/activity_entry_list.html" title="activity_entry_list.xml">activity_entry_list.xml</a></li><li><a href="/samples/BasicSyncAdapter/res/layout/activity_main.html" title="activity_main.xml">activity_main.xml</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="menu">menu/</a></div><ul><li><a href="/samples/BasicSyncAdapter/res/menu/main.html" title="main.xml">main.xml</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="values">values/</a></div><ul><li><a href="/samples/BasicSyncAdapter/res/values/attrs.html" title="attrs.xml">attrs.xml</a></li><li><a href="/samples/BasicSyncAdapter/res/values/base-strings.html" title="base-strings.xml">base-strings.xml</a></li><li><a href="/samples/BasicSyncAdapter/res/values/dimen.html" title="dimen.xml">dimen.xml</a></li><li><a href="/samples/BasicSyncAdapter/res/values/dimens.html" title="dimens.xml">dimens.xml</a></li><li><a href="/samples/BasicSyncAdapter/res/values/strings.html" title="strings.xml">strings.xml</a></li><li><a href="/samples/BasicSyncAdapter/res/values/styles.html" title="styles.xml">styles.xml</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="values-sw600dp">values-sw600dp/</a></div><ul><li><a href="/samples/BasicSyncAdapter/res/values-sw600dp/dimens.html" title="dimens.xml">dimens.xml</a></li><li><a href="/samples/BasicSyncAdapter/res/values-sw600dp/styles.html" title="styles.xml">styles.xml</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="xml">xml/</a></div><ul><li><a href="/samples/BasicSyncAdapter/res/xml/authenticator.html" title="authenticator.xml">authenticator.xml</a></li><li><a href="/samples/BasicSyncAdapter/res/xml/syncadapter.html" title="syncadapter.xml">syncadapter.xml</a></li></ul></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="src">src/</a></div><ul><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="com.example.android.basicsyncadapter">com.example.android.basicsyncadapter/</a></div><ul><li><a href="/samples/BasicSyncAdapter/src/com.example.android.basicsyncadapter/EntryListActivity.html" title="EntryListActivity.java">EntryListActivity.java</a></li><li><a href="/samples/BasicSyncAdapter/src/com.example.android.basicsyncadapter/EntryListFragment.html" title="EntryListFragment.java">EntryListFragment.java</a></li><li><a href="/samples/BasicSyncAdapter/src/com.example.android.basicsyncadapter/SyncAdapter.html" title="SyncAdapter.java">SyncAdapter.java</a></li><li><a href="/samples/BasicSyncAdapter/src/com.example.android.basicsyncadapter/SyncService.html" title="SyncService.java">SyncService.java</a></li><li><a href="/samples/BasicSyncAdapter/src/com.example.android.basicsyncadapter/SyncUtils.html" title="SyncUtils.java">SyncUtils.java</a></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="net">net/</a></div><ul><li><a href="/samples/BasicSyncAdapter/src/com.example.android.basicsyncadapter/net/FeedParser.html" title="FeedParser.java">FeedParser.java</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="provider">provider/</a></div><ul><li><a href="/samples/BasicSyncAdapter/src/com.example.android.basicsyncadapter/provider/FeedContract.html" title="FeedContract.java">FeedContract.java</a></li><li><a href="/samples/BasicSyncAdapter/src/com.example.android.basicsyncadapter/provider/FeedProvider.html" title="FeedProvider.java">FeedProvider.java</a></li></ul></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="com.example.android.common">com.example.android.common/</a></div><ul><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="accounts">accounts/</a></div><ul><li><a href="/samples/BasicSyncAdapter/src/com.example.android.common/accounts/GenericAccountService.html" title="GenericAccountService.java">GenericAccountService.java</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="db">db/</a></div><ul><li><a href="/samples/BasicSyncAdapter/src/com.example.android.common/db/SelectionBuilder.html" title="SelectionBuilder.java">SelectionBuilder.java</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="logger">logger/</a></div><ul><li><a href="/samples/BasicSyncAdapter/src/com.example.android.common/logger/Log.html" title="Log.java">Log.java</a></li><li><a href="/samples/BasicSyncAdapter/src/com.example.android.common/logger/LogFragment.html" title="LogFragment.java">LogFragment.java</a></li><li><a href="/samples/BasicSyncAdapter/src/com.example.android.common/logger/LogNode.html" title="LogNode.java">LogNode.java</a></li><li><a href="/samples/BasicSyncAdapter/src/com.example.android.common/logger/LogView.html" title="LogView.java">LogView.java</a></li><li><a href="/samples/BasicSyncAdapter/src/com.example.android.common/logger/LogWrapper.html" title="LogWrapper.java">LogWrapper.java</a></li><li><a href="/samples/BasicSyncAdapter/src/com.example.android.common/logger/MessageOnlyLogFilter.html" title="MessageOnlyLogFilter.java">MessageOnlyLogFilter.java</a></li></ul></li></ul></li></ul></li></ul></li></ul></li><li class="nav-section"><div class="nav-section-header"><a href="/samples/content.html" title="Content">Content</a></div><ul><li class="nav-section"><div class="nav-section-header"><a href="/samples/BasicContactables/index.html" title="BasicContactables">BasicContactables</a></div><ul><li><a href="/samples/BasicContactables/AndroidManifest.html" title="AndroidManifest.xml">AndroidManifest.xml</a></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="res">res/</a></div><ul><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-hdpi">drawable-hdpi/</a></div><ul><li><a href="/samples/BasicContactables/res/drawable-hdpi/ic_launcher.html" title="ic_launcher.png">ic_launcher.png</a></li><li><a href="/samples/BasicContactables/res/drawable-hdpi/ic_search_api_holo_light.html" title="ic_search_api_holo_light.png">ic_search_api_holo_light.png</a></li><li><a href="/samples/BasicContactables/res/drawable-hdpi/tile.9.html" title="tile.9.png">tile.9.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-mdpi">drawable-mdpi/</a></div><ul><li><a href="/samples/BasicContactables/res/drawable-mdpi/ic_launcher.html" title="ic_launcher.png">ic_launcher.png</a></li><li><a href="/samples/BasicContactables/res/drawable-mdpi/ic_search_api_holo_light.html" title="ic_search_api_holo_light.png">ic_search_api_holo_light.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-xhdpi">drawable-xhdpi/</a></div><ul><li><a href="/samples/BasicContactables/res/drawable-xhdpi/ic_launcher.html" title="ic_launcher.png">ic_launcher.png</a></li><li><a href="/samples/BasicContactables/res/drawable-xhdpi/ic_search_api_holo_light.html" title="ic_search_api_holo_light.png">ic_search_api_holo_light.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-xxhdpi">drawable-xxhdpi/</a></div><ul><li><a href="/samples/BasicContactables/res/drawable-xxhdpi/ic_launcher.html" title="ic_launcher.png">ic_launcher.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="layout">layout/</a></div><ul><li><a href="/samples/BasicContactables/res/layout/activity_main.html" title="activity_main.xml">activity_main.xml</a></li><li><a href="/samples/BasicContactables/res/layout/sample_main.html" title="sample_main.xml">sample_main.xml</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="menu">menu/</a></div><ul><li><a href="/samples/BasicContactables/res/menu/main.html" title="main.xml">main.xml</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="values">values/</a></div><ul><li><a href="/samples/BasicContactables/res/values/base-strings.html" title="base-strings.xml">base-strings.xml</a></li><li><a href="/samples/BasicContactables/res/values/dimens.html" title="dimens.xml">dimens.xml</a></li><li><a href="/samples/BasicContactables/res/values/strings.html" title="strings.xml">strings.xml</a></li><li><a href="/samples/BasicContactables/res/values/styles.html" title="styles.xml">styles.xml</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="values-sw600dp">values-sw600dp/</a></div><ul><li><a href="/samples/BasicContactables/res/values-sw600dp/dimens.html" title="dimens.xml">dimens.xml</a></li><li><a href="/samples/BasicContactables/res/values-sw600dp/styles.html" title="styles.xml">styles.xml</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="xml">xml/</a></div><ul><li><a href="/samples/BasicContactables/res/xml/searchable.html" title="searchable.xml">searchable.xml</a></li></ul></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="src">src/</a></div><ul><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="com.example.android.basiccontactables">com.example.android.basiccontactables/</a></div><ul><li><a href="/samples/BasicContactables/src/com.example.android.basiccontactables/ContactablesLoaderCallbacks.html" title="ContactablesLoaderCallbacks.java">ContactablesLoaderCallbacks.java</a></li><li><a href="/samples/BasicContactables/src/com.example.android.basiccontactables/MainActivity.html" title="MainActivity.java">MainActivity.java</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="com.example.android.common.logger">com.example.android.common.logger/</a></div><ul><li><a href="/samples/BasicContactables/src/com.example.android.common.logger/Log.html" title="Log.java">Log.java</a></li><li><a href="/samples/BasicContactables/src/com.example.android.common.logger/LogFragment.html" title="LogFragment.java">LogFragment.java</a></li><li><a href="/samples/BasicContactables/src/com.example.android.common.logger/LogNode.html" title="LogNode.java">LogNode.java</a></li><li><a href="/samples/BasicContactables/src/com.example.android.common.logger/LogView.html" title="LogView.java">LogView.java</a></li><li><a href="/samples/BasicContactables/src/com.example.android.common.logger/LogWrapper.html" title="LogWrapper.java">LogWrapper.java</a></li><li><a href="/samples/BasicContactables/src/com.example.android.common.logger/MessageOnlyLogFilter.html" title="MessageOnlyLogFilter.java">MessageOnlyLogFilter.java</a></li></ul></li></ul></li></ul></li><li class="nav-section"><div class="nav-section-header"><a href="/samples/AppRestrictions/index.html" title="AppRestrictions">AppRestrictions</a></div><ul><li><a href="/samples/AppRestrictions/AndroidManifest.html" title="AndroidManifest.xml">AndroidManifest.xml</a></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="res">res/</a></div><ul><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-hdpi">drawable-hdpi/</a></div><ul><li><a href="/samples/AppRestrictions/res/drawable-hdpi/ic_launcher.html" title="ic_launcher.png">ic_launcher.png</a></li><li><a href="/samples/AppRestrictions/res/drawable-hdpi/tile.9.html" title="tile.9.png">tile.9.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-mdpi">drawable-mdpi/</a></div><ul><li><a href="/samples/AppRestrictions/res/drawable-mdpi/ic_launcher.html" title="ic_launcher.png">ic_launcher.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-xhdpi">drawable-xhdpi/</a></div><ul><li><a href="/samples/AppRestrictions/res/drawable-xhdpi/ic_launcher.html" title="ic_launcher.png">ic_launcher.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-xxhdpi">drawable-xxhdpi/</a></div><ul><li><a href="/samples/AppRestrictions/res/drawable-xxhdpi/ic_launcher.html" title="ic_launcher.png">ic_launcher.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="layout">layout/</a></div><ul><li><a href="/samples/AppRestrictions/res/layout/activity_main.html" title="activity_main.xml">activity_main.xml</a></li><li><a href="/samples/AppRestrictions/res/layout/main.html" title="main.xml">main.xml</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="values">values/</a></div><ul><li><a href="/samples/AppRestrictions/res/values/base-strings.html" title="base-strings.xml">base-strings.xml</a></li><li><a href="/samples/AppRestrictions/res/values/dimens.html" title="dimens.xml">dimens.xml</a></li><li><a href="/samples/AppRestrictions/res/values/strings.html" title="strings.xml">strings.xml</a></li><li><a href="/samples/AppRestrictions/res/values/styles.html" title="styles.xml">styles.xml</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="values-sw600dp">values-sw600dp/</a></div><ul><li><a href="/samples/AppRestrictions/res/values-sw600dp/dimens.html" title="dimens.xml">dimens.xml</a></li><li><a href="/samples/AppRestrictions/res/values-sw600dp/styles.html" title="styles.xml">styles.xml</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="xml">xml/</a></div><ul><li><a href="/samples/AppRestrictions/res/xml/custom_prefs.html" title="custom_prefs.xml">custom_prefs.xml</a></li></ul></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="src">src/</a></div><ul><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="com.example.android.apprestrictions">com.example.android.apprestrictions/</a></div><ul><li><a href="/samples/AppRestrictions/src/com.example.android.apprestrictions/CustomRestrictionsActivity.html" title="CustomRestrictionsActivity.java">CustomRestrictionsActivity.java</a></li><li><a href="/samples/AppRestrictions/src/com.example.android.apprestrictions/CustomRestrictionsFragment.html" title="CustomRestrictionsFragment.java">CustomRestrictionsFragment.java</a></li><li><a href="/samples/AppRestrictions/src/com.example.android.apprestrictions/GetRestrictionsReceiver.html" title="GetRestrictionsReceiver.java">GetRestrictionsReceiver.java</a></li><li><a href="/samples/AppRestrictions/src/com.example.android.apprestrictions/MainActivity.html" title="MainActivity.java">MainActivity.java</a></li></ul></li></ul></li></ul></li><li class="nav-section"><div class="nav-section-header"><a href="/samples/StorageClient/index.html" title="StorageClient">StorageClient</a></div><ul><li><a href="/samples/StorageClient/AndroidManifest.html" title="AndroidManifest.xml">AndroidManifest.xml</a></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="res">res/</a></div><ul><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-hdpi">drawable-hdpi/</a></div><ul><li><a href="/samples/StorageClient/res/drawable-hdpi/ic_launcher.html" title="ic_launcher.png">ic_launcher.png</a></li><li><a href="/samples/StorageClient/res/drawable-hdpi/tile.9.html" title="tile.9.png">tile.9.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-mdpi">drawable-mdpi/</a></div><ul><li><a href="/samples/StorageClient/res/drawable-mdpi/ic_launcher.html" title="ic_launcher.png">ic_launcher.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-xhdpi">drawable-xhdpi/</a></div><ul><li><a href="/samples/StorageClient/res/drawable-xhdpi/ic_launcher.html" title="ic_launcher.png">ic_launcher.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-xxhdpi">drawable-xxhdpi/</a></div><ul><li><a href="/samples/StorageClient/res/drawable-xxhdpi/ic_launcher.html" title="ic_launcher.png">ic_launcher.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="layout">layout/</a></div><ul><li><a href="/samples/StorageClient/res/layout/activity_main.html" title="activity_main.xml">activity_main.xml</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="menu">menu/</a></div><ul><li><a href="/samples/StorageClient/res/menu/main.html" title="main.xml">main.xml</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="values">values/</a></div><ul><li><a href="/samples/StorageClient/res/values/base-strings.html" title="base-strings.xml">base-strings.xml</a></li><li><a href="/samples/StorageClient/res/values/dimens.html" title="dimens.xml">dimens.xml</a></li><li><a href="/samples/StorageClient/res/values/strings.html" title="strings.xml">strings.xml</a></li><li><a href="/samples/StorageClient/res/values/styles.html" title="styles.xml">styles.xml</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="values-sw600dp">values-sw600dp/</a></div><ul><li><a href="/samples/StorageClient/res/values-sw600dp/dimens.html" title="dimens.xml">dimens.xml</a></li><li><a href="/samples/StorageClient/res/values-sw600dp/styles.html" title="styles.xml">styles.xml</a></li></ul></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="src">src/</a></div><ul><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="com.example.android.common">com.example.android.common/</a></div><ul><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="activities">activities/</a></div><ul><li><a href="/samples/StorageClient/src/com.example.android.common/activities/SampleActivityBase.html" title="SampleActivityBase.java">SampleActivityBase.java</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="logger">logger/</a></div><ul><li><a href="/samples/StorageClient/src/com.example.android.common/logger/Log.html" title="Log.java">Log.java</a></li><li><a href="/samples/StorageClient/src/com.example.android.common/logger/LogFragment.html" title="LogFragment.java">LogFragment.java</a></li><li><a href="/samples/StorageClient/src/com.example.android.common/logger/LogNode.html" title="LogNode.java">LogNode.java</a></li><li><a href="/samples/StorageClient/src/com.example.android.common/logger/LogView.html" title="LogView.java">LogView.java</a></li><li><a href="/samples/StorageClient/src/com.example.android.common/logger/LogWrapper.html" title="LogWrapper.java">LogWrapper.java</a></li><li><a href="/samples/StorageClient/src/com.example.android.common/logger/MessageOnlyLogFilter.html" title="MessageOnlyLogFilter.java">MessageOnlyLogFilter.java</a></li></ul></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="com.example.android.storageclient">com.example.android.storageclient/</a></div><ul><li><a href="/samples/StorageClient/src/com.example.android.storageclient/MainActivity.html" title="MainActivity.java">MainActivity.java</a></li><li><a href="/samples/StorageClient/src/com.example.android.storageclient/StorageClientFragment.html" title="StorageClientFragment.java">StorageClientFragment.java</a></li></ul></li></ul></li></ul></li></ul></li><li class="nav-section"><div class="nav-section-header"><a href="/samples/input.html" title="Input">Input</a></div><ul><li class="nav-section"><div class="nav-section-header"><a href="/samples/BasicMultitouch/index.html" title="BasicMultitouch">BasicMultitouch</a></div><ul><li><a href="/samples/BasicMultitouch/AndroidManifest.html" title="AndroidManifest.xml">AndroidManifest.xml</a></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="res">res/</a></div><ul><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-hdpi">drawable-hdpi/</a></div><ul><li><a href="/samples/BasicMultitouch/res/drawable-hdpi/ic_launcher.html" title="ic_launcher.png">ic_launcher.png</a></li><li><a href="/samples/BasicMultitouch/res/drawable-hdpi/tile.9.html" title="tile.9.png">tile.9.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-mdpi">drawable-mdpi/</a></div><ul><li><a href="/samples/BasicMultitouch/res/drawable-mdpi/ic_launcher.html" title="ic_launcher.png">ic_launcher.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-xhdpi">drawable-xhdpi/</a></div><ul><li><a href="/samples/BasicMultitouch/res/drawable-xhdpi/ic_launcher.html" title="ic_launcher.png">ic_launcher.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-xxhdpi">drawable-xxhdpi/</a></div><ul><li><a href="/samples/BasicMultitouch/res/drawable-xxhdpi/ic_launcher.html" title="ic_launcher.png">ic_launcher.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="layout">layout/</a></div><ul><li><a href="/samples/BasicMultitouch/res/layout/activity_main.html" title="activity_main.xml">activity_main.xml</a></li><li><a href="/samples/BasicMultitouch/res/layout/layout_mainactivity.html" title="layout_mainactivity.xml">layout_mainactivity.xml</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="values">values/</a></div><ul><li><a href="/samples/BasicMultitouch/res/values/base-strings.html" title="base-strings.xml">base-strings.xml</a></li><li><a href="/samples/BasicMultitouch/res/values/dimens.html" title="dimens.xml">dimens.xml</a></li><li><a href="/samples/BasicMultitouch/res/values/strings.html" title="strings.xml">strings.xml</a></li><li><a href="/samples/BasicMultitouch/res/values/styles.html" title="styles.xml">styles.xml</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="values-sw600dp">values-sw600dp/</a></div><ul><li><a href="/samples/BasicMultitouch/res/values-sw600dp/dimens.html" title="dimens.xml">dimens.xml</a></li><li><a href="/samples/BasicMultitouch/res/values-sw600dp/styles.html" title="styles.xml">styles.xml</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="values-v11">values-v11/</a></div><ul><li><a href="/samples/BasicMultitouch/res/values-v11/styles.html" title="styles.xml">styles.xml</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="values-v14">values-v14/</a></div><ul><li><a href="/samples/BasicMultitouch/res/values-v14/styles.html" title="styles.xml">styles.xml</a></li></ul></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="src">src/</a></div><ul><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="com.example.android.basicmultitouch">com.example.android.basicmultitouch/</a></div><ul><li><a href="/samples/BasicMultitouch/src/com.example.android.basicmultitouch/MainActivity.html" title="MainActivity.java">MainActivity.java</a></li><li><a href="/samples/BasicMultitouch/src/com.example.android.basicmultitouch/Pools.html" title="Pools.java">Pools.java</a></li><li><a href="/samples/BasicMultitouch/src/com.example.android.basicmultitouch/TouchDisplayView.html" title="TouchDisplayView.java">TouchDisplayView.java</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="com.example.android.common.logger">com.example.android.common.logger/</a></div><ul><li><a href="/samples/BasicMultitouch/src/com.example.android.common.logger/Log.html" title="Log.java">Log.java</a></li><li><a href="/samples/BasicMultitouch/src/com.example.android.common.logger/LogFragment.html" title="LogFragment.java">LogFragment.java</a></li><li><a href="/samples/BasicMultitouch/src/com.example.android.common.logger/LogNode.html" title="LogNode.java">LogNode.java</a></li><li><a href="/samples/BasicMultitouch/src/com.example.android.common.logger/LogView.html" title="LogView.java">LogView.java</a></li><li><a href="/samples/BasicMultitouch/src/com.example.android.common.logger/LogWrapper.html" title="LogWrapper.java">LogWrapper.java</a></li><li><a href="/samples/BasicMultitouch/src/com.example.android.common.logger/MessageOnlyLogFilter.html" title="MessageOnlyLogFilter.java">MessageOnlyLogFilter.java</a></li></ul></li></ul></li></ul></li><li class="nav-section"><div class="nav-section-header"><a href="/samples/BasicGestureDetect/index.html" title="BasicGestureDetect">BasicGestureDetect</a></div><ul><li><a href="/samples/BasicGestureDetect/AndroidManifest.html" title="AndroidManifest.xml">AndroidManifest.xml</a></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="res">res/</a></div><ul><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-hdpi">drawable-hdpi/</a></div><ul><li><a href="/samples/BasicGestureDetect/res/drawable-hdpi/ic_launcher.html" title="ic_launcher.png">ic_launcher.png</a></li><li><a href="/samples/BasicGestureDetect/res/drawable-hdpi/tile.9.html" title="tile.9.png">tile.9.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-mdpi">drawable-mdpi/</a></div><ul><li><a href="/samples/BasicGestureDetect/res/drawable-mdpi/ic_launcher.html" title="ic_launcher.png">ic_launcher.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-xhdpi">drawable-xhdpi/</a></div><ul><li><a href="/samples/BasicGestureDetect/res/drawable-xhdpi/ic_launcher.html" title="ic_launcher.png">ic_launcher.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-xxhdpi">drawable-xxhdpi/</a></div><ul><li><a href="/samples/BasicGestureDetect/res/drawable-xxhdpi/ic_launcher.html" title="ic_launcher.png">ic_launcher.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="layout">layout/</a></div><ul><li><a href="/samples/BasicGestureDetect/res/layout/activity_main.html" title="activity_main.xml">activity_main.xml</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="menu">menu/</a></div><ul><li><a href="/samples/BasicGestureDetect/res/menu/main.html" title="main.xml">main.xml</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="values">values/</a></div><ul><li><a href="/samples/BasicGestureDetect/res/values/base-strings.html" title="base-strings.xml">base-strings.xml</a></li><li><a href="/samples/BasicGestureDetect/res/values/dimens.html" title="dimens.xml">dimens.xml</a></li><li><a href="/samples/BasicGestureDetect/res/values/strings.html" title="strings.xml">strings.xml</a></li><li><a href="/samples/BasicGestureDetect/res/values/styles.html" title="styles.xml">styles.xml</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="values-sw600dp">values-sw600dp/</a></div><ul><li><a href="/samples/BasicGestureDetect/res/values-sw600dp/dimens.html" title="dimens.xml">dimens.xml</a></li><li><a href="/samples/BasicGestureDetect/res/values-sw600dp/styles.html" title="styles.xml">styles.xml</a></li></ul></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="src">src/</a></div><ul><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="com.example.android.basicgesturedetect">com.example.android.basicgesturedetect/</a></div><ul><li><a href="/samples/BasicGestureDetect/src/com.example.android.basicgesturedetect/BasicGestureDetectFragment.html" title="BasicGestureDetectFragment.java">BasicGestureDetectFragment.java</a></li><li><a href="/samples/BasicGestureDetect/src/com.example.android.basicgesturedetect/GestureListener.html" title="GestureListener.java">GestureListener.java</a></li><li><a href="/samples/BasicGestureDetect/src/com.example.android.basicgesturedetect/MainActivity.html" title="MainActivity.java">MainActivity.java</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="com.example.android.common">com.example.android.common/</a></div><ul><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="activities">activities/</a></div><ul><li><a href="/samples/BasicGestureDetect/src/com.example.android.common/activities/SampleActivityBase.html" title="SampleActivityBase.java">SampleActivityBase.java</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="logger">logger/</a></div><ul><li><a href="/samples/BasicGestureDetect/src/com.example.android.common/logger/Log.html" title="Log.java">Log.java</a></li><li><a href="/samples/BasicGestureDetect/src/com.example.android.common/logger/LogFragment.html" title="LogFragment.java">LogFragment.java</a></li><li><a href="/samples/BasicGestureDetect/src/com.example.android.common/logger/LogNode.html" title="LogNode.java">LogNode.java</a></li><li><a href="/samples/BasicGestureDetect/src/com.example.android.common/logger/LogView.html" title="LogView.java">LogView.java</a></li><li><a href="/samples/BasicGestureDetect/src/com.example.android.common/logger/LogWrapper.html" title="LogWrapper.java">LogWrapper.java</a></li><li><a href="/samples/BasicGestureDetect/src/com.example.android.common/logger/MessageOnlyLogFilter.html" title="MessageOnlyLogFilter.java">MessageOnlyLogFilter.java</a></li></ul></li></ul></li></ul></li></ul></li></ul></li><li class="nav-section"><div class="nav-section-header"><a href="/samples/media.html" title="Media">Media</a></div><ul><li class="nav-section"><div class="nav-section-header"><a href="/samples/BasicMediaRouter/index.html" title="BasicMediaRouter">BasicMediaRouter</a></div><ul><li><a href="/samples/BasicMediaRouter/AndroidManifest.html" title="AndroidManifest.xml">AndroidManifest.xml</a></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="res">res/</a></div><ul><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-hdpi">drawable-hdpi/</a></div><ul><li><a href="/samples/BasicMediaRouter/res/drawable-hdpi/ic_launcher.html" title="ic_launcher.png">ic_launcher.png</a></li><li><a href="/samples/BasicMediaRouter/res/drawable-hdpi/tile.9.html" title="tile.9.png">tile.9.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-mdpi">drawable-mdpi/</a></div><ul><li><a href="/samples/BasicMediaRouter/res/drawable-mdpi/ic_launcher.html" title="ic_launcher.png">ic_launcher.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-xhdpi">drawable-xhdpi/</a></div><ul><li><a href="/samples/BasicMediaRouter/res/drawable-xhdpi/ic_launcher.html" title="ic_launcher.png">ic_launcher.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-xxhdpi">drawable-xxhdpi/</a></div><ul><li><a href="/samples/BasicMediaRouter/res/drawable-xxhdpi/ic_launcher.html" title="ic_launcher.png">ic_launcher.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="layout">layout/</a></div><ul><li><a href="/samples/BasicMediaRouter/res/layout/activity_main.html" title="activity_main.xml">activity_main.xml</a></li><li><a href="/samples/BasicMediaRouter/res/layout/display.html" title="display.xml">display.xml</a></li><li><a href="/samples/BasicMediaRouter/res/layout/sample_main.html" title="sample_main.xml">sample_main.xml</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="menu">menu/</a></div><ul><li><a href="/samples/BasicMediaRouter/res/menu/main.html" title="main.xml">main.xml</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="values">values/</a></div><ul><li><a href="/samples/BasicMediaRouter/res/values/base-strings.html" title="base-strings.xml">base-strings.xml</a></li><li><a href="/samples/BasicMediaRouter/res/values/colors.html" title="colors.xml">colors.xml</a></li><li><a href="/samples/BasicMediaRouter/res/values/dimens.html" title="dimens.xml">dimens.xml</a></li><li><a href="/samples/BasicMediaRouter/res/values/strings.html" title="strings.xml">strings.xml</a></li><li><a href="/samples/BasicMediaRouter/res/values/styles.html" title="styles.xml">styles.xml</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="values-sw600dp">values-sw600dp/</a></div><ul><li><a href="/samples/BasicMediaRouter/res/values-sw600dp/dimens.html" title="dimens.xml">dimens.xml</a></li><li><a href="/samples/BasicMediaRouter/res/values-sw600dp/styles.html" title="styles.xml">styles.xml</a></li></ul></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="src">src/</a></div><ul><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="com.example.android.basicmediarouter">com.example.android.basicmediarouter/</a></div><ul><li><a href="/samples/BasicMediaRouter/src/com.example.android.basicmediarouter/MainActivity.html" title="MainActivity.java">MainActivity.java</a></li><li><a href="/samples/BasicMediaRouter/src/com.example.android.basicmediarouter/SamplePresentation.html" title="SamplePresentation.java">SamplePresentation.java</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="com.example.android.common.logger">com.example.android.common.logger/</a></div><ul><li><a href="/samples/BasicMediaRouter/src/com.example.android.common.logger/Log.html" title="Log.java">Log.java</a></li><li><a href="/samples/BasicMediaRouter/src/com.example.android.common.logger/LogFragment.html" title="LogFragment.java">LogFragment.java</a></li><li><a href="/samples/BasicMediaRouter/src/com.example.android.common.logger/LogNode.html" title="LogNode.java">LogNode.java</a></li><li><a href="/samples/BasicMediaRouter/src/com.example.android.common.logger/LogView.html" title="LogView.java">LogView.java</a></li><li><a href="/samples/BasicMediaRouter/src/com.example.android.common.logger/LogWrapper.html" title="LogWrapper.java">LogWrapper.java</a></li><li><a href="/samples/BasicMediaRouter/src/com.example.android.common.logger/MessageOnlyLogFilter.html" title="MessageOnlyLogFilter.java">MessageOnlyLogFilter.java</a></li></ul></li></ul></li></ul></li><li class="nav-section"><div class="nav-section-header"><a href="/samples/BasicMediaDecoder/index.html" title="BasicMediaDecoder">BasicMediaDecoder</a></div><ul><li><a href="/samples/BasicMediaDecoder/AndroidManifest.html" title="AndroidManifest.xml">AndroidManifest.xml</a></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="res">res/</a></div><ul><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable">drawable/</a></div><ul><li><a href="/samples/BasicMediaDecoder/res/drawable/selector_play.html" title="selector_play.xml">selector_play.xml</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-hdpi">drawable-hdpi/</a></div><ul><li><a href="/samples/BasicMediaDecoder/res/drawable-hdpi/ic_action_play.html" title="ic_action_play.png">ic_action_play.png</a></li><li><a href="/samples/BasicMediaDecoder/res/drawable-hdpi/ic_action_play_disabled.html" title="ic_action_play_disabled.png">ic_action_play_disabled.png</a></li><li><a href="/samples/BasicMediaDecoder/res/drawable-hdpi/ic_launcher.html" title="ic_launcher.png">ic_launcher.png</a></li><li><a href="/samples/BasicMediaDecoder/res/drawable-hdpi/tile.9.html" title="tile.9.png">tile.9.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-mdpi">drawable-mdpi/</a></div><ul><li><a href="/samples/BasicMediaDecoder/res/drawable-mdpi/ic_action_play.html" title="ic_action_play.png">ic_action_play.png</a></li><li><a href="/samples/BasicMediaDecoder/res/drawable-mdpi/ic_action_play_disabled.html" title="ic_action_play_disabled.png">ic_action_play_disabled.png</a></li><li><a href="/samples/BasicMediaDecoder/res/drawable-mdpi/ic_launcher.html" title="ic_launcher.png">ic_launcher.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-xhdpi">drawable-xhdpi/</a></div><ul><li><a href="/samples/BasicMediaDecoder/res/drawable-xhdpi/ic_action_play.html" title="ic_action_play.png">ic_action_play.png</a></li><li><a href="/samples/BasicMediaDecoder/res/drawable-xhdpi/ic_action_play_disabled.html" title="ic_action_play_disabled.png">ic_action_play_disabled.png</a></li><li><a href="/samples/BasicMediaDecoder/res/drawable-xhdpi/ic_launcher.html" title="ic_launcher.png">ic_launcher.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-xxhdpi">drawable-xxhdpi/</a></div><ul><li><a href="/samples/BasicMediaDecoder/res/drawable-xxhdpi/ic_launcher.html" title="ic_launcher.png">ic_launcher.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="layout">layout/</a></div><ul><li><a href="/samples/BasicMediaDecoder/res/layout/activity_main.html" title="activity_main.xml">activity_main.xml</a></li><li><a href="/samples/BasicMediaDecoder/res/layout/sample_main.html" title="sample_main.xml">sample_main.xml</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="menu">menu/</a></div><ul><li><a href="/samples/BasicMediaDecoder/res/menu/action_menu.html" title="action_menu.xml">action_menu.xml</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="raw">raw/</a></div><ul><li>vid_bigbuckbunny.mp4</li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="values">values/</a></div><ul><li><a href="/samples/BasicMediaDecoder/res/values/base-strings.html" title="base-strings.xml">base-strings.xml</a></li><li><a href="/samples/BasicMediaDecoder/res/values/dimens.html" title="dimens.xml">dimens.xml</a></li><li><a href="/samples/BasicMediaDecoder/res/values/strings.html" title="strings.xml">strings.xml</a></li><li><a href="/samples/BasicMediaDecoder/res/values/styles.html" title="styles.xml">styles.xml</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="values-sw600dp">values-sw600dp/</a></div><ul><li><a href="/samples/BasicMediaDecoder/res/values-sw600dp/dimens.html" title="dimens.xml">dimens.xml</a></li><li><a href="/samples/BasicMediaDecoder/res/values-sw600dp/styles.html" title="styles.xml">styles.xml</a></li></ul></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="src">src/</a></div><ul><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="com.example.android.basicmediadecoder">com.example.android.basicmediadecoder/</a></div><ul><li><a href="/samples/BasicMediaDecoder/src/com.example.android.basicmediadecoder/MainActivity.html" title="MainActivity.java">MainActivity.java</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="com.example.android.common.media">com.example.android.common.media/</a></div><ul><li><a href="/samples/BasicMediaDecoder/src/com.example.android.common.media/CameraHelper.html" title="CameraHelper.java">CameraHelper.java</a></li><li><a href="/samples/BasicMediaDecoder/src/com.example.android.common.media/MediaCodecWrapper.html" title="MediaCodecWrapper.java">MediaCodecWrapper.java</a></li></ul></li></ul></li></ul></li></ul></li><li class="nav-section"><div class="nav-section-header"><a href="/samples/security.html" title="Security">Security</a></div><ul><li class="nav-section"><div class="nav-section-header"><a href="/samples/BasicAndroidKeyStore/index.html" title="BasicAndroidKeyStore">BasicAndroidKeyStore</a></div><ul><li><a href="/samples/BasicAndroidKeyStore/AndroidManifest.html" title="AndroidManifest.xml">AndroidManifest.xml</a></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="res">res/</a></div><ul><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-hdpi">drawable-hdpi/</a></div><ul><li><a href="/samples/BasicAndroidKeyStore/res/drawable-hdpi/ic_launcher.html" title="ic_launcher.png">ic_launcher.png</a></li><li><a href="/samples/BasicAndroidKeyStore/res/drawable-hdpi/tile.9.html" title="tile.9.png">tile.9.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-mdpi">drawable-mdpi/</a></div><ul><li><a href="/samples/BasicAndroidKeyStore/res/drawable-mdpi/ic_launcher.html" title="ic_launcher.png">ic_launcher.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-xhdpi">drawable-xhdpi/</a></div><ul><li><a href="/samples/BasicAndroidKeyStore/res/drawable-xhdpi/ic_launcher.html" title="ic_launcher.png">ic_launcher.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-xxhdpi">drawable-xxhdpi/</a></div><ul><li><a href="/samples/BasicAndroidKeyStore/res/drawable-xxhdpi/ic_launcher.html" title="ic_launcher.png">ic_launcher.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="layout">layout/</a></div><ul><li><a href="/samples/BasicAndroidKeyStore/res/layout/activity_main.html" title="activity_main.xml">activity_main.xml</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="menu">menu/</a></div><ul><li><a href="/samples/BasicAndroidKeyStore/res/menu/main.html" title="main.xml">main.xml</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="values">values/</a></div><ul><li><a href="/samples/BasicAndroidKeyStore/res/values/base-strings.html" title="base-strings.xml">base-strings.xml</a></li><li><a href="/samples/BasicAndroidKeyStore/res/values/dimens.html" title="dimens.xml">dimens.xml</a></li><li><a href="/samples/BasicAndroidKeyStore/res/values/strings.html" title="strings.xml">strings.xml</a></li><li><a href="/samples/BasicAndroidKeyStore/res/values/styles.html" title="styles.xml">styles.xml</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="values-sw600dp">values-sw600dp/</a></div><ul><li><a href="/samples/BasicAndroidKeyStore/res/values-sw600dp/dimens.html" title="dimens.xml">dimens.xml</a></li><li><a href="/samples/BasicAndroidKeyStore/res/values-sw600dp/styles.html" title="styles.xml">styles.xml</a></li></ul></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="src">src/</a></div><ul><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="com.example.android.basicandroidkeystore">com.example.android.basicandroidkeystore/</a></div><ul><li><a href="/samples/BasicAndroidKeyStore/src/com.example.android.basicandroidkeystore/BasicAndroidKeyStoreFragment.html" title="BasicAndroidKeyStoreFragment.java">BasicAndroidKeyStoreFragment.java</a></li><li><a href="/samples/BasicAndroidKeyStore/src/com.example.android.basicandroidkeystore/MainActivity.html" title="MainActivity.java">MainActivity.java</a></li><li><a href="/samples/BasicAndroidKeyStore/src/com.example.android.basicandroidkeystore/SecurityConstants.html" title="SecurityConstants.java">SecurityConstants.java</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="com.example.android.common">com.example.android.common/</a></div><ul><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="activities">activities/</a></div><ul><li><a href="/samples/BasicAndroidKeyStore/src/com.example.android.common/activities/SampleActivityBase.html" title="SampleActivityBase.java">SampleActivityBase.java</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="logger">logger/</a></div><ul><li><a href="/samples/BasicAndroidKeyStore/src/com.example.android.common/logger/Log.html" title="Log.java">Log.java</a></li><li><a href="/samples/BasicAndroidKeyStore/src/com.example.android.common/logger/LogFragment.html" title="LogFragment.java">LogFragment.java</a></li><li><a href="/samples/BasicAndroidKeyStore/src/com.example.android.common/logger/LogNode.html" title="LogNode.java">LogNode.java</a></li><li><a href="/samples/BasicAndroidKeyStore/src/com.example.android.common/logger/LogView.html" title="LogView.java">LogView.java</a></li><li><a href="/samples/BasicAndroidKeyStore/src/com.example.android.common/logger/LogWrapper.html" title="LogWrapper.java">LogWrapper.java</a></li><li><a href="/samples/BasicAndroidKeyStore/src/com.example.android.common/logger/MessageOnlyLogFilter.html" title="MessageOnlyLogFilter.java">MessageOnlyLogFilter.java</a></li></ul></li></ul></li></ul></li></ul></li></ul></li><li class="nav-section"><div class="nav-section-header"><a href="/samples/testing.html" title="Testing">Testing</a></div><ul><li class="nav-section"><div class="nav-section-header"><a href="/samples/ActivityInstrumentation/index.html" title="ActivityInstrumentation">ActivityInstrumentation</a></div><ul><li><a href="/samples/ActivityInstrumentation/AndroidManifest.html" title="AndroidManifest.xml">AndroidManifest.xml</a></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="res">res/</a></div><ul><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-hdpi">drawable-hdpi/</a></div><ul><li><a href="/samples/ActivityInstrumentation/res/drawable-hdpi/ic_launcher.html" title="ic_launcher.png">ic_launcher.png</a></li><li><a href="/samples/ActivityInstrumentation/res/drawable-hdpi/tile.9.html" title="tile.9.png">tile.9.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-mdpi">drawable-mdpi/</a></div><ul><li><a href="/samples/ActivityInstrumentation/res/drawable-mdpi/ic_launcher.html" title="ic_launcher.png">ic_launcher.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-xhdpi">drawable-xhdpi/</a></div><ul><li><a href="/samples/ActivityInstrumentation/res/drawable-xhdpi/ic_launcher.html" title="ic_launcher.png">ic_launcher.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-xxhdpi">drawable-xxhdpi/</a></div><ul><li><a href="/samples/ActivityInstrumentation/res/drawable-xxhdpi/ic_launcher.html" title="ic_launcher.png">ic_launcher.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="layout">layout/</a></div><ul><li><a href="/samples/ActivityInstrumentation/res/layout/activity_main.html" title="activity_main.xml">activity_main.xml</a></li><li><a href="/samples/ActivityInstrumentation/res/layout/sample_main.html" title="sample_main.xml">sample_main.xml</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="values">values/</a></div><ul><li><a href="/samples/ActivityInstrumentation/res/values/base-strings.html" title="base-strings.xml">base-strings.xml</a></li><li><a href="/samples/ActivityInstrumentation/res/values/dimens.html" title="dimens.xml">dimens.xml</a></li><li><a href="/samples/ActivityInstrumentation/res/values/strings.html" title="strings.xml">strings.xml</a></li><li><a href="/samples/ActivityInstrumentation/res/values/styles.html" title="styles.xml">styles.xml</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="values-sw600dp">values-sw600dp/</a></div><ul><li><a href="/samples/ActivityInstrumentation/res/values-sw600dp/dimens.html" title="dimens.xml">dimens.xml</a></li><li><a href="/samples/ActivityInstrumentation/res/values-sw600dp/styles.html" title="styles.xml">styles.xml</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="values-sw720dp-land">values-sw720dp-land/</a></div><ul><li><a href="/samples/ActivityInstrumentation/res/values-sw720dp-land/dimens.html" title="dimens.xml">dimens.xml</a></li></ul></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="src">src/</a></div><ul><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="com.example.android.activityinstrumentation">com.example.android.activityinstrumentation/</a></div><ul><li><a href="/samples/ActivityInstrumentation/src/com.example.android.activityinstrumentation/MainActivity.html" title="MainActivity.java">MainActivity.java</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="com.example.android.common.logger">com.example.android.common.logger/</a></div><ul><li><a href="/samples/ActivityInstrumentation/src/com.example.android.common.logger/Log.html" title="Log.java">Log.java</a></li><li><a href="/samples/ActivityInstrumentation/src/com.example.android.common.logger/LogFragment.html" title="LogFragment.java">LogFragment.java</a></li><li><a href="/samples/ActivityInstrumentation/src/com.example.android.common.logger/LogNode.html" title="LogNode.java">LogNode.java</a></li><li><a href="/samples/ActivityInstrumentation/src/com.example.android.common.logger/LogView.html" title="LogView.java">LogView.java</a></li><li><a href="/samples/ActivityInstrumentation/src/com.example.android.common.logger/LogWrapper.html" title="LogWrapper.java">LogWrapper.java</a></li><li><a href="/samples/ActivityInstrumentation/src/com.example.android.common.logger/MessageOnlyLogFilter.html" title="MessageOnlyLogFilter.java">MessageOnlyLogFilter.java</a></li></ul></li></ul></li></ul></li></ul></li><li class="nav-section"><div class="nav-section-header"><a href="/samples/ui.html" title="UI">UI</a></div><ul><li class="nav-section"><div class="nav-section-header"><a href="/samples/BasicAccessibility/index.html" title="BasicAccessibility">BasicAccessibility</a></div><ul><li><a href="/samples/BasicAccessibility/AndroidManifest.html" title="AndroidManifest.xml">AndroidManifest.xml</a></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="res">res/</a></div><ul><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-hdpi">drawable-hdpi/</a></div><ul><li><a href="/samples/BasicAccessibility/res/drawable-hdpi/ic_action_discard.html" title="ic_action_discard.png">ic_action_discard.png</a></li><li><a href="/samples/BasicAccessibility/res/drawable-hdpi/ic_action_info.html" title="ic_action_info.png">ic_action_info.png</a></li><li><a href="/samples/BasicAccessibility/res/drawable-hdpi/ic_launcher.html" title="ic_launcher.png">ic_launcher.png</a></li><li><a href="/samples/BasicAccessibility/res/drawable-hdpi/partly_cloudy.html" title="partly_cloudy.png">partly_cloudy.png</a></li><li><a href="/samples/BasicAccessibility/res/drawable-hdpi/tile.9.html" title="tile.9.png">tile.9.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-mdpi">drawable-mdpi/</a></div><ul><li><a href="/samples/BasicAccessibility/res/drawable-mdpi/ic_action_discard.html" title="ic_action_discard.png">ic_action_discard.png</a></li><li><a href="/samples/BasicAccessibility/res/drawable-mdpi/ic_action_info.html" title="ic_action_info.png">ic_action_info.png</a></li><li><a href="/samples/BasicAccessibility/res/drawable-mdpi/ic_launcher.html" title="ic_launcher.png">ic_launcher.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-xhdpi">drawable-xhdpi/</a></div><ul><li><a href="/samples/BasicAccessibility/res/drawable-xhdpi/ic_action_discard.html" title="ic_action_discard.png">ic_action_discard.png</a></li><li><a href="/samples/BasicAccessibility/res/drawable-xhdpi/ic_action_info.html" title="ic_action_info.png">ic_action_info.png</a></li><li><a href="/samples/BasicAccessibility/res/drawable-xhdpi/ic_launcher.html" title="ic_launcher.png">ic_launcher.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-xxhdpi">drawable-xxhdpi/</a></div><ul><li><a href="/samples/BasicAccessibility/res/drawable-xxhdpi/ic_launcher.html" title="ic_launcher.png">ic_launcher.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="layout">layout/</a></div><ul><li><a href="/samples/BasicAccessibility/res/layout/activity_main.html" title="activity_main.xml">activity_main.xml</a></li><li><a href="/samples/BasicAccessibility/res/layout/sample_main.html" title="sample_main.xml">sample_main.xml</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="values">values/</a></div><ul><li><a href="/samples/BasicAccessibility/res/values/base-strings.html" title="base-strings.xml">base-strings.xml</a></li><li><a href="/samples/BasicAccessibility/res/values/dimens.html" title="dimens.xml">dimens.xml</a></li><li><a href="/samples/BasicAccessibility/res/values/strings.html" title="strings.xml">strings.xml</a></li><li><a href="/samples/BasicAccessibility/res/values/styles.html" title="styles.xml">styles.xml</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="values-sw600dp">values-sw600dp/</a></div><ul><li><a href="/samples/BasicAccessibility/res/values-sw600dp/dimens.html" title="dimens.xml">dimens.xml</a></li><li><a href="/samples/BasicAccessibility/res/values-sw600dp/styles.html" title="styles.xml">styles.xml</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="values-sw720dp-land">values-sw720dp-land/</a></div><ul><li><a href="/samples/BasicAccessibility/res/values-sw720dp-land/dimens.html" title="dimens.xml">dimens.xml</a></li></ul></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="src">src/</a></div><ul><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="com.example.android.basicaccessibility">com.example.android.basicaccessibility/</a></div><ul><li><a href="/samples/BasicAccessibility/src/com.example.android.basicaccessibility/DialView.html" title="DialView.java">DialView.java</a></li><li><a href="/samples/BasicAccessibility/src/com.example.android.basicaccessibility/MainActivity.html" title="MainActivity.java">MainActivity.java</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="com.example.android.common.logger">com.example.android.common.logger/</a></div><ul><li><a href="/samples/BasicAccessibility/src/com.example.android.common.logger/Log.html" title="Log.java">Log.java</a></li><li><a href="/samples/BasicAccessibility/src/com.example.android.common.logger/LogFragment.html" title="LogFragment.java">LogFragment.java</a></li><li><a href="/samples/BasicAccessibility/src/com.example.android.common.logger/LogNode.html" title="LogNode.java">LogNode.java</a></li><li><a href="/samples/BasicAccessibility/src/com.example.android.common.logger/LogView.html" title="LogView.java">LogView.java</a></li><li><a href="/samples/BasicAccessibility/src/com.example.android.common.logger/LogWrapper.html" title="LogWrapper.java">LogWrapper.java</a></li><li><a href="/samples/BasicAccessibility/src/com.example.android.common.logger/MessageOnlyLogFilter.html" title="MessageOnlyLogFilter.java">MessageOnlyLogFilter.java</a></li></ul></li></ul></li></ul></li><li class="nav-section"><div class="nav-section-header"><a href="/samples/HorizontalPaging/index.html" title="HorizontalPaging">HorizontalPaging</a></div><ul><li><a href="/samples/HorizontalPaging/AndroidManifest.html" title="AndroidManifest.xml">AndroidManifest.xml</a></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="res">res/</a></div><ul><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-hdpi">drawable-hdpi/</a></div><ul><li><a href="/samples/HorizontalPaging/res/drawable-hdpi/ic_launcher.html" title="ic_launcher.png">ic_launcher.png</a></li><li><a href="/samples/HorizontalPaging/res/drawable-hdpi/tile.9.html" title="tile.9.png">tile.9.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-mdpi">drawable-mdpi/</a></div><ul><li><a href="/samples/HorizontalPaging/res/drawable-mdpi/ic_launcher.html" title="ic_launcher.png">ic_launcher.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-xhdpi">drawable-xhdpi/</a></div><ul><li><a href="/samples/HorizontalPaging/res/drawable-xhdpi/ic_launcher.html" title="ic_launcher.png">ic_launcher.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="layout">layout/</a></div><ul><li><a href="/samples/HorizontalPaging/res/layout/activity_main.html" title="activity_main.xml">activity_main.xml</a></li><li><a href="/samples/HorizontalPaging/res/layout/fragment_main_dummy.html" title="fragment_main_dummy.xml">fragment_main_dummy.xml</a></li><li><a href="/samples/HorizontalPaging/res/layout/sample_main.html" title="sample_main.xml">sample_main.xml</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="values">values/</a></div><ul><li><a href="/samples/HorizontalPaging/res/values/base-strings.html" title="base-strings.xml">base-strings.xml</a></li><li><a href="/samples/HorizontalPaging/res/values/dimens.html" title="dimens.xml">dimens.xml</a></li><li><a href="/samples/HorizontalPaging/res/values/strings.html" title="strings.xml">strings.xml</a></li><li><a href="/samples/HorizontalPaging/res/values/styles.html" title="styles.xml">styles.xml</a></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="values-sw720dp-land">values-sw720dp-land/</a></div><ul><li><a href="/samples/HorizontalPaging/res/values/values-sw720dp-land/dimens.html" title="dimens.xml">dimens.xml</a></li></ul></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="values-sw600dp">values-sw600dp/</a></div><ul><li><a href="/samples/HorizontalPaging/res/values-sw600dp/dimens.html" title="dimens.xml">dimens.xml</a></li><li><a href="/samples/HorizontalPaging/res/values-sw600dp/styles.html" title="styles.xml">styles.xml</a></li></ul></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="src">src/</a></div><ul><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="com.example.android.horizontalpaging">com.example.android.horizontalpaging/</a></div><ul><li><a href="/samples/HorizontalPaging/src/com.example.android.horizontalpaging/MainActivity.html" title="MainActivity.java">MainActivity.java</a></li></ul></li></ul></li></ul></li><li class="nav-section"><div class="nav-section-header"><a href="/samples/ShareActionProvider/index.html" title="ShareActionProvider">ShareActionProvider</a></div><ul><li><a href="/samples/ShareActionProvider/AndroidManifest.html" title="AndroidManifest.xml">AndroidManifest.xml</a></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="res">res/</a></div><ul><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-hdpi">drawable-hdpi/</a></div><ul><li><a href="/samples/ShareActionProvider/res/drawable-hdpi/ic_launcher.html" title="ic_launcher.png">ic_launcher.png</a></li><li><a href="/samples/ShareActionProvider/res/drawable-hdpi/tile.9.html" title="tile.9.png">tile.9.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-mdpi">drawable-mdpi/</a></div><ul><li><a href="/samples/ShareActionProvider/res/drawable-mdpi/ic_launcher.html" title="ic_launcher.png">ic_launcher.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-xhdpi">drawable-xhdpi/</a></div><ul><li><a href="/samples/ShareActionProvider/res/drawable-xhdpi/ic_launcher.html" title="ic_launcher.png">ic_launcher.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-xxhdpi">drawable-xxhdpi/</a></div><ul><li><a href="/samples/ShareActionProvider/res/drawable-xxhdpi/ic_launcher.html" title="ic_launcher.png">ic_launcher.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="layout">layout/</a></div><ul><li><a href="/samples/ShareActionProvider/res/layout/activity_main.html" title="activity_main.xml">activity_main.xml</a></li><li><a href="/samples/ShareActionProvider/res/layout/item_image.html" title="item_image.xml">item_image.xml</a></li><li><a href="/samples/ShareActionProvider/res/layout/item_text.html" title="item_text.xml">item_text.xml</a></li><li><a href="/samples/ShareActionProvider/res/layout/sample_main.html" title="sample_main.xml">sample_main.xml</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="menu">menu/</a></div><ul><li><a href="/samples/ShareActionProvider/res/menu/main_menu.html" title="main_menu.xml">main_menu.xml</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="values">values/</a></div><ul><li><a href="/samples/ShareActionProvider/res/values/base-strings.html" title="base-strings.xml">base-strings.xml</a></li><li><a href="/samples/ShareActionProvider/res/values/dimens.html" title="dimens.xml">dimens.xml</a></li><li><a href="/samples/ShareActionProvider/res/values/strings.html" title="strings.xml">strings.xml</a></li><li><a href="/samples/ShareActionProvider/res/values/styles.html" title="styles.xml">styles.xml</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="values-sw600dp">values-sw600dp/</a></div><ul><li><a href="/samples/ShareActionProvider/res/values-sw600dp/dimens.html" title="dimens.xml">dimens.xml</a></li><li><a href="/samples/ShareActionProvider/res/values-sw600dp/styles.html" title="styles.xml">styles.xml</a></li></ul></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="src">src/</a></div><ul><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="com.example.android.actionbarcompat.shareactionprovider">com.example.android.actionbarcompat.shareactionprovider/</a></div><ul><li><a href="/samples/ShareActionProvider/src/com.example.android.actionbarcompat.shareactionprovider/MainActivity.html" title="MainActivity.java">MainActivity.java</a></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="content">content/</a></div><ul><li><a href="/samples/ShareActionProvider/src/com.example.android.actionbarcompat.shareactionprovider/content/AssetProvider.html" title="AssetProvider.java">AssetProvider.java</a></li><li><a href="/samples/ShareActionProvider/src/com.example.android.actionbarcompat.shareactionprovider/content/ContentItem.html" title="ContentItem.java">ContentItem.java</a></li></ul></li></ul></li></ul></li></ul></li><li class="nav-section"><div class="nav-section-header"><a href="/samples/Styled/index.html" title="Styled">Styled</a></div><ul><li><a href="/samples/Styled/AndroidManifest.html" title="AndroidManifest.xml">AndroidManifest.xml</a></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="res">res/</a></div><ul><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable">drawable/</a></div><ul><li><a href="/samples/Styled/res/drawable/pressed_background.html" title="pressed_background.xml">pressed_background.xml</a></li><li><a href="/samples/Styled/res/drawable/progress_horizontal.html" title="progress_horizontal.xml">progress_horizontal.xml</a></li><li><a href="/samples/Styled/res/drawable/selectable_background.html" title="selectable_background.xml">selectable_background.xml</a></li><li><a href="/samples/Styled/res/drawable/spinner_background_ab.html" title="spinner_background_ab.xml">spinner_background_ab.xml</a></li><li><a href="/samples/Styled/res/drawable/tab_indicator_ab.html" title="tab_indicator_ab.xml">tab_indicator_ab.xml</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-hdpi">drawable-hdpi/</a></div><ul><li><a href="/samples/Styled/res/drawable-hdpi/ab_bottom_solid_styled.9.html" title="ab_bottom_solid_styled.9.png">ab_bottom_solid_styled.9.png</a></li><li><a href="/samples/Styled/res/drawable-hdpi/ab_solid_styled.9.html" title="ab_solid_styled.9.png">ab_solid_styled.9.png</a></li><li><a href="/samples/Styled/res/drawable-hdpi/ab_stacked_solid_styled.9.html" title="ab_stacked_solid_styled.9.png">ab_stacked_solid_styled.9.png</a></li><li><a href="/samples/Styled/res/drawable-hdpi/ic_action_location.html" title="ic_action_location.png">ic_action_location.png</a></li><li><a href="/samples/Styled/res/drawable-hdpi/ic_action_refresh.html" title="ic_action_refresh.png">ic_action_refresh.png</a></li><li><a href="/samples/Styled/res/drawable-hdpi/ic_action_settings.html" title="ic_action_settings.png">ic_action_settings.png</a></li><li><a href="/samples/Styled/res/drawable-hdpi/ic_launcher.html" title="ic_launcher.png">ic_launcher.png</a></li><li><a href="/samples/Styled/res/drawable-hdpi/list_focused_styled.9.html" title="list_focused_styled.9.png">list_focused_styled.9.png</a></li><li><a href="/samples/Styled/res/drawable-hdpi/menu_dropdown_panel_styled.9.html" title="menu_dropdown_panel_styled.9.png">menu_dropdown_panel_styled.9.png</a></li><li><a href="/samples/Styled/res/drawable-hdpi/progress_bg_styled.9.html" title="progress_bg_styled.9.png">progress_bg_styled.9.png</a></li><li><a href="/samples/Styled/res/drawable-hdpi/progress_primary_styled.9.html" title="progress_primary_styled.9.png">progress_primary_styled.9.png</a></li><li><a href="/samples/Styled/res/drawable-hdpi/progress_secondary_styled.9.html" title="progress_secondary_styled.9.png">progress_secondary_styled.9.png</a></li><li><a href="/samples/Styled/res/drawable-hdpi/spinner_ab_default_styled.9.html" title="spinner_ab_default_styled.9.png">spinner_ab_default_styled.9.png</a></li><li><a href="/samples/Styled/res/drawable-hdpi/spinner_ab_disabled_styled.9.html" title="spinner_ab_disabled_styled.9.png">spinner_ab_disabled_styled.9.png</a></li><li><a href="/samples/Styled/res/drawable-hdpi/spinner_ab_focused_styled.9.html" title="spinner_ab_focused_styled.9.png">spinner_ab_focused_styled.9.png</a></li><li><a href="/samples/Styled/res/drawable-hdpi/spinner_ab_pressed_styled.9.html" title="spinner_ab_pressed_styled.9.png">spinner_ab_pressed_styled.9.png</a></li><li><a href="/samples/Styled/res/drawable-hdpi/tab_selected_focused_styled.9.html" title="tab_selected_focused_styled.9.png">tab_selected_focused_styled.9.png</a></li><li><a href="/samples/Styled/res/drawable-hdpi/tab_selected_pressed_styled.9.html" title="tab_selected_pressed_styled.9.png">tab_selected_pressed_styled.9.png</a></li><li><a href="/samples/Styled/res/drawable-hdpi/tab_selected_styled.9.html" title="tab_selected_styled.9.png">tab_selected_styled.9.png</a></li><li><a href="/samples/Styled/res/drawable-hdpi/tab_unselected_focused_styled.9.html" title="tab_unselected_focused_styled.9.png">tab_unselected_focused_styled.9.png</a></li><li><a href="/samples/Styled/res/drawable-hdpi/tab_unselected_pressed_styled.9.html" title="tab_unselected_pressed_styled.9.png">tab_unselected_pressed_styled.9.png</a></li><li><a href="/samples/Styled/res/drawable-hdpi/tile.9.html" title="tile.9.png">tile.9.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-mdpi">drawable-mdpi/</a></div><ul><li><a href="/samples/Styled/res/drawable-mdpi/ab_bottom_solid_styled.9.html" title="ab_bottom_solid_styled.9.png">ab_bottom_solid_styled.9.png</a></li><li><a href="/samples/Styled/res/drawable-mdpi/ab_solid_styled.9.html" title="ab_solid_styled.9.png">ab_solid_styled.9.png</a></li><li><a href="/samples/Styled/res/drawable-mdpi/ab_stacked_solid_styled.9.html" title="ab_stacked_solid_styled.9.png">ab_stacked_solid_styled.9.png</a></li><li><a href="/samples/Styled/res/drawable-mdpi/ic_action_location.html" title="ic_action_location.png">ic_action_location.png</a></li><li><a href="/samples/Styled/res/drawable-mdpi/ic_action_refresh.html" title="ic_action_refresh.png">ic_action_refresh.png</a></li><li><a href="/samples/Styled/res/drawable-mdpi/ic_action_settings.html" title="ic_action_settings.png">ic_action_settings.png</a></li><li><a href="/samples/Styled/res/drawable-mdpi/ic_launcher.html" title="ic_launcher.png">ic_launcher.png</a></li><li><a href="/samples/Styled/res/drawable-mdpi/list_focused_styled.9.html" title="list_focused_styled.9.png">list_focused_styled.9.png</a></li><li><a href="/samples/Styled/res/drawable-mdpi/menu_dropdown_panel_styled.9.html" title="menu_dropdown_panel_styled.9.png">menu_dropdown_panel_styled.9.png</a></li><li><a href="/samples/Styled/res/drawable-mdpi/progress_bg_styled.9.html" title="progress_bg_styled.9.png">progress_bg_styled.9.png</a></li><li><a href="/samples/Styled/res/drawable-mdpi/progress_primary_styled.9.html" title="progress_primary_styled.9.png">progress_primary_styled.9.png</a></li><li><a href="/samples/Styled/res/drawable-mdpi/progress_secondary_styled.9.html" title="progress_secondary_styled.9.png">progress_secondary_styled.9.png</a></li><li><a href="/samples/Styled/res/drawable-mdpi/spinner_ab_default_styled.9.html" title="spinner_ab_default_styled.9.png">spinner_ab_default_styled.9.png</a></li><li><a href="/samples/Styled/res/drawable-mdpi/spinner_ab_disabled_styled.9.html" title="spinner_ab_disabled_styled.9.png">spinner_ab_disabled_styled.9.png</a></li><li><a href="/samples/Styled/res/drawable-mdpi/spinner_ab_focused_styled.9.html" title="spinner_ab_focused_styled.9.png">spinner_ab_focused_styled.9.png</a></li><li><a href="/samples/Styled/res/drawable-mdpi/spinner_ab_pressed_styled.9.html" title="spinner_ab_pressed_styled.9.png">spinner_ab_pressed_styled.9.png</a></li><li><a href="/samples/Styled/res/drawable-mdpi/tab_selected_focused_styled.9.html" title="tab_selected_focused_styled.9.png">tab_selected_focused_styled.9.png</a></li><li><a href="/samples/Styled/res/drawable-mdpi/tab_selected_pressed_styled.9.html" title="tab_selected_pressed_styled.9.png">tab_selected_pressed_styled.9.png</a></li><li><a href="/samples/Styled/res/drawable-mdpi/tab_selected_styled.9.html" title="tab_selected_styled.9.png">tab_selected_styled.9.png</a></li><li><a href="/samples/Styled/res/drawable-mdpi/tab_unselected_focused_styled.9.html" title="tab_unselected_focused_styled.9.png">tab_unselected_focused_styled.9.png</a></li><li><a href="/samples/Styled/res/drawable-mdpi/tab_unselected_pressed_styled.9.html" title="tab_unselected_pressed_styled.9.png">tab_unselected_pressed_styled.9.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-xhdpi">drawable-xhdpi/</a></div><ul><li><a href="/samples/Styled/res/drawable-xhdpi/ab_bottom_solid_styled.9.html" title="ab_bottom_solid_styled.9.png">ab_bottom_solid_styled.9.png</a></li><li><a href="/samples/Styled/res/drawable-xhdpi/ab_solid_styled.9.html" title="ab_solid_styled.9.png">ab_solid_styled.9.png</a></li><li><a href="/samples/Styled/res/drawable-xhdpi/ab_stacked_solid_styled.9.html" title="ab_stacked_solid_styled.9.png">ab_stacked_solid_styled.9.png</a></li><li><a href="/samples/Styled/res/drawable-xhdpi/ic_action_location.html" title="ic_action_location.png">ic_action_location.png</a></li><li><a href="/samples/Styled/res/drawable-xhdpi/ic_action_refresh.html" title="ic_action_refresh.png">ic_action_refresh.png</a></li><li><a href="/samples/Styled/res/drawable-xhdpi/ic_action_settings.html" title="ic_action_settings.png">ic_action_settings.png</a></li><li><a href="/samples/Styled/res/drawable-xhdpi/ic_launcher.html" title="ic_launcher.png">ic_launcher.png</a></li><li><a href="/samples/Styled/res/drawable-xhdpi/list_focused_styled.9.html" title="list_focused_styled.9.png">list_focused_styled.9.png</a></li><li><a href="/samples/Styled/res/drawable-xhdpi/menu_dropdown_panel_styled.9.html" title="menu_dropdown_panel_styled.9.png">menu_dropdown_panel_styled.9.png</a></li><li><a href="/samples/Styled/res/drawable-xhdpi/progress_bg_styled.9.html" title="progress_bg_styled.9.png">progress_bg_styled.9.png</a></li><li><a href="/samples/Styled/res/drawable-xhdpi/progress_primary_styled.9.html" title="progress_primary_styled.9.png">progress_primary_styled.9.png</a></li><li><a href="/samples/Styled/res/drawable-xhdpi/progress_secondary_styled.9.html" title="progress_secondary_styled.9.png">progress_secondary_styled.9.png</a></li><li><a href="/samples/Styled/res/drawable-xhdpi/spinner_ab_default_styled.9.html" title="spinner_ab_default_styled.9.png">spinner_ab_default_styled.9.png</a></li><li><a href="/samples/Styled/res/drawable-xhdpi/spinner_ab_disabled_styled.9.html" title="spinner_ab_disabled_styled.9.png">spinner_ab_disabled_styled.9.png</a></li><li><a href="/samples/Styled/res/drawable-xhdpi/spinner_ab_focused_styled.9.html" title="spinner_ab_focused_styled.9.png">spinner_ab_focused_styled.9.png</a></li><li><a href="/samples/Styled/res/drawable-xhdpi/spinner_ab_pressed_styled.9.html" title="spinner_ab_pressed_styled.9.png">spinner_ab_pressed_styled.9.png</a></li><li><a href="/samples/Styled/res/drawable-xhdpi/tab_selected_focused_styled.9.html" title="tab_selected_focused_styled.9.png">tab_selected_focused_styled.9.png</a></li><li><a href="/samples/Styled/res/drawable-xhdpi/tab_selected_pressed_styled.9.html" title="tab_selected_pressed_styled.9.png">tab_selected_pressed_styled.9.png</a></li><li><a href="/samples/Styled/res/drawable-xhdpi/tab_selected_styled.9.html" title="tab_selected_styled.9.png">tab_selected_styled.9.png</a></li><li><a href="/samples/Styled/res/drawable-xhdpi/tab_unselected_focused_styled.9.html" title="tab_unselected_focused_styled.9.png">tab_unselected_focused_styled.9.png</a></li><li><a href="/samples/Styled/res/drawable-xhdpi/tab_unselected_pressed_styled.9.html" title="tab_unselected_pressed_styled.9.png">tab_unselected_pressed_styled.9.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-xxhdpi">drawable-xxhdpi/</a></div><ul><li><a href="/samples/Styled/res/drawable-xxhdpi/ic_launcher.html" title="ic_launcher.png">ic_launcher.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="layout">layout/</a></div><ul><li><a href="/samples/Styled/res/layout/activity_main.html" title="activity_main.xml">activity_main.xml</a></li><li><a href="/samples/Styled/res/layout/sample_main.html" title="sample_main.xml">sample_main.xml</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="menu">menu/</a></div><ul><li><a href="/samples/Styled/res/menu/main.html" title="main.xml">main.xml</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="values">values/</a></div><ul><li><a href="/samples/Styled/res/values/base-strings.html" title="base-strings.xml">base-strings.xml</a></li><li><a href="/samples/Styled/res/values/colors.html" title="colors.xml">colors.xml</a></li><li><a href="/samples/Styled/res/values/dimens.html" title="dimens.xml">dimens.xml</a></li><li><a href="/samples/Styled/res/values/strings.html" title="strings.xml">strings.xml</a></li><li><a href="/samples/Styled/res/values/styles.html" title="styles.xml">styles.xml</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="values-sw600dp">values-sw600dp/</a></div><ul><li><a href="/samples/Styled/res/values-sw600dp/dimens.html" title="dimens.xml">dimens.xml</a></li><li><a href="/samples/Styled/res/values-sw600dp/styles.html" title="styles.xml">styles.xml</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="values-v14">values-v14/</a></div><ul><li><a href="/samples/Styled/res/values-v14/styles.html" title="styles.xml">styles.xml</a></li></ul></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="src">src/</a></div><ul><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="com.example.android.actionbarcompat.styled">com.example.android.actionbarcompat.styled/</a></div><ul><li><a href="/samples/Styled/src/com.example.android.actionbarcompat.styled/MainActivity.html" title="MainActivity.java">MainActivity.java</a></li></ul></li></ul></li></ul></li><li class="nav-section"><div class="nav-section-header"><a href="/samples/Basic/index.html" title="Basic">Basic</a></div><ul><li><a href="/samples/Basic/AndroidManifest.html" title="AndroidManifest.xml">AndroidManifest.xml</a></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="res">res/</a></div><ul><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-hdpi">drawable-hdpi/</a></div><ul><li><a href="/samples/Basic/res/drawable-hdpi/ic_action_location.html" title="ic_action_location.png">ic_action_location.png</a></li><li><a href="/samples/Basic/res/drawable-hdpi/ic_action_refresh.html" title="ic_action_refresh.png">ic_action_refresh.png</a></li><li><a href="/samples/Basic/res/drawable-hdpi/ic_action_settings.html" title="ic_action_settings.png">ic_action_settings.png</a></li><li><a href="/samples/Basic/res/drawable-hdpi/ic_launcher.html" title="ic_launcher.png">ic_launcher.png</a></li><li><a href="/samples/Basic/res/drawable-hdpi/tile.9.html" title="tile.9.png">tile.9.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-mdpi">drawable-mdpi/</a></div><ul><li><a href="/samples/Basic/res/drawable-mdpi/ic_action_location.html" title="ic_action_location.png">ic_action_location.png</a></li><li><a href="/samples/Basic/res/drawable-mdpi/ic_action_refresh.html" title="ic_action_refresh.png">ic_action_refresh.png</a></li><li><a href="/samples/Basic/res/drawable-mdpi/ic_action_settings.html" title="ic_action_settings.png">ic_action_settings.png</a></li><li><a href="/samples/Basic/res/drawable-mdpi/ic_launcher.html" title="ic_launcher.png">ic_launcher.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-xhdpi">drawable-xhdpi/</a></div><ul><li><a href="/samples/Basic/res/drawable-xhdpi/ic_action_location.html" title="ic_action_location.png">ic_action_location.png</a></li><li><a href="/samples/Basic/res/drawable-xhdpi/ic_action_refresh.html" title="ic_action_refresh.png">ic_action_refresh.png</a></li><li><a href="/samples/Basic/res/drawable-xhdpi/ic_action_settings.html" title="ic_action_settings.png">ic_action_settings.png</a></li><li><a href="/samples/Basic/res/drawable-xhdpi/ic_launcher.html" title="ic_launcher.png">ic_launcher.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-xxhdpi">drawable-xxhdpi/</a></div><ul><li><a href="/samples/Basic/res/drawable-xxhdpi/ic_launcher.html" title="ic_launcher.png">ic_launcher.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="layout">layout/</a></div><ul><li><a href="/samples/Basic/res/layout/activity_main.html" title="activity_main.xml">activity_main.xml</a></li><li><a href="/samples/Basic/res/layout/sample_main.html" title="sample_main.xml">sample_main.xml</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="menu">menu/</a></div><ul><li><a href="/samples/Basic/res/menu/main.html" title="main.xml">main.xml</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="values">values/</a></div><ul><li><a href="/samples/Basic/res/values/base-strings.html" title="base-strings.xml">base-strings.xml</a></li><li><a href="/samples/Basic/res/values/dimens.html" title="dimens.xml">dimens.xml</a></li><li><a href="/samples/Basic/res/values/ids.html" title="ids.xml">ids.xml</a></li><li><a href="/samples/Basic/res/values/strings.html" title="strings.xml">strings.xml</a></li><li><a href="/samples/Basic/res/values/styles.html" title="styles.xml">styles.xml</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="values-sw600dp">values-sw600dp/</a></div><ul><li><a href="/samples/Basic/res/values-sw600dp/dimens.html" title="dimens.xml">dimens.xml</a></li><li><a href="/samples/Basic/res/values-sw600dp/styles.html" title="styles.xml">styles.xml</a></li></ul></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="src">src/</a></div><ul><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="com.example.android.actionbarcompat.basic">com.example.android.actionbarcompat.basic/</a></div><ul><li><a href="/samples/Basic/src/com.example.android.actionbarcompat.basic/MainActivity.html" title="MainActivity.java">MainActivity.java</a></li></ul></li></ul></li></ul></li><li class="nav-section"><div class="nav-section-header"><a href="/samples/ImmersiveMode/index.html" title="ImmersiveMode">ImmersiveMode</a></div><ul><li><a href="/samples/ImmersiveMode/AndroidManifest.html" title="AndroidManifest.xml">AndroidManifest.xml</a></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="res">res/</a></div><ul><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-hdpi">drawable-hdpi/</a></div><ul><li><a href="/samples/ImmersiveMode/res/drawable-hdpi/ic_launcher.html" title="ic_launcher.png">ic_launcher.png</a></li><li><a href="/samples/ImmersiveMode/res/drawable-hdpi/tile.9.html" title="tile.9.png">tile.9.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-mdpi">drawable-mdpi/</a></div><ul><li><a href="/samples/ImmersiveMode/res/drawable-mdpi/ic_launcher.html" title="ic_launcher.png">ic_launcher.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-xhdpi">drawable-xhdpi/</a></div><ul><li><a href="/samples/ImmersiveMode/res/drawable-xhdpi/ic_launcher.html" title="ic_launcher.png">ic_launcher.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-xxhdpi">drawable-xxhdpi/</a></div><ul><li><a href="/samples/ImmersiveMode/res/drawable-xxhdpi/ic_launcher.html" title="ic_launcher.png">ic_launcher.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="layout">layout/</a></div><ul><li><a href="/samples/ImmersiveMode/res/layout/activity_main.html" title="activity_main.xml">activity_main.xml</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="menu">menu/</a></div><ul><li><a href="/samples/ImmersiveMode/res/menu/main.html" title="main.xml">main.xml</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="values">values/</a></div><ul><li><a href="/samples/ImmersiveMode/res/values/base-strings.html" title="base-strings.xml">base-strings.xml</a></li><li><a href="/samples/ImmersiveMode/res/values/dimens.html" title="dimens.xml">dimens.xml</a></li><li><a href="/samples/ImmersiveMode/res/values/strings.html" title="strings.xml">strings.xml</a></li><li><a href="/samples/ImmersiveMode/res/values/styles.html" title="styles.xml">styles.xml</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="values-sw600dp">values-sw600dp/</a></div><ul><li><a href="/samples/ImmersiveMode/res/values-sw600dp/dimens.html" title="dimens.xml">dimens.xml</a></li><li><a href="/samples/ImmersiveMode/res/values-sw600dp/styles.html" title="styles.xml">styles.xml</a></li></ul></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="src">src/</a></div><ul><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="com.example.android.common">com.example.android.common/</a></div><ul><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="activities">activities/</a></div><ul><li><a href="/samples/ImmersiveMode/src/com.example.android.common/activities/SampleActivityBase.html" title="SampleActivityBase.java">SampleActivityBase.java</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="logger">logger/</a></div><ul><li><a href="/samples/ImmersiveMode/src/com.example.android.common/logger/Log.html" title="Log.java">Log.java</a></li><li><a href="/samples/ImmersiveMode/src/com.example.android.common/logger/LogFragment.html" title="LogFragment.java">LogFragment.java</a></li><li><a href="/samples/ImmersiveMode/src/com.example.android.common/logger/LogNode.html" title="LogNode.java">LogNode.java</a></li><li><a href="/samples/ImmersiveMode/src/com.example.android.common/logger/LogView.html" title="LogView.java">LogView.java</a></li><li><a href="/samples/ImmersiveMode/src/com.example.android.common/logger/LogWrapper.html" title="LogWrapper.java">LogWrapper.java</a></li><li><a href="/samples/ImmersiveMode/src/com.example.android.common/logger/MessageOnlyLogFilter.html" title="MessageOnlyLogFilter.java">MessageOnlyLogFilter.java</a></li></ul></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="com.example.android.immersivemode">com.example.android.immersivemode/</a></div><ul><li><a href="/samples/ImmersiveMode/src/com.example.android.immersivemode/ImmersiveModeFragment.html" title="ImmersiveModeFragment.java">ImmersiveModeFragment.java</a></li><li><a href="/samples/ImmersiveMode/src/com.example.android.immersivemode/MainActivity.html" title="MainActivity.java">MainActivity.java</a></li></ul></li></ul></li></ul></li><li class="nav-section"><div class="nav-section-header"><a href="/samples/TextSwitcher/index.html" title="TextSwitcher">TextSwitcher</a></div><ul><li><a href="/samples/TextSwitcher/AndroidManifest.html" title="AndroidManifest.xml">AndroidManifest.xml</a></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="res">res/</a></div><ul><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-hdpi">drawable-hdpi/</a></div><ul><li><a href="/samples/TextSwitcher/res/drawable-hdpi/ic_launcher.html" title="ic_launcher.png">ic_launcher.png</a></li><li><a href="/samples/TextSwitcher/res/drawable-hdpi/tile.9.html" title="tile.9.png">tile.9.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-mdpi">drawable-mdpi/</a></div><ul><li><a href="/samples/TextSwitcher/res/drawable-mdpi/ic_launcher.html" title="ic_launcher.png">ic_launcher.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-xhdpi">drawable-xhdpi/</a></div><ul><li><a href="/samples/TextSwitcher/res/drawable-xhdpi/ic_launcher.html" title="ic_launcher.png">ic_launcher.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-xxhdpi">drawable-xxhdpi/</a></div><ul><li><a href="/samples/TextSwitcher/res/drawable-xxhdpi/ic_launcher.html" title="ic_launcher.png">ic_launcher.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="layout">layout/</a></div><ul><li><a href="/samples/TextSwitcher/res/layout/activity_main.html" title="activity_main.xml">activity_main.xml</a></li><li><a href="/samples/TextSwitcher/res/layout/sample_main.html" title="sample_main.xml">sample_main.xml</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="values">values/</a></div><ul><li><a href="/samples/TextSwitcher/res/values/base-strings.html" title="base-strings.xml">base-strings.xml</a></li><li><a href="/samples/TextSwitcher/res/values/dimens.html" title="dimens.xml">dimens.xml</a></li><li><a href="/samples/TextSwitcher/res/values/strings.html" title="strings.xml">strings.xml</a></li><li><a href="/samples/TextSwitcher/res/values/styles.html" title="styles.xml">styles.xml</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="values-sw600dp">values-sw600dp/</a></div><ul><li><a href="/samples/TextSwitcher/res/values-sw600dp/dimens.html" title="dimens.xml">dimens.xml</a></li><li><a href="/samples/TextSwitcher/res/values-sw600dp/styles.html" title="styles.xml">styles.xml</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="values-sw720dp-land">values-sw720dp-land/</a></div><ul><li><a href="/samples/TextSwitcher/res/values-sw720dp-land/dimens.html" title="dimens.xml">dimens.xml</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="values-v11">values-v11/</a></div><ul><li><a href="/samples/TextSwitcher/res/values-v11/styles.html" title="styles.xml">styles.xml</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="values-v14">values-v14/</a></div><ul><li><a href="/samples/TextSwitcher/res/values-v14/styles.html" title="styles.xml">styles.xml</a></li></ul></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="src">src/</a></div><ul><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="com.example.android.common.logger">com.example.android.common.logger/</a></div><ul><li><a href="/samples/TextSwitcher/src/com.example.android.common.logger/Log.html" title="Log.java">Log.java</a></li><li><a href="/samples/TextSwitcher/src/com.example.android.common.logger/LogFragment.html" title="LogFragment.java">LogFragment.java</a></li><li><a href="/samples/TextSwitcher/src/com.example.android.common.logger/LogNode.html" title="LogNode.java">LogNode.java</a></li><li><a href="/samples/TextSwitcher/src/com.example.android.common.logger/LogView.html" title="LogView.java">LogView.java</a></li><li><a href="/samples/TextSwitcher/src/com.example.android.common.logger/LogWrapper.html" title="LogWrapper.java">LogWrapper.java</a></li><li><a href="/samples/TextSwitcher/src/com.example.android.common.logger/MessageOnlyLogFilter.html" title="MessageOnlyLogFilter.java">MessageOnlyLogFilter.java</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="com.example.android.textswitcher">com.example.android.textswitcher/</a></div><ul><li><a href="/samples/TextSwitcher/src/com.example.android.textswitcher/MainActivity.html" title="MainActivity.java">MainActivity.java</a></li></ul></li></ul></li></ul></li><li class="nav-section"><div class="nav-section-header"><a href="/samples/BorderlessButtons/index.html" title="BorderlessButtons">BorderlessButtons</a></div><ul><li><a href="/samples/BorderlessButtons/AndroidManifest.html" title="AndroidManifest.xml">AndroidManifest.xml</a></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="res">res/</a></div><ul><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-hdpi">drawable-hdpi/</a></div><ul><li><a href="/samples/BorderlessButtons/res/drawable-hdpi/ic_action_delete.html" title="ic_action_delete.png">ic_action_delete.png</a></li><li><a href="/samples/BorderlessButtons/res/drawable-hdpi/ic_launcher.html" title="ic_launcher.png">ic_launcher.png</a></li><li><a href="/samples/BorderlessButtons/res/drawable-hdpi/tile.9.html" title="tile.9.png">tile.9.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-mdpi">drawable-mdpi/</a></div><ul><li><a href="/samples/BorderlessButtons/res/drawable-mdpi/ic_action_delete.html" title="ic_action_delete.png">ic_action_delete.png</a></li><li><a href="/samples/BorderlessButtons/res/drawable-mdpi/ic_launcher.html" title="ic_launcher.png">ic_launcher.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-xhdpi">drawable-xhdpi/</a></div><ul><li><a href="/samples/BorderlessButtons/res/drawable-xhdpi/ic_action_delete.html" title="ic_action_delete.png">ic_action_delete.png</a></li><li><a href="/samples/BorderlessButtons/res/drawable-xhdpi/ic_launcher.html" title="ic_launcher.png">ic_launcher.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-xxhdpi">drawable-xxhdpi/</a></div><ul><li><a href="/samples/BorderlessButtons/res/drawable-xxhdpi/ic_launcher.html" title="ic_launcher.png">ic_launcher.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="layout">layout/</a></div><ul><li><a href="/samples/BorderlessButtons/res/layout/activity_main.html" title="activity_main.xml">activity_main.xml</a></li><li><a href="/samples/BorderlessButtons/res/layout/list_item.html" title="list_item.xml">list_item.xml</a></li><li><a href="/samples/BorderlessButtons/res/layout/sample_main.html" title="sample_main.xml">sample_main.xml</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="menu">menu/</a></div><ul><li><a href="/samples/BorderlessButtons/res/menu/main.html" title="main.xml">main.xml</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="values">values/</a></div><ul><li><a href="/samples/BorderlessButtons/res/values/base-strings.html" title="base-strings.xml">base-strings.xml</a></li><li><a href="/samples/BorderlessButtons/res/values/dimens.html" title="dimens.xml">dimens.xml</a></li><li><a href="/samples/BorderlessButtons/res/values/strings.html" title="strings.xml">strings.xml</a></li><li><a href="/samples/BorderlessButtons/res/values/styles.html" title="styles.xml">styles.xml</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="values-sw600dp">values-sw600dp/</a></div><ul><li><a href="/samples/BorderlessButtons/res/values-sw600dp/dimens.html" title="dimens.xml">dimens.xml</a></li><li><a href="/samples/BorderlessButtons/res/values-sw600dp/styles.html" title="styles.xml">styles.xml</a></li></ul></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="src">src/</a></div><ul><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="com.example.android.borderlessbuttons">com.example.android.borderlessbuttons/</a></div><ul><li><a href="/samples/BorderlessButtons/src/com.example.android.borderlessbuttons/MainActivity.html" title="MainActivity.java">MainActivity.java</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="com.example.android.common.logger">com.example.android.common.logger/</a></div><ul><li><a href="/samples/BorderlessButtons/src/com.example.android.common.logger/Log.html" title="Log.java">Log.java</a></li><li><a href="/samples/BorderlessButtons/src/com.example.android.common.logger/LogFragment.html" title="LogFragment.java">LogFragment.java</a></li><li><a href="/samples/BorderlessButtons/src/com.example.android.common.logger/LogNode.html" title="LogNode.java">LogNode.java</a></li><li><a href="/samples/BorderlessButtons/src/com.example.android.common.logger/LogView.html" title="LogView.java">LogView.java</a></li><li><a href="/samples/BorderlessButtons/src/com.example.android.common.logger/LogWrapper.html" title="LogWrapper.java">LogWrapper.java</a></li><li><a href="/samples/BorderlessButtons/src/com.example.android.common.logger/MessageOnlyLogFilter.html" title="MessageOnlyLogFilter.java">MessageOnlyLogFilter.java</a></li></ul></li></ul></li></ul></li><li class="nav-section"><div class="nav-section-header"><a href="/samples/BasicNotifications/index.html" title="BasicNotifications">BasicNotifications</a></div><ul><li><a href="/samples/BasicNotifications/AndroidManifest.html" title="AndroidManifest.xml">AndroidManifest.xml</a></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="res">res/</a></div><ul><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-hdpi">drawable-hdpi/</a></div><ul><li><a href="/samples/BasicNotifications/res/drawable-hdpi/ic_launcher.html" title="ic_launcher.png">ic_launcher.png</a></li><li><a href="/samples/BasicNotifications/res/drawable-hdpi/ic_stat_notification.html" title="ic_stat_notification.png">ic_stat_notification.png</a></li><li><a href="/samples/BasicNotifications/res/drawable-hdpi/tile.9.html" title="tile.9.png">tile.9.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-hdpi-v11">drawable-hdpi-v11/</a></div><ul><li><a href="/samples/BasicNotifications/res/drawable-hdpi-v11/ic_stat_notification.html" title="ic_stat_notification.png">ic_stat_notification.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-hdpi-v9">drawable-hdpi-v9/</a></div><ul><li><a href="/samples/BasicNotifications/res/drawable-hdpi-v9/ic_stat_notification.html" title="ic_stat_notification.png">ic_stat_notification.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-ldpi-v11">drawable-ldpi-v11/</a></div><ul><li><a href="/samples/BasicNotifications/res/drawable-ldpi-v11/ic_stat_notification.html" title="ic_stat_notification.png">ic_stat_notification.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-ldpi-v9">drawable-ldpi-v9/</a></div><ul><li><a href="/samples/BasicNotifications/res/drawable-ldpi-v9/ic_stat_notification.html" title="ic_stat_notification.png">ic_stat_notification.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-mdpi">drawable-mdpi/</a></div><ul><li><a href="/samples/BasicNotifications/res/drawable-mdpi/ic_launcher.html" title="ic_launcher.png">ic_launcher.png</a></li><li><a href="/samples/BasicNotifications/res/drawable-mdpi/ic_stat_notification.html" title="ic_stat_notification.png">ic_stat_notification.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-mdpi-v11">drawable-mdpi-v11/</a></div><ul><li><a href="/samples/BasicNotifications/res/drawable-mdpi-v11/ic_stat_notification.html" title="ic_stat_notification.png">ic_stat_notification.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-mdpi-v9">drawable-mdpi-v9/</a></div><ul><li><a href="/samples/BasicNotifications/res/drawable-mdpi-v9/ic_stat_notification.html" title="ic_stat_notification.png">ic_stat_notification.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-xhdpi">drawable-xhdpi/</a></div><ul><li><a href="/samples/BasicNotifications/res/drawable-xhdpi/ic_launcher.html" title="ic_launcher.png">ic_launcher.png</a></li><li><a href="/samples/BasicNotifications/res/drawable-xhdpi/ic_stat_notification.html" title="ic_stat_notification.png">ic_stat_notification.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-xhdpi-v11">drawable-xhdpi-v11/</a></div><ul><li><a href="/samples/BasicNotifications/res/drawable-xhdpi-v11/ic_stat_notification.html" title="ic_stat_notification.png">ic_stat_notification.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-xhdpi-v9">drawable-xhdpi-v9/</a></div><ul><li><a href="/samples/BasicNotifications/res/drawable-xhdpi-v9/ic_stat_notification.html" title="ic_stat_notification.png">ic_stat_notification.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-xxhdpi">drawable-xxhdpi/</a></div><ul><li><a href="/samples/BasicNotifications/res/drawable-xxhdpi/ic_launcher.html" title="ic_launcher.png">ic_launcher.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="layout">layout/</a></div><ul><li><a href="/samples/BasicNotifications/res/layout/activity_main.html" title="activity_main.xml">activity_main.xml</a></li><li><a href="/samples/BasicNotifications/res/layout/sample_layout.html" title="sample_layout.xml">sample_layout.xml</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="values">values/</a></div><ul><li><a href="/samples/BasicNotifications/res/values/base-strings.html" title="base-strings.xml">base-strings.xml</a></li><li><a href="/samples/BasicNotifications/res/values/dimens.html" title="dimens.xml">dimens.xml</a></li><li><a href="/samples/BasicNotifications/res/values/strings.html" title="strings.xml">strings.xml</a></li><li><a href="/samples/BasicNotifications/res/values/styles.html" title="styles.xml">styles.xml</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="values-sw600dp">values-sw600dp/</a></div><ul><li><a href="/samples/BasicNotifications/res/values-sw600dp/dimens.html" title="dimens.xml">dimens.xml</a></li><li><a href="/samples/BasicNotifications/res/values-sw600dp/styles.html" title="styles.xml">styles.xml</a></li></ul></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="src">src/</a></div><ul><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="com.example.android.basicnotifications">com.example.android.basicnotifications/</a></div><ul><li><a href="/samples/BasicNotifications/src/com.example.android.basicnotifications/MainActivity.html" title="MainActivity.java">MainActivity.java</a></li></ul></li></ul></li></ul></li><li class="nav-section"><div class="nav-section-header"><a href="/samples/AdvancedImmersiveMode/index.html" title="AdvancedImmersiveMode">AdvancedImmersiveMode</a></div><ul><li><a href="/samples/AdvancedImmersiveMode/AndroidManifest.html" title="AndroidManifest.xml">AndroidManifest.xml</a></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="res">res/</a></div><ul><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-hdpi">drawable-hdpi/</a></div><ul><li><a href="/samples/AdvancedImmersiveMode/res/drawable-hdpi/ic_launcher.html" title="ic_launcher.png">ic_launcher.png</a></li><li><a href="/samples/AdvancedImmersiveMode/res/drawable-hdpi/tile.9.html" title="tile.9.png">tile.9.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-mdpi">drawable-mdpi/</a></div><ul><li><a href="/samples/AdvancedImmersiveMode/res/drawable-mdpi/ic_launcher.html" title="ic_launcher.png">ic_launcher.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-xhdpi">drawable-xhdpi/</a></div><ul><li><a href="/samples/AdvancedImmersiveMode/res/drawable-xhdpi/ic_launcher.html" title="ic_launcher.png">ic_launcher.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-xxhdpi">drawable-xxhdpi/</a></div><ul><li><a href="/samples/AdvancedImmersiveMode/res/drawable-xxhdpi/ic_launcher.html" title="ic_launcher.png">ic_launcher.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="layout">layout/</a></div><ul><li><a href="/samples/AdvancedImmersiveMode/res/layout/activity_main.html" title="activity_main.xml">activity_main.xml</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="menu">menu/</a></div><ul><li><a href="/samples/AdvancedImmersiveMode/res/menu/main.html" title="main.xml">main.xml</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="values">values/</a></div><ul><li><a href="/samples/AdvancedImmersiveMode/res/values/base-strings.html" title="base-strings.xml">base-strings.xml</a></li><li><a href="/samples/AdvancedImmersiveMode/res/values/dimens.html" title="dimens.xml">dimens.xml</a></li><li><a href="/samples/AdvancedImmersiveMode/res/values/strings.html" title="strings.xml">strings.xml</a></li><li><a href="/samples/AdvancedImmersiveMode/res/values/styles.html" title="styles.xml">styles.xml</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="values-sw600dp">values-sw600dp/</a></div><ul><li><a href="/samples/AdvancedImmersiveMode/res/values-sw600dp/dimens.html" title="dimens.xml">dimens.xml</a></li><li><a href="/samples/AdvancedImmersiveMode/res/values-sw600dp/styles.html" title="styles.xml">styles.xml</a></li></ul></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="src">src/</a></div><ul><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="com.example.android.advancedimmersivemode">com.example.android.advancedimmersivemode/</a></div><ul><li><a href="/samples/AdvancedImmersiveMode/src/com.example.android.advancedimmersivemode/AdvancedImmersiveModeFragment.html" title="AdvancedImmersiveModeFragment.java">AdvancedImmersiveModeFragment.java</a></li><li><a href="/samples/AdvancedImmersiveMode/src/com.example.android.advancedimmersivemode/MainActivity.html" title="MainActivity.java">MainActivity.java</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="com.example.android.common">com.example.android.common/</a></div><ul><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="activities">activities/</a></div><ul><li><a href="/samples/AdvancedImmersiveMode/src/com.example.android.common/activities/SampleActivityBase.html" title="SampleActivityBase.java">SampleActivityBase.java</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="logger">logger/</a></div><ul><li><a href="/samples/AdvancedImmersiveMode/src/com.example.android.common/logger/Log.html" title="Log.java">Log.java</a></li><li><a href="/samples/AdvancedImmersiveMode/src/com.example.android.common/logger/LogFragment.html" title="LogFragment.java">LogFragment.java</a></li><li><a href="/samples/AdvancedImmersiveMode/src/com.example.android.common/logger/LogNode.html" title="LogNode.java">LogNode.java</a></li><li><a href="/samples/AdvancedImmersiveMode/src/com.example.android.common/logger/LogView.html" title="LogView.java">LogView.java</a></li><li><a href="/samples/AdvancedImmersiveMode/src/com.example.android.common/logger/LogWrapper.html" title="LogWrapper.java">LogWrapper.java</a></li><li><a href="/samples/AdvancedImmersiveMode/src/com.example.android.common/logger/MessageOnlyLogFilter.html" title="MessageOnlyLogFilter.java">MessageOnlyLogFilter.java</a></li></ul></li></ul></li></ul></li></ul></li><li class="nav-section"><div class="nav-section-header"><a href="/samples/BasicImmersiveMode/index.html" title="BasicImmersiveMode">BasicImmersiveMode</a></div><ul><li><a href="/samples/BasicImmersiveMode/AndroidManifest.html" title="AndroidManifest.xml">AndroidManifest.xml</a></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="res">res/</a></div><ul><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-hdpi">drawable-hdpi/</a></div><ul><li><a href="/samples/BasicImmersiveMode/res/drawable-hdpi/ic_launcher.html" title="ic_launcher.png">ic_launcher.png</a></li><li><a href="/samples/BasicImmersiveMode/res/drawable-hdpi/tile.9.html" title="tile.9.png">tile.9.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-mdpi">drawable-mdpi/</a></div><ul><li><a href="/samples/BasicImmersiveMode/res/drawable-mdpi/ic_launcher.html" title="ic_launcher.png">ic_launcher.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-xhdpi">drawable-xhdpi/</a></div><ul><li><a href="/samples/BasicImmersiveMode/res/drawable-xhdpi/ic_launcher.html" title="ic_launcher.png">ic_launcher.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-xxhdpi">drawable-xxhdpi/</a></div><ul><li><a href="/samples/BasicImmersiveMode/res/drawable-xxhdpi/ic_launcher.html" title="ic_launcher.png">ic_launcher.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="layout">layout/</a></div><ul><li><a href="/samples/BasicImmersiveMode/res/layout/activity_main.html" title="activity_main.xml">activity_main.xml</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="menu">menu/</a></div><ul><li><a href="/samples/BasicImmersiveMode/res/menu/main.html" title="main.xml">main.xml</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="values">values/</a></div><ul><li><a href="/samples/BasicImmersiveMode/res/values/base-strings.html" title="base-strings.xml">base-strings.xml</a></li><li><a href="/samples/BasicImmersiveMode/res/values/dimens.html" title="dimens.xml">dimens.xml</a></li><li><a href="/samples/BasicImmersiveMode/res/values/strings.html" title="strings.xml">strings.xml</a></li><li><a href="/samples/BasicImmersiveMode/res/values/styles.html" title="styles.xml">styles.xml</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="values-sw600dp">values-sw600dp/</a></div><ul><li><a href="/samples/BasicImmersiveMode/res/values-sw600dp/dimens.html" title="dimens.xml">dimens.xml</a></li><li><a href="/samples/BasicImmersiveMode/res/values-sw600dp/styles.html" title="styles.xml">styles.xml</a></li></ul></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="src">src/</a></div><ul><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="com.example.android.basicimmersivemode">com.example.android.basicimmersivemode/</a></div><ul><li><a href="/samples/BasicImmersiveMode/src/com.example.android.basicimmersivemode/BasicImmersiveModeFragment.html" title="BasicImmersiveModeFragment.java">BasicImmersiveModeFragment.java</a></li><li><a href="/samples/BasicImmersiveMode/src/com.example.android.basicimmersivemode/MainActivity.html" title="MainActivity.java">MainActivity.java</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="com.example.android.common">com.example.android.common/</a></div><ul><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="activities">activities/</a></div><ul><li><a href="/samples/BasicImmersiveMode/src/com.example.android.common/activities/SampleActivityBase.html" title="SampleActivityBase.java">SampleActivityBase.java</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="logger">logger/</a></div><ul><li><a href="/samples/BasicImmersiveMode/src/com.example.android.common/logger/Log.html" title="Log.java">Log.java</a></li><li><a href="/samples/BasicImmersiveMode/src/com.example.android.common/logger/LogFragment.html" title="LogFragment.java">LogFragment.java</a></li><li><a href="/samples/BasicImmersiveMode/src/com.example.android.common/logger/LogNode.html" title="LogNode.java">LogNode.java</a></li><li><a href="/samples/BasicImmersiveMode/src/com.example.android.common/logger/LogView.html" title="LogView.java">LogView.java</a></li><li><a href="/samples/BasicImmersiveMode/src/com.example.android.common/logger/LogWrapper.html" title="LogWrapper.java">LogWrapper.java</a></li><li><a href="/samples/BasicImmersiveMode/src/com.example.android.common/logger/MessageOnlyLogFilter.html" title="MessageOnlyLogFilter.java">MessageOnlyLogFilter.java</a></li></ul></li></ul></li></ul></li></ul></li><li class="nav-section"><div class="nav-section-header"><a href="/samples/CustomChoiceList/index.html" title="CustomChoiceList">CustomChoiceList</a></div><ul><li><a href="/samples/CustomChoiceList/AndroidManifest.html" title="AndroidManifest.xml">AndroidManifest.xml</a></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="res">res/</a></div><ul><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="color">color/</a></div><ul><li><a href="/samples/CustomChoiceList/res/color/hideable_text_color.html" title="hideable_text_color.xml">hideable_text_color.xml</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable">drawable/</a></div><ul><li><a href="/samples/CustomChoiceList/res/drawable/ic_hideable_item.html" title="ic_hideable_item.xml">ic_hideable_item.xml</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-hdpi">drawable-hdpi/</a></div><ul><li><a href="/samples/CustomChoiceList/res/drawable-hdpi/ic_launcher.html" title="ic_launcher.png">ic_launcher.png</a></li><li><a href="/samples/CustomChoiceList/res/drawable-hdpi/tile.9.html" title="tile.9.png">tile.9.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-mdpi">drawable-mdpi/</a></div><ul><li><a href="/samples/CustomChoiceList/res/drawable-mdpi/ic_launcher.html" title="ic_launcher.png">ic_launcher.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-xhdpi">drawable-xhdpi/</a></div><ul><li><a href="/samples/CustomChoiceList/res/drawable-xhdpi/ic_hideable_item_checked.html" title="ic_hideable_item_checked.png">ic_hideable_item_checked.png</a></li><li><a href="/samples/CustomChoiceList/res/drawable-xhdpi/ic_hideable_item_unchecked.html" title="ic_hideable_item_unchecked.png">ic_hideable_item_unchecked.png</a></li><li><a href="/samples/CustomChoiceList/res/drawable-xhdpi/ic_launcher.html" title="ic_launcher.png">ic_launcher.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-xxhdpi">drawable-xxhdpi/</a></div><ul><li><a href="/samples/CustomChoiceList/res/drawable-xxhdpi/ic_launcher.html" title="ic_launcher.png">ic_launcher.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="layout">layout/</a></div><ul><li><a href="/samples/CustomChoiceList/res/layout/activity_main.html" title="activity_main.xml">activity_main.xml</a></li><li><a href="/samples/CustomChoiceList/res/layout/list_item.html" title="list_item.xml">list_item.xml</a></li><li><a href="/samples/CustomChoiceList/res/layout/sample_main.html" title="sample_main.xml">sample_main.xml</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="values">values/</a></div><ul><li><a href="/samples/CustomChoiceList/res/values/base-strings.html" title="base-strings.xml">base-strings.xml</a></li><li><a href="/samples/CustomChoiceList/res/values/dimens.html" title="dimens.xml">dimens.xml</a></li><li><a href="/samples/CustomChoiceList/res/values/styles.html" title="styles.xml">styles.xml</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="values-sw600dp">values-sw600dp/</a></div><ul><li><a href="/samples/CustomChoiceList/res/values-sw600dp/dimens.html" title="dimens.xml">dimens.xml</a></li><li><a href="/samples/CustomChoiceList/res/values-sw600dp/styles.html" title="styles.xml">styles.xml</a></li></ul></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="src">src/</a></div><ul><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="com.example.android.common.logger">com.example.android.common.logger/</a></div><ul><li><a href="/samples/CustomChoiceList/src/com.example.android.common.logger/Log.html" title="Log.java">Log.java</a></li><li><a href="/samples/CustomChoiceList/src/com.example.android.common.logger/LogFragment.html" title="LogFragment.java">LogFragment.java</a></li><li><a href="/samples/CustomChoiceList/src/com.example.android.common.logger/LogNode.html" title="LogNode.java">LogNode.java</a></li><li><a href="/samples/CustomChoiceList/src/com.example.android.common.logger/LogView.html" title="LogView.java">LogView.java</a></li><li><a href="/samples/CustomChoiceList/src/com.example.android.common.logger/LogWrapper.html" title="LogWrapper.java">LogWrapper.java</a></li><li><a href="/samples/CustomChoiceList/src/com.example.android.common.logger/MessageOnlyLogFilter.html" title="MessageOnlyLogFilter.java">MessageOnlyLogFilter.java</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="com.example.android.customchoicelist">com.example.android.customchoicelist/</a></div><ul><li><a href="/samples/CustomChoiceList/src/com.example.android.customchoicelist/CheckableLinearLayout.html" title="CheckableLinearLayout.java">CheckableLinearLayout.java</a></li><li><a href="/samples/CustomChoiceList/src/com.example.android.customchoicelist/Cheeses.html" title="Cheeses.java">Cheeses.java</a></li><li><a href="/samples/CustomChoiceList/src/com.example.android.customchoicelist/MainActivity.html" title="MainActivity.java">MainActivity.java</a></li></ul></li></ul></li></ul></li><li class="nav-section"><div class="nav-section-header"><a href="/samples/DoneBar/index.html" title="DoneBar">DoneBar</a></div><ul><li><a href="/samples/DoneBar/AndroidManifest.html" title="AndroidManifest.xml">AndroidManifest.xml</a></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="res">res/</a></div><ul><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-hdpi">drawable-hdpi/</a></div><ul><li><a href="/samples/DoneBar/res/drawable-hdpi/ic_action_cancel.html" title="ic_action_cancel.png">ic_action_cancel.png</a></li><li><a href="/samples/DoneBar/res/drawable-hdpi/ic_action_done.html" title="ic_action_done.png">ic_action_done.png</a></li><li><a href="/samples/DoneBar/res/drawable-hdpi/ic_launcher.html" title="ic_launcher.png">ic_launcher.png</a></li><li><a href="/samples/DoneBar/res/drawable-hdpi/tile.9.html" title="tile.9.png">tile.9.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-mdpi">drawable-mdpi/</a></div><ul><li><a href="/samples/DoneBar/res/drawable-mdpi/ic_action_cancel.html" title="ic_action_cancel.png">ic_action_cancel.png</a></li><li><a href="/samples/DoneBar/res/drawable-mdpi/ic_action_done.html" title="ic_action_done.png">ic_action_done.png</a></li><li><a href="/samples/DoneBar/res/drawable-mdpi/ic_launcher.html" title="ic_launcher.png">ic_launcher.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-xhdpi">drawable-xhdpi/</a></div><ul><li><a href="/samples/DoneBar/res/drawable-xhdpi/ic_action_cancel.html" title="ic_action_cancel.png">ic_action_cancel.png</a></li><li><a href="/samples/DoneBar/res/drawable-xhdpi/ic_action_done.html" title="ic_action_done.png">ic_action_done.png</a></li><li><a href="/samples/DoneBar/res/drawable-xhdpi/ic_launcher.html" title="ic_launcher.png">ic_launcher.png</a></li><li><a href="/samples/DoneBar/res/drawable-xhdpi/sample_dashboard_item_background.9.html" title="sample_dashboard_item_background.9.png">sample_dashboard_item_background.9.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-xxhdpi">drawable-xxhdpi/</a></div><ul><li><a href="/samples/DoneBar/res/drawable-xxhdpi/ic_launcher.html" title="ic_launcher.png">ic_launcher.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="layout">layout/</a></div><ul><li><a href="/samples/DoneBar/res/layout/actionbar_custom_view_done.html" title="actionbar_custom_view_done.xml">actionbar_custom_view_done.xml</a></li><li><a href="/samples/DoneBar/res/layout/actionbar_custom_view_done_cancel.html" title="actionbar_custom_view_done_cancel.xml">actionbar_custom_view_done_cancel.xml</a></li><li><a href="/samples/DoneBar/res/layout/activity_done_bar.html" title="activity_done_bar.xml">activity_done_bar.xml</a></li><li><a href="/samples/DoneBar/res/layout/activity_done_button.html" title="activity_done_button.xml">activity_done_button.xml</a></li><li><a href="/samples/DoneBar/res/layout/activity_main.html" title="activity_main.xml">activity_main.xml</a></li><li><a href="/samples/DoneBar/res/layout/activity_sample_dashboard.html" title="activity_sample_dashboard.xml">activity_sample_dashboard.xml</a></li><li><a href="/samples/DoneBar/res/layout/include_cancel_button.html" title="include_cancel_button.xml">include_cancel_button.xml</a></li><li><a href="/samples/DoneBar/res/layout/include_done_button.html" title="include_done_button.xml">include_done_button.xml</a></li><li><a href="/samples/DoneBar/res/layout/sample_dashboard_item.html" title="sample_dashboard_item.xml">sample_dashboard_item.xml</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="menu">menu/</a></div><ul><li><a href="/samples/DoneBar/res/menu/cancel.html" title="cancel.xml">cancel.xml</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="values">values/</a></div><ul><li><a href="/samples/DoneBar/res/values/activitycards-strings.html" title="activitycards-strings.xml">activitycards-strings.xml</a></li><li><a href="/samples/DoneBar/res/values/base-strings.html" title="base-strings.xml">base-strings.xml</a></li><li><a href="/samples/DoneBar/res/values/dimens.html" title="dimens.xml">dimens.xml</a></li><li><a href="/samples/DoneBar/res/values/strings.html" title="strings.xml">strings.xml</a></li><li><a href="/samples/DoneBar/res/values/styles.html" title="styles.xml">styles.xml</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="values-sw600dp">values-sw600dp/</a></div><ul><li><a href="/samples/DoneBar/res/values-sw600dp/dimens.html" title="dimens.xml">dimens.xml</a></li><li><a href="/samples/DoneBar/res/values-sw600dp/styles.html" title="styles.xml">styles.xml</a></li></ul></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="src">src/</a></div><ul><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="com.example.android.donebar">com.example.android.donebar/</a></div><ul><li><a href="/samples/DoneBar/src/com.example.android.donebar/DoneBarActivity.html" title="DoneBarActivity.java">DoneBarActivity.java</a></li><li><a href="/samples/DoneBar/src/com.example.android.donebar/DoneButtonActivity.html" title="DoneButtonActivity.java">DoneButtonActivity.java</a></li><li><a href="/samples/DoneBar/src/com.example.android.donebar/MainActivity.html" title="MainActivity.java">MainActivity.java</a></li></ul></li></ul></li></ul></li><li class="nav-section"><div class="nav-section-header"><a href="/samples/ListPopupMenu/index.html" title="ListPopupMenu">ListPopupMenu</a></div><ul><li><a href="/samples/ListPopupMenu/AndroidManifest.html" title="AndroidManifest.xml">AndroidManifest.xml</a></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="res">res/</a></div><ul><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-hdpi">drawable-hdpi/</a></div><ul><li><a href="/samples/ListPopupMenu/res/drawable-hdpi/ic_launcher.html" title="ic_launcher.png">ic_launcher.png</a></li><li><a href="/samples/ListPopupMenu/res/drawable-hdpi/ic_overflow.html" title="ic_overflow.png">ic_overflow.png</a></li><li><a href="/samples/ListPopupMenu/res/drawable-hdpi/tile.9.html" title="tile.9.png">tile.9.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-mdpi">drawable-mdpi/</a></div><ul><li><a href="/samples/ListPopupMenu/res/drawable-mdpi/ic_launcher.html" title="ic_launcher.png">ic_launcher.png</a></li><li><a href="/samples/ListPopupMenu/res/drawable-mdpi/ic_overflow.html" title="ic_overflow.png">ic_overflow.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-xhdpi">drawable-xhdpi/</a></div><ul><li><a href="/samples/ListPopupMenu/res/drawable-xhdpi/ic_launcher.html" title="ic_launcher.png">ic_launcher.png</a></li><li><a href="/samples/ListPopupMenu/res/drawable-xhdpi/ic_overflow.html" title="ic_overflow.png">ic_overflow.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-xxhdpi">drawable-xxhdpi/</a></div><ul><li><a href="/samples/ListPopupMenu/res/drawable-xxhdpi/ic_launcher.html" title="ic_launcher.png">ic_launcher.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="layout">layout/</a></div><ul><li><a href="/samples/ListPopupMenu/res/layout/activity_main.html" title="activity_main.xml">activity_main.xml</a></li><li><a href="/samples/ListPopupMenu/res/layout/list_item.html" title="list_item.xml">list_item.xml</a></li><li><a href="/samples/ListPopupMenu/res/layout/sample_main.html" title="sample_main.xml">sample_main.xml</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="menu">menu/</a></div><ul><li><a href="/samples/ListPopupMenu/res/menu/popup.html" title="popup.xml">popup.xml</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="values">values/</a></div><ul><li><a href="/samples/ListPopupMenu/res/values/base-strings.html" title="base-strings.xml">base-strings.xml</a></li><li><a href="/samples/ListPopupMenu/res/values/dimens.html" title="dimens.xml">dimens.xml</a></li><li><a href="/samples/ListPopupMenu/res/values/strings.html" title="strings.xml">strings.xml</a></li><li><a href="/samples/ListPopupMenu/res/values/styles.html" title="styles.xml">styles.xml</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="values-sw600dp">values-sw600dp/</a></div><ul><li><a href="/samples/ListPopupMenu/res/values-sw600dp/dimens.html" title="dimens.xml">dimens.xml</a></li><li><a href="/samples/ListPopupMenu/res/values-sw600dp/styles.html" title="styles.xml">styles.xml</a></li></ul></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="src">src/</a></div><ul><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="com.example.android.actionbarcompat.listpopupmenu">com.example.android.actionbarcompat.listpopupmenu/</a></div><ul><li><a href="/samples/ListPopupMenu/src/com.example.android.actionbarcompat.listpopupmenu/Cheeses.html" title="Cheeses.java">Cheeses.java</a></li><li><a href="/samples/ListPopupMenu/src/com.example.android.actionbarcompat.listpopupmenu/MainActivity.html" title="MainActivity.java">MainActivity.java</a></li><li><a href="/samples/ListPopupMenu/src/com.example.android.actionbarcompat.listpopupmenu/PopupListFragment.html" title="PopupListFragment.java">PopupListFragment.java</a></li></ul></li></ul></li></ul></li><li class="nav-section"><div class="nav-section-header"><a href="/samples/CustomNotifications/index.html" title="CustomNotifications">CustomNotifications</a></div><ul><li><a href="/samples/CustomNotifications/AndroidManifest.html" title="AndroidManifest.xml">AndroidManifest.xml</a></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="res">res/</a></div><ul><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-hdpi">drawable-hdpi/</a></div><ul><li><a href="/samples/CustomNotifications/res/drawable-hdpi/ic_launcher.html" title="ic_launcher.png">ic_launcher.png</a></li><li><a href="/samples/CustomNotifications/res/drawable-hdpi/ic_stat_custom.html" title="ic_stat_custom.png">ic_stat_custom.png</a></li><li><a href="/samples/CustomNotifications/res/drawable-hdpi/tile.9.html" title="tile.9.png">tile.9.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-hdpi-v11">drawable-hdpi-v11/</a></div><ul><li><a href="/samples/CustomNotifications/res/drawable-hdpi-v11/ic_stat_custom.html" title="ic_stat_custom.png">ic_stat_custom.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-hdpi-v9">drawable-hdpi-v9/</a></div><ul><li><a href="/samples/CustomNotifications/res/drawable-hdpi-v9/ic_stat_custom.html" title="ic_stat_custom.png">ic_stat_custom.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-ldpi-v11">drawable-ldpi-v11/</a></div><ul><li><a href="/samples/CustomNotifications/res/drawable-ldpi-v11/ic_stat_custom.html" title="ic_stat_custom.png">ic_stat_custom.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-ldpi-v9">drawable-ldpi-v9/</a></div><ul><li><a href="/samples/CustomNotifications/res/drawable-ldpi-v9/ic_stat_custom.html" title="ic_stat_custom.png">ic_stat_custom.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-mdpi">drawable-mdpi/</a></div><ul><li><a href="/samples/CustomNotifications/res/drawable-mdpi/ic_launcher.html" title="ic_launcher.png">ic_launcher.png</a></li><li><a href="/samples/CustomNotifications/res/drawable-mdpi/ic_stat_custom.html" title="ic_stat_custom.png">ic_stat_custom.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-mdpi-v11">drawable-mdpi-v11/</a></div><ul><li><a href="/samples/CustomNotifications/res/drawable-mdpi-v11/ic_stat_custom.html" title="ic_stat_custom.png">ic_stat_custom.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-mdpi-v9">drawable-mdpi-v9/</a></div><ul><li><a href="/samples/CustomNotifications/res/drawable-mdpi-v9/ic_stat_custom.html" title="ic_stat_custom.png">ic_stat_custom.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-xhdpi">drawable-xhdpi/</a></div><ul><li><a href="/samples/CustomNotifications/res/drawable-xhdpi/ic_launcher.html" title="ic_launcher.png">ic_launcher.png</a></li><li><a href="/samples/CustomNotifications/res/drawable-xhdpi/ic_stat_custom.html" title="ic_stat_custom.png">ic_stat_custom.png</a></li><li><a href="/samples/CustomNotifications/res/drawable-xhdpi/robot.html" title="robot.png">robot.png</a></li><li><a href="/samples/CustomNotifications/res/drawable-xhdpi/robot_expanded.html" title="robot_expanded.png">robot_expanded.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-xhdpi-v11">drawable-xhdpi-v11/</a></div><ul><li><a href="/samples/CustomNotifications/res/drawable-xhdpi-v11/ic_stat_custom.html" title="ic_stat_custom.png">ic_stat_custom.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-xhdpi-v9">drawable-xhdpi-v9/</a></div><ul><li><a href="/samples/CustomNotifications/res/drawable-xhdpi-v9/ic_stat_custom.html" title="ic_stat_custom.png">ic_stat_custom.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-xxhdpi">drawable-xxhdpi/</a></div><ul><li><a href="/samples/CustomNotifications/res/drawable-xxhdpi/ic_launcher.html" title="ic_launcher.png">ic_launcher.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="layout">layout/</a></div><ul><li><a href="/samples/CustomNotifications/res/layout/activity_main.html" title="activity_main.xml">activity_main.xml</a></li><li><a href="/samples/CustomNotifications/res/layout/notification.html" title="notification.xml">notification.xml</a></li><li><a href="/samples/CustomNotifications/res/layout/notification_expanded.html" title="notification_expanded.xml">notification_expanded.xml</a></li><li><a href="/samples/CustomNotifications/res/layout/sample_main.html" title="sample_main.xml">sample_main.xml</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="values">values/</a></div><ul><li><a href="/samples/CustomNotifications/res/values/base-strings.html" title="base-strings.xml">base-strings.xml</a></li><li><a href="/samples/CustomNotifications/res/values/dimens.html" title="dimens.xml">dimens.xml</a></li><li><a href="/samples/CustomNotifications/res/values/strings.html" title="strings.xml">strings.xml</a></li><li><a href="/samples/CustomNotifications/res/values/styles.html" title="styles.xml">styles.xml</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="values-sw600dp">values-sw600dp/</a></div><ul><li><a href="/samples/CustomNotifications/res/values-sw600dp/dimens.html" title="dimens.xml">dimens.xml</a></li><li><a href="/samples/CustomNotifications/res/values-sw600dp/styles.html" title="styles.xml">styles.xml</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="values-sw720dp-land">values-sw720dp-land/</a></div><ul><li><a href="/samples/CustomNotifications/res/values-sw720dp-land/dimens.html" title="dimens.xml">dimens.xml</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="values-v9">values-v9/</a></div><ul><li><a href="/samples/CustomNotifications/res/values-v9/styles.html" title="styles.xml">styles.xml</a></li></ul></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="src">src/</a></div><ul><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="com.example.android.customnotifications">com.example.android.customnotifications/</a></div><ul><li><a href="/samples/CustomNotifications/src/com.example.android.customnotifications/MainActivity.html" title="MainActivity.java">MainActivity.java</a></li></ul></li></ul></li></ul></li></ul></li><li class="nav-section"><div class="nav-section-header"><a href="/samples/views.html" title="Views">Views</a></div><ul><li class="nav-section"><div class="nav-section-header"><a href="/samples/TextLinkify/index.html" title="TextLinkify">TextLinkify</a></div><ul><li><a href="/samples/TextLinkify/AndroidManifest.html" title="AndroidManifest.xml">AndroidManifest.xml</a></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="res">res/</a></div><ul><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-hdpi">drawable-hdpi/</a></div><ul><li><a href="/samples/TextLinkify/res/drawable-hdpi/ic_launcher.html" title="ic_launcher.png">ic_launcher.png</a></li><li><a href="/samples/TextLinkify/res/drawable-hdpi/tile.9.html" title="tile.9.png">tile.9.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-mdpi">drawable-mdpi/</a></div><ul><li><a href="/samples/TextLinkify/res/drawable-mdpi/ic_launcher.html" title="ic_launcher.png">ic_launcher.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-xhdpi">drawable-xhdpi/</a></div><ul><li><a href="/samples/TextLinkify/res/drawable-xhdpi/ic_launcher.html" title="ic_launcher.png">ic_launcher.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="drawable-xxhdpi">drawable-xxhdpi/</a></div><ul><li><a href="/samples/TextLinkify/res/drawable-xxhdpi/ic_launcher.html" title="ic_launcher.png">ic_launcher.png</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="layout">layout/</a></div><ul><li><a href="/samples/TextLinkify/res/layout/activity_main.html" title="activity_main.xml">activity_main.xml</a></li><li><a href="/samples/TextLinkify/res/layout/sample_main.html" title="sample_main.xml">sample_main.xml</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="values">values/</a></div><ul><li><a href="/samples/TextLinkify/res/values/base-strings.html" title="base-strings.xml">base-strings.xml</a></li><li><a href="/samples/TextLinkify/res/values/dimens.html" title="dimens.xml">dimens.xml</a></li><li><a href="/samples/TextLinkify/res/values/strings.html" title="strings.xml">strings.xml</a></li><li><a href="/samples/TextLinkify/res/values/styles.html" title="styles.xml">styles.xml</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="values-sw600dp">values-sw600dp/</a></div><ul><li><a href="/samples/TextLinkify/res/values-sw600dp/dimens.html" title="dimens.xml">dimens.xml</a></li><li><a href="/samples/TextLinkify/res/values-sw600dp/styles.html" title="styles.xml">styles.xml</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="values-sw720dp-land">values-sw720dp-land/</a></div><ul><li><a href="/samples/TextLinkify/res/values-sw720dp-land/dimens.html" title="dimens.xml">dimens.xml</a></li></ul></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="src">src/</a></div><ul><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="com.example.android.common.logger">com.example.android.common.logger/</a></div><ul><li><a href="/samples/TextLinkify/src/com.example.android.common.logger/Log.html" title="Log.java">Log.java</a></li><li><a href="/samples/TextLinkify/src/com.example.android.common.logger/LogFragment.html" title="LogFragment.java">LogFragment.java</a></li><li><a href="/samples/TextLinkify/src/com.example.android.common.logger/LogNode.html" title="LogNode.java">LogNode.java</a></li><li><a href="/samples/TextLinkify/src/com.example.android.common.logger/LogView.html" title="LogView.java">LogView.java</a></li><li><a href="/samples/TextLinkify/src/com.example.android.common.logger/LogWrapper.html" title="LogWrapper.java">LogWrapper.java</a></li><li><a href="/samples/TextLinkify/src/com.example.android.common.logger/MessageOnlyLogFilter.html" title="MessageOnlyLogFilter.java">MessageOnlyLogFilter.java</a></li></ul></li><li class="nav-section sticky"><div class="nav-section-header empty"><a href="#" onclick="return false;" title="com.example.android.textlinkify">com.example.android.textlinkify/</a></div><ul><li><a href="/samples/TextLinkify/src/com.example.android.textlinkify/MainActivity.html" title="MainActivity.java">MainActivity.java</a></li></ul></li></ul></li></ul></li></ul></li></ul>
-
+ <?cs var:samples_toc_tree ?>
+ </ul>
diff --git a/docs/html/sdk/installing/studio.jd b/docs/html/sdk/installing/studio.jd
index d57d75b..ceaa70a 100644
--- a/docs/html/sdk/installing/studio.jd
+++ b/docs/html/sdk/installing/studio.jd
@@ -253,36 +253,36 @@
<td>Windows</td>
<td>
<a onclick="return onDownload(this)" id="win-studio"
- href="http://dl.google.com/android/studio/install/0.3.2/android-studio-bundle-132.893413-windows.exe">
- android-studio-bundle-132.893413-windows.exe
+ href="http://dl.google.com/android/studio/install/0.4.2/android-studio-bundle-133.970939-windows.exe">
+ android-studio-bundle-133.970939-windows.exe
</a>
</td>
- <td>484345454 bytes</td>
- <td>14cbf0109a822688f4e2f886c0b0c85a</td>
+ <td>515261701 bytes</td>
+ <td>1e1ae28b1c00f43d55f17ee35bd4f5d2</td>
</tr>
<tr>
<td><nobr>Mac OS X</nobr></td>
<td>
<a onclick="return onDownload(this)" id="mac-studio"
- href="http://dl.google.com/android/studio/install/0.3.2/android-studio-bundle-132.893413-mac.dmg">
- android-studio-bundle-132.893413-mac.dmg
+ href="http://dl.google.com/android/studio/install/0.4.2/android-studio-bundle-133.970939-mac.dmg">
+ android-studio-bundle-133.970939-mac.dmg
</a>
</td>
- <td>463332508 bytes</td>
- <td>0cd4ac59864890f7de57314bcc7ea5aa</td>
+ <td>491773471 bytes</td>
+ <td>6753f67c56acb17617bfbc5bc56384e7</td>
</tr>
<tr>
<td>Linux</td>
<td>
<a onclick="return onDownload(this)" id="linux-studio"
- href="http://dl.google.com/android/studio/install/0.3.2/android-studio-bundle-132.893413-linux.tgz">
- android-studio-bundle-132.893413-linux.tgz
+ href="http://dl.google.com/android/studio/install/0.4.2/android-studio-bundle-133.970939-linux.tgz">
+ android-studio-bundle-133.970939-linux.tgz
</a>
</td>
- <td>487694946 bytes</td>
- <td>9f1306100314b03ff5b691b94f154501</td>
+ <td>516080363 bytes</td>
+ <td>25455787d76e61baf34bf93eaa00ded6</td>
</tr>
</table>
@@ -424,6 +424,19 @@
<div class="toggle-content opened">
<p><a href="#" onclick="return toggleContent(this)">
<img src="{@docRoot}assets/images/triangle-opened.png" class="toggle-content-img"
+ alt=""/>Android Studio v0.4.2</a> <em>(Jan 2014)</em>
+ </p>
+
+ <div class="toggle-content-toggleme">
+ <ul>
+ <li>See <a href="http://tools.android.com/recent">tools.android.com</a> for a full list of changes.</li>
+ </ul>
+ </div>
+</div>
+
+<div class="toggle-content closed">
+ <p><a href="#" onclick="return toggleContent(this)">
+ <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-content-img"
alt=""/>Android Studio v0.3.2</a> <em>(Oct 2013)</em>
</p>
@@ -618,7 +631,7 @@
if (os) {
/* set up primary ACE download button */
$('#download-ide-button').show();
- $('#download-ide-button').append("Download Android Studio <span class='small'>v0.3.2</span>"
+ $('#download-ide-button').append("Download Android Studio <span class='small'>v0.4.2</span>"
+ "<br/> <span class='small'>for " + os + "</span>");
$('#download-ide-button').click(function() {return onDownload(this,true);}).attr('href', bundlename);
@@ -664,6 +677,7 @@
$("#tos").hide();
$("#main").show();
location.hash = "Updating";
+ _gaq.push(['_trackEvent', 'SDK', 'Android Studio', $("#downloadForRealz").html()]);
return true;
} else {
$("label#agreeLabel,#bitpicker input").parent().stop().animate({color: "#258AAF"}, 200,
diff --git a/docs/html/support.jd b/docs/html/support.jd
index 2f1222f..63bed30 100644
--- a/docs/html/support.jd
+++ b/docs/html/support.jd
@@ -1,5 +1,6 @@
page.title=Developer Support
fullpage=1
+excludeFromSuggestions=true
@jd:body
<div class="wrap" style="width:940px;">
@@ -16,6 +17,8 @@
<h5>Community and Office Hours</h5>
<p style="color:#888">
+<a href="https://plus.google.com/+AndroidDevelopers">Android Developers</a> on Google+<br />
+<a href="https://plus.google.com/communities/105153134372062985968">Android Development community</a> on Google+<br />
<a href="http://groups.google.com/group/android-developers">android-developers</a> support forum<br />
<a href="http://groups.google.com/group/android-ndk">android-ndk</a> support forum<br />
<a href="http://groups.google.com/group/android-security-discuss">android-security-discuss</a> support forum<br />
@@ -71,4 +74,4 @@
</div>
-</div>
\ No newline at end of file
+</div>
diff --git a/docs/html/tools/debugging/systrace.jd b/docs/html/tools/debugging/systrace.jd
index 287abe6..6472152 100644
--- a/docs/html/tools/debugging/systrace.jd
+++ b/docs/html/tools/debugging/systrace.jd
@@ -1,4 +1,5 @@
-page.title=Analyzing Display and Performance with Systrace
+page.title=Analyzing Display and Performance
+page.tags=systrace,speed
parent.title=Debugging
parent.link=index.html
@jd:body
@@ -12,10 +13,11 @@
<li><a href="#generate">Generating Traces</a>
<ol>
<li><a href="#limit-trace">Limiting trace data</a></li>
- <li><a href="#config-categories">Configuring trace data categories</a></li>
- <li><a href="#running">Running a trace</a></li>
+ <li><a href="#running-4.3">Tracing on Android 4.3 and higher</a>
+ <li><a href="#running-4.2">Tracing on Android 4.2 and lower</a></li>
</ol>
</li>
+ <li><a href="#app-trace">Tracing Application Code</a></li>
<li><a href="#analysis">Analyzing Traces</a>
<ol>
<li><a href="#long-processes">Long running processes</a></li>
@@ -25,13 +27,12 @@
</ol>
<h2>See also</h2>
<ol>
- <li><a href="{@docRoot}tools/help/systrace.html">Systrace</a>
- </li>
+ <li><a href="{@docRoot}tools/help/systrace.html">Systrace</a></li>
</ol>
</div>
</div>
-<p>After building features, eliminating bugs and cleaning up your code, you should spend some
+<p>After building features, eliminating bugs, and cleaning up your code, you should spend some
time looking at the performance of your application. The speed and smoothness with which your
application draws pixels and performs operations has an significant impact on your users'
experience.</p>
@@ -42,21 +43,21 @@
threaded processes for resources, which can cause performance problems that are hard to diagnose.
</p>
-<p>The {@code systrace} tool allows you to collect and review code execution data for your
+<p>The Systrace tool allows you to collect and review code execution data for your
application and the Android system. You can use this data to diagnose execution problems and
improve the performance of your application.</p>
<h2 id="overview">Overview</h2>
-<p>{@code systrace} helps you analyze how the execution of your application fits into the larger
+<p>Systrace helps you analyze how the execution of your application fits into the larger
Android environment, letting you see system and applications process execution on a common
timeline. The tool allows you to generate highly detailed, interactive reports from devices
running Android 4.1 and higher, such as the report in figure 1.</p>
<img src="{@docRoot}images/systrace/report.png" alt="Systrace example report" id="figure1" />
<p class="img-caption">
- <strong>Figure 1.</strong> An example {@code systrace} report on 5 seconds of process execution
+ <strong>Figure 1.</strong> An example Systrace report on 5 seconds of process execution
for a running application and related Android system processes.
</p>
@@ -64,16 +65,21 @@
<h2 id="generate">Generating Traces</h2>
<p>In order to create a trace of your application, you must perform a few setup steps. First, you
- must have a device running Android 4.1 or higher. Setup the device for
+ must have a device running Android 4.1 or higher. Set up the device for
<a href="{@docRoot}tools/device.html#setting-up">debugging</a>, connect it to your development
- system and install your application. Some types of trace information, specifically disk activity
- and kernel work queues, require root access to the device, but most {@code systrace} log data
- only requires that the device be enabled for developer debugging.</p>
+ system, and install your application. Some types of trace information, specifically disk activity
+ and kernel work queues, require that you have root access to the device. However, most Systrace
+ log data only requires that the device be enabled for developer debugging.</p>
+
+<p>Systrace traces can be run either from a
+ <a href="{@docRoot}tools/help/systrace.html#options">command line</a> or from a
+ <a href="{@docRoot}tools/help/systrace.html#gui">graphical user interface</a>. This guide
+ focuses on using the command line options.</p>
<h3 id="limit-trace">Limiting trace data</h3>
-<p>The {@code systrace} tool can generate a potentially huge amount of data from applications
+<p>The Systrace tool can generate a potentially huge amount of data from applications
and system sources. To limit the amount of data the tool collects and make the data more relevant
to your analysis, use the following options:</p>
@@ -81,39 +87,68 @@
<li>Limit the amount of time covered by the trace with the {@code -t, --time} option. The default
length of a trace is 5 seconds.</li>
<li>Limit the size of the data collected by the trace with the {@code -b, --buf-size} option.</li>
- <li>Specify what types of processes are traced using the {@code --set-tags} option and the
- {@code --disk}, {@code --cpu-freq}, {@code --cpu-idle}, {@code --cpu-load} options.</li>
+ <li>Specify what types of processes are traced. The types of processes that can be traced depends
+ on the version of Android you are running:
+ <ul>
+ <li>Android 4.2 and lower devices: Use the {@code --set-tags} option and the {@code --disk},
+ {@code --cpu-freq}, {@code --cpu-idle}, {@code --cpu-load} options.</li>
+ <li>Android 4.3 and higher devices: Use the {@code --list-categories} option to see what
+ categories are available on your test device.</li>
+ </ul>
+ </li>
</ul>
-<h3 id="config-categories">Configuring trace data categories</h3>
+<h3 id="running-4.3">Tracing on Android 4.3 and higher</h3>
-<p>To use {@code systrace} effectively, you must specify the types of processes you want to trace.
+<p>To run a trace on Android 4.3 and higher devices:</p>
+
+<ol>
+ <li>Make sure the device is connected through a USB cable and is
+ <a href="{@docRoot}tools/device.html#setting-up">enabled for debugging</a>.</li>
+ <li>Run the trace with the options you want, for example:
+<pre>
+$ cd android-sdk/platform-tools/systrace
+$ python systrace.py --time=10 -o mynewtrace.html sched gfx view wm
+</pre>
+ </li>
+ <li>On the device, execute any user actions you want be included in the trace.</li>
+</ol>
+
+<p>For more information on the available options for running Systrace, see the
+<a href="{@docRoot}tools/help/systrace.html#options-4.3">Systrace</a> help page.</p>
+
+
+<h3 id="running-4.2">Tracing on Android 4.2 and lower</h3>
+
+<p>To use Systrace effectively with devices running Android 4.2 and lower,
+ you must configure the types of processes you want to trace before running a trace.
The tool can gather the following types of process information:</p>
<ul>
<li>General system processes such as graphics, audio and input processes (selected using trace
- <a href="{@docRoot}tools/help/systrace.html#tags">Tags</a>).</li>
+ <a href="{@docRoot}tools/help/systrace.html#tags">category tags</a>).</li>
<li>Low level system information such as CPU, kernel and disk activity (selected using
- <a href="{@docRoot}tools/help/systrace.html#options">Options</a>).</li>
+ <a href="{@docRoot}tools/help/systrace.html#options">options</a>).</li>
</ul>
-<p>To set trace tags for {@code systrace} using the command-line:</p>
+<p>To set trace tags for Systrace using the command-line:</p>
<ol>
<li>Use the {@code --set-tags} option:
<pre>
-$> python systrace.py --set-tags=gfx,view,wm
+$ cd android-sdk/platform-tools/systrace
+$ python systrace.py --set-tags=gfx,view,wm
</pre>
</li>
<li>Stop and restart the {@code adb} shell to enable tracing of these processes.
<pre>
-$> adb shell stop
-$> adb shell start
+$ adb shell stop
+$ adb shell start
</pre></li>
</ol>
-<p>To set trace tags for {@code systrace} using the device user interface:</p>
+<p>To set trace tags for Systrace using the device user interface:</p>
<ol>
<li>On the device connected for tracing, navigate to: <strong>Settings >
@@ -126,9 +161,6 @@
selecting trace tags using this method.
</p>
-
-<h3 id="running">Running a trace</h3>
-
<p>After you have configured the category tags for your trace, you can start collecting
information for analysis.</p>
@@ -139,21 +171,77 @@
<a href="{@docRoot}tools/device.html#setting-up">enabled for debugging</a>.</li>
<li>Run the trace with the low-level system trace options and limits you want, for example:
<pre>
-$> python systrace.py --cpu-freq --cpu-load --time=10 -o mytracefile.html
+$ python systrace.py --cpu-freq --cpu-load --time=10 -o mytracefile.html
</pre>
</li>
<li>On the device, execute any user actions you want be included in the trace.</li>
</ol>
+<p>For more information on the available options for running Systrace, see the
+<a href="{@docRoot}tools/help/systrace.html#options-pre-4.3">Systrace</a> help page.</p>
+
+
+<h2 id="app-trace">Tracing Application Code</h2>
+
+<p>The Systrace tool can trace the execution of code within your application. In Android
+4.3 (API level 18) and higher, you can use the methods of the {@link android.os.Trace} class to
+add instrumentation to your application code and see the results in a Systrace report.</p>
+
+<p>The following code example shows how to use the {@link android.os.Trace} class to track
+execution of an application method, including two nested code blocks within that method.</p>
+
+<pre>
+public void ProcessPeople() {
+ Trace.beginSection("ProcessPeople");
+ try {
+ Trace.beginSection("Processing Jane");
+ try {
+ // code for Jane task...
+ } finally {
+ Trace.endSection(); // ends "Processing Jane"
+ }
+
+ Trace.beginSection("Processing John");
+ try {
+ // code for John task...
+ } finally {
+ Trace.endSection(); // ends "Processing John"
+ }
+ } finally {
+ Trace.endSection(); // ends "ProcessPeople"
+ }
+}
+</pre>
+<p class="note">
+ <strong>Note:</strong> When you nest trace calls within each other, the
+ {@link android.os.Trace#endSection} method ends the most recently called
+ {@link android.os.Trace#beginSection} method. This means that a trace started within another
+ trace cannot extend beyond the end of the enclosing trace, so make sure your beginning and
+ ending method calls are properly matched to measure your applications processing.
+</p>
+
+<p class="note">
+ <strong>Note:</strong> Traces must begin and end on the same thread. Do not call
+ {@link android.os.Trace#beginSection} on one thread of execution and then attempt to end the
+ trace with a call to {@link android.os.Trace#endSection} on another thread.
+</p>
+
+<p>When using application-level tracing with Systrace, you must specify the package name of your
+application in the user interface or specify the {@code -a} or {@code --app=} options on the
+command line. For more information, see the
+<a href="{@docRoot}tools/help/systrace.html">Systrace</a> help page.</p>
+
+<!-- todo: add ndk coverage -->
+
<h2 id="analysis">Analyzing Traces</h2>
-<p>After you have generated a trace using {@code systrace}, it lists the location of the output
+<p>After you have generated a trace using Systrace, it lists the location of the output
file and you can open the report using a web browser.
How you use the trace data depends on the performance issues you are investigating. However,
this section provides some general instructions on how to analyze a trace.</p>
-<p>The reports generated by {@code systrace} are interactive, allowing you to zoom into and out of
+<p>The reports generated by Systrace are interactive, allowing you to zoom into and out of
the process execution details. Use the <em>W</em> key to zoom in, the <em>S</em>
key to zoom out, the <em>A</em> key to pan left and the <em>D</em> key to pan
right. Select a task in timeline using your mouse to get more information about the task.
@@ -193,7 +281,7 @@
<h3 id="display-interupts">Interruptions in display execution</h3>
-<p>The {@code systrace} tool is particularly useful in analyzing application display slowness,
+<p>The Systrace tool is particularly useful in analyzing application display slowness,
or pauses in animations, because it shows you the execution of your application across multiple
system processes. With display execution, drawing screen frames with a regular rhythm is essential
for good performance. Having a regular rhythm for display ensures that animations and motion are
@@ -201,7 +289,7 @@
from the users perspective.</p>
<p>If you are analyzing an application for this type of problem, examine the
- <strong>SurfaceFlinger</strong> process in the {@code systrace} report where your application is
+ <strong>SurfaceFlinger</strong> process in the Systrace report where your application is
also executing to look for places where it drops out of its regular rhythm.</p>
<img src="{@docRoot}images/systrace/display-rhythm.png" alt="Systrace exerpt of display processing"
@@ -231,9 +319,9 @@
</p>
<p class="note">
- <strong>Note:</strong> When using {@code systrace} to analyze display problems, make sure
+ <strong>Note:</strong> When using Systrace to analyze display problems, make sure
you activate the tracing tags for <strong>Graphics</strong> and <strong>Views</strong>.
</p>
-<p>For more information on the command line options and keyboard controls for {@code systrace},
-see the <a href="{@docRoot}tools/help/systrace.html">Systrace</a> reference page.</p>
\ No newline at end of file
+<p>For more information on the command line options and keyboard controls for Systrace,
+see the <a href="{@docRoot}tools/help/systrace.html">Systrace</a> help page.</p>
\ No newline at end of file
diff --git a/docs/html/tools/help/adb.jd b/docs/html/tools/help/adb.jd
index c25990f..c339943 100644
--- a/docs/html/tools/help/adb.jd
+++ b/docs/html/tools/help/adb.jd
@@ -27,6 +27,7 @@
</li>
<li><a href="#logcat">Enabling logcat logging</a></li>
<li><a href="#stopping">Stopping the adb server</a></li>
+ <li><a href="#wireless">Wireless usage</a></li>
</ol>
</div>
@@ -1342,3 +1343,100 @@
You can then restart the server by issuing any other adb command. </p>
+<h2 id="wireless">Wireless usage</h2>
+
+<p>
+adb is usually used over USB. However, it is also possible to use over
+Wi-Fi, as described here.
+</p>
+
+<ol>
+
+<li>
+Connect Android device and adb host computer
+to a common Wi-Fi network accessible to both.
+We have found that not all access points
+are suitable; you may need to use an access point
+whose firewall is configured properly to support adb.
+</li>
+
+<li>
+Connect the device with USB cable to host.
+</li>
+
+<li>
+Make sure adb is running in USB mode on host.
+<pre>
+$ adb usb
+restarting in USB mode
+</pre>
+</li>
+
+<li>
+Connect to the device over USB.
+<pre>
+$ adb devices
+List of devices attached
+######## device
+</pre>
+</li>
+
+<li>
+Restart host adb in tcpip mode.
+<pre>
+$ adb tcpip 5555
+restarting in TCP mode port: 5555
+</pre>
+</li>
+
+<li>
+Find out the IP address of the Android device:
+Settings -> About tablet -> Status -> IP address.
+Remember the IP address, of the form <code>#.#.#.#</code>.
+</li>
+
+<li>
+Connect adb host to device:
+<pre>
+$ adb connect #.#.#.#
+connected to #.#.#.#:5555
+</pre>
+</li>
+
+<li>
+Remove USB cable from device, and confirm you can still access device:
+<pre>
+$ adb devices
+List of devices attached
+#.#.#.#:5555 device
+</pre>
+
+</ol>
+
+<p>
+You're now good to go!
+</p>
+
+<p>
+If the adb connection is ever lost:
+</p>
+
+<ol>
+
+<li>
+Make sure that your host is still connected to the same Wi-Fi network your Android device is.
+</li>
+
+<li>
+Reconnect by executing the "adb connect" step again.
+</li>
+
+<li>
+Or if that doesn't work, reset your adb host:
+<pre>
+adb kill-server
+</pre>
+and then start over from the beginning.
+</li>
+
+</ol>
diff --git a/docs/html/tools/help/monitor.jd b/docs/html/tools/help/monitor.jd
index e1fe772..513eb10 100644
--- a/docs/html/tools/help/monitor.jd
+++ b/docs/html/tools/help/monitor.jd
@@ -15,13 +15,14 @@
<p>Android Device Monitor is a stand-alone tool that provides a graphical user interface for
several Android application debugging and analysis tools. The Monitor tool does not
-require installation of a integrated development environment, such as Eclipse, and encapsulates the
+require installation of an integrated development environment, such as Eclipse, and encapsulates the
following tools:</p>
<ul>
<li><a href="{@docRoot}tools/debugging/ddms.html">DDMS</a></li>
<li><a href="gltracer.html">Tracer for OpenGL ES</a></li>
<li><a href="hierarchy-viewer.html">Hierarchy Viewer</a></li>
+ <li><a href="systrace.html">Systrace</a></li>
<li><a href="traceview.html">Traceview</a></li>
<li>Pixel Perfect magnification viewer</li>
</ul>
diff --git a/docs/html/tools/help/systrace.jd b/docs/html/tools/help/systrace.jd
index 010cc78..d6fc05e 100644
--- a/docs/html/tools/help/systrace.jd
+++ b/docs/html/tools/help/systrace.jd
@@ -4,47 +4,135 @@
@jd:body
-<p>The {@code systrace} tool helps analyze the performance of your application by capturing and
+<p>The Systrace tool helps analyze the performance of your application by capturing and
displaying execution times of your applications processes and other Android system processes. The
- tool combines data from the Android kernel such as the CPU scheduler, disk activity and
+ tool combines data from the Android kernel such as the CPU scheduler, disk activity, and
application threads to generate an HTML report that shows an overall picture of an Android
device’s system processes for a given period of time.</p>
-<p>The {@code systrace} tool is particularly useful in diagnosing display problems where an
+<p>The Systrace tool is particularly useful in diagnosing display problems where an
application is slow to draw or stutters while displaying motion or animation. For more information
- on how to use {@code systrace}, see <a href="{@docRoot}tools/debugging/systrace.html">Analyzing
- Display and Performance with Systrace</a>.</p>
+ on how to use Systrace, see <a href="{@docRoot}tools/debugging/systrace.html">Analyzing
+ Display and Performance</a>.</p>
-<h2 id="usage">Usage</h2>
-<p>In order to run {@code systrace}, the {@code adb} tool and
-<a href="http://www.python.org/">Python</a> must be installed and included in your development
+<h2 id="requirements">Requirements</h2>
+
+<p>In order to run Systrace, you must have Android SDK Tools 20 or later installed. You must also
+have <a href="http://www.python.org/">Python</a> installed and included in your development
computer's execution path. In order to generate a trace, you must connect a device running Android
-4.1 (API Level 16) or higher to your development system using a USB debugging connection.</p>
+4.1 (API Level 16) or higher to your development system using a
+<a href="{@docRoot}tools/device.html#setting-up">USB debugging connection</a>.</p>
-<p>The syntax for running {@code systrace} is as follows.</p>
+<p>The Systrace tool can be run either from one of the Android SDK's graphical user interface
+tools, or from the command line. The following sections describe how to run the tool using either
+of these methods.</p>
+
+
+<h2 id="gui">User Interface</h2>
+
+<p>The Systrace tool can be run from the
+<a href="{@docRoot}tools/help/adt.html">Android Developer Tools</a> (ADT) in Eclipse,
+<a href="{@docRoot}sdk/installing/studio.html">Android Studio</a>,
+or the Android <a href="{@docRoot}tools/help/monitor.html">Device Monitor</a>.
+
+<p>To run the Systrace user interface:</p>
+
+<div class="toggle-content closed">
+<p style="margin-top:5px"><a href="#" onclick="return toggleContent(this)">
+ <img src="/assets/images/triangle-closed.png" class="toggle-content-img" alt=""
+ />Using Eclipse</a></p>
+
+ <div class="toggle-content-toggleme">
+ <ol>
+ <li>In Eclipse, open an Android application project.</li>
+ <li>Switch to the DDMS perspective, by selecting <strong>Window > Perspectives >
+ DDMS</strong>.</li>
+ <li>In the <strong>Devices</strong> tab, select the device on which to run a trace. If no
+ devices are listed, make sure your device is connected via USB cable and that debugging is
+ enabled on the device.</li>
+ <li>Click the Systrace icon <img src="{@docRoot}images/systrace/systrace-button.png"
+ style="margin:0"/> at the top of the <strong>Devices</strong> panel to configure tracing.</li>
+ <li>Set the tracing options and click <strong>OK</strong> to start the trace.</li>
+ </ol>
+ </div>
+</div>
+
+<div class="toggle-content closed">
+<p style="margin-top:5px"><a href="#" onclick="return toggleContent(this)">
+ <img src="/assets/images/triangle-closed.png" class="toggle-content-img" alt=""
+ />Using Android Studio</a></p>
+
+ <div class="toggle-content-toggleme">
+ <ol>
+ <li>In <a href="{@docRoot}sdk/installing/studio.html">Android Studio</a>, open an
+ Android application project.</li>
+ <li>Open the Device Monitor by selecting <strong>Tools > Android > Monitor</strong>.</li>
+ <li>In the <strong>Devices</strong> tab, select the device on which to run a trace. If no
+ devices are listed, make sure your device is connected via USB cable and that debugging is
+ enabled on the device.</li>
+ <li>Click the Systrace icon <img src="{@docRoot}images/systrace/systrace-button.png"
+ style="margin:0"/> at the top of the <strong>Devices</strong> panel to configure tracing.</li>
+ <li>Set the tracing options and click <strong>OK</strong> to start the trace.</li>
+ </ol>
+ </div>
+</div>
+
+<div class="toggle-content closed">
+<p style="margin-top:5px"><a href="#" onclick="return toggleContent(this)">
+ <img src="/assets/images/triangle-closed.png" class="toggle-content-img" alt=""
+ />Using Device Monitor</a></p>
+
+ <div class="toggle-content-toggleme">
+ <ol>
+ <li>Navigate to your SDK {@code tools/} directory.</li>
+ <li>Run the {@code monitor} program.</li>
+ <li>In the <strong>Devices</strong> tab, select the device on which to run a trace. If no
+ devices are listed, make sure your device is connected via USB cable and that debugging is
+ enabled on the device.</li>
+ <li>Click the Systrace icon <img src="{@docRoot}images/systrace/systrace-button.png"
+ style="margin:0"/> at the top of the <strong>Devices</strong> panel to configure tracing.</li>
+ <li>Set the tracing options and click <strong>OK</strong> to start the trace.</li>
+ </ol>
+ </div>
+</div>
+
+
+
+<h2 id="options">Command Line Usage</h2>
+
+<p>The Systrace tool has different command line options for devices running Android 4.3 (API
+level 18) and higher versus devices running Android 4.2 (API level 17) and lower. The following
+sections describe the different command line options for each version.</p>
+
+<p>The general syntax for running Systrace from the command line is as follows.</p>
<pre>
-$> python systrace.py [options]
+$ python systrace.py [options] [category1] [category2] ... [categoryN]
</pre>
-<p>Here is an example execution run that sets trace tags and generates a trace from a connected
-Android device.</p>
+<p>See the sections below for example Systrace sessions.</p>
+
+
+<h3 id="options-4.3">Android 4.3 and higher options</h3>
+
+<p>When you use Systrace on devices running Android 4.3 and higher, you must specify at least one
+trace category tag. Here is an example execution run that sets trace tags and generates a trace
+from a connected device.</p>
<pre>
-$> cd <em>android-sdk</em>/tools/systrace
-$> python systrace.py --set-tags gfx,view,wm
-$> adb shell stop
-$> adb shell start
-$> python systrace.py --disk --time=10 -o mynewtrace.html
+$ cd <em>android-sdk</em>/platform-tools/systrace
+$ python systrace.py --time=10 -o mynewtrace.html sched gfx view wm
</pre>
+<p class="note">
+ <strong>Tip:</strong> If you want to see the names of tasks in the trace output, you <em>must</em>
+ include the {@code sched} category in your command parameters.
+</p>
-
-<h2 id="options">Options</h2>
-
-<p>The table below lists the command line options for {@code systrace}.</p>
+<p>The table below lists the Systrace command line options for devices running Android 4.3
+(API level 18) and higher.</p>
<table>
<tr>
@@ -54,6 +142,12 @@
</tr>
<tr>
+ <td><nobr><code>-h, --help</code></nobr></td>
+
+ <td>Show the help message.</td>
+ </tr>
+
+ <tr>
<td><code>-o <<em>FILE</em>></code></td>
<td>Write the HTML trace report to the specified file.</td>
@@ -62,14 +156,155 @@
<tr>
<td><code>-t N, --time=N</code></td>
- <td>Trace activity for N seconds. Default value is 5 seconds.</td>
+ <td>Trace activity for <em>N</em> seconds. The default value is 5 seconds.</td>
</tr>
<tr>
<td><code>-b N, --buf-size=N</code></td>
- <td>Use a trace buffer size of N kilobytes. This option lets you limit the total size of the
- data collected during a trace.</td>
+ <td>Use a trace buffer size of <em>N</em> kilobytes. This option lets you limit the total size
+ of the data collected during a trace.</td>
+ </tr>
+
+ <tr>
+ <td><code>-k <<em>KFUNCS</em>><br>
+ --ktrace=<<em>KFUNCS</em>></code></td>
+
+ <td>Trace the activity of specific kernel functions, specified in a comma-separated list.</td>
+ </tr>
+
+ <tr>
+ <td><code>-l, --list-categories</code></td>
+
+ <td>List the available tracing category tags. The available tags are:
+
+ <ul>
+ <li><code>gfx</code> - Graphics</li>
+ <li><code>input</code> - Input</li>
+ <li><code>view</code> - View</li>
+ <li><code>webview</code> - WebView</li>
+ <li><code>wm</code> - Window Manager</li>
+ <li><code>am</code> - Activity Manager</li>
+ <li><code>audio</code> - Audio</li>
+ <li><code>video</code> - Video</li>
+ <li><code>camera</code> - Camera</li>
+ <li><code>hal</code> - Hardware Modules</li>
+ <li><code>res</code> - Resource Loading</li>
+ <li><code>dalvik</code> - Dalvik VM</li>
+ <li><code>rs</code> - RenderScript</li>
+ <li><code>sched</code> - CPU Scheduling</li>
+ <li><code>freq</code> - CPU Frequency</li>
+ <li><code>membus</code> - Memory Bus Utilization</li>
+ <li><code>idle</code> - CPU Idle</li>
+ <li><code>disk</code> - Disk input and output</li>
+ <li><code>load</code> - CPU Load</li>
+ <li><code>sync</code> - Synchronization Manager</li>
+ <li><code>workq</code> - Kernel Workqueues</li>
+ </ul>
+
+ <p class="note"><strong>Note:</strong> Some trace categories are not supported on all
+ devices.</p>
+
+ <p class="note"><strong>Tip:</strong> If you want to see the names of tasks in the trace
+ output, you <em>must</em> include the {@code sched} category in your command parameters.</p>
+
+ </td>
+ </tr>
+
+ <tr>
+ <td><code>-a <<em>APP_NAME</em>><br>
+ --app=<<em>APP_NAME</em>></code></td>
+
+ <td>Enable tracing for applications, specified as a comma-separated list of
+ <a href="{@docRoot}guide/topics/manifest/manifest-element.html#package">package names</a>.
+ The apps must contain tracing instrumentation calls from the {@link android.os.Trace} class.
+ For more information, see <a href="{@docRoot}tools/debugging/systrace.html#app-trace">Analyzing
+ Display and Performance</a>.
+ </td>
+ </tr>
+
+
+
+ <tr>
+ <td><code>--link-assets</code></td>
+
+ <td>Link to the original CSS or JavaScript resources instead of embedding them in the HTML
+ trace report.</td>
+ </tr>
+
+ <tr>
+ <td><code>--from-file=<<em>FROM_FILE</em>></code></td>
+
+ <td>Create the interactive Systrace report from a file, instead of running a live trace.</td>
+ </tr>
+
+ <tr>
+ <td><code>--asset-dir=<<em>ASSET_DIR</em>></code></td>
+
+ <td>Specify a directory for the trace report assets. This option is useful for maintaining a
+ single set of assets for multiple Systrace reports.</td>
+ </tr>
+
+ <tr>
+ <td style="white-space:nowrap">
+ <code>-e <<em>DEVICE_SERIAL</em>><br>
+ --serial=<<em>DEVICE_SERIAL</em>></code></td>
+
+ <td>Conduct the trace on a specific connected device, identified by its
+ <a href="{@docRoot}tools/help/adb.html#devicestatus">device serial number</a>.</td>
+ </tr>
+
+</table>
+
+
+<h3 id="options-pre-4.3">Android 4.2 and lower options</h3>
+
+<p>Using Systrace on the command line with devices running Android 4.2 and lower is typically a
+two-step process. You must first set the trace tags you want to capture and then run the trace.
+Here is an example execution run that sets trace tags and generates a trace from a connected
+device.</p>
+
+<pre>
+$ cd <em>android-sdk</em>/platform-tools/systrace
+$ python systrace.py --set-tags gfx,view,wm
+$ adb shell stop
+$ adb shell start
+$ python systrace.py --disk --time=10 -o mynewtrace.html
+</pre>
+
+<p>The table below lists the Systrace command line options for devices running Android 4.2
+(API level 17) and lower.</p>
+
+<table>
+ <tr>
+ <th>Option</th>
+
+ <th>Description</th>
+ </tr>
+
+ <tr>
+ <td><nobr><code>-h, --help</code></nobr></td>
+
+ <td>Show the help message.</td>
+ </tr>
+
+ <tr>
+ <td><code>-o <<em>FILE</em>></code></td>
+
+ <td>Write the HTML trace report to the specified file.</td>
+ </tr>
+
+ <tr>
+ <td><code>-t N, --time=N</code></td>
+
+ <td>Trace activity for <em>N</em> seconds. The default value is 5 seconds.</td>
+ </tr>
+
+ <tr>
+ <td><code>-b N, --buf-size=N</code></td>
+
+ <td>Use a trace buffer size of <em>N</em> kilobytes. This option lets you limit the total size
+ of the data collected during a trace.</td>
</tr>
<tr>
@@ -106,6 +341,12 @@
</tr>
<tr>
+ <td><nobr><code>-u, --bus-utilization</code></nobr></td>
+
+ <td>Trace the bus utilization levels. This option requires root access on the device.</td>
+ </tr>
+
+ <tr>
<td><code>-w, --workqueue</code></td>
<td>Trace kernel work queues. This option requires root access on the device.</td>
@@ -122,13 +363,13 @@
<li><code>webview</code> - WebView</li>
<li><code>wm</code> - Window Manager</li>
<li><code>am</code> - Activity Manager</li>
- <li><code>sync</code> - Sync Manager</li>
+ <li><code>sync</code> - Synchronization Manager</li>
<li><code>audio</code> - Audio</li>
<li><code>video</code> - Video</li>
<li><code>camera</code> - Camera</li>
</ul>
<p class="note"><strong>Note:</strong> When setting trace tags from the command line, you
- must stop and restart the framework ({@code $> adb shell stop; adb shell start}) for the
+ must stop and restart the framework ({@code $ adb shell stop; adb shell start}) for the
tag tracing changes to take effect.</p>
</td>
</tr>
@@ -140,22 +381,16 @@
report.</td>
</tr>
- <tr>
- <td><nobr><code>-h, --help</code></nobr></td>
-
- <td>Show the help message.</td>
- </tr>
-
</table>
-<p>You can set the trace <a href="#tags">tags</a> for {@code systrace} with your device's user
-interface, by navigating to <strong>Settings > Developer options > Monitoring > Enable
-traces</strong>.</p>
+<p>You can set the trace <a href="#tags">tags</a> for Systrace on
+your Android 4.2 and lower device by navigating to <strong>Settings > Developer options >
+Monitoring > Enable traces</strong>.</p>
<h2 id="viewing-options">Trace Viewing Shortcuts</h2>
-<p>The table below lists the keyboard shortcuts that are available while viewing a {@code systrace}
+<p>The table below lists the keyboard shortcuts that are available while viewing a Systrace
trace HTML report.</p>
<table>
diff --git a/docs/html/tools/help/uiautomator/UiSelector.jd b/docs/html/tools/help/uiautomator/UiSelector.jd
index c9a1eed..6d5b4e4 100644
--- a/docs/html/tools/help/uiautomator/UiSelector.jd
+++ b/docs/html/tools/help/uiautomator/UiSelector.jd
@@ -472,7 +472,7 @@
<span class="sympad"><a href="#resourceIdMatches(java.lang.String)">resourceIdMatches</a></span>(String regex)</nobr>
<div class="jd-descrdiv">Set the search criteria to match the resource ID
- of the widget, using a regular expression.http://blog.bettersoftwaretesting.com/</div>
+ of the widget, using a regular expression.</div>
</td></tr>
diff --git a/docs/html/tools/revisions/build-tools.jd b/docs/html/tools/revisions/build-tools.jd
new file mode 100644
index 0000000..1da51b5
--- /dev/null
+++ b/docs/html/tools/revisions/build-tools.jd
@@ -0,0 +1,171 @@
+page.title=Build Tools
+@jd:body
+
+<div id="qv-wrapper">
+<div id="qv">
+
+ <h2>See Also</h2>
+ <ol>
+ <li><a href="{@docRoot}tools/building/index.html">Building and Running</a></li>
+ </ol>
+
+</div>
+</div>
+
+<p>Build Tools is a component of the Android SDK required for building Android
+ application code. The latest version of these tools is included in the
+ <a href="{@docRoot}sdk/index.html">SDK starter package</a> and installed in the
+ <code><sdk>/build-tools/</code> directory.</p>
+
+<p>You should always keep your Build Tools component updated by downloading the latest version
+ using the <a href="{@docRoot}tools/help/sdk-manager.html">Android SDK Manager</a>. By default,
+ the Android SDK uses the most recent downloaded version of the Build Tools. If your projects
+ depend on older versions of the Build Tools, the SDK Manager allows you to download and maintain
+ separate versions of the tools for use with those projects.</p>
+
+<p>To use a specific version of the Build Tools in your application project:</p>
+
+<div class="toggle-content closed">
+<p style="margin-top:5px"><a href="#" onclick="return toggleContent(this)">
+ <img src="/assets/images/triangle-closed.png" class="toggle-content-img" alt=""
+ />Using Eclipse</a></p>
+
+ <div class="toggle-content-toggleme">
+ <ol>
+ <li>In the root folder of your application project, find the {@code project.properties}
+ file.</li>
+ <li>Open the file and specify the Build Tools version by adding a {@code buildtools} property
+ on a separate line:
+<pre>
+sdk.buildtools=17.0.0
+</pre>
+ </li>
+ </ol>
+ </div>
+</div>
+
+<div class="toggle-content closed">
+<p style="margin-top:5px"><a href="#" onclick="return toggleContent(this)">
+ <img src="/assets/images/triangle-closed.png" class="toggle-content-img" alt=""
+ />Using Android Studio</a></p>
+
+ <div class="toggle-content-toggleme">
+ <ol>
+ <li>In the root folder of your application project, find the {@code build.gradle}
+ file.</li>
+ <li>Open the file and specify the Build Tools version by adding a {@code buildToolsVersion}
+ property to the {@code android} section:
+<pre>
+android {
+ ...
+ buildToolsVersion "17.0.0"
+ ...
+}
+</pre>
+ </li>
+ </ol>
+ </div>
+</div>
+
+
+<h2 id="notes">Revisions</h2>
+
+<p>The sections below provide notes about releases of the Build Tools. To determine which
+revisions of the Build Tools are available in your SDK, refer to the <em>Installed Packages</em>
+listing in the Android SDK Manager.</p>
+
+
+<div class="toggle-content opened">
+ <p><a href="#" onclick="return toggleContent(this)">
+ <img src="{@docRoot}assets/images/triangle-opened.png" class="toggle-content-img"
+ alt=""/>Build Tools, Revision 19.0.1</a> <em>(December 2013)</em>
+ </p>
+ <div class="toggle-content-toggleme">
+
+ <dl>
+ <dt>Fixed miscellaneous build issues:</dt>
+ <dd>
+ <ul>
+ <li>Fixed support for compiling RenderScript in NDK mode with Gradle.</li>
+ <li>Fixed {@code BufferOverflowException} problem in the dx build.
+ (<a href="http://b.android.com/61710">Issue 61710</a>)
+ </li>
+ </ul>
+ </dd>
+ </dl>
+ <p></p>
+
+ </div>
+</div>
+
+<div class="toggle-content closed">
+ <p><a href="#" onclick="return toggleContent(this)">
+ <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-content-img"
+ alt=""/>Build Tools, Revision 19</a> <em>(October 2013)</em>
+ </p>
+ <div class="toggle-content-toggleme">
+
+ <p>Added support for Android 4.4 (API level 19) build targets.</p>
+
+ </div>
+</div>
+
+<div class="toggle-content closed">
+ <p><a href="#" onclick="return toggleContent(this)">
+ <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-content-img"
+ alt=""/>Build Tools, Revision 18.1.1</a> <em>(September 2013)</em>
+ </p>
+ <div class="toggle-content-toggleme">
+
+ <p>Fixed several minor build issues.</p>
+
+ </div>
+</div>
+
+<div class="toggle-content closed">
+ <p><a href="#" onclick="return toggleContent(this)">
+ <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-content-img"
+ alt=""/>Build Tools, Revision 18.1.0</a> <em>(September 2013)</em>
+ </p>
+ <div class="toggle-content-toggleme">
+
+ <p>Fixed issue with RenderScript support mode.</p>
+
+ </div>
+</div>
+
+<div class="toggle-content closed">
+ <p><a href="#" onclick="return toggleContent(this)">
+ <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-content-img"
+ alt=""/>Build Tools, Revision 18.0.1</a> <em>(July 2013)</em>
+ </p>
+ <div class="toggle-content-toggleme">
+
+ <p>Added support for Android 4.3 (API level 18) build targets.</p>
+
+ </div>
+</div>
+
+<div class="toggle-content closed">
+ <p><a href="#" onclick="return toggleContent(this)">
+ <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-content-img"
+ alt=""/>Build Tools, Revision 17</a> <em>(May 2013)</em>
+ </p>
+ <div class="toggle-content-toggleme">
+
+ <p>Initial release.</p>
+
+ <dl>
+ <dt>General Notes:</dt>
+ <dd>
+ <ul>
+ <li>Included support for Android 4.2 (API level 17) build targets.</li>
+ <li>Decoupled the build-specific components of the Android SDK from the platform-tools
+ component, so that the build tools can be updated independently of the integrated
+ development environment (IDE) components.</li>
+ </ul>
+ </dd>
+ </dl>
+
+ </div>
+</div>
diff --git a/docs/html/tools/revisions/platforms.jd b/docs/html/tools/revisions/platforms.jd
index f219784..c5d1ef6 100644
--- a/docs/html/tools/revisions/platforms.jd
+++ b/docs/html/tools/revisions/platforms.jd
@@ -7,14 +7,12 @@
<h2>See Also</h2>
<ol>
+ <li><a href="{@docRoot}about/versions/kitkat.html">KitKat
+Highlights and APIs</a></li>
<li><a href="{@docRoot}about/versions/jelly-bean.html">Jelly Bean
Highlights and APIs</a></li>
<li><a href="{@docRoot}about/versions/android-4.0-highlights.html">Ice Cream Sandwich
Highlights and APIs</a></li>
- <li><a href="{@docRoot}about/versions/android-3.0-highlights.html">Honeycomb
-Highlights and APIs</a></li>
- <li><a href="{@docRoot}about/versions/android-2.3-highlights.html">Gingerbread
-Highlights and APIs</a></li>
</ol>
</div>
@@ -52,11 +50,27 @@
<h2 id="4.4">Android 4.4</h2>
-
<div class="toggle-content opened">
-
<p><a href="#" onclick="return toggleContent(this)">
<img src="{@docRoot}assets/images/triangle-opened.png"
+class="toggle-content-img" alt="" />Revision 2</a> <em>(December 2013)</em>
+ </p>
+
+ <div class="toggle-content-toggleme">
+
+ <p>Maintenance release. The system version is 4.4.2.</p>
+ <dl>
+ <dt>Dependencies:</dt>
+ <dd>Android SDK Platform-tools r19 or higher is required.</dd>
+ <dd>Android SDK Tools 22.3 or higher is recommended.</dd>
+ </dl>
+
+ </div>
+</div>
+
+<div class="toggle-content closed">
+ <p><a href="#" onclick="return toggleContent(this)">
+ <img src="{@docRoot}assets/images/triangle-closed.png"
class="toggle-content-img" alt="" />Revision 1</a> <em>(October 2013)</em>
</p>
@@ -72,19 +86,35 @@
</div>
</div>
+
<h3 id="gsi-4.4">Google APIs System Image</h3>
<div class="toggle-content opened">
<p><a href="#" onclick="return toggleContent(this)">
<img src="{@docRoot}assets/images/triangle-opened.png"
+class="toggle-content-img" alt="" />Revision 2</a> <em>(December 2013)</em>
+ </p>
+
+ <div class="toggle-content-toggleme">
+
+ <p>Maintenance release. This release includes
+ <a href="{@docRoot}google/play-services/index.html">Google Play services</a> version 4.0.33,
+ allowing you to test your application in an emulator using the latest Google Play services.</p>
+
+ </div>
+</div>
+
+<div class="toggle-content closed">
+ <p><a href="#" onclick="return toggleContent(this)">
+ <img src="{@docRoot}assets/images/triangle-closed.png"
class="toggle-content-img" alt="" />Revision 1</a> <em>(October 2013)</em>
</p>
<div class="toggle-content-toggleme">
<p>Initial release. This release includes
- <a href="{@docRoot}google/play-services/index.html">Google Play services</a> version 4.0.30,
- allowing you to test your application in an emulator using the latest Google Play services.</p>
+ <a href="{@docRoot}google/play-services/index.html">Google Play services</a> version 4.0.30.
+ </p>
</div>
</div>
@@ -143,8 +173,8 @@
<div class="toggle-content-toggleme">
<p>Maintenance update. This release includes
- <a href="{@docRoot}google/play-services/index.html">Google Play services</a> version 3.2.65,
- allowing you to test your application in an emulator using the latest Google Play services.</p>
+ <a href="{@docRoot}google/play-services/index.html">Google Play services</a> version 3.2.65.
+ </p>
</div>
</div>
@@ -158,8 +188,8 @@
<div class="toggle-content-toggleme">
<p>Maintenance update. This release includes
- <a href="{@docRoot}google/play-services/index.html">Google Play services</a> version 3.2.25,
- allowing you to test your application in an emulator using the latest Google Play services.</p>
+ <a href="{@docRoot}google/play-services/index.html">Google Play services</a> version 3.2.25.
+ </p>
</div>
</div>
diff --git a/docs/html/tools/samples/index.jd b/docs/html/tools/samples/index.jd
deleted file mode 100644
index 76ba37a..0000000
--- a/docs/html/tools/samples/index.jd
+++ /dev/null
@@ -1,32 +0,0 @@
-page.title=Samples
-page.tags="example","code"
-@jd:body
-
-<p>To help you understand some fundamental Android APIs and coding practices, a variety of sample
-code is available from the Android SDK Manager. Each version of the Android platform available
-from the SDK Manager offers its own set of sample apps.</p>
-
-<p>To download the samples:</p>
-<ol>
- <li>Launch the Android SDK Manager.
- <ul>
- <li>On Windows, double-click the SDK Manager.exe file at the root of the Android SDK
-directory.</li>
- <li>On Mac or Linux, open a terminal to the {@code tools/} directory in the
-Android SDK, then execute {@code android sdk}.</ul>
- </li>
- <li>Expand the list of packages for the latest Android platform.</li>
- <li>Select and download <em>Samples for SDK</em>.</li>
-</ol>
-
-<p>When the download is complete, you can find the source code for all samples at this location:</p>
-
-<p style="margin-left:2em">
-<code><sdk>/samples/android-<version>/</code>
-</p>
-
-<p>The {@code <version>} number corresponds to the platform's
- <a href="{@docRoot}guide/topics/manifest/uses-sdk-element.html#ApiLevels">API level</a>.</p>
-
-<p>You can easily create new Android projects with the downloaded samples, modify them
-if you'd like, and then run them on an emulator or device.</p>
\ No newline at end of file
diff --git a/docs/html/tools/sdk/ndk/index.jd b/docs/html/tools/sdk/ndk/index.jd
index 87f8a87..4e50d98 100644
--- a/docs/html/tools/sdk/ndk/index.jd
+++ b/docs/html/tools/sdk/ndk/index.jd
@@ -1,58 +1,34 @@
ndk=true
page.template=sdk
-ndk.mac64.legacy_download=android-ndk-r9b-darwin-x86_64-legacy-toolchains.tar.bz2
-ndk.mac64.legacy_bytes=122378495
-ndk.mac64.legacy_checksum=19c696a5b690b040409c68b21e9fcf46
-ndk.mac64_download=android-ndk-r9b-darwin-x86_64.tar.bz2
-ndk.mac64_bytes=354748937
-ndk.mac64_checksum=710d80b6ff807f03e585f9aacee3bf09
+ndk.mac64_download=android-ndk-r9c-darwin-x86_64.tar.bz2
+ndk.mac64_bytes=358350393
+ndk.mac64_checksum=154bc0248671b8609037218d3faa47f5
+ndk.mac32_download=android-ndk-r9c-darwin-x86.tar.bz2
+ndk.mac32_bytes=352900444
+ndk.mac32_checksum=0ba391eb12d4eed6bd7dbff5d8804e0f
-ndk.mac32.legacy_download=android-ndk-r9b-darwin-x86-legacy-toolchains.tar.bz2
-ndk.mac32.legacy_bytes=119394536
-ndk.mac32.legacy_checksum=be0a07bcea3695f7d93cbd1b880d3f75
+ndk.linux64_download=android-ndk-r9c-linux-x86_64.tar.bz2
+ndk.linux64_bytes=371254928
+ndk.linux64_checksum=e9c3fd9881c811753bb57f701b3e05b1
-ndk.mac32_download=android-ndk-r9b-darwin-x86.tar.bz2
-ndk.mac32_bytes=349307548
-ndk.mac32_checksum=b5fa7aa3b9fca5a5b0c46bdd970d284b
+ndk.linux32_download=android-ndk-r9c-linux-x86.tar.bz2
+ndk.linux32_bytes=365412557
+ndk.linux32_checksum=93d2aa9a40501b568037642cdb174643
+ndk.win64_download=android-ndk-r9c-windows-x86_64.zip
+ndk.win64_bytes=483804820
+ndk.win64_checksum=9e84d0d59ce7d4a24370b619fb8799e4
-ndk.linux64.legacy_download=android-ndk-r9b-linux-x86_64-legacy-toolchains.tar.bz2
-ndk.linux64.legacy_bytes=127742633
-ndk.linux64.legacy_checksum=f41017d5888a8dc210d1703dcdf1def7
+ndk.win32_download=android-ndk-r9c-windows-x86.zip
+ndk.win32_bytes=460676475
+ndk.win32_checksum=863b5ab371b63c3e9bf0d39e47903763
-ndk.linux64_download=android-ndk-r9b-linux-x86_64.tar.bz2
-ndk.linux64_bytes=366988131
-ndk.linux64_checksum=56c0999a2683d6711591843217f943e0
-
-
-ndk.linux32.legacy_download=android-ndk-r9b-linux-x86-legacy-toolchains.tar.bz2
-ndk.linux32.legacy_bytes=125676842
-ndk.linux32.legacy_checksum=bfc7a1e6baf856b4348d57abffc761d2
-
-ndk.linux32_download=android-ndk-r9b-linux-x86.tar.bz2
-ndk.linux32_bytes=361394055
-ndk.linux32_checksum=d7f783deaeea6b60cb515d9427c01c2e
-
-
-ndk.win64.legacy_download=android-ndk-r9b-windows-x86_64-legacy-toolchains.zip
-ndk.win64.legacy_bytes=166961852
-ndk.win64.legacy_checksum=6eee9459986e8b7f1032d62831dd775b
-
-ndk.win64_download=android-ndk-r9b-windows-x86_64.zip
-ndk.win64_bytes=479012553
-ndk.win64_checksum=1ba6be7ebf4e9272d77031dd70f81e94
-
-
-ndk.win32.legacy_download=android-ndk-r9b-windows-x86-legacy-toolchains.zip
-ndk.win32.legacy_bytes=152568224
-ndk.win32.legacy_checksum=00c8373b53ad9475f1bab1de4219b877
-
-ndk.win32_download=android-ndk-r9b-windows-x86.zip
-ndk.win32_bytes=455928388
-ndk.win32_checksum=cfb9402ea08a1554186e85ed28cb4593
+ndk.debug_info_download=android-ndk-r9c-cxx-stl-libs-with-debugging-info.zip
+ndk.debug_info_bytes=100364569
+ndk.debug_info_checksum=37911716e1fd2fe3abb8a410750d73e6
page.title=Android NDK
@@ -288,16 +264,87 @@
contains legacy NDK toolchains for that platform, which is only required if you are not using
the current, recommended toolchain for your NDK builds.</p>
-
-
<h2 id="Revisions">Revisions</h2>
<p>The following sections provide information about releases of the NDK.</p>
<div class="toggle-content opened">
+ <p>
+ <a href="#" onclick="return toggleContent(this)"> <img
+ src="/assets/images/triangle-opened.png" class="toggle-content-img" alt=""
+ >Android NDK, Revision 9c</a> <em>(December 2013)</em>
+ </p>
+ <div class="toggle-content-toggleme">
+<p>This is a bug-fix-only release.</p>
+ <dl>
+ <dt>Important bug fixes:</dt>
+ <dd>
+ <ul>
+ <li>Fixed a problem with GCC 4.8 ARM, in which the stack pointer is restored too early. This problem prevented the frame pointer from reliably accessing a variable in the stack frame. For more information, see <a href="http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58854">http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58854</a>.</li>
+<li>- Fixed a problem with GCC 4.8 libstdc++, in which a bug in std::nth_element was causing generation of code that produced a random segfault. For more information, see <a href="https://code.google.com/p/android/issues/detail?id=62910">https://code.google.com/p/android/issues/detail?id=62910</a>.</li>
+ <li>Fixed GCC 4.8 ICE in cc1/cc1plus with <code>-fuse-ld=mcld</code>, so that the following error no longer occurs:
+<pre>cc1: internal compiler error: in common_handle_option, at opts.c:1774</pre></li>
+ <li>Fixed <code>-mhard-float</code> support for <code>__builtin</code> math functions. For ongoing information on fixes for -mhard-float with STL, please follow <a href="http://b.android.com/61784">http://b.android.com/61784</a>.</li>
+ </ul>
+ </dd>
+
+ <dt>Other bug fixes:</dt>
+ <dd>
+ <ul>
+ <li>Header fixes:
+ <ul>
+ <li>Changed prototype of <code>poll</code> to <code>poll(struct pollfd *, nfds_t, int);</code> in <code>poll.h</code>.</li>
+ <li>Added <code>utimensat</code> to <code>libc.so</code> in API levels 12 and 19. It is now present in levels 12-19.</li>
+<li>Introduced <code>futimens</code> into <code>libc.so</code>, as of API level 19.</li>
+<li>Added missing <code>clock_settime()</code> and <code>clock_nanosleep()</code> to <code>time.h</code> for API 8 and higher.</li>
+<li>Added <code>CLOCK_MONOTONIC_RAW, CLOCK_REALTIME_COARSE, CLOCK_MONOTONIC_COARSE, CLOCK_BOOTTIME, CLOCK_REALTIME_ALARM,</code> and <code>CLOCK_BOOTTIME_ALARM</code> in <code>time.h.</code></li>
+<li>Removed obsolete <code>CLOCK_REALTIME_HR</code> and <code>CLOCK_MONOTONIC_HR.</code></li>
+ </ul>
+ </li>
+ <li>Refactored samples Teapot, MoreTeapots, and <code>source/android/ndk_helper</code> as follows:
+ <ul>
+<li>They now use a hard-float abi for armeabi-v7a.</li>
+<li>Android-19 now has immersive mode.</li>
+<li>Fixed a problem with <code>Check_ReleaseStringUTFChars</code> in <code>/system/lib/libdvm.so</code> that was causing crashes on x86 devices.</li>
+ </ul>
+ </li>
+<li>Fixed ndk-build fails that happen in cygwin when the NDK package is referenced via symlink.</li>
+<li>Fixed ndk-build.cmd fails that happen in windows <code>cmd.exe</code> when <code>LOCAL_SRC_FILES</code> contains absolute paths. See <a href="https://android-review.googlesource.com/#/c/69992">https://android-review.googlesource.com/#/c/69992.</a></li>
+<li>Fixed ndk-stack to proceed even when it can't parse a frame due to inability to find a routine, filename, or line number. In any of those cases, it prints "??".</li>
+<li>Fixed ndk-stack windows-x64_64 so that it no longer erroneously matches a frame line with a line in the <code>stack:</code>
+ section that doesn't contain <code>pc</code>, <code>eip</code>, or <code>ip</code>. For example:
+<pre>I/DEBUG ( 1151): #00 5f09db68 401f01c4 /system/lib/libc.so</pre></li>
+<li>Fixed gabi++ so that it:
+ <ul>
+ <li>Does not use malloc() to allocate C++ thread-local
+ objects.</li>
+ <li>Avoids deadlocks in gabi++ in cases where libc.debug.malloc is non-zero in
+ userdebug/eng Android platform builds.</li>
+ </ul>
+ </ul>
+ </dd>
+
+ <dt>Other changes:</dt>
+ <dd>
+ <ul>
+ <li>Added <code>LOCAL_EXPORT_LDFLAGS</code>.</li>
+<li>Introduced the <code>NDK_PROJECT_PATH=null</code> setting for use in an integrated build system where options are explicitly passed to <code>ndk-build</code>. With this setting, <code>ndk-build</code> makes no attempt to look for <code>NDK_PROJECT_PATH.</code> This setting also prevents variables from deriving default settings from NDK_PROJECT_PATH. As a result, the following variables must now be explicitly specified (with their default values if such exist): <code>NDK_OUT, NDK_LIBS_OUT, APP_BUILD_SCRIPT, NDK_DEBUG</code> (optional, default to 0), and other <code>APP_*</code>'s contained in <code>Application.mk</code>.</li>
+<li><code>APP_ABI</code> can now be enumerated in a comma-delimited list. For example:
+<pre>APP_ABI := "armeabi,armeabi-v7a"</pre></li>
+<li>Provided the ability (option <code>-g</code>) to rebuild all of STL with debugging info in an optional, separate package called <code>android-ndk-r9c-cxx-stl-libs-with-debugging-info.zip</code>. This option helps ndk-stack to provide better a stack dump across STL. This change should not affect the code/size of the final, stripped file.</li>
+<li>Enhanced <code>hello-jni</code> samples to report <code>APP_ABI</code> at compilation.</li>
+<li>Used the <code>ar</code> tool in Deterministic mode (option <code>-D</code>) to build static libraries. For more information, see <a href="http://b.android.com/60705">http://b.android.com/60705</a>.</li>
+ </ul>
+ </dd>
+
+ </dl>
+ </div>
+</div>
+
+<div class="toggle-content closed">
<p>
<a href="#" onclick="return toggleContent(this)"> <img
- src="{@docRoot}assets/images/triangle-opened.png" class="toggle-content-img" alt=""
+ src="{@docRoot}assets/images/triangle-closed.png" class="toggle-content-img" alt=""
>Android NDK, Revision 9b</a> <em>(October 2013)</em>
</p>
<div class="toggle-content-toggleme">
diff --git a/docs/html/tools/sdk/preview/features.jd b/docs/html/tools/sdk/preview/features.jd
index 02897cd..2bdb0f4 100644
--- a/docs/html/tools/sdk/preview/features.jd
+++ b/docs/html/tools/sdk/preview/features.jd
@@ -1,3 +1,4 @@
+excludeFromSuggestions=true
@jd:body
<script type="text/javascript">
diff --git a/docs/html/tools/sdk/preview/index.jd b/docs/html/tools/sdk/preview/index.jd
index d96df93..713730e 100644
--- a/docs/html/tools/sdk/preview/index.jd
+++ b/docs/html/tools/sdk/preview/index.jd
@@ -1,3 +1,4 @@
sdk.redirect=true
page.template=sdk
+excludeFromSuggestions=true
@jd:body
diff --git a/docs/html/tools/sdk/preview/installing.jd b/docs/html/tools/sdk/preview/installing.jd
index c40e531..d248b67 100644
--- a/docs/html/tools/sdk/preview/installing.jd
+++ b/docs/html/tools/sdk/preview/installing.jd
@@ -1,3 +1,4 @@
+excludeFromSuggestions=true
@jd:body
<script type="text/javascript">
diff --git a/docs/html/tools/sdk/preview/requirements.jd b/docs/html/tools/sdk/preview/requirements.jd
index b5aed80..b62ee05 100644
--- a/docs/html/tools/sdk/preview/requirements.jd
+++ b/docs/html/tools/sdk/preview/requirements.jd
@@ -1,3 +1,4 @@
+excludeFromSuggestions=true
@jd:body
<script type="text/javascript">
diff --git a/docs/html/tools/sdk/preview/upgrading.jd b/docs/html/tools/sdk/preview/upgrading.jd
index 1c53bdb..3b90696 100644
--- a/docs/html/tools/sdk/preview/upgrading.jd
+++ b/docs/html/tools/sdk/preview/upgrading.jd
@@ -1,3 +1,4 @@
+excludeFromSuggestions=true
@jd:body
<script type="text/javascript">
diff --git a/docs/html/tools/support-library/index.jd b/docs/html/tools/support-library/index.jd
index dba4e74..389238f 100644
--- a/docs/html/tools/support-library/index.jd
+++ b/docs/html/tools/support-library/index.jd
@@ -62,6 +62,49 @@
<div class="toggle-content opened">
<p><a href="#" onclick="return toggleContent(this)">
<img src="{@docRoot}assets/images/triangle-opened.png" class="toggle-content-img" alt=""
+/>Android Support Library, revision 19.0.1</a> <em>(December 2013)</em>
+ </p>
+ <div class="toggle-content-toggleme">
+ <dl>
+ <dt>Changes for v4 support library:</dt>
+ <dd>
+ <ul>
+ <li>Improved {@link android.support.v4.print.PrintHelper} by adding asynchronous
+ handling of printing.</li>
+ <li>Fixed the {@link android.support.v4.widget.DrawerLayout} class approximation of
+ the {@link android.view.View#addChildrenForAccessibility addChildrenForAccessibility()}
+ method.</li>
+ <li>Fixed slide drawable mirroring in {@link
+ android.support.v4.app.ActionBarDrawerToggle}.</li>
+ <li>Fixed off-by-one issue when removing an item from a collection iterator.</li>
+ </ul>
+ </dd>
+
+ <dt>Changes for v7 mediarouter library:</dt>
+ <dd>
+ <ul>
+ <li>Improved route identification by using full component name in the {@link
+ android.support.v7.media.MediaRouteProvider.ProviderMetadata}.</li>
+ <li>Updated {@link android.support.v7.app.MediaRouteChooserDialog} to hide disabled
+ routes.</li>
+ </ul>
+ </dd>
+
+ <dt>Changes for v8 renderscript library:</dt>
+ <dd>
+ <ul>
+ <li>Added error propagation for the RenderScript thunking layer.</li>
+ </ul>
+ </dd>
+
+ </dl>
+ </div>
+</div>
+
+
+<div class="toggle-content closed">
+ <p><a href="#" onclick="return toggleContent(this)">
+ <img src="{@docRoot}assets/images/triangle-closed.png" class="toggle-content-img" alt=""
/>Android Support Library, revision 19</a> <em>(October 2013)</em>
</p>
<div class="toggle-content-toggleme">
diff --git a/docs/html/tools/support-library/setup.jd b/docs/html/tools/support-library/setup.jd
index 2d2065a..2325a13 100644
--- a/docs/html/tools/support-library/setup.jd
+++ b/docs/html/tools/support-library/setup.jd
@@ -206,6 +206,14 @@
<li>In the properties window, click <strong>OK</strong>.</li>
</ol>
+<p class="note">
+ <strong>Note:</strong> If you are using the {@code android-support-v7-mediarouter} support
+ library, you should note that it depends on the {@code android-support-v7-appcompat} library.
+ In order for the v7 mediarouter library to compile, you must import both library projects into
+ your development workspace. Then follow the procedure above to add the v7 appcompat project as a
+ library to the v7 mediarouter library project.
+</p>
+
</div>
</div>
diff --git a/docs/html/tools/testing/activity_test.jd b/docs/html/tools/testing/activity_test.jd
index 2d1a5bf..036407a 100644
--- a/docs/html/tools/testing/activity_test.jd
+++ b/docs/html/tools/testing/activity_test.jd
@@ -443,12 +443,11 @@
</p>
<pre>
public SpinnerActivityTest() {
- super("com.android.example.spinner", SpinnerActivity.class);
+ super(SpinnerActivity.class);
} // end of SpinnerActivityTest constructor definition
</pre>
<p>
- This calls the superclass constructor with the Android package name (<code>com.android.example.spinner</code>)and main activity's class
- (<code>SpinnerActivity.class</code>) for the application under test. Android uses this information to find the application and activity to test.
+ This calls the superclass constructor with the main activity's class (<code>SpinnerActivity.class</code>) for the application under test. Android uses this information to find the application and activity to test.
</p>
<p>
You are now ready to add tests, by adding test methods to the class.
diff --git a/docs/html/tools/tools_toc.cs b/docs/html/tools/tools_toc.cs
index 39eecf8..a8424e6 100644
--- a/docs/html/tools/tools_toc.cs
+++ b/docs/html/tools/tools_toc.cs
@@ -138,7 +138,7 @@
<li><a href="<?cs var:toroot ?>tools/debugging/improving-w-lint.html"><span class="en">Improving Your Code with lint</span></a></li>
<li><a href="<?cs var:toroot ?>tools/debugging/debugging-ui.html"><span class="en">Optimizing your UI</span></a></li>
<li><a href="<?cs var:toroot ?>tools/debugging/debugging-tracing.html"><span class="en">Profiling with Traceview and dmtracedump</span></a></li>
- <li><a href="<?cs var:toroot ?>tools/debugging/systrace.html"><span class="en">Analysing Display and Performance with Systrace</span></a></li>
+ <li><a href="<?cs var:toroot ?>tools/debugging/systrace.html"><span class="en">Analyzing Display and Performance</span></a></li>
<li><a href="<?cs var:toroot ?>tools/debugging/debugging-memory.html">Investigating Your RAM Usage</a></li>
<li><a href="<?cs var:toroot ?>tools/debugging/debugging-devtools.html"><span class="en">Using the Dev Tools App</span></a></li>
</ul>
@@ -225,14 +225,14 @@
?>tools/revisions/index.html"><span class="en">Revisions</span></a></div>
<ul>
<li><a href="<?cs var:toroot ?>tools/sdk/tools-notes.html">
- <span class="en">Tools</span>
+ <span class="en">SDK Tools</span>
</a></li>
<li><a href="<?cs var:toroot ?>tools/sdk/eclipse-adt.html">
<span class="en">ADT Plugin</span>
</a></li>
- <!--
- <li><a href="<?cs var:toroot ?>tools/sdk/addons.html"><span class="en">Add-ons</span></a></li>
- -->
+ <li><a href="<?cs var:toroot ?>tools/revisions/build-tools.html">
+ <span class="en">Build Tools</span>
+ </a></li>
<li><a href="<?cs var:toroot ?>tools/revisions/platforms.html"><span
class="en">Platforms</span></a></li>
</ul>
@@ -240,12 +240,6 @@
<li class="nav-section">
- <div class="nav-section-header empty"><a href="<?cs var:toroot
-?>tools/samples/index.html"><span class="en">Samples</span></a></div>
- </li>
-
-
- <li class="nav-section">
<div class="nav-section-header">
<a href="<?cs var:toroot ?>tools/adk/index.html">
<span class="en">ADK</span></a>
diff --git a/docs/html/training/app-indexing/deep-linking.jd b/docs/html/training/app-indexing/deep-linking.jd
new file mode 100644
index 0000000..a52ae95
--- /dev/null
+++ b/docs/html/training/app-indexing/deep-linking.jd
@@ -0,0 +1,134 @@
+page.title=Enabling Deep Links for App Content
+trainingnavtop=true
+
+@jd:body
+
+<!-- This is the training bar -->
+<div id="tb-wrapper">
+<div id="tb">
+
+<h2>This lesson teaches you to</h2>
+<ol>
+ <li><a href="#adding-filters">Add Intent Filters for Your Deep Links</a></li>
+ <li><a href="#handling-intents">Read Data from Incoming Intents</a></li>
+ <li><a href="#testing-filters">Test Your Deep Links</a></li>
+</ol>
+
+<h2>You should also read</h2>
+<ul>
+<li><a href="{@docRoot}guide/components/intents-filters.html">Intents and Intent Filters</a></li>
+<li><a href="{@docRoot}training/basics/intents/filters.html">Allow Other Apps to Start Your Activity</a></li>
+</ul>
+
+</div>
+</div>
+
+<p>To enable Google to crawl your app content and allow users to enter your app
+ from search results, you must add intent filters for the relevant
+ activities in your app manifest. These intent filters allow
+ <em>deep linking</em> to the content in any of your activities. For example, the user might click on a deep link to view a page within a shopping app that describes a product offering that the user is searching for.</p>
+
+<h2 id="adding-filters">Add Intent Filters for Your Deep Links</h2>
+<p>To create a deep link to your app content, add an intent filter that
+ contains these elements and attribute values in your manifest:</p>
+<dl>
+<dt><a href="{@docRoot}guide/topics/manifest/action-element.html">{@code <action>}</a></dt>
+<dd>Specify the {@link android.content.Intent#ACTION_VIEW} intent action so
+ that the intent filter can be reached from Google Search.</dd>
+<dt><a href="{@docRoot}guide/topics/manifest/data-element.html">{@code <data>}</a></dt>
+<dd>Add one or more <a href="{@docRoot}guide/topics/manifest/data-element.html">{@code <data>}</a> tags, where each tag represents a URI format that resolves to the activity. At minimum, the <a href="{@docRoot}guide/topics/manifest/data-element.html">{@code <data>}</a> tag must include the <a href="{@docRoot}guide/topics/manifest/data-element.html#scheme">{@code android:scheme}</a> attribute.
+<p>You can add additional attributes to further refine the type of URI that the activity accepts. For example, you might have multiple activities that accept similar URIs, but which differ simply based on the path name. In this case, use the <a href="{@docRoot}guide/topics/manifest/data-element.html#path">{@code android:path}</a> attribute or its variants ({@code pathPattern} or {@code pathPrefix}) to differentiate which activity the system should open for different URI paths.</p></dd>
+<dt><a href="{@docRoot}guide/topics/manifest/category-element.html">{@code <category>}</a></dt>
+<dd>Include the {@link android.content.Intent#CATEGORY_BROWSABLE BROWSABLE}
+category. The {@link android.content.Intent#CATEGORY_BROWSABLE BROWSABLE}
+category is required in order for the intent filter to be accessible from a web
+browser. Without it, clicking a link in a browser cannot resolve to your app.
+The {@link android.content.Intent#CATEGORY_DEFAULT DEFAULT} category is
+optional, but recommended. Without this category, the activity can be started
+only with an explicit intent, using your app component name.
+</dd>
+</dl>
+
+<p>The following XML snippet shows how you might specify an intent filter
+in your manifest for deep linking. The URIs {@code “example://gizmos”} and
+{@code “http://www.example.com/gizmos”} both resolve to this activity.</p>
+
+<pre>
+<activity
+ android:name="com.example.android.GizmosActivity"
+ android:label="@string/title_gizmos" >
+ <intent-filter android:label="@string/filter_title_viewgizmos">
+ <action android:name="android.intent.action.VIEW" />
+ <category android:name="android.intent.category.DEFAULT" />
+ <category android:name="android.intent.category.BROWSABLE" />
+ <!-- Accepts URIs that begin with "example://gizmos” -->
+ <data android:scheme="example"
+ android:host="gizmos" />
+ <!-- Accepts URIs that begin with "http://www.example.com/gizmos” -->
+ <data android:scheme="http"
+ android:host="www.example.com"
+ android:pathPrefix="gizmos" />
+ </intent-filter>
+</activity>
+</pre>
+
+<p>Once you've added intent filters with URIs for activity content to your app
+manifest, Android is able to route any {@link android.content.Intent}
+that has matching URIs to your app at runtime.</p>
+
+<p>To learn more about defining intent filters, see <a href="{@docRoot}training/basics/intents/filters.html">Allow Other Apps to Start Your Activity</a>.</p>
+
+<h2 id="handling-intents">Read Data from Incoming Intents</h2>
+<p>Once the system starts your activity through an intent filter, you can
+ use data provided by the {@link android.content.Intent} to determine what you need to render. Call the {@link android.content.Intent#getData()} and
+{@link android.content.Intent#getAction()} methods to retrieve the data and
+action associated with the incoming {@link android.content.Intent}. You can
+call these methods at any time during the lifecycle of the activity, but you
+should generally do so during early callbacks such as {@link
+android.app.Activity#onCreate(android.os.Bundle) onCreate()} or
+{@link android.app.Activity#onStart()}.</p>
+<p>Here’s a snippet that shows how to retrieve data from an
+{@link android.content.Intent}:</p>
+<pre>
+@Override
+public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ setContentView(R.layout.main);
+
+ Intent intent = getIntent();
+ String action = intent.getAction();
+ Uri data = intent.getData();
+}
+</pre>
+<p>Follow these best practices to improve the user's experience:</p>
+<ul>
+<li>The deep link should take users directly to the content,
+without any prompts, interstitial pages, or logins. Make sure that users can
+see the app content even if they never previously opened the application.
+It is okay to prompt users on subsequent interactions or when they open the app
+from the Launcher. This is the same principle as the <a href="https://support.google.com/webmasters/answer/74536?hl=en" class="external-link" target="_blank">first click free</a> experience for web sites.</li>
+<li>Follow the design guidance described in
+ <a href="{@docRoot}design/patterns/navigation.html">Navigation with Back and Up</a>
+ so that your app matches users' expectations for backward navigation after
+ they enter your app through a deep link.
+</li>
+</ul>
+
+<h2 id="testing-filters">Test Your Deep Links</h2>
+<p>You can use the <a href="{@docRoot}tools/help/adb.html">Android Debug
+Bridge</a> with the activity manager (am) tool to test that the intent filter
+URIs you specified for deep linking resolve to the correct app activity. You
+can run the adb command against a device or an emulator.</p>
+<p>The general syntax for testing an intent filter URI with adb is:</p>
+<pre>
+$ adb shell am start
+ -W -a android.intent.action.VIEW
+ -d <URI> <PACKAGE>
+</pre>
+<p>For example, the command below tries to view a target app activity that
+is associated with the specified URI.</p>
+<pre>
+$ adb shell am start
+ -W -a android.intent.action.VIEW
+ -d "example://gizmos" com.example.android
+</pre>
diff --git a/docs/html/training/app-indexing/enabling-app-indexing.jd b/docs/html/training/app-indexing/enabling-app-indexing.jd
new file mode 100644
index 0000000..1636bbc
--- /dev/null
+++ b/docs/html/training/app-indexing/enabling-app-indexing.jd
@@ -0,0 +1,115 @@
+page.title=Specifying App Content for Indexing
+trainingnavtop=true
+
+@jd:body
+
+<!-- This is the training bar -->
+<div id="tb-wrapper">
+<div id="tb">
+
+<h2>This lesson teaches you to</h2>
+<ol>
+ <li><a href="#sitemap">Add Deep Links in Your Sitemap</a></li>
+ <li><a href="#webpages">Add Deep Links in Your Web Pages</a></li>
+ <li><a href="#robots">Allow Google to Crawl URLs Requested By Your App</a></li>
+</ol>
+
+<h2>You should also read</h2>
+<ul>
+<li><a href="https://www.google.com/webmasters/tools/home?hl=en" class="external-link" target="_blank">Webmaster Tools</a></li>
+<li><a href="https://support.google.com/webmasters/answer/183668" class="external-link" target="_blank">Creating Sitemaps</a></li>
+<li><a href="https://support.google.com/webmasters/answer/182072?hl=en" class="external-link" target="_blank">Googlebot</a></li>
+</ul>
+</div>
+</div>
+
+<p>Google's web crawling bot (<a href="https://support.google.com/webmasters/answer/182072?hl=en" class="external-link" target="_blank">Googlebot</a>), which crawls and indexes web sites
+for the Google search engine, can also index content in your Android app.
+By opting in, you can allow Googlebot to crawl the content in the APK
+through the Google Play Store to index the app content. To indicate which app
+content you’d like Google to index, simply add link elements either to
+your existing <a href="https://support.google.com/webmasters/answer/156184?hl=en" class="external-link" target="_blank">Sitemap</a> file or in the {@code <head>} element of each web
+page in your site, in the same way as you would for web pages.</p>
+<p class="note"><strong>Note: </strong>
+Currently, the Google Search app indexing capability is restricted to
+English-only Android apps from developers participating in the early adopter
+program. You can sign up to be a participant by submitting the <a
+href="https://docs.google.com/a/google.com/forms/d/1itcqPAQqggJ6e4m8aejWLM8Dc5O8P6qybgGbKCNxGV0/viewform"
+class="external-link" target="_blank">App Indexing Expression of Interest</a> form.
+</p>
+
+<p>The deep links that you share with Google Search must take this URI
+format:</p>
+<pre>
+android-app://<package_name>/<scheme>/<host_path>
+</pre>
+<p>The components that make up the URI format are:</p>
+<ul>
+<li><strong>package_name.</strong> Represents the package name for your APK as
+listed in the <a href="https://play.google.com/apps/publish" class="external-link" target="_blank">Google Play Developer Console</a>.</li>
+<li><strong>scheme.</strong> The URI scheme that matches your intent filter.</li>
+<li><strong>host_path.</strong> Identifies the specific content within your application.
+</li>
+</ul>
+<p>The following sections describe how to add a deep link URI to your Sitemap
+or web pages.</p>
+<h2 id="sitemap">Add Deep Links in Your Sitemap</h2>
+<p>To annotate the deep link for Google Search app indexing in your
+<a href="https://support.google.com/webmasters/answer/156184?hl=en" class="external-link" target="_blank">Sitemap</a>, use the
+{@code <xhtml:link>} tag and specify the deep link as an alternate URI.</p>
+<p>For example, the following XML snippet shows how you might specify a link to
+your web page by using the {@code <loc>} tag, and a corresponding deep
+link to your Android app by using the {@code <xhtml:link>} tag.</p>
+<pre>
+<?xml version="1.0" encoding="UTF-8" ?>
+<urlset
+ xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
+ xmlns:xhtml="http://www.w3.org/1999/xhtml">
+ <url>
+ <loc>example://gizmos</loc>
+ <xhtml:link
+ rel="alternate"
+ href="android-app://com.example.android/example/gizmos" />
+ </url>
+ ...
+</urlset>
+</pre>
+<h2 id="webpages">Add Deep Links in Your Web Pages</h2>
+<p>Instead of specifying the deep links for Google Search app indexing in your
+Sitemap file, you can annotate the deep links in the HTML markup of your web
+pages. You can do this in the {@code <head>} section for each web
+page by adding a {@code <link>} tag and specifying the deep link as an
+alternate URI.</p>
+<p>For example, the following HTML snippet shows how you might specify the
+corresponding deep link in a web page that has the URL
+{@code example://gizmos}.</p>
+<pre>
+<html>
+<head>
+ <link rel="alternate"
+ href="android-app://com.example.android/example/gizmos" />
+ ...
+</head>
+<body> ... </body>
+</pre>
+
+<h2 id="robots">Allow Google to Crawl URLs Requested By Your App</h2>
+<p>Typically, you control how Googlebot crawls publicly accessible URLs on
+ your site by using a <a href="https://developers.google.com/webmasters/control-crawl-index/docs/robots_txt" class="external-link" target="_blank">{@code robots.txt}</a>
+file. When Googlebot indexes your app content, your app might make HTTP
+requests as part of its normal operations. However, these requests will
+appear to your servers as originating from Googlebot. Therefore, you must
+configure your server's {@code robots.txt} file properly to allow these
+requests.</p>
+<p>For example, the following {@code robots.txt} directive shows how you might
+allow access to a specific directory in your web site (for example,
+{@code /api/}) that your app needs to access, while restricting Googlebot's
+access to other parts of your site.</p>
+<pre>
+User-Agent: Googlebot
+Allow: /api/
+Disallow: /
+</pre>
+<p>To learn more about how to modify {@code robots.txt} to control web
+crawling, see the <a href="https://developers.google.com/webmasters/control-crawl-index/docs/getting_started" class="external-link" target="_blank">Controlling Crawling
+and Indexing Getting Started</a> guide.</p>
diff --git a/docs/html/training/app-indexing/index.jd b/docs/html/training/app-indexing/index.jd
new file mode 100644
index 0000000..cb4135f
--- /dev/null
+++ b/docs/html/training/app-indexing/index.jd
@@ -0,0 +1,89 @@
+page.title=Making Your App Content Searchable by Google
+page.tags="app indexing"
+
+trainingnavtop=true
+startpage=true
+
+@jd:body
+
+<div id="tb-wrapper">
+<div id="tb">
+
+<h2>Dependencies and prerequisites</h2>
+<ul>
+ <li>Android 2.3 (API level 9) and higher</li>
+</ul>
+
+<h2>You Should Also Read</h2>
+<ul>
+<li><a href="http://insidesearch.blogspot.com/2013/12/the-power-of-search-now-across-apps.html" class="external-link" target="_blank">The power of Search, now across apps (blog post)</a></li>
+<li><a href="https://developers.google.com/app-indexing/" class="external-link"
+target="_blank">App Indexing for Google Search</a></li>
+<li><a href="{@docRoot}guide/components/intents-filters.html">Intents and Intent
+Filters</a></li>
+</ul>
+</div>
+</div>
+<a class="notice-developers-video wide" href="http://www.youtube.com/watch?v=Xh_W82JgOms">
+<div>
+ <h3>Video</h3>
+ <p>DevBytes: App Indexing</p>
+</div>
+</a>
+
+<p>As mobile apps become more pervasive, users are looking for relevant
+information not only from web sites but also from apps they have installed.
+You can enable Google to crawl through your app content and present your
+Android app as a destination to users through Google Search results, when
+that content corresponds to a web page that you own.</p>
+
+<p>You can make it possible for Google Search to open specific content in your
+ app by providing intent filters for your activities. Google Search
+app indexing complements this capability by presenting links to relevant app
+content alongside links to your web pages in users' search results. Users on
+mobile devices can then click on a link to open your app from their search
+results, allowing them to directly view your app's content instead of a
+web page.</p>
+
+<p>To enable Google Search app indexing, you need to provide Google with
+information about the relationship between your app and web site. This process
+involves the following steps:</p>
+<ol>
+<li>Enable deep linking to specific content
+in your app by adding intent filters in your app manifest.</li>
+<li>Annotate these links in the associated web pages on your web site or in a
+ Sitemap file.</li>
+<li>Opt in to allow Googlebot to crawl through your APK in the Google Play store
+ to index your app content. You are automatically opted-in when you join as
+ a participant in the early adopter program.
+</li>
+</ol>
+
+<p class="note"><strong>Note: </strong>
+Currently, the Google Search app indexing capability is restricted to
+English-only Android apps from developers participating in the early adopter
+program. You can sign up to be a participant by submitting the <a
+href="https://docs.google.com/a/google.com/forms/d/1itcqPAQqggJ6e4m8aejWLM8Dc5O8P6qybgGbKCNxGV0/viewform"
+class="external-link" target="_blank">App Indexing Expression of Interest</a> form.
+</p>
+
+<p>This class shows how to enable deep linking and indexing of your application
+content so that users can open this content directly from mobile search
+results.</p>
+
+<h2>Lessons</h2>
+
+<!-- Create a list of the lessons in this class along with a short description of each lesson.
+These should be short and to the point. It should be clear from reading the summary whether someone
+will want to jump to a lesson or not.-->
+
+<dl>
+ <dt><b><a href="deep-linking.html">Enabling Deep Links for App
+Content</a></b></dt>
+ <dd>Shows how to add intent filters to enable deep linking to app
+content.</dd>
+ <dt><b><a href="enabling-app-indexing.html">Specifying App Content for
+Indexing</a></b></dt>
+ <dd>Shows how to annotate web site metadata to allow Google's algorithms to index
+app content.</dd>
+</dl>
diff --git a/docs/html/training/articles/security-tips.jd b/docs/html/training/articles/security-tips.jd
index 54aebac..e05b44c 100644
--- a/docs/html/training/articles/security-tips.jd
+++ b/docs/html/training/articles/security-tips.jd
@@ -182,10 +182,10 @@
<h3 id="RequestingPermissions">Requesting Permissions</h3>
-<p>We recommend minimizing the number of permissions that your app requests
+<p>We recommend minimizing the number of permissions that your app requests.
Not having access to sensitive permissions reduces the risk of
inadvertently misusing those permissions, can improve user adoption, and makes
-your app less for attackers. Generally,
+your app less vulnerable for attackers. Generally,
if a permission is not required for your app to function, do not request it.</p>
<p>If it's possible to design your application in a way that does not require
diff --git a/docs/html/training/basics/intents/filters.jd b/docs/html/training/basics/intents/filters.jd
index 9b6a111..10bf43d 100644
--- a/docs/html/training/basics/intents/filters.jd
+++ b/docs/html/training/basics/intents/filters.jd
@@ -148,8 +148,8 @@
{@link android.content.Intent#CATEGORY_DEFAULT} category in the intent filter. The methods {@link
android.app.Activity#startActivity startActivity()} and {@link
android.app.Activity#startActivityForResult startActivityForResult()} treat all intents as if they
-contained the {@link android.content.Intent#CATEGORY_DEFAULT} category. If you do not declare it, no
-implicit intents will resolve to your activity.</p>
+declared the {@link android.content.Intent#CATEGORY_DEFAULT} category. If you do not declare it
+in your intent filter, no implicit intents will resolve to your activity.</p>
<p>For more information about sending and receiving {@link android.content.Intent#ACTION_SEND}
intents that perform social sharing behaviors, see the lesson about <a
diff --git a/docs/html/training/basics/intents/sending.jd b/docs/html/training/basics/intents/sending.jd
index 79c017b..30dc95a 100644
--- a/docs/html/training/basics/intents/sending.jd
+++ b/docs/html/training/basics/intents/sending.jd
@@ -241,9 +241,13 @@
// Always use string resources for UI text.
// This says something like "Share this photo with"
String title = getResources().getString(R.string.chooser_title);
-// Create and start the chooser
+// Create intent to show chooser
Intent chooser = Intent.createChooser(intent, title);
-startActivity(chooser);
+
+// Verify the intent will resolve to at least one activity
+if (intent.resolveActivity(getPackageManager()) != null) {
+ startActivity(chooser);
+}
</pre>
<p>This displays a dialog with a list of apps that respond to the intent passed to the {@link
diff --git a/docs/html/training/best-ui.jd b/docs/html/training/best-ui.jd
new file mode 100644
index 0000000..bf0d7ee
--- /dev/null
+++ b/docs/html/training/best-ui.jd
@@ -0,0 +1,11 @@
+page.title=Best Practices for User Interface
+page.trainingcourse=true
+
+@jd:body
+
+
+
+<p>These classes teach you how to build a user interface using Android layouts for all types of
+devices. Android provides a flexible framework for UI design that allows your app to display
+different layouts for different devices, create custom UI widgets, and even control aspects
+of the system UI outside your app's window.</p>
diff --git a/docs/html/training/best-ux.jd b/docs/html/training/best-ux.jd
index 5f109f6..129535b 100644
--- a/docs/html/training/best-ux.jd
+++ b/docs/html/training/best-ux.jd
@@ -1,12 +1,13 @@
-page.title=Best Practices for User Experience & UI
+page.title=Best Practices for Interaction and Engagement
page.trainingcourse=true
@jd:body
-<p>These classes focus on the best Android user experience for your app.
-In some cases, the success of your app on Android is heavily
-affected by whether your app conforms to the user's expectations for
-UI and navigation on an Android device. Follow these recommendations to ensure that
-your app looks and behaves in a way that satisfies Android users.</p>
\ No newline at end of file
+<p>These classes teach you how to engage and retain your users by implementing
+the best interaction patterns for Android. For instance, to help users quickly discover content
+in your app, your app should match their expectations for user interaction on Android.
+And to keep your users coming back, you should take advantage of
+platform capabilities that reveal and open your content without
+requiring users to go through the app launcher.</p>
diff --git a/docs/html/training/camera/cameradirect.jd b/docs/html/training/camera/cameradirect.jd
index 4b6f0d2..6f358a5 100644
--- a/docs/html/training/camera/cameradirect.jd
+++ b/docs/html/training/camera/cameradirect.jd
@@ -152,10 +152,8 @@
e.printStackTrace();
}
- /*
- Important: Call startPreview() to start updating the preview surface. Preview must
- be started before you can take a picture.
- */
+ // Important: Call startPreview() to start updating the preview
+ // surface. Preview must be started before you can take a picture.
mCamera.startPreview();
}
}
@@ -177,10 +175,8 @@
requestLayout();
mCamera.setParameters(parameters);
- /*
- Important: Call startPreview() to start updating the preview surface. Preview must be
- started before you can take a picture.
- */
+ // Important: Call startPreview() to start updating the preview surface.
+ // Preview must be started before you can take a picture.
mCamera.startPreview();
}
</pre>
@@ -251,29 +247,23 @@
public void surfaceDestroyed(SurfaceHolder holder) {
// Surface will be destroyed when we return, so stop the preview.
if (mCamera != null) {
- /*
- Call stopPreview() to stop updating the preview surface.
- */
+ // Call stopPreview() to stop updating the preview surface.
mCamera.stopPreview();
}
}
/**
- * When this function returns, mCamera will be null.
- */
+ * When this function returns, mCamera will be null.
+ */
private void stopPreviewAndFreeCamera() {
if (mCamera != null) {
- /*
- Call stopPreview() to stop updating the preview surface.
- */
+ // Call stopPreview() to stop updating the preview surface.
mCamera.stopPreview();
- /*
- Important: Call release() to release the camera for use by other applications.
- Applications should release the camera immediately in onPause() (and re-open() it in
- onResume()).
- */
+ // Important: Call release() to release the camera for use by other
+ // applications. Applications should release the camera immediately
+ // during onPause() and re-open() it during onResume()).
mCamera.release();
mCamera = null;
diff --git a/docs/html/training/camera/index.jd b/docs/html/training/camera/index.jd
index d6305d6..c6b49cf 100644
--- a/docs/html/training/camera/index.jd
+++ b/docs/html/training/camera/index.jd
@@ -14,7 +14,7 @@
<h2>Dependencies and prerequisites</h2>
<ul>
- <li>Android 1.5 (API level 3) or higher</li>
+ <li>Android 2.2 (API level 8) or higher</li>
<li>A device with a camera</li>
</ul>
diff --git a/docs/html/training/camera/photobasics.jd b/docs/html/training/camera/photobasics.jd
index 8fa6d67b..188b5cc 100644
--- a/docs/html/training/camera/photobasics.jd
+++ b/docs/html/training/camera/photobasics.jd
@@ -16,8 +16,8 @@
<ol>
<li><a href="#TaskManifest">Request Camera Permission</a></li>
<li><a href="#TaskCaptureIntent">Take a Photo with the Camera App</a></li>
- <li><a href="#TaskPhotoView">View the Photo</a></li>
- <li><a href="#TaskPath">Save the Photo</a></li>
+ <li><a href="#TaskPhotoView">Get the Thumbnail</a></li>
+ <li><a href="#TaskPath">Save the Full-size Photo</a></li>
<li><a href="#TaskGallery">Add the Photo to a Gallery</a></li>
<li><a href="#TaskScalePhoto">Decode a Scaled Image</a></li>
</ol>
@@ -25,7 +25,7 @@
<h2>You should also read</h2>
<ul>
<li><a href="{@docRoot}guide/topics/media/camera.html">Camera</a></li>
- <li><a href="{@docRoot}guide/components/intents-filters.html">Intents and Intent
+ <li><a href="{@docRoot}guide/components/intents-filters.html">Intents and Intent
Filters</a></li>
</ul>
@@ -60,22 +60,23 @@
href="{@docRoot}guide/topics/manifest/uses-feature-element.html"> {@code
<uses-feature>}</a> tag in your manifest file:</p>
-<pre>
+<pre style="clear:right">
<manifest ... >
- <uses-feature android:name="android.hardware.camera" />
+ <uses-feature android:name="android.hardware.camera"
+ android:required="true" />
...
-</manifest ... >
+</manifest>
</pre>
-<p>If your application uses, but does not require a camera in order to function, add {@code
-android:required="false"} to the tag. In doing so, Google Play will allow devices without a
+<p>If your application uses, but does not require a camera in order to function, instead set {@code
+android:required} to {@code false}. In doing so, Google Play will allow devices without a
camera to download your application. It's then your responsibility to check for the availability
of the camera at runtime by calling {@link
android.content.pm.PackageManager#hasSystemFeature hasSystemFeature(PackageManager.FEATURE_CAMERA)}.
If a camera is not available, you should then disable your camera features.</p>
-<h2 id="TaskCaptureIntent">Take a Photo with the Camera App</h2>
+<h2 id="TaskCaptureIntent">Take a Photo with the Camera App</h2>
<p>The Android way of delegating actions to other applications is to invoke an {@link
android.content.Intent} that describes what you want done. This process involves three pieces: The
@@ -85,30 +86,27 @@
<p>Here's a function that invokes an intent to capture a photo.</p>
<pre>
-private void dispatchTakePictureIntent(int actionCode) {
+static final int REQUEST_IMAGE_CAPTURE = 1;
+
+private void dispatchTakePictureIntent() {
Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
- startActivityForResult(takePictureIntent, actionCode);
+ if (takePictureIntent.resolveActivity(getPackageManager()) != null) {
+ startActivityForResult(takePictureIntent, REQUEST_IMAGE_CAPTURE);
+ }
}
</pre>
-
-<p>Congratulations: with this code, your application has gained the ability to
-make another camera application do its bidding! Of course, if no compatible
-application is ready to catch the intent, then your app will fall down like a
-botched stage dive. Here is a function to check whether an app can handle your intent:</p>
-
-<pre>
-public static boolean isIntentAvailable(Context context, String action) {
- final PackageManager packageManager = context.getPackageManager();
- final Intent intent = new Intent(action);
- List<ResolveInfo> list =
- packageManager.queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY);
- return list.size() > 0;
-}
-</pre>
+<p>Notice that the {@link android.app.Activity#startActivityForResult
+startActivityForResult()} method is protected by a condition that calls
+{@link android.content.Intent#resolveActivity resolveActivity()}, which returns the
+first activity component that can handle the intent. Performing this check
+is important because if you call {@link android.app.Activity#startActivityForResult
+startActivityForResult()} using an intent that no app can handle,
+your app will crash. So as long as the result is not null, it's safe to use the intent. </p>
-<h2 id="TaskPhotoView">View the Photo</h2>
+
+<h2 id="TaskPhotoView">Get the Thumbnail</h2>
<p>If the simple feat of taking a photo is not the culmination of your app's
ambition, then you probably want to get the image back from the camera
@@ -120,10 +118,13 @@
this image and displays it in an {@link android.widget.ImageView}.</p>
<pre>
-private void handleSmallCameraPhoto(Intent intent) {
- Bundle extras = intent.getExtras();
- mImageBitmap = (Bitmap) extras.get("data");
- mImageView.setImageBitmap(mImageBitmap);
+@Override
+protected void onActivityResult(int requestCode, int resultCode, Intent data) {
+ if (requestCode == REQUEST_IMAGE_CAPTURE && resultCode == RESULT_OK) {
+ Bundle extras = data.getExtras();
+ Bitmap imageBitmap = (Bitmap) extras.get("data");
+ mImageView.setImageBitmap(imageBitmap);
+ }
}
</pre>
@@ -132,72 +133,104 @@
work.</p>
-<h2 id="TaskPath">Save the Photo</h2>
+<h2 id="TaskPath">Save the Full-size Photo</h2>
<p>The Android Camera application saves a full-size photo if you give it a file to
-save into. You must provide a path that includes the storage volume,
-folder, and file name.</p>
+save into. You must provide a fully qualified file name where the camera app should
+save the photo.</p>
-<p>There is an easy way to get the path for photos, but it works only on Android 2.2 (API level 8)
-and later:</p>
-
-<pre>
-storageDir = new File(
- Environment.getExternalStoragePublicDirectory(
- Environment.DIRECTORY_PICTURES
- ),
- getAlbumName()
-);
-</pre>
-
-<p>For earlier API levels, you have to provide the name of the photo
-directory yourself.</p>
-
-<pre>
-storageDir = new File (
- Environment.getExternalStorageDirectory()
- + PICTURES_DIR
- + getAlbumName()
-);
-</pre>
-
-<p class="note"><strong>Note:</strong> The path component {@code PICTURES_DIR} is
-just {@code Pictures/}, the standard location for shared photos on the external/shared
-storage.</p>
-
-
-<h3 id="TaskFileName">Set the file name</h3>
-
-<p>As shown in the previous section, the file location for an image should be
-driven by the device environment. What you need to do yourself is choose a
-collision-resistant file-naming scheme. You may wish also to save the path in a
-member variable for later use. Here's an example solution:</p>
-
-<pre>
-private File createImageFile() throws IOException {
- // Create an image file name
- String timeStamp =
- new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
- String imageFileName = JPEG_FILE_PREFIX + timeStamp + "_";
- File image = File.createTempFile(
- imageFileName,
- JPEG_FILE_SUFFIX,
- getAlbumDir()
- );
- mCurrentPhotoPath = image.getAbsolutePath();
- return image;
-}
-</pre>
-
-
-<h3 id="TaskIntentFileName">Append the file name onto the Intent</h3>
-
-<p>Once you have a place to save your image, pass that location to the camera
-application via the {@link android.content.Intent}.</p>
+<p>Generally, any photos that the user captures with the device camera should be saved on
+the device in the public external storage so they are accessible by all apps.
+The proper directory for shared photos is provided by {@link
+android.os.Environment#getExternalStoragePublicDirectory getExternalStoragePublicDirectory()},
+with the {@link android.os.Environment#DIRECTORY_PICTURES} argument. Because the directory
+provided by this method is shared among all apps, reading and writing to it requires the
+{@link android.Manifest.permission#READ_EXTERNAL_STORAGE} and
+{@link android.Manifest.permission#WRITE_EXTERNAL_STORAGE} permissions, respectively.
+The write permission implicitly allows reading, so if you need to write to the external
+storage then you need to request only one permission:</p>
<pre>
-File f = createImageFile();
-takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(f));
+<manifest ...>
+ <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
+ ...
+</manifest>
+</pre>
+
+<p>However, if you'd like the photos to remain private to your app only, you can instead use the
+directory provided by {@link android.content.Context#getExternalFilesDir getExternalFilesDir()}.
+On Android 4.3 and lower, writing to this directory also requires the
+{@link android.Manifest.permission#WRITE_EXTERNAL_STORAGE} permission. Beginning with
+Android 4.4, the permission is no longer required because the directory is not accessible
+by other apps, so you can declare the permission should be requested only on the lower versions
+of Android by adding the <a
+href="{@docRoot}guide/topics/manifest/uses-permission-element.html#maxSdk">{@code maxSdkVersion}</a>
+attribute:</p>
+<pre>
+<manifest ...>
+ <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"
+ android:maxSdkVersion="18" />
+ ...
+</manifest>
+</pre>
+
+<p class="note"><strong>Note:</strong> Files you save in the directories provided by
+{@link android.content.Context#getExternalFilesDir getExternalFilesDir()} are deleted
+when the user uninstalls your app.</p>
+
+<p>Once you decide the directory for the file, you need to create a
+collision-resistant file name. You may wish also to save the path in a
+member variable for later use. Here's an example solution in a method that returns
+a unique file name for a new photo using a date-time stamp:</p>
+
+<pre>
+String mCurrentPhotoPath;
+
+private File createImageFile() throws IOException {
+ // Create an image file name
+ String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss").format(new Date());
+ String imageFileName = "JPEG_" + timeStamp + "_";
+ File storageDir = Environment.getExternalStoragePublicDirectory(
+ Environment.DIRECTORY_PICTURES);
+ File image = File.createTempFile(
+ imageFileName, /* prefix */
+ ".jpg", /* suffix */
+ storageDir /* directory */
+ );
+
+ // Save a file: path for use with ACTION_VIEW intents
+ mCurrentPhotoPath = "file:" + image.getAbsolutePath();
+ return image;
+}
+</pre>
+
+
+<p>With this method available to create a file for the photo, you can now
+create and invoke the {@link android.content.Intent} like this:</p>
+
+<pre>
+static final int REQUEST_TAKE_PHOTO = 1;
+
+private void dispatchTakePictureIntent() {
+ Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
+ // Ensure that there's a camera activity to handle the intent
+ if (takePictureIntent.resolveActivity(getPackageManager()) != null) {
+ // Create the File where the photo should go
+ File photoFile = null;
+ try {
+ photoFile = createImageFile();
+ } catch (IOException ex) {
+ // Error occurred while creating the File
+ ...
+ }
+ // Continue only if the File was successfully created
+ if (photoFile != null) {
+ takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT,
+ Uri.fromFile(photoFile));
+ startActivityForResult(takePictureIntent, REQUEST_TAKE_PHOTO);
+ }
+ }
+}
</pre>
@@ -207,6 +240,10 @@
you said where to save it in the first place. For everyone else, perhaps the easiest way to make
your photo accessible is to make it accessible from the system's Media Provider.</p>
+<p class="note"><strong>Note:</strong> If you saved your photo to the directory provided by
+{@link android.content.Context#getExternalFilesDir getExternalFilesDir()}, the media
+scanner cannot access the files because they are private to your app.</p>
+
<p>The following example method demonstrates how to invoke the system's media scanner to add your
photo to the Media Provider's database, making it available in the Android Gallery application
and to other apps.</p>
@@ -236,22 +273,22 @@
// Get the dimensions of the View
int targetW = mImageView.getWidth();
int targetH = mImageView.getHeight();
-
+
// Get the dimensions of the bitmap
BitmapFactory.Options bmOptions = new BitmapFactory.Options();
bmOptions.inJustDecodeBounds = true;
BitmapFactory.decodeFile(mCurrentPhotoPath, bmOptions);
int photoW = bmOptions.outWidth;
int photoH = bmOptions.outHeight;
-
+
// Determine how much to scale down the image
int scaleFactor = Math.min(photoW/targetW, photoH/targetH);
-
+
// Decode the image file into a Bitmap sized to fill the View
bmOptions.inJustDecodeBounds = false;
bmOptions.inSampleSize = scaleFactor;
bmOptions.inPurgeable = true;
-
+
Bitmap bitmap = BitmapFactory.decodeFile(mCurrentPhotoPath, bmOptions);
mImageView.setImageBitmap(bitmap);
}
diff --git a/docs/html/training/camera/videobasics.jd b/docs/html/training/camera/videobasics.jd
index d011d09..135d4a1 100644
--- a/docs/html/training/camera/videobasics.jd
+++ b/docs/html/training/camera/videobasics.jd
@@ -24,7 +24,7 @@
<h2>You should also read</h2>
<ul>
<li><a href="{@docRoot}guide/topics/media/camera.html">Camera</a></li>
- <li><a href="{@docRoot}guide/components/intents-filters.html">Intents and Intent
+ <li><a href="{@docRoot}guide/components/intents-filters.html">Intents and Intent
Filters</a></li>
</ul>
@@ -54,52 +54,49 @@
<p>To advertise that your application depends on having a camera, put a
{@code <uses-feature>} tag in the manifest file:</p>
-<pre>
+<pre style="clear:right">
<manifest ... >
- <uses-feature android:name="android.hardware.camera" />
+ <uses-feature android:name="android.hardware.camera"
+ android:required="true" />
...
-</manifest ... >
+</manifest>
</pre>
-<p>If your application uses, but does not require a camera in order to function, add {@code
-android:required="false"} to the tag. In doing so, Google Play will allow devices without a
+<p>If your application uses, but does not require a camera in order to function, set {@code
+android:required} to {@code false}. In doing so, Google Play will allow devices without a
camera to download your application. It's then your responsibility to check for the availability
of the camera at runtime by calling {@link
android.content.pm.PackageManager#hasSystemFeature hasSystemFeature(PackageManager.FEATURE_CAMERA)}.
If a camera is not available, you should then disable your camera features.</p>
-<h2 id="TaskCaptureIntent">Record a Video with a Camera App</h2>
+<h2 id="TaskCaptureIntent">Record a Video with a Camera App</h2>
-<p>The Android way of delegating actions to other applications is to invoke
-an {@link android.content.Intent} that describes what you want done. This
-involves three pieces: the {@link android.content.Intent} itself, a call to start the external
-{@link android.app.Activity}, and some code to handle the video when focus returns
-to your activity.</p>
+<p>The Android way of delegating actions to other applications is to invoke an {@link
+android.content.Intent} that describes what you want done. This process involves three pieces: The
+{@link android.content.Intent} itself, a call to start the external {@link android.app.Activity},
+and some code to handle the video when focus returns to your activity.</p>
<p>Here's a function that invokes an intent to capture video.</p>
<pre>
+static final int REQUEST_VIDEO_CAPTURE = 1;
+
private void dispatchTakeVideoIntent() {
Intent takeVideoIntent = new Intent(MediaStore.ACTION_VIDEO_CAPTURE);
- startActivityForResult(takeVideoIntent, ACTION_TAKE_VIDEO);
+ if (takeVideoIntent.resolveActivity(getPackageManager()) != null) {
+ startActivityForResult(takeVideoIntent, REQUEST_VIDEO_CAPTURE);
+ }
}
</pre>
-
-<p>It's a good idea to make sure an app exists to handle your intent
-before invoking it. Here's a function that checks for apps that can handle your intent:</p>
-
-<pre>
-public static boolean isIntentAvailable(Context context, String action) {
- final PackageManager packageManager = context.getPackageManager();
- final Intent intent = new Intent(action);
- List<ResolveInfo> list =
- packageManager.queryIntentActivities(intent,
- PackageManager.MATCH_DEFAULT_ONLY);
- return list.size() > 0;
-}
-</pre>
+<p>Notice that the {@link android.app.Activity#startActivityForResult
+startActivityForResult()} method is protected by a condition that calls
+{@link android.content.Intent#resolveActivity resolveActivity()}, which returns the
+first activity component that can handle the intent. Performing this check
+is important because if you call {@link android.app.Activity#startActivityForResult
+startActivityForResult()} using an intent that no app can handle,
+your app will crash. So as long as the result is not null, it's safe to use the intent. </p>
<h2 id="TaskVideoView">View the Video</h2>
@@ -110,9 +107,12 @@
retrieves this video and displays it in a {@link android.widget.VideoView}.</p>
<pre>
-private void handleCameraVideo(Intent intent) {
- mVideoUri = intent.getData();
- mVideoView.setVideoURI(mVideoUri);
+@Override
+protected void onActivityResult(int requestCode, int resultCode, Intent data) {
+ if (requestCode == REQUEST_VIDEO_CAPTURE && resultCode == RESULT_OK) {
+ Uri videoUri = intent.getData();
+ mVideoView.setVideoURI(videoUri);
+ }
}
</pre>
diff --git a/docs/html/training/connect-devices-wirelessly/index.jd b/docs/html/training/connect-devices-wirelessly/index.jd
index db79abe..aada1fd 100644
--- a/docs/html/training/connect-devices-wirelessly/index.jd
+++ b/docs/html/training/connect-devices-wirelessly/index.jd
@@ -20,9 +20,15 @@
<li><a href="{@docRoot}guide/topics/connectivity/wifip2p.html">Wi-Fi P2P</a></li>
</ul>
+</div>
+</div>
+<a class="notice-developers-video wide" href="http://www.youtube.com/watch?v=oi_ARV_I8Dc">
+<div>
+ <h3>Video</h3>
+ <p>DevBytes: Network Service Discovery</p>
</div>
-</div>
+</a>
<p>Besides enabling communication with the cloud, Android's wireless APIs also
diff --git a/docs/html/training/displaying-bitmaps/index.jd b/docs/html/training/displaying-bitmaps/index.jd
index 1f44fa8..fba9fc5 100644
--- a/docs/html/training/displaying-bitmaps/index.jd
+++ b/docs/html/training/displaying-bitmaps/index.jd
@@ -25,6 +25,20 @@
</div>
</div>
+<a class="notice-developers-video wide" href="http://www.youtube.com/watch?v=rsQet4nBVi8">
+<div>
+ <h3>Video</h3>
+ <p>DevBytes: Bitmap Allocation</p>
+</div>
+</a>
+
+<a class="notice-developers-video wide" href="http://www.youtube.com/watch?v=pMRnGDR6Cu0">
+<div>
+ <h3>Video</h3>
+ <p>DevBytes: Making Apps Beautiful - Part 4 - Performance Tuning</p>
+</div>
+</a>
+
<p>Learn how to use common techniques to process and load {@link
android.graphics.Bitmap} objects in a way that keeps your user interface (UI) components responsive
and avoids exceeding your application memory limit. If you're not careful, bitmaps can quickly
diff --git a/docs/html/training/displaying-bitmaps/process-bitmap.jd b/docs/html/training/displaying-bitmaps/process-bitmap.jd
index 272b8bc..ed0b368 100644
--- a/docs/html/training/displaying-bitmaps/process-bitmap.jd
+++ b/docs/html/training/displaying-bitmaps/process-bitmap.jd
@@ -172,7 +172,8 @@
if (bitmapWorkerTask != null) {
final int bitmapData = bitmapWorkerTask.data;
- if (bitmapData != data) {
+ // If bitmapData is not yet set or it differs from the new data
+ if (bitmapData == 0 || bitmapData != data) {
// Cancel previous task
bitmapWorkerTask.cancel(true);
} else {
diff --git a/docs/html/training/game-controllers/compatibility.jd b/docs/html/training/game-controllers/compatibility.jd
new file mode 100644
index 0000000..f68ab1a
--- /dev/null
+++ b/docs/html/training/game-controllers/compatibility.jd
@@ -0,0 +1,643 @@
+page.title=Supporting Controllers Across Android Versions
+trainingnavtop=true
+
+@jd:body
+
+<!-- This is the training bar -->
+<div id="tb-wrapper">
+<div id="tb">
+
+<h2>This lesson teaches you to</h2>
+<ol>
+ <li><a href="#prepare">Prepare to Abstract APIs for Game Controller
+Suppport</a></li>
+ <li><a href="#abstraction">Add an Interface for Backward Compatibility</a></li>
+ <li><a href="#newer">Implement the Interface on Android 4.1 and Higher</a></li>
+ <li><a href="#older">Implement the Interface on Android 2.3 up to Android
+4.0</a></li>
+ <li><a href="#using">Use the Version-Specific Implementations</a></li>
+</ol>
+
+<h2>Try it out</h2>
+<div class="download-box">
+ <a href="http://developer.android.com/shareables/training/ControllerSample.zip"
+class="button">Download the sample</a>
+ <p class="filename">ControllerSample.zip</p>
+</div>
+
+</div>
+</div>
+
+<p>If you are supporting game controllers in your game, it's your responsibility
+to make sure that your game responds to controllers consistently across devices
+running on different versions of Android. This lets your game reach a wider
+audience, and your players can enjoy a seamless gameplay experience with
+their controllers even when they switch or upgrade their Android devices.</p>
+
+<p>This lesson demonstrates how to use APIs available in Android 4.1 and higher
+in a backward compatible way, enabling your game to support the following
+features on devices running Android 2.3 and higher:</p>
+<ul>
+<li>The game can detect if a new game controller is added, changed, or removed.</li>
+<li>The game can query the capabilities of a game controller.</li>
+<li>The game can recognize incoming motion events from a game controller.</li>
+</ul>
+
+<p>The examples in this lesson are based on the reference implementation
+provided by the sample {@code ControllerSample.zip} available for download
+above. This sample shows how to implement the {@code InputManagerCompat}
+interface to support different versions of Android. To compile the sample, you
+must use Android 4.1 (API level 16) or higher. Once compiled, the sample app
+runs on any device running Android 2.3 (API level 9) or higher as the build
+target.
+</p>
+
+<h2 id="prepare">Prepare to Abstract APIs for Game Controller Support</h2>
+<p>Suppose you want to be able to determine if a game controller's connection
+status has changed on devices running on Android 2.3 (API level 9). However,
+the APIs are only available in Android 4.1 (API level 16) and higher, so you
+need to provide an implementation that supports Android 4.1 and higher while
+providing a fallback mechanism that supports Android 2.3 up to Android 4.0.</p>
+
+<p>To help you determine which features require such a fallback mechanism for
+ older versions, table 1 lists the differences in game controller support
+ between Android 2.3 (API level 9), 3.1 (API level 12), and 4.1 (API level
+ 16).</p>
+
+<p class="table-caption" id="game-controller-support-table">
+<strong>Table 1.</strong> APIs for game controller support across
+different Android versions.
+</p>
+
+<table>
+<tbody>
+<tr>
+<th>Controller Information</th>
+<th>Controller API</th>
+<th>API level 9</th>
+<th>API level 12</th>
+<th>API level 16</th>
+</tr>
+
+<tr>
+<td rowspan="5">Device Identification</td>
+<td>{@link android.hardware.input.InputManager#getInputDeviceIds()}</td>
+<td style="text-align: center;"><big> </big></td>
+<td style="text-align: center;"><big> </big></td>
+<td style="text-align: center;"><big>•</big></td>
+</tr>
+
+<tr>
+<td>{@link android.hardware.input.InputManager#getInputDevice(int)
+getInputDevice()}</td>
+<td style="text-align: center;"> </td>
+<td style="text-align: center;"><big> </big></td>
+<td style="text-align: center;"><big>•</big></td>
+</tr>
+
+<tr>
+<td>{@link android.view.InputDevice#getVibrator()}</td>
+<td style="text-align: center;"> </td>
+<td style="text-align: center;"><big> </big></td>
+<td style="text-align: center;"><big>•</big></td>
+</tr>
+
+<td>{@link android.view.InputDevice#SOURCE_JOYSTICK}</td>
+<td style="text-align: center;"> </td>
+<td style="text-align: center;"><big>•</big></td>
+<td style="text-align: center;"><big>•</big></td>
+</tr>
+
+<tr>
+<td>{@link android.view.InputDevice#SOURCE_GAMEPAD}</td>
+<td style="text-align: center;"> </td>
+<td style="text-align: center;"><big>•</big></td>
+<td style="text-align: center;"><big>•</big></td>
+</tr>
+
+<tr>
+<td rowspan="3">Connection Status</td>
+<td>{@link android.hardware.input.InputManager.InputDeviceListener#onInputDeviceAdded(int) onInputDeviceAdded()}</td>
+<td style="text-align: center;"> </td>
+<td style="text-align: center;"> </td>
+<td style="text-align: center;"><big>•</big></td>
+</tr>
+
+<tr>
+<td>{@link android.hardware.input.InputManager.InputDeviceListener#onInputDeviceChanged(int) onInputDeviceChanged()}</td>
+<td style="text-align: center;"> </td>
+<td style="text-align: center;"> </td>
+<td style="text-align: center;"><big>•</big></td>
+</tr>
+
+<tr>
+<td>{@link android.hardware.input.InputManager.InputDeviceListener#onInputDeviceRemoved(int) onInputDeviceRemoved()}</td>
+<td style="text-align: center;"> </td>
+<td style="text-align: center;"> </td>
+<td style="text-align: center;"><big>•</big></td>
+</tr>
+
+<tr>
+<td rowspan="4">Input Event Identification</td>
+<td>D-pad press (
+{@link android.view.KeyEvent#KEYCODE_DPAD_UP},
+{@link android.view.KeyEvent#KEYCODE_DPAD_DOWN},
+{@link android.view.KeyEvent#KEYCODE_DPAD_LEFT},
+{@link android.view.KeyEvent#KEYCODE_DPAD_RIGHT},
+{@link android.view.KeyEvent#KEYCODE_DPAD_CENTER})</td>
+<td style="text-align: center;"><big>•</big></td>
+<td style="text-align: center;"><big>•</big></td>
+<td style="text-align: center;"><big>•</big></td>
+</tr>
+
+<tr>
+<td>Gamepad button press (
+{@link android.view.KeyEvent#KEYCODE_BUTTON_A BUTTON_A},
+{@link android.view.KeyEvent#KEYCODE_BUTTON_B BUTTON_B},
+{@link android.view.KeyEvent#KEYCODE_BUTTON_THUMBL BUTTON_THUMBL},
+{@link android.view.KeyEvent#KEYCODE_BUTTON_THUMBR BUTTON_THUMBR},
+{@link android.view.KeyEvent#KEYCODE_BUTTON_SELECT BUTTON_SELECT},
+{@link android.view.KeyEvent#KEYCODE_BUTTON_START BUTTON_START},
+{@link android.view.KeyEvent#KEYCODE_BUTTON_R1 BUTTON_R1},
+{@link android.view.KeyEvent#KEYCODE_BUTTON_L1 BUTTON_L1},
+{@link android.view.KeyEvent#KEYCODE_BUTTON_R2 BUTTON_R2},
+{@link android.view.KeyEvent#KEYCODE_BUTTON_L2 BUTTON_L2})</td>
+<td style="text-align: center;"> </td>
+<td style="text-align: center;"><big>•</big></td>
+<td style="text-align: center;"><big>•</big></td>
+</tr>
+
+<tr>
+<td>Joystick and hat switch movement (
+{@link android.view.MotionEvent#AXIS_X},
+{@link android.view.MotionEvent#AXIS_Y},
+{@link android.view.MotionEvent#AXIS_Z},
+{@link android.view.MotionEvent#AXIS_RZ},
+{@link android.view.MotionEvent#AXIS_HAT_X},
+{@link android.view.MotionEvent#AXIS_HAT_Y})</td>
+<td style="text-align: center;"> </td>
+<td style="text-align: center;"><big>•</big></td>
+<td style="text-align: center;"><big>•</big></td>
+</tr>
+
+<tr>
+<td>Analog trigger press (
+{@link android.view.MotionEvent#AXIS_LTRIGGER},
+{@link android.view.MotionEvent#AXIS_RTRIGGER})</td>
+<td style="text-align: center;"> </td>
+<td style="text-align: center;"><big>•</big></td>
+<td style="text-align: center;"><big>•</big></td>
+</tr>
+
+</tbody>
+</table>
+
+<p>You can use abstraction to build version-aware game controller support that
+works across platforms. This approach involves the following steps:</p>
+<ol>
+<li>Define an intermediary Java interface that abstracts the implementation of
+the game controller features required by your game.</li>
+<li>Create a proxy implementation of your interface that uses APIs in Android
+4.1 and higher.</li>
+<li>Create a custom implementation of your interface that uses APIs available
+between Android 2.3 up to Android 4.0.</li>
+<li>Create the logic for switching between these implementations at runtime,
+and begin using the interface in your game.</li>
+</ol>
+
+<p>For an overview of how abstraction can be used to ensure that applications
+can work in a backward compatible way across different versions of Android, see
+<a href="{@docRoot}training/backward-compatible-ui/index.html">Creating
+Backward-Compatible UIs</a>.
+</p>
+
+<h2 id="abstraction">Add an Interface for Backward Compatibility</h2>
+
+<p>To provide backward compatibility, you can create a custom interface then
+add version-specific implementations. One advantage of this approach is that it
+lets you mirror the public interfaces on Android 4.1 (API level 16) that
+support game controllers.</p>
+<pre>
+// The InputManagerCompat interface is a reference example.
+// The full code is provided in the ControllerSample.zip sample.
+public interface InputManagerCompat {
+ ...
+ public InputDevice getInputDevice(int id);
+ public int[] getInputDeviceIds();
+
+ public void registerInputDeviceListener(
+ InputManagerCompat.InputDeviceListener listener,
+ Handler handler);
+ public void unregisterInputDeviceListener(
+ InputManagerCompat.InputDeviceListener listener);
+
+ public void onGenericMotionEvent(MotionEvent event);
+
+ public void onPause();
+ public void onResume();
+
+ public interface InputDeviceListener {
+ void onInputDeviceAdded(int deviceId);
+ void onInputDeviceChanged(int deviceId);
+ void onInputDeviceRemoved(int deviceId);
+ }
+ ...
+}
+</pre>
+<p>The {@code InputManagerCompat} interface provides the following methods:</p>
+<dl>
+<dt>{@code getInputDevice()}</dt>
+<dd>Mirrors {@link android.hardware.input.InputManager#getInputDevice(int)
+getInputDevice()}. Obtains the {@link android.view.InputDevice}
+object that represents the capabilities of a game controller.</dd>
+<dt>{@code getInputDeviceIds()}</dt>
+<dd>Mirrors {@link android.hardware.input.InputManager#getInputDeviceIds()
+getInputDeviceIds()}. Returns an array of integers, each of
+which is an ID for a different input device. This is useful if you're building
+a game that supports multiple players and you want to detect how many
+controllers are connected.</dd>
+<dt>{@code registerInputDeviceListener()}</dt>
+<dd>Mirrors {@link android.hardware.input.InputManager#registerInputDeviceListener(android.hardware.input.InputManager.InputDeviceListener, android.os.Handler)
+registerInputDeviceListener()}. Lets you register to be informed when a new
+device is added, changed, or removed.</dd>
+<dt>{@code unregisterInputDeviceListener()}</dt>
+<dd>Mirrors {@link android.hardware.input.InputManager#unregisterInputDeviceListener(android.hardware.input.InputManager.InputDeviceListener) unregisterInputDeviceListener()}.
+Unregisters an input device listener.</dd>
+<dt>{@code onGenericMotionEvent()}</dt>
+<dd>Mirrors {@link android.view.View#onGenericMotionEvent(android.view.MotionEvent)
+onGenericMotionEvent()}. Lets your game intercept and handle
+{@link android.view.MotionEvent} objects and axis values that represent events
+such as joystick movements and analog trigger presses.</dd>
+<dt>{@code onPause()}</dt>
+<dd>Stops polling for game controller events when the
+main activity is paused, or when the game no longer has focus.</dd>
+<dt>{@code onResume()}</dt>
+<dd>Starts polling for game controller events when the
+main activity is resumed, or when the game is started and runs in the
+foreground.</dd>
+<dt>{@code InputDeviceListener}</dt>
+<dd>Mirrors the {@link android.hardware.input.InputManager.InputDeviceListener}
+interface. Lets your game know when a game controller has been added, changed, or
+removed.</dd>
+</dl>
+<p>Next, create implementations for {@code InputManagerCompat} that work
+across different platform versions. If your game is running on Android 4.1 or
+higher and calls an {@code InputManagerCompat} method, the proxy implementation
+calls the equivalent method in {@link android.hardware.input.InputManager}.
+However, if your game is running on Android 2.3 up to Android 4.0, the custom implementation processes calls to {@code InputManagerCompat} methods by using
+only APIs introduced no later than Android 2.3. Regardless of which
+version-specific implementation is used at runtime, the implementation passes
+the call results back transparently to the game.</p>
+
+<img src="{@docRoot}images/training/backward-compatible-inputmanager.png" alt=""
+id="figure1" />
+<p class="img-caption">
+ <strong>Figure 1.</strong> Class diagram of interface and version-specific
+implementations.
+</p>
+
+<h2 id="newer">Implement the Interface on Android 4.1 and Higher</h2>
+<p>{@code InputManagerCompatV16} is an implementation of the
+{@code InputManagerCompat} interface that proxies method calls to an
+actual {@link android.hardware.input.InputManager} and {@link
+android.hardware.input.InputManager.InputDeviceListener}. The
+{@link android.hardware.input.InputManager} is obtained from the system
+{@link android.content.Context}.</p>
+
+<pre>
+// The InputManagerCompatV16 class is a reference implementation.
+// The full code is provided in the ControllerSample.zip sample.
+public class InputManagerV16 implements InputManagerCompat {
+
+ private final InputManager mInputManager;
+ private final Map<InputManagerCompat.InputDeviceListener,
+ V16InputDeviceListener> mListeners;
+
+ public InputManagerV16(Context context) {
+ mInputManager = (InputManager)
+ context.getSystemService(Context.INPUT_SERVICE);
+ mListeners = new HashMap<InputManagerCompat.InputDeviceListener,
+ V16InputDeviceListener>();
+ }
+
+ @Override
+ public InputDevice getInputDevice(int id) {
+ return mInputManager.getInputDevice(id);
+ }
+
+ @Override
+ public int[] getInputDeviceIds() {
+ return mInputManager.getInputDeviceIds();
+ }
+
+ static class V16InputDeviceListener implements
+ InputManager.InputDeviceListener {
+ final InputManagerCompat.InputDeviceListener mIDL;
+
+ public V16InputDeviceListener(InputDeviceListener idl) {
+ mIDL = idl;
+ }
+
+ @Override
+ public void onInputDeviceAdded(int deviceId) {
+ mIDL.onInputDeviceAdded(deviceId);
+ }
+
+ // Do the same for device change and removal
+ ...
+ }
+
+ @Override
+ public void registerInputDeviceListener(InputDeviceListener listener,
+ Handler handler) {
+ V16InputDeviceListener v16Listener = new
+ V16InputDeviceListener(listener);
+ mInputManager.registerInputDeviceListener(v16Listener, handler);
+ mListeners.put(listener, v16Listener);
+ }
+
+ // Do the same for unregistering an input device listener
+ ...
+
+ @Override
+ public void onGenericMotionEvent(MotionEvent event) {
+ // unused in V16
+ }
+
+ @Override
+ public void onPause() {
+ // unused in V16
+ }
+
+ @Override
+ public void onResume() {
+ // unused in V16
+ }
+
+}
+</pre>
+
+<h2 id="older">Implementing the Interface on Android 2.3 up to Android 4.0</h2>
+
+<p>The {@code InputManagerV9} implementation uses APIs introduced no later
+than Android 2.3. To create an implementation of {@code
+InputManagerCompat} that supports Android 2.3 up to Android 4.0, you can use
+the following objects:
+<ul>
+<li>A {@link android.util.SparseArray} of device IDs to track the
+game controllers that are connected to the device.</li>
+<li>A {@link android.os.Handler} to process device events. When an app is started
+or resumed, the {@link android.os.Handler} receives a message to start polling
+for game controller disconnection. The {@link android.os.Handler} will start a
+loop to check each known connected game controller and see if a device ID is
+returned. A {@code null} return value indicates that the game controller is
+disconnected. The {@link android.os.Handler} stops polling when the app is
+paused.</li>
+<li>A {@link java.util.Map} of {@code InputManagerCompat.InputDeviceListener}
+objects. You will use the listeners to update the connection status of tracked
+game controllers.</li>
+</ul>
+
+<pre>
+// The InputManagerCompatV9 class is a reference implementation.
+// The full code is provided in the ControllerSample.zip sample.
+public class InputManagerV9 implements InputManagerCompat {
+ private final SparseArray<long[]> mDevices;
+ private final Map<InputDeviceListener, Handler> mListeners;
+ private final Handler mDefaultHandler;
+ …
+
+ public InputManagerV9() {
+ mDevices = new SparseArray<long[]>();
+ mListeners = new HashMap<InputDeviceListener, Handler>();
+ mDefaultHandler = new PollingMessageHandler(this);
+ }
+}
+</pre>
+
+<p>Implement a {@code PollingMessageHandler} object that extends
+{@link android.os.Handler}, and override the
+{@link android.os.Handler#handleMessage(android.os.Message) handleMessage()}
+method. This method checks if an attached game controller has been
+disconnected and notifies registered listeners.</p>
+
+<pre>
+private static class PollingMessageHandler extends Handler {
+ private final WeakReference<InputManagerV9> mInputManager;
+
+ PollingMessageHandler(InputManagerV9 im) {
+ mInputManager = new WeakReference<InputManagerV9>(im);
+ }
+
+ @Override
+ public void handleMessage(Message msg) {
+ super.handleMessage(msg);
+ switch (msg.what) {
+ case MESSAGE_TEST_FOR_DISCONNECT:
+ InputManagerV9 imv = mInputManager.get();
+ if (null != imv) {
+ long time = SystemClock.elapsedRealtime();
+ int size = imv.mDevices.size();
+ for (int i = 0; i < size; i++) {
+ long[] lastContact = imv.mDevices.valueAt(i);
+ if (null != lastContact) {
+ if (time - lastContact[0] > CHECK_ELAPSED_TIME) {
+ // check to see if the device has been
+ // disconnected
+ int id = imv.mDevices.keyAt(i);
+ if (null == InputDevice.getDevice(id)) {
+ // Notify the registered listeners
+ // that the game controller is disconnected
+ ...
+ imv.mDevices.remove(id);
+ } else {
+ lastContact[0] = time;
+ }
+ }
+ }
+ }
+ sendEmptyMessageDelayed(MESSAGE_TEST_FOR_DISCONNECT,
+ CHECK_ELAPSED_TIME);
+ }
+ break;
+ }
+ }
+}
+</pre>
+
+<p>To start and stop polling for game controller disconnection, override
+these methods:</p>
+<pre>
+private static final int MESSAGE_TEST_FOR_DISCONNECT = 101;
+private static final long CHECK_ELAPSED_TIME = 3000L;
+
+@Override
+public void onPause() {
+ mDefaultHandler.removeMessages(MESSAGE_TEST_FOR_DISCONNECT);
+}
+
+@Override
+public void onResume() {
+ mDefaultHandler.sendEmptyMessageDelayed(MESSAGE_TEST_FOR_DISCONNECT,
+ CHECK_ELAPSED_TIME);
+}
+</pre>
+
+<p>To detect that an input device has been added, override the
+{@code onGenericMotionEvent()} method. When the system reports a motion event,
+check if this event came from a device ID that is already tracked, or from a
+new device ID. If the device ID is new, notify registered listeners.</p>
+
+<pre>
+@Override
+public void onGenericMotionEvent(MotionEvent event) {
+ // detect new devices
+ int id = event.getDeviceId();
+ long[] timeArray = mDevices.get(id);
+ if (null == timeArray) {
+ // Notify the registered listeners that a game controller is added
+ ...
+ timeArray = new long[1];
+ mDevices.put(id, timeArray);
+ }
+ long time = SystemClock.elapsedRealtime();
+ timeArray[0] = time;
+}
+</pre>
+
+<p>Notification of listeners is implemented by using the
+{@link android.os.Handler} object to send a {@code DeviceEvent}
+{@link java.lang.Runnable} object to the message queue. The {@code DeviceEvent}
+contains a reference to an {@code InputManagerCompat.InputDeviceListener}. When
+the {@code DeviceEvent} runs, the appropriate callback method of the listener
+is called to signal if the game controller was added, changed, or removed.
+</p>
+
+<pre>
+@Override
+public void registerInputDeviceListener(InputDeviceListener listener,
+ Handler handler) {
+ mListeners.remove(listener);
+ if (handler == null) {
+ handler = mDefaultHandler;
+ }
+ mListeners.put(listener, handler);
+}
+
+@Override
+public void unregisterInputDeviceListener(InputDeviceListener listener) {
+ mListeners.remove(listener);
+}
+
+private void notifyListeners(int why, int deviceId) {
+ // the state of some device has changed
+ if (!mListeners.isEmpty()) {
+ for (InputDeviceListener listener : mListeners.keySet()) {
+ Handler handler = mListeners.get(listener);
+ DeviceEvent odc = DeviceEvent.getDeviceEvent(why, deviceId,
+ listener);
+ handler.post(odc);
+ }
+ }
+}
+
+private static class DeviceEvent implements Runnable {
+ private int mMessageType;
+ private int mId;
+ private InputDeviceListener mListener;
+ private static Queue<DeviceEvent> sObjectQueue =
+ new ArrayDeque<DeviceEvent>();
+ ...
+
+ static DeviceEvent getDeviceEvent(int messageType, int id,
+ InputDeviceListener listener) {
+ DeviceEvent curChanged = sObjectQueue.poll();
+ if (null == curChanged) {
+ curChanged = new DeviceEvent();
+ }
+ curChanged.mMessageType = messageType;
+ curChanged.mId = id;
+ curChanged.mListener = listener;
+ return curChanged;
+ }
+
+ @Override
+ public void run() {
+ switch (mMessageType) {
+ case ON_DEVICE_ADDED:
+ mListener.onInputDeviceAdded(mId);
+ break;
+ case ON_DEVICE_CHANGED:
+ mListener.onInputDeviceChanged(mId);
+ break;
+ case ON_DEVICE_REMOVED:
+ mListener.onInputDeviceRemoved(mId);
+ break;
+ default:
+ // Handle unknown message type
+ ...
+ break;
+ }
+ // Put this runnable back in the queue
+ sObjectQueue.offer(this);
+ }
+}
+</pre>
+
+<p>You now have two implementations of {@code InputManagerCompat}: one that
+works on devices running Android 4.1 and higher, and another
+that works on devices running Android 2.3 up to Android 4.0.</p>
+
+<h2 id="using">Use the Version-Specific Implementation</h2>
+<p>The version-specific switching logic is implemented in a class that acts as
+a <a href="http://en.wikipedia.org/wiki/Factory_(software_concept)"
+class="external-link" target="_blank">factory</a>.</p>
+<pre>
+public static class Factory {
+ public static InputManagerCompat getInputManager(Context context) {
+ if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
+ return new InputManagerV16(context);
+ } else {
+ return new InputManagerV9();
+ }
+ }
+}
+</pre>
+<p>Now you can simply instantiate an {@code InputManagerCompat} object and
+register an {@code InputManagerCompat.InputDeviceListener} in your main
+{@link android.view.View}. Because of the version-switching logic you set
+up, your game automatically uses the implementation that's appropriate for the
+version of Android the device is running.</p>
+<pre>
+public class GameView extends View implements InputDeviceListener {
+ private InputManagerCompat mInputManager;
+ ...
+
+ public GameView(Context context, AttributeSet attrs) {
+ mInputManager =
+ InputManagerCompat.Factory.getInputManager(this.getContext());
+ mInputManager.registerInputDeviceListener(this, null);
+ ...
+ }
+}
+</pre>
+<p>Next, override the
+{@link android.view.View#onGenericMotionEvent(android.view.MotionEvent)
+onGenericMotionEvent()} method in your main view, as described in
+<a href="controller-input.html#analog">Handle a MotionEvent from a Game
+Controller</a>. Your game should now be able to process game controller events
+consistently on devices running Android 2.3 (API level 9) and higher.
+<p>
+<pre>
+@Override
+public boolean onGenericMotionEvent(MotionEvent event) {
+ mInputManager.onGenericMotionEvent(event);
+
+ // Handle analog input from the controller as normal
+ ...
+ return super.onGenericMotionEvent(event);
+}
+</pre>
+<p>You can find a complete implementation of this compatibility code in the
+{@code GameView} class provided in the sample {@code ControllerSample.zip}
+available for download above.</p>
\ No newline at end of file
diff --git a/docs/html/training/game-controllers/controller-input.jd b/docs/html/training/game-controllers/controller-input.jd
new file mode 100644
index 0000000..2c50ae1
--- /dev/null
+++ b/docs/html/training/game-controllers/controller-input.jd
@@ -0,0 +1,656 @@
+page.title=Handling Controller Actions
+trainingnavtop=true
+
+@jd:body
+
+<!-- This is the training bar -->
+<div id="tb-wrapper">
+<div id="tb">
+
+<h2>This lesson teaches you to</h2>
+<ol>
+ <li><a href="#input">Verify a Game Controller is Connected</a></li>
+ <li><a href="#button">Process Gamepad Button Presses</a>
+ </li>
+ <li><a href="#dpad">Process Directional Pad Input</a>
+ </li>
+ <li><a href="#joystick">Process Joystick Movements</a>
+ </li>
+</ol>
+
+<h2>Try it out</h2>
+<div class="download-box">
+ <a href="http://developer.android.com/shareables/training/ControllerSample.zip"
+class="button">Download the sample</a>
+ <p class="filename">ControllerSample.zip</p>
+</div>
+
+</div>
+</div>
+
+<p>At the system level, Android reports input event codes from game controllers
+as Android key codes and axis values. In your game, you can receive these codes
+and values and convert them to specific in-game actions.</p>
+
+<p>When players physically connect or wirelessly pair a game controller to
+their Android-powered devices, the system auto-detects the controller
+as an input device and starts reporting its input events. Your game can receive
+these input events by implementing the following callback methods in your active
+{@link android.app.Activity} or focused {@link android.view.View} (you should
+implement the callbacks for either the {@link android.app.Activity} or
+{@link android.view.View}, but not both): </p>
+
+<ul>
+<li>From {@link android.app.Activity}:
+ <ul>
+ <li>{@link android.app.Activity#dispatchGenericMotionEvent(android.view.MotionEvent) dispatchGenericMotionEvent(android.view.MotionEvent)}
+ <p>Called to process generic motion events such as joystick movements.</p>
+ </li>
+ <li>{@link android.app.Activity#dispatchKeyEvent(android.view.KeyEvent) dispatchKeyEvent(android.view.KeyEvent)}
+ <p>Called to process key events such as a press or release of a
+ gamepad or D-pad button.</p>
+ </li>
+ </ul>
+</li>
+<li>From {@link android.view.View}:
+ <ul>
+ <li>{@link android.view.View#onGenericMotionEvent(android.view.MotionEvent)
+onGenericMotionEvent(android.view.MotionEvent)}
+ <p>Called to process generic motion events such as joystick movements.</p>
+ </li>
+ <li>{@link android.view.View#onKeyDown(int, android.view.KeyEvent) onKeyDown(int, android.view.KeyEvent)}
+ <p>Called to process a press of a physical key such as a gamepad or
+ D-pad button.</p>
+ </li>
+ <li>{@link android.view.View#onKeyUp(int, android.view.KeyEvent) onKeyUp(int, android.view.KeyEvent)}
+ <p>Called to process a release of a physical key such as a gamepad or
+ D-pad button.</p>
+ </li>
+ </ul>
+</li>
+</ul>
+
+<p>The recommended approach is to capture the events from the
+ specific {@link android.view.View} object that the user interacts with.
+ Inspect the following objects provided by the callbacks to get information
+ about the type of input event received:</p>
+
+<dl>
+<dt>{@link android.view.KeyEvent}</dt>
+ <dd>An object that describes directional
+pad</a> (D-pad) and gamepad button events. Key events are accompanied by a
+<em>key code</em> that indicates the specific button triggered, such as
+{@link android.view.KeyEvent#KEYCODE_DPAD_DOWN DPAD_DOWN}
+or {@link android.view.KeyEvent#KEYCODE_BUTTON_A BUTTON_A}. You can obtain the
+key code by calling {@link android.view.KeyEvent#getKeyCode()} or from key
+event callbacks such as
+{@link android.view.View#onKeyDown(int, android.view.KeyEvent) onKeyDown()}.
+<dd>
+<dt>{@link android.view.MotionEvent}</dt>
+ <dd>An object that describes input from joystick and shoulder trigger
+ movements. Motion events are accompanied by an action code and a set of
+<em>axis values</em>. The action code specifies the state change that occurred
+such as a joystick being moved. The axis values describe the position and other
+movement properties for a specific physical control, such as
+{@link android.view.MotionEvent#AXIS_X} or
+{@link android.view.MotionEvent#AXIS_RTRIGGER}. You can obtain the action code
+by calling {@link android.view.MotionEvent#getAction()} and the axis value by
+calling {@link android.view.MotionEvent#getAxisValue(int) getAxisValue()}.
+<dd>
+</dl>
+<p>This lesson focuses on how you can handle input from the most common types of
+physical controls (gamepad buttons, directional pads, and
+joysticks) in a game screen by implementing the above-mentioned
+{@link android.view.View} callback methods and processing
+{@link android.view.KeyEvent} and {@link android.view.MotionEvent} objects.</p>
+
+<h2 id="input">Verify a Game Controller is Connected</h2>
+<p>When reporting input events, Android does not distinguish
+between events that came from a non-game controller device and events that came
+from a game controller. For example, a touch screen action generates an
+{@link android.view.MotionEvent#AXIS_X} event that represents the X
+coordinate of the touch surface, but a joystick generates an {@link android.view.MotionEvent#AXIS_X} event that represents the X position of the joystick. If
+your game cares about handling game-controller input, you should first check
+that the input event comes from a relevant source type.</p>
+<p>To verify that a connected input device is a game controller, call
+{@link android.view.InputDevice#getSources()} to obtain a combined bit field of
+input source types supported on that device. You can then test to see if
+the following fields are set:</p>
+<ul>
+<li>A source type of {@link android.view.InputDevice#SOURCE_GAMEPAD} indicates
+that the input device has gamepad buttons (for example,
+{@link android.view.KeyEvent#KEYCODE_BUTTON_A BUTTON_A}). Note that this source
+type does not strictly indicate if the game controller has D-pad buttons,
+although most gamepads typically have directional controls.</li>
+<li>A source type of {@link android.view.InputDevice#SOURCE_DPAD} indicates that
+the input device has D-pad buttons (for example,
+{@link android.view.KeyEvent#KEYCODE_DPAD_UP DPAD_UP}).</li>
+<li>A source type of {@link android.view.InputDevice#SOURCE_JOYSTICK}
+indicates that the input device has analog control sticks (for example, a
+joystick that records movements along {@link android.view.MotionEvent#AXIS_X}
+and {@link android.view.MotionEvent#AXIS_Y}).</li>
+</ul>
+<p>The following code snippet shows a helper method that lets you check whether
+ the connected input devices are game controllers. If so, the method retrieves
+ the device IDs for the game controllers. You can then associate each device
+ ID with a player in your game, and process game actions for each connected
+ player separately. To learn more about supporting multiple game controllers
+ that are simultaneously connected on the same Android device, see
+ <a href="multiple-controllers.html">Supporting Multiple Game Controllers</a>.</p>
+<pre>
+public ArrayList<Integer> getGameControllerIds() {
+ ArrayList<Integer> gameControllerDeviceIds = new ArrayList<Integer>();
+ int[] deviceIds = InputDevice.getDeviceIds();
+ for (int deviceId : deviceIds) {
+ InputDevice dev = InputDevice.getDevice(deviceId);
+ int sources = dev.getSources();
+
+ // Verify that the device has gamepad buttons, control sticks, or both.
+ if (((sources & InputDevice.SOURCE_GAMEPAD) == InputDevice.SOURCE_GAMEPAD)
+ || ((sources & InputDevice.SOURCE_JOYSTICK)
+ == InputDevice.SOURCE_JOYSTICK)) {
+ // This device is a game controller. Store its device ID.
+ if (!gameControllerDeviceIds.contains(deviceId)) {
+ gameControllerDeviceIds.add(deviceId);
+ }
+ }
+ }
+ return gameControllerDeviceIds;
+}
+</pre>
+<p>Additionally, you might want to check for individual input capabilities
+supported by a connected game controller. This might be useful, for example, if
+you want your game to use only input from the set of physical controls it
+understands.</p>
+<p>To detect if a specific key code or axis code is supported by a connected
+game controller, use these techniques:</p>
+<ul>
+<li>In Android 4.4 (API level 19) or higher, you can determine if a key code is
+supported on a connected game controller by calling
+{@link android.view.InputDevice#hasKeys(int...)}.</li>
+<li>In Android 3.1 (API level 12) or higher, you can find all available axes
+supported on a connected game controller by first calling
+{@link android.view.InputDevice#getMotionRanges()}. Then, on each
+{@link android.view.InputDevice.MotionRange} object returned, call
+{@link android.view.InputDevice.MotionRange#getAxis()} to get its axis ID.</li>
+</ul>
+
+<h2 id="button">Process Gamepad Button Presses</h2>
+<p>Figure 1 shows how Android maps key codes and axis values to the physical
+controls on most game controllers.</p>
+<img src="{@docRoot}images/training/game-controller-profiles.png" alt=""
+id="figure1" />
+<p class="img-caption">
+ <strong>Figure 1.</strong> Profile for a generic game controller.
+</p>
+<p>The callouts in the figure refer to the following:</p>
+<div style="-moz-column-count:2;-webkit-column-count:2;column-count:2;">
+<ol style="margin-left:30px;list-style:decimal;">
+<li>{@link android.view.MotionEvent#AXIS_HAT_X},
+{@link android.view.MotionEvent#AXIS_HAT_Y},
+{@link android.view.KeyEvent#KEYCODE_DPAD_UP DPAD_UP},
+{@link android.view.KeyEvent#KEYCODE_DPAD_DOWN DPAD_DOWN},
+{@link android.view.KeyEvent#KEYCODE_DPAD_LEFT DPAD_LEFT},
+{@link android.view.KeyEvent#KEYCODE_DPAD_RIGHT DPAD_RIGHT}
+</li>
+<li>{@link android.view.MotionEvent#AXIS_X},
+{@link android.view.MotionEvent#AXIS_Y},
+{@link android.view.KeyEvent#KEYCODE_BUTTON_THUMBL BUTTON_THUMBL}</li>
+<li>{@link android.view.MotionEvent#AXIS_Z},
+{@link android.view.MotionEvent#AXIS_RZ},
+{@link android.view.KeyEvent#KEYCODE_BUTTON_THUMBR BUTTON_THUMBR}</li>
+<li>{@link android.view.KeyEvent#KEYCODE_BUTTON_X BUTTON_X}</li>
+<li>{@link android.view.KeyEvent#KEYCODE_BUTTON_A BUTTON_A}</li>
+<li>{@link android.view.KeyEvent#KEYCODE_BUTTON_Y BUTTON_Y}</li>
+<li>{@link android.view.KeyEvent#KEYCODE_BUTTON_B BUTTON_B}</li>
+<li>{@link android.view.KeyEvent#KEYCODE_BUTTON_R1 BUTTON_R1}</li>
+<li>{@link android.view.MotionEvent#AXIS_RTRIGGER},
+{@link android.view.MotionEvent#AXIS_THROTTLE}</li>
+<li>{@link android.view.MotionEvent#AXIS_LTRIGGER},
+{@link android.view.MotionEvent#AXIS_BRAKE}</li>
+<li>{@link android.view.KeyEvent#KEYCODE_BUTTON_L1 BUTTON_L1}</li>
+</ol>
+</div>
+<p>Common key codes generated by gamepad button presses include
+ {@link android.view.KeyEvent#KEYCODE_BUTTON_A BUTTON_A},
+{@link android.view.KeyEvent#KEYCODE_BUTTON_B BUTTON_B},
+{@link android.view.KeyEvent#KEYCODE_BUTTON_SELECT BUTTON_SELECT},
+and {@link android.view.KeyEvent#KEYCODE_BUTTON_START BUTTON_START}. Some game
+controllers also trigger the {@link android.view.KeyEvent#KEYCODE_DPAD_CENTER
+DPAD_CENTER} key code when the center of the D-pad crossbar is pressed. Your
+game can inspect the key code by calling {@link android.view.KeyEvent#getKeyCode()}
+or from key event callbacks such as
+{@link android.view.View#onKeyDown(int, android.view.KeyEvent) onKeyDown()},
+and if it represents an event that is relevant to your game, process it as a
+game action. Table 1 lists the recommended game actions for the most common
+gamepad buttons.
+</p>
+
+<p class="table-caption" id="table1">
+ <strong>Table 1.</strong> Recommended game actions for gamepad
+buttons.</p>
+<table>
+ <tr>
+ <th scope="col">Game Action</th>
+ <th scope="col">Button Key Code</th>
+ </tr>
+ <tr>
+ <td>Start game in main menu, or pause/unpause during game</td>
+ <td>{@link android.view.KeyEvent#KEYCODE_BUTTON_START BUTTON_START}</td>
+ </tr>
+ <tr>
+ <td>Display menu</td>
+ <td>{@link android.view.KeyEvent#KEYCODE_BUTTON_SELECT BUTTON_SELECT} and
+{@link android.view.KeyEvent#KEYCODE_MENU}</td>
+ </tr>
+ <tr>
+ <td>Same as Android <em>Back</em></td>
+ <td>{@link android.view.KeyEvent#KEYCODE_BUTTON_B BUTTON_B}<sup>*</sup> and
+{@link android.view.KeyEvent#KEYCODE_BACK KEYCODE_BACK}</td>
+ </tr>
+ <tr>
+ <td>Confirm selection, or perform primary game action</td>
+ <td>{@link android.view.KeyEvent#KEYCODE_BUTTON_A BUTTON_A}<sup>*</sup> and
+{@link android.view.KeyEvent#KEYCODE_DPAD_CENTER DPAD_CENTER}</td>
+ </tr>
+</table>
+<p>
+<em>* This could be the opposite button (A/B), depending on the locale that
+you are supporting.</em>
+</p>
+
+<p class="note"><strong>Tip: </strong>Consider providing a configuration screen
+in your game to allow users to personalize their own game controller mappings for
+game actions.</p>
+
+<p>The following snippet shows how you might override
+{@link android.view.View#onKeyDown(int, android.view.KeyEvent) onKeyDown()} to
+associate the {@link android.view.KeyEvent#KEYCODE_BUTTON_A BUTTON_A} and
+{@link android.view.KeyEvent#KEYCODE_DPAD_CENTER DPAD_CENTER} button presses
+with a game action.
+</p>
+<pre>
+public class GameView extends View {
+ ...
+
+ @Override
+ public boolean onKeyDown(int keyCode, KeyEvent event) {
+ boolean handled = false;
+ if ((event.getSource() & InputDevice.SOURCE_GAMEPAD)
+ == InputDevice.SOURCE_GAMEPAD) {
+ if (event.getRepeatCount() == 0) {
+ switch (keyCode) {
+ // Handle gamepad and D-pad button presses to
+ // navigate the ship
+ ...
+
+ default:
+ if (isFireKey(keyCode)) {
+ // Update the ship object to fire lasers
+ ...
+ handled = true;
+ }
+ break;
+ }
+ }
+ if (handled) {
+ return true;
+ }
+ }
+ return super.onKeyDown(keyCode, event);
+ }
+
+ private static boolean isFireKey(int keyCode) {
+ // Here we treat Button_A and DPAD_CENTER as the primary action
+ // keys for the game. You may need to switch this to Button_B and
+ // DPAD_CENTER depending on the user expectations for the locale
+ // in which your game runs.
+ return keyCode == KeyEvent.KEYCODE_DPAD_CENTER
+ || keyCode == KeyEvent.KEYCODE_BUTTON_A;
+ }
+}
+</pre>
+
+<p>Follow these best practices when handling button presses:</p>
+<ul>
+<li><strong>Provide localized button mappings.</strong> Generally, if your game
+has a primary gameplay action (for example, it fires lasers, lets your avatar
+do a high jump, or confirms an item selection), you should map
+both {@link android.view.KeyEvent#KEYCODE_DPAD_CENTER DPAD_CENTER} and
+{@link android.view.KeyEvent#KEYCODE_BUTTON_A BUTTON_A} to this action. However,
+in some locales, users may expect
+{@link android.view.KeyEvent#KEYCODE_BUTTON_B BUTTON_B} to be the confirm
+button and {@link android.view.KeyEvent#KEYCODE_BUTTON_A BUTTON_A} to be the
+back button instead. If you are supporting these locales, make sure to treat
+the A and B buttons accordingly in your game. To determine the user's locale,
+call the {@link java.util.Locale#getDefault()} method.
+<li><strong>Map {@link android.view.KeyEvent#KEYCODE_BUTTON_A BUTTON_A}
+consistently across different Android versions.</strong> On Android 4.2 (API
+level 17) and lower, the system treats
+{@link android.view.KeyEvent#KEYCODE_BUTTON_A BUTTON_A} as the Android
+<em>Back</em> key by default. If your app supports these Android
+versions, make sure to treat
+{@link android.view.KeyEvent#KEYCODE_BUTTON_A BUTTON_A} as the primary game
+action (except in the localization case mentioned
+above). To determine the current Android SDK
+version on the device, refer to the
+{@link android.os.Build.VERSION#SDK_INT Build.VERSION.SDK_INT} value.
+</li>
+</ul>
+
+<h2 id="dpad">Process Directional Pad Input</h2>
+<p>The 4-way directional pad (D-pad) is a common physical control in many game
+controllers. Android reports D-pad UP and DOWN presses as
+{@link android.view.MotionEvent#AXIS_HAT_Y} events with a range
+from -1.0 (up) to 1.0 (down), and D-pad LEFT or RIGHT presses as
+{@link android.view.MotionEvent#AXIS_HAT_X} events with a range from -1.0
+(left) to 1.0 (right).</p>
+<p>Some controllers instead report D-pad presses with a key code. If your game
+cares about D-pad presses, you should treat the hat axis events and the D-pad
+key codes as the same input events, as recommended in table 2.</p>
+<p class="table-caption" id="table2">
+ <strong>Table 2.</strong> Recommended default game actions for D-pad key
+ codes and hat axis values.</p>
+<table>
+ <tr>
+ <th scope="col">Game Action</th>
+ <th scope="col">D-pad Key Code</th>
+ <th scope="col">Hat Axis Code</th>
+ </tr>
+ <tr>
+ <td>Move Up</td>
+ <td>{@link android.view.KeyEvent#KEYCODE_DPAD_UP}</td>
+ <td>{@link android.view.MotionEvent#AXIS_HAT_Y} (for values 0 to -1.0)</td>
+ </tr>
+ <tr>
+ <td>Move Down</td>
+ <td>{@link android.view.KeyEvent#KEYCODE_DPAD_DOWN}</td>
+ <td>{@link android.view.MotionEvent#AXIS_HAT_Y} (for values 0 to 1.0)</td>
+ </tr>
+ <tr>
+ <td>Move Left</td>
+ <td>{@link android.view.KeyEvent#KEYCODE_DPAD_LEFT}</td>
+ <td>{@link android.view.MotionEvent#AXIS_HAT_X} (for values 0 to -1.0)</td>
+ </tr>
+ <tr>
+ <td>Move Right</td>
+ <td>{@link android.view.KeyEvent#KEYCODE_DPAD_RIGHT}</td>
+ <td>{@link android.view.MotionEvent#AXIS_HAT_X} (for values 0 to 1.0)</td>
+ </tr>
+</table>
+
+
+<p>The following code snippet shows a helper class that lets you check the hat
+axis and key code values from an input event to determine the D-pad direction.
+</p>
+<pre>
+public class Dpad {
+ final static int UP = 0;
+ final static int LEFT = 1;
+ final static int RIGHT = 2;
+ final static int DOWN = 3;
+ final static int CENTER = 4;
+
+ int directionPressed = -1; // initialized to -1
+
+ public int getDirectionPressed(InputEvent event) {
+ if (!isDpadDevice(event)) {
+ return -1;
+ }
+
+ // If the input event is a MotionEvent, check its hat axis values.
+ if (event instanceof MotionEvent) {
+
+ // Use the hat axis value to find the D-pad direction
+ MotionEvent motionEvent = (MotionEvent) event;
+ float xaxis = motionEvent.getAxisValue(MotionEvent.AXIS_HAT_X);
+ float yaxis = motionEvent.getAxisValue(MotionEvent.AXIS_HAT_Y);
+
+ // Check if the AXIS_HAT_X value is -1 or 1, and set the D-pad
+ // LEFT and RIGHT direction accordingly.
+ if (Float.compare(xaxis, -1.0f) == 0) {
+ directionPressed = Dpad.LEFT;
+ } else if (Float.compare(xaxis, 1.0f) == 0) {
+ directionPressed = Dpad.RIGHT;
+ }
+ // Check if the AXIS_HAT_Y value is -1 or 1, and set the D-pad
+ // UP and DOWN direction accordingly.
+ else if (Float.compare(yaxis, -1.0f) == 0) {
+ directionPressed = Dpad.UP;
+ } else if (Float.compare(yaxis, -1.0f) == 0) {
+ directionPressed = Dpad.DOWN;
+ }
+ }
+
+ // If the input event is a KeyEvent, check its key code.
+ else if (event instanceof KeyEvent) {
+
+ // Use the key code to find the D-pad direction.
+ KeyEvent keyEvent = (KeyEvent) event;
+ if (keyEvent.getKeyCode() == KeyEvent.KEYCODE_DPAD_LEFT) {
+ directionPressed = Dpad.LEFT;
+ } else if (keyEvent.getKeyCode() == KeyEvent.KEYCODE_DPAD_RIGHT) {
+ directionPressed = Dpad.RIGHT;
+ } else if (keyEvent.getKeyCode() == KeyEvent.KEYCODE_DPAD_UP) {
+ directionPressed = Dpad.UP;
+ } else if (keyEvent.getKeyCode() == KeyEvent.KEYCODE_DPAD_DOWN) {
+ directionPressed = Dpad.DOWN;
+ } else if (keyEvent.getKeyCode() == KeyEvent.KEYCODE_DPAD_CENTER) {
+ directionPressed = Dpad.CENTER;
+ }
+ }
+ return directionPressed;
+ }
+
+ public static boolean isDpadDevice(InputEvent event) {
+ // Check that input comes from a device with directional pads.
+ if ((event.getSource() & InputDevice.SOURCE_DPAD)
+ != InputDevice.SOURCE_DPAD) {
+ return true;
+ } else {
+ return false;
+ }
+ }
+}
+</pre>
+
+<p>You can use this helper class in your game wherever you want to process
+ D-pad input (for example, in the
+{@link android.view.View#onGenericMotionEvent(android.view.MotionEvent)
+onGenericMotionEvent()} or
+{@link android.view.View#onKeyDown(int, android.view.KeyEvent) onKeyDown()}
+callbacks).</p>
+<p>For example:</p>
+<pre>
+Dpad mDpad = new Dpad();
+...
+@Override
+public boolean onGenericMotionEvent(MotionEvent event) {
+
+ // Check if this event if from a D-pad and process accordingly.
+ if (Dpad.isDpadDevice(event)) {
+
+ int press = mDpad.getDirectionPressed(event);
+ switch (press) {
+ case LEFT:
+ // Do something for LEFT direction press
+ ...
+ return true;
+ case RIGHT:
+ // Do something for RIGHT direction press
+ ...
+ return true;
+ case UP:
+ // Do something for UP direction press
+ ...
+ return true;
+ ...
+ }
+ }
+
+ // Check if this event is from a joystick movement and process accordingly.
+ ...
+}
+</pre>
+
+<h2 id="joystick">Process Joystick Movements</h2>
+<p>When players move a joystick on their game controllers, Android reports a
+{@link android.view.MotionEvent} that contains the
+{@link android.view.MotionEvent#ACTION_MOVE} action code and the updated
+positions of the joystick's axes. Your game can use the data provided by
+the {@link android.view.MotionEvent} to determine if a joystick movement it
+cares about happened.
+</p>
+<p>Note that joystick motion events may batch multiple movement samples together
+within a single object. The {@link android.view.MotionEvent} object contains
+the current position for each joystick axis as well as multiple historical
+positions for each axis. When reporting motion events with action code {@link android.view.MotionEvent#ACTION_MOVE} (such as joystick movements), Android batches up the
+axis values for efficiency. The historical values for an axis consists of the
+set of distinct values older than the current axis value, and more recent than
+values reported in any previous motion events. See the
+{@link android.view.MotionEvent} reference for details.</p>
+<p>You can use the historical information to more accurately render a game
+object's movement based on the joystick input. To
+retrieve the current and historical values, call
+{@link android.view.MotionEvent#getAxisValue(int)
+getAxisValue()} or {@link android.view.MotionEvent#getHistoricalAxisValue(int,
+int) getHistoricalAxisValue()}. You can also find the number of historical
+points in the joystick event by calling
+{@link android.view.MotionEvent#getHistorySize()}.</p>
+<p>The following snippet shows how you might override the
+{@link android.view.View#onGenericMotionEvent(android.view.MotionEvent)
+onGenericMotionEvent()} callback to process joystick input. You should first
+process the historical values for an axis, then process its current position.
+</p>
+<pre>
+public class GameView extends View {
+
+ @Override
+ public boolean onGenericMotionEvent(MotionEvent event) {
+
+ // Check that the event came from a game controller
+ if ((event.getSource() & InputDevice.SOURCE_JOYSTICK) ==
+ InputDevice.SOURCE_JOYSTICK &&
+ event.getAction() == MotionEvent.ACTION_MOVE)
+
+ // Process all historical movement samples in the batch
+ final int historySize = event.getHistorySize();
+
+ // Process the movements starting from the
+ // earliest historical position in the batch
+ for (int i = 0; i < historySize; i++) {
+ // Process the event at historical position i
+ processJoystickInput(event, i);
+ }
+
+ // Process the current movement sample in the batch (position -1)
+ processJoystickInput(event, -1);
+ return true;
+ }
+ return super.onGenericMotionEvent(event);
+ }
+}
+</pre>
+<p>Before using joystick input, you need to determine if the joystick is
+centered, then calculate its axis movements accordingly. Joysticks typically
+have a <em>flat</em> area, that is, a range of values near the (0,0) coordinate
+at which the axis is considered to be centered. If the axis value reported by
+Android falls within the flat area, you should treat the controller to be at
+rest (that is, motionless along both axes).</p>
+<p>The snippet below shows a helper method that calculates the movement along
+each axis. You invoke this helper in the {@code processJoystickInput()} method
+described further below.
+</p>
+<pre>
+private static float getCenteredAxis(MotionEvent event,
+ InputDevice device, int axis, int historyPos) {
+ final InputDevice.MotionRange range =
+ device.getMotionRange(axis, event.getSource());
+
+ // A joystick at rest does not always report an absolute position of
+ // (0,0). Use the getFlat() method to determine the range of values
+ // bounding the joystick axis center.
+ if (range != null) {
+ final float flat = range.getFlat();
+ final float value =
+ historyPos < 0 ? event.getAxisValue(axis):
+ event.getHistoricalAxisValue(axis, historyPos);
+
+ // Ignore axis values that are within the 'flat' region of the
+ // joystick axis center.
+ if (Math.abs(value) > flat) {
+ return value;
+ }
+ }
+ return 0;
+}
+</pre>
+<p>Putting it all together, here is how you might process joystick movements in
+your game:</p>
+<pre>
+private void processJoystickInput(MotionEvent event,
+ int historyPos) {
+
+ InputDevice mInputDevice = event.getDevice();
+
+ // Calculate the horizontal distance to move by
+ // using the input value from one of these physical controls:
+ // the left control stick, hat axis, or the right control stick.
+ float x = getCenteredAxis(event, mInputDevice,
+ MotionEvent.AXIS_X, historyPos);
+ if (x == 0) {
+ x = getCenteredAxis(event, mInputDevice,
+ MotionEvent.AXIS_HAT_X, historyPos);
+ }
+ if (x == 0) {
+ x = getCenteredAxis(event, mInputDevice,
+ MotionEvent.AXIS_Z, historyPos);
+ }
+
+ // Calculate the vertical distance to move by
+ // using the input value from one of these physical controls:
+ // the left control stick, hat switch, or the right control stick.
+ float y = getCenteredAxis(event, mInputDevice,
+ MotionEvent.AXIS_Y, historyPos);
+ if (y == 0) {
+ y = getCenteredAxis(event, mInputDevice,
+ MotionEvent.AXIS_HAT_Y, historyPos);
+ }
+ if (y == 0) {
+ y = getCenteredAxis(event, mInputDevice,
+ MotionEvent.AXIS_RZ, historyPos);
+ }
+
+ // Update the ship object based on the new x and y values
+ ...
+
+ return true;
+}
+</pre>
+<p>To support game controllers that have more sophisticated
+features beyond a single joystick, follow these best practices: </p>
+<ul>
+<li><strong>Handle dual controller sticks.</strong> Many game controllers have
+both a left and right joystick. For the left stick, Android
+reports horizontal movements as {@link android.view.MotionEvent#AXIS_X} events
+and vertical movements as {@link android.view.MotionEvent#AXIS_Y} events.
+For the right stick, Android reports horizontal movements as
+{@link android.view.MotionEvent#AXIS_Z} events and vertical movements as
+{@link android.view.MotionEvent#AXIS_RZ} events. Make sure to handle
+both controller sticks in your code.</li>
+<li><strong>Handle shoulder trigger presses (but provide alternative input
+methods).</strong> Some controllers have left and right shoulder
+triggers. If these triggers are present, Android reports a left trigger press
+as an {@link android.view.MotionEvent#AXIS_LTRIGGER} event and a
+right trigger press as an
+{@link android.view.MotionEvent#AXIS_RTRIGGER} event. On Android
+4.3 (API level 18), a controller that produces a
+{@link android.view.MotionEvent#AXIS_LTRIGGER} also reports an
+identical value for the {@link android.view.MotionEvent#AXIS_BRAKE} axis. The
+same is true for {@link android.view.MotionEvent#AXIS_RTRIGGER} and
+{@link android.view.MotionEvent#AXIS_GAS}. Android reports all analog trigger
+presses with a normalized value from 0.0 (released) to 1.0 (fully pressed). Not
+all controllers have triggers, so consider allowing players to perform those
+game actions with other buttons.
+</li>
+</ul>
\ No newline at end of file
diff --git a/docs/html/training/game-controllers/index.jd b/docs/html/training/game-controllers/index.jd
new file mode 100644
index 0000000..2976420
--- /dev/null
+++ b/docs/html/training/game-controllers/index.jd
@@ -0,0 +1,60 @@
+page.title=Supporting Game Controllers
+page.tags="game controller"
+
+trainingnavtop=true
+startpage=true
+
+@jd:body
+
+<div id="tb-wrapper">
+<div id="tb">
+
+<!-- Required platform, tools, add-ons, devices, knowledge, etc. -->
+<h2>Dependencies and prerequisites</h2>
+<ul>
+ <li>Android 2.3 (API level 9) or higher.</li>
+</ul>
+
+<h2>You should also read</h2>
+<ul>
+ <li><a
+href="http://source.android.com/devices/tech/input/key-layout-files.html"
+class="external-link" target="_blank">Key Layout Files</a></li>
+ <li><a href="{@docRoot}guide/topics/ui/ui-events.html">Input Events</a></li>
+</ul>
+
+<h2>Try it out</h2>
+<div class="download-box">
+ <a href="http://developer.android.com/shareables/training/ControllerSample.zip"
+class="button">Download the sample</a>
+ <p class="filename">ControllerSample.zip</p>
+</div>
+
+</div>
+</div>
+
+<p>You can greatly enhance the user experience in your game by letting
+players use their favorite game controllers. The Android framework provides
+ APIs for detecting and processing user input from game controllers.</p>
+
+<p>This class shows how to make your game work consistently with game
+controllers across different Android API levels (API level 9 and up),
+and how to enhance the gaming experience for players by supporting multiple
+controllers simultaneously in your app.</p>
+
+<h2>Lessons</h2>
+
+<dl>
+ <dt><b><a href="controller-input.html">Handling Controller
+Actions</a></b></dt>
+ <dd>Learn how to handle user input from common
+input elements on game controllers, including directional pad (D-pad)
+buttons, gamepad buttons, and joysticks.</dd>
+ <dt><b><a href="compatibility.html">Supporting Controllers Across Android
+Versions</a></b></dt>
+ <dd>Learn how to make game controllers behave the same across
+devices running different versions of Android.</dd>
+ <dt><b><a href="multiple-controllers.html">Supporting Multiple Game
+Controllers</a></b></dt>
+ <dd>Learn how to detect and use multiple game controllers that
+are simultaneously connected.</dd>
diff --git a/docs/html/training/game-controllers/multiple-controllers.jd b/docs/html/training/game-controllers/multiple-controllers.jd
new file mode 100644
index 0000000..6fcad45
--- /dev/null
+++ b/docs/html/training/game-controllers/multiple-controllers.jd
@@ -0,0 +1,130 @@
+page.title=Supporting Multiple Game Controllers
+trainingnavtop=true
+
+@jd:body
+
+<!-- This is the training bar -->
+<div id="tb-wrapper">
+<div id="tb">
+
+<h2>This lesson teaches you to</h2>
+<ol>
+ <li><a href="#map">Map Players to Controller Device IDs</a></li>
+ <li><a href="#detect">Process Multiple Controller Input</a></li>
+</ol>
+
+<h2>Try it out</h2>
+<div class="download-box">
+ <a href="http://developer.android.com/shareables/training/ControllerSample.zip"
+class="button">Download the sample</a>
+ <p class="filename">ControllerSample.zip</p>
+</div>
+
+
+</div>
+</div>
+<p>While most games are designed to support a single user per Android device,
+it's also possible to support multiple users with game controllers that are
+connected simultaneously on the same Android device.</p>
+<p>This lesson covers some basic techniques for handling input in your single
+device multiplayer game from multiple connected controllers. This includes
+maintaining a mapping between player avatars and each controller device and
+processing controller input events appropriately.
+</p>
+
+<h2 id="map">Map Players to Controller Device IDs</h2>
+<p>When a game controller is connected to an Android device, the system
+assigns it an integer device ID. You can obtain the device IDs for connected
+game controllers by calling {@link android.view.InputDevice#getDeviceIds() InputDevice.getDeviceIds()}, as shown in <a href="controller-input.html#input">Verify a Game Controller is Connected</a>. You can then associate each
+device ID with a player in your game, and process game actions for each player separately.
+</p>
+<p class="note"><strong>Note: </strong>On devices running Android 4.1 (API
+level 16) and higher, you can obtain an input device’s descriptor using
+{@link android.view.InputDevice#getDescriptor()}, which returns a unique
+persistent string value for the input device. Unlike a device ID, the descriptor
+value won't change even if the input device is disconnected, reconnected, or
+reconfigured.
+</p>
+<p>The code snippet below shows how to use a {@link android.util.SparseArray}
+to associate a player's avatar with a specific controller. In this example, the
+{@code mShips} variable stores a collection of {@code Ship} objects. A new
+player avatar is created in-game when a new controller is attached by a user,
+and removed when its associated controller is removed.
+</p>
+<p>The {@code onInputDeviceAdded()} and {@code onInputDeviceRemoved()} callback
+methods are part of the abstraction layer introduced in
+<a href="{@docRoot}training/game-controllers/compatibility.html#status_callbacks}">
+Supporting Controllers Across Android Versions</a>. By implementing these
+listener callbacks, your game can identify the game controller's device ID when a
+controller is added or removed. This detection is compatible with Android 2.3
+(API level 9) and higher.
+</p>
+
+<pre>
+private final SparseArray<Ship> mShips = new SparseArray<Ship>();
+
+@Override
+public void onInputDeviceAdded(int deviceId) {
+ getShipForID(deviceId);
+}
+
+@Override
+public void onInputDeviceRemoved(int deviceId) {
+ removeShipForID(deviceId);
+}
+
+private Ship getShipForID(int shipID) {
+ Ship currentShip = mShips.get(shipID);
+ if ( null == currentShip ) {
+ currentShip = new Ship();
+ mShips.append(shipID, currentShip);
+ }
+ return currentShip;
+}
+
+private void removeShipForID(int shipID) {
+ mShips.remove(shipID);
+}
+</pre>
+
+<h2 id="detect">Process Multiple Controller Input</h2>
+<p>Your game should execute the following loop to process
+input from multiple controllers:
+</p>
+<ol>
+<li>Detect whether an input event occurred.</li>
+<li>Identify the input source and its device ID.</li>
+<li>Based on the action indicated by the input event key code or axis value,
+ update the player avatar associated with that device ID.</li>
+<li>Render and update the user interface.</li>
+</ol>
+<p>{@link android.view.KeyEvent} and {@link android.view.MotionEvent} input
+events have device IDs associated with them. Your game can take advantage of
+this to determine which controller the input event came from, and update the
+player avatar associated with that controller.
+</p>
+<p>The following code snippet shows how you might get a player avatar reference
+corresponding to a game controller device ID, and update the game based on the
+user's button press on that controller.
+</p>
+<pre>
+@Override
+public boolean onKeyDown(int keyCode, KeyEvent event) {
+ if ((event.getSource() & InputDevice.SOURCE_GAMEPAD)
+ == InputDevice.SOURCE_GAMEPAD) {
+ int deviceId = event.getDeviceId();
+ if (deviceId != -1) {
+ Ship currentShip = getShipForId(deviceId);
+ // Based on which key was pressed, update the player avatar
+ // (e.g. set the ship headings or fire lasers)
+ ...
+ return true;
+ }
+ }
+ return super.onKeyDown(keyCode, event);
+}
+</pre>
+<p class="note"><strong>Note: </strong>As a best practice, when a user's
+game controller disconnects, you should pause the game and ask if the user
+wants to reconnect.
+</p>
diff --git a/docs/html/training/implementing-navigation/nav-drawer.jd b/docs/html/training/implementing-navigation/nav-drawer.jd
index 9a94810..f7f79166 100644
--- a/docs/html/training/implementing-navigation/nav-drawer.jd
+++ b/docs/html/training/implementing-navigation/nav-drawer.jd
@@ -257,12 +257,14 @@
/** Called when a drawer has settled in a completely closed state. */
public void onDrawerClosed(View view) {
+ super.onDrawerClosed(view);
getActionBar().setTitle(mTitle);
invalidateOptionsMenu(); // creates call to onPrepareOptionsMenu()
}
/** Called when a drawer has settled in a completely open state. */
public void onDrawerOpened(View drawerView) {
+ super.onDrawerOpened(drawerView);
getActionBar().setTitle(mDrawerTitle);
invalidateOptionsMenu(); // creates call to onPrepareOptionsMenu()
}
@@ -335,11 +337,13 @@
/** Called when a drawer has settled in a completely closed state. */
public void onDrawerClosed(View view) {
+ super.onDrawerClosed(view);
getActionBar().setTitle(mTitle);
}
/** Called when a drawer has settled in a completely open state. */
public void onDrawerOpened(View drawerView) {
+ super.onDrawerOpened(drawerView);
getActionBar().setTitle(mDrawerTitle);
}
};
diff --git a/docs/html/training/improving-layouts/index.jd b/docs/html/training/improving-layouts/index.jd
index af29d3f..8cb2258 100644
--- a/docs/html/training/improving-layouts/index.jd
+++ b/docs/html/training/improving-layouts/index.jd
@@ -26,6 +26,13 @@
</div>
</div>
+<a class="notice-developers-video wide" href="http://www.youtube.com/watch?v=-FUw8HMbmBQ">
+<div>
+ <h3>Video</h3>
+ <p>DevBytes: Optimising Layouts with Hierarchy Viewer</p>
+</div>
+</a>
+
<p>Layouts are a key part of Android applications that directly affect the user experience. If
diff --git a/docs/html/training/in-app-billing/preparing-iab-app.jd b/docs/html/training/in-app-billing/preparing-iab-app.jd
index 4698cf7..47fcbbd 100644
--- a/docs/html/training/in-app-billing/preparing-iab-app.jd
+++ b/docs/html/training/in-app-billing/preparing-iab-app.jd
@@ -30,7 +30,7 @@
</div>
</div>
-<p>Before you can start using the In-app Billing service, you'll need to add the library that contains the In-app Billing Version 3 API to your Android project. You also need to setting the permissions for your application to communicate with Google Play. In addition, you'll need to establish a connection between your application and Google Play. You should also verify that the In-app Billing API version that you are using in your application is supported by Google Play.</p>
+<p>Before you can start using the In-app Billing service, you'll need to add the library that contains the In-app Billing Version 3 API to your Android project. You also need to set the permissions for your application to communicate with Google Play. In addition, you'll need to establish a connection between your application and Google Play. You should also verify that the In-app Billing API version that you are using in your application is supported by Google Play.</p>
<h2 id="GetSample">Download the Sample Application</h2>
<p>In this training class, you will use a reference implementation for the In-app Billing Version 3 API called the {@code TrivialDrive} sample application. The sample includes convenience classes to quickly set up the In-app Billing service, marshal and unmarshal data types, and handle In-app Billing requests from the main thread of your application.</p>
diff --git a/docs/html/training/in-app-billing/test-iab-app.jd b/docs/html/training/in-app-billing/test-iab-app.jd
index 376b981..9d47a96 100644
--- a/docs/html/training/in-app-billing/test-iab-app.jd
+++ b/docs/html/training/in-app-billing/test-iab-app.jd
@@ -19,8 +19,7 @@
<h2>You should also read</h2>
<ul>
-<li><a href="{@docRoot}google/play/billing/billing_overview.html">In-app Billing
- Overview</a></li>
+<li><a href="{@docRoot}google/play/billing/billing_testing.html">Testing In-app Billing</a></li>
</ul>
</div>
@@ -50,7 +49,11 @@
<li>Your application is signed with the same certificate that you used for the APK that you uploaded to the Developer Console, before installing it on your device.</li>
</ul>
</li>
-<li>Login to the test device by using a tester account. Test your In-app Billing application by purchasing a few items, and fix any issues that you encounter. Remember to refund the purchases if you don’t want your testers to be actually charged!</li>
+<li>Login to the test device by using a tester account. Test your In-app
+Billing application by purchasing a few items, and fix any issues that you
+encounter. To learn more about how you can perform large-scale testing of your
+In-app Billing app, see <a href="{@docRoot}google/play/billing/billing_testing.html#test-purchases}">Test Purchases (In-app Billing Sandbox)</a>.
+</li>
</ol>
</p>
diff --git a/docs/html/training/managing-audio/audio-focus.jd b/docs/html/training/managing-audio/audio-focus.jd
index 33f04e9..6dcaa7f 100644
--- a/docs/html/training/managing-audio/audio-focus.jd
+++ b/docs/html/training/managing-audio/audio-focus.jd
@@ -68,7 +68,7 @@
AudioManager.AUDIOFOCUS_GAIN);
if (result == AudioManager.AUDIOFOCUS_REQUEST_GRANTED) {
- am.unregisterMediaButtonEventReceiver(RemoteControlReceiver);
+ am.registerMediaButtonEventReceiver(RemoteControlReceiver);
// Start playback.
}
</pre>
@@ -118,7 +118,7 @@
loss.</p>
<p>The {@link android.media.AudioManager.OnAudioFocusChangeListener#onAudioFocusChange
-onAudioFocusChange()} callback method of they audio focus change listener you registered when
+onAudioFocusChange()} callback method of the audio focus change listener you registered when
requesting audio focus receives a parameter that describes the focus change event. Specifically,
the possible focus loss events mirror the focus request types from the previous
section—permanent loss, transient loss, and transient with ducking permitted.</p>
diff --git a/docs/html/training/notepad/index.jd b/docs/html/training/notepad/index.jd
index 64ba144..d1aa221 100644
--- a/docs/html/training/notepad/index.jd
+++ b/docs/html/training/notepad/index.jd
@@ -1,3 +1,4 @@
+excludeFromSuggestions=true
page.title=Notepad Tutorial
parent.title=Tutorials
@jd:body
diff --git a/docs/html/training/notepad/notepad-ex1.jd b/docs/html/training/notepad/notepad-ex1.jd
index 0decbb2..f680f15 100644
--- a/docs/html/training/notepad/notepad-ex1.jd
+++ b/docs/html/training/notepad/notepad-ex1.jd
@@ -1,3 +1,4 @@
+excludeFromSuggestions=true
page.title=Notepad Exercise 1
parent.title=Notepad Tutorial
parent.link=index.html
diff --git a/docs/html/training/notepad/notepad-ex2.jd b/docs/html/training/notepad/notepad-ex2.jd
index 895a071..d15499b3 100644
--- a/docs/html/training/notepad/notepad-ex2.jd
+++ b/docs/html/training/notepad/notepad-ex2.jd
@@ -1,4 +1,5 @@
-Rpage.title=Notepad Exercise 2
+excludeFromSuggestions=true
+page.title=Notepad Exercise 2
parent.title=Notepad Tutorial
parent.link=index.html
@jd:body
diff --git a/docs/html/training/notepad/notepad-ex3.jd b/docs/html/training/notepad/notepad-ex3.jd
index e31ecda..648f9f2 100644
--- a/docs/html/training/notepad/notepad-ex3.jd
+++ b/docs/html/training/notepad/notepad-ex3.jd
@@ -1,3 +1,4 @@
+excludeFromSuggestions=true
page.title=Notepad Exercise 3
parent.title=Notepad Tutorial
parent.link=index.html
diff --git a/docs/html/training/notepad/notepad-extra-credit.jd b/docs/html/training/notepad/notepad-extra-credit.jd
index d5fd771..8ab2021 100644
--- a/docs/html/training/notepad/notepad-extra-credit.jd
+++ b/docs/html/training/notepad/notepad-extra-credit.jd
@@ -1,3 +1,4 @@
+excludeFromSuggestions=true
page.title=Notepad Extra Credit
parent.title=Notepad Tutorial
parent.link=index.html
diff --git a/docs/html/training/notepad/notepad-index.jd b/docs/html/training/notepad/notepad-index.jd
index 151c50d..fde43fa 100644
--- a/docs/html/training/notepad/notepad-index.jd
+++ b/docs/html/training/notepad/notepad-index.jd
@@ -1,3 +1,4 @@
+excludeFromSuggestions=true
page.title=Notepad Tutorial
@jd:body
diff --git a/docs/html/training/printing/index.jd b/docs/html/training/printing/index.jd
index 7b67b74..8161b6b 100644
--- a/docs/html/training/printing/index.jd
+++ b/docs/html/training/printing/index.jd
@@ -17,6 +17,13 @@
</div>
</div>
+<a class="notice-developers-video wide" href="http://www.youtube.com/watch?v=Iub67ic87KI">
+<div>
+ <h3>Video</h3>
+ <p>DevBytes: Android 4.4 Printing API</p>
+</div>
+</a>
+
<p>
Android users frequently view content solely on their devices, but there are times when
showing someone a screen is not an adequate way to share information. Being able to print
diff --git a/docs/html/training/run-background-service/send-request.jd b/docs/html/training/run-background-service/send-request.jd
index 5b1114d..a9884c6 100644
--- a/docs/html/training/run-background-service/send-request.jd
+++ b/docs/html/training/run-background-service/send-request.jd
@@ -28,7 +28,7 @@
The previous lesson showed you how to create an {@link android.app.IntentService} class. This
lesson shows you how to trigger the {@link android.app.IntentService} to run an operation by
sending it an {@link android.content.Intent}. This {@link android.content.Intent} can
- contain optionally contain data for the {@link android.app.IntentService} to process. You can
+ optionally contain data for the {@link android.app.IntentService} to process. You can
send an {@link android.content.Intent} to an {@link android.app.IntentService} from any point
in an {@link android.app.Activity} or {@link android.app.Fragment}
</p>
diff --git a/docs/html/training/sharing/send.jd b/docs/html/training/sharing/send.jd
index f5da68f..e869d5f 100644
--- a/docs/html/training/sharing/send.jd
+++ b/docs/html/training/sharing/send.jd
@@ -75,10 +75,12 @@
<p>If there's an installed application with a filter that matches
{@link android.content.Intent#ACTION_SEND} and MIME type text/plain, the Android system will run
it; if more than one application matches, the system displays a disambiguation dialog (a "chooser")
-that allows the user to choose an app. If you call
+that allows the user to choose an app.</p>
+
+<p>However, if you call
{@link android.content.Intent#createChooser(android.content.Intent, CharSequence)
-Intent.createChooser()}
-for the intent, Android will <strong>always</strong> display the chooser. This has some
+Intent.createChooser()}, passing it your {@link android.content.Intent} object, it returns a version
+of your intent that will <strong>always display the chooser</strong>. This has some
advantages:</p>
<ul>
@@ -102,10 +104,8 @@
<p>Optionally, you can set some standard extras for the intent:
{@link android.content.Intent#EXTRA_EMAIL}, {@link android.content.Intent#EXTRA_CC},
-{@link android.content.Intent#EXTRA_BCC}, {@link android.content.Intent#EXTRA_SUBJECT}. However,
-if the receiving application is not designed to use them, nothing will happen. You can use
-custom extras as well, but there's no effect unless the receiving application understands them.
-Typically, you'd use custom extras defined by the receiving application itself.</p>
+{@link android.content.Intent#EXTRA_BCC}, {@link android.content.Intent#EXTRA_SUBJECT}.
+If the receiving application is not designed to use them, it simply ignores them.</p>
<p class="note"><strong>Note:</strong> Some e-mail applications, such as Gmail, expect a
{@link java.lang.String String[]} for extras like {@link android.content.Intent#EXTRA_EMAIL} and
diff --git a/docs/html/training/system-ui/immersive.jd b/docs/html/training/system-ui/immersive.jd
index 21672c8..0a1516c 100644
--- a/docs/html/training/system-ui/immersive.jd
+++ b/docs/html/training/system-ui/immersive.jd
@@ -11,8 +11,8 @@
<h2>This lesson teaches you to</h2>
<ol>
<li><a href="#compare">Choose an Approach</a></li>
- <li><a href="#nonsticky">Use IMMERSIVE</a></li>
- <li><a href="#sticky">Use IMMERSIVE_STICKY</a></li>
+ <li><a href="#nonsticky">Use Non-Sticky Immersion</a></li>
+ <li><a href="#sticky">Use Sticky Immersion</a></li>
</ol>
@@ -72,14 +72,6 @@
shown in this mode are in a transient state.
</p>
- <p>When you use {@link android.view.View#SYSTEM_UI_FLAG_IMMERSIVE IMMERSIVE} or
- {@link android.view.View#SYSTEM_UI_FLAG_IMMERSIVE_STICKY IMMERSIVE_STICKY},
- the system UI stays hidden, even while users are interacting with your
-app or game. You can capture touch events from anywhere across the screen, even areas that
-would otherwise be occupied by the system bars. This gives you a great way to create a
-larger, richer, more <a href="{@docRoot}design/patterns/fullscreen.html">
-immersive</a> UI in your app or game and reduce visual distraction at the same time.</p>
-
<p>Figure 1 illustrates the different "immersive mode" states:</p>
<img src="{@docRoot}images/training/imm-states.png"
@@ -137,12 +129,8 @@
<p>The flags {@link android.view.View#SYSTEM_UI_FLAG_IMMERSIVE} and
{@link android.view.View#SYSTEM_UI_FLAG_IMMERSIVE_STICKY} both provide an immersive
- experience. But whereas the
- {@link android.view.View#SYSTEM_UI_FLAG_IMMERSIVE_STICKY IMMERSIVE_STICKY}
- flag causes semi-transparent system bars to briefly show and then hide again in response to
- a swipe gesture, the same swipe gesture causes the system bars to reappear and remain
- visible if you instead use the {@link android.view.View#SYSTEM_UI_FLAG_IMMERSIVE IMMERSIVE}
- flag. Here are examples of when you would use one vs. the other:</p>
+ experience, but with the differences in behavior described above. Here are
+ examples of when you would use one flag vs. the other:</p>
<ul>
<li>If you're building a book reader, news reader, or a magazine, use
@@ -171,7 +159,7 @@
sufficient. Don't use the "immersive" flags in this case.</li>
</ul>
-<h2 id="nonsticky">Use IMMERSIVE</h2>
+<h2 id="nonsticky">Use Non-Sticky Immersion</h2>
<p>When you use the {@link android.view.View#SYSTEM_UI_FLAG_IMMERSIVE} flag, it hides
the system bars based on what other UI flags you have set
@@ -242,7 +230,7 @@
<a class ="external-link" href="http://www.youtube.com/embed/cBi8fjv90E4">DevBytes:
Android 4.4 Immersive Mode</a>.</p>
-<h2 id="sticky">Use IMMERSIVE_STICKY</h2>
+<h2 id="sticky">Use Sticky Immersion</h2>
<p>When you use the {@link android.view.View#SYSTEM_UI_FLAG_IMMERSIVE_STICKY} flag,
an inward swipe in the system bars areas causes the bars to temporarily appear in a
diff --git a/docs/html/training/system-ui/navigation.jd b/docs/html/training/system-ui/navigation.jd
index 3907bb2..1c73c70 100644
--- a/docs/html/training/system-ui/navigation.jd
+++ b/docs/html/training/system-ui/navigation.jd
@@ -63,6 +63,9 @@
the navigation bar and the status bar:</p>
<pre>View decorView = getWindow().getDecorView();
// Hide both the navigation bar and the status bar.
+// SYSTEM_UI_FLAG_FULLSCREEN is only available on Android 4.1 and higher, but as
+// a general rule, you should design your app to hide the status bar whenever you
+// hide the navigation bar.
int uiOptions = View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
| View.SYSTEM_UI_FLAG_FULLSCREEN;
decorView.setSystemUiVisibility(uiOptions);</pre>
diff --git a/docs/html/training/training_toc.cs b/docs/html/training/training_toc.cs
index 1314c7a..0616b62 100644
--- a/docs/html/training/training_toc.cs
+++ b/docs/html/training/training_toc.cs
@@ -1,6 +1,4 @@
<ul id="nav">
-
-
<li class="nav-section">
<div class="nav-section-header">
<a href="<?cs var:toroot ?>training/index.html">
@@ -705,7 +703,7 @@
<div class="nav-section-header">
<a href="<?cs var:toroot ?>training/best-ux.html">
<span class="small">Best Practices for</span><br/>
- User Experience & UI
+ Interaction & Engagement
</a>
</div>
<ul>
@@ -835,10 +833,46 @@
</ul>
</li>
+ <li class="nav-section">
+ <div class="nav-section-header">
+ <a href="<?cs var:toroot ?>training/app-indexing/index.html"
+ description=
+ "How to enable deep linking and indexing of your application
+content so that users can open this content directly from their mobile search
+results."
+ >Making Your App Content Searchable by Google</a>
+ </div>
+ <ul>
+ <li><a href="<?cs var:toroot ?>training/app-indexing/deep-linking.html">
+ Enabling Deep Links for App Content
+ </a>
+ </li>
+ <li><a href="<?cs var:toroot ?>training/app-indexing/enabling-app-indexing.html">
+ Specifying App Content for Indexing
+ </a>
+ </li>
+ </ul>
+ </li>
+ </ul>
+ </li>
+ <!-- End Interaction and Engagement -->
+
+
+
+
+ <li class="nav-section">
+ <div class="nav-section-header">
+ <a href="<?cs var:toroot ?>training/best-ui.html">
+ <span class="small">Best Practices for</span><br/>
+ User Interface
+ </a>
+ </div>
+ <ul>
+
<li class="nav-section">
<div class="nav-section-header">
- <a href="/training/multiscreen/index.html"
+ <a href="<?cs var:toroot ?>training/multiscreen/index.html"
zh-cn-lang="针对多种屏幕进行设计"
ja-lang="複数画面のデザイン"
es-lang="Cómo diseñar aplicaciones para varias pantallas"
@@ -849,20 +883,20 @@
>Designing for Multiple Screens</a>
</div>
<ul>
- <li><a href="/training/multiscreen/screensizes.html"
+ <li><a href="<?cs var:toroot ?>training/multiscreen/screensizes.html"
zh-cn-lang="支持各种屏幕尺寸"
ko-lang="다양한 화면 크기 지원"
ja-lang="さまざまな画面サイズのサポート"
es-lang="Cómo admitir varios tamaños de pantalla"
>Supporting Different Screen Sizes</a>
</li>
- <li><a href="/training/multiscreen/screendensities.html"
+ <li><a href="<?cs var:toroot ?>training/multiscreen/screendensities.html"
zh-cn-lang="支持各种屏幕密度"
ja-lang="さまざまな画面密度のサポート"
es-lang="Cómo admitir varias densidades de pantalla"
>Supporting Different Screen Densities</a>
</li>
- <li><a href="/training/multiscreen/adaptui.html"
+ <li><a href="<?cs var:toroot ?>training/multiscreen/adaptui.html"
zh-cn-lang="实施自适应用户界面流程"
ja-lang="順応性のある UI フローの実装"
es-lang="Cómo implementar interfaces de usuario adaptables"
@@ -990,7 +1024,7 @@
Hiding the Navigation Bar
</a>
</li>
- <li><a href="/training/system-ui/immersive.html">
+ <li><a href="<?cs var:toroot ?>training/system-ui/immersive.html">
Using Immersive Full-Screen Mode
</a>
</li>
@@ -1003,7 +1037,9 @@
</ul>
</li>
- <!-- End best UX and UI -->
+ <!-- End User Interface -->
+
+
<li class="nav-section">
@@ -1078,6 +1114,29 @@
</li>
</ul>
</li>
+
+ <li class="nav-section">
+ <div class="nav-section-header">
+ <a href="<?cs var:toroot ?>training/game-controllers/index.html"
+ description=
+ "How to write apps that support game controllers."
+ >Supporting Game Controllers</a>
+ </div>
+ <ul>
+ <li><a href="<?cs var:toroot ?>training/game-controllers/controller-input.html">
+ Handling Controller Actions
+ </a>
+ </li>
+ <li><a href="<?cs var:toroot ?>training/game-controllers/compatibility.html">
+ Supporting Controllers Across Android Versions
+ </a>
+ </li>
+ <li><a href="<?cs var:toroot ?>training/game-controllers/multiple-controllers.html">
+ Supporting Multiple Game Controllers
+ </a>
+ </li>
+ </ul>
+ </li>
</ul>
</li> <!-- end of User Input -->
@@ -1205,7 +1264,7 @@
<li class="nav-section">
<div class="nav-section-header">
- <a href="/training/monitoring-device-state/index.html"
+ <a href="<?cs var:toroot ?>training/monitoring-device-state/index.html"
zh-cn-lang="优化电池使用时间"
ja-lang="電池消費量の最適化"
es-lang="Cómo optimizar la duración de la batería"
@@ -1215,25 +1274,25 @@
>Optimizing Battery Life</a>
</div>
<ul>
- <li><a href="/training/monitoring-device-state/battery-monitoring.html"
+ <li><a href="<?cs var:toroot ?>training/monitoring-device-state/battery-monitoring.html"
zh-cn-lang="监控电池电量和充电状态"
ja-lang="電池残量と充電状態の監視"
es-lang="Cómo controlar el nivel de batería y el estado de carga"
>Monitoring the Battery Level and Charging State</a>
</li>
- <li><a href="/training/monitoring-device-state/docking-monitoring.html"
+ <li><a href="<?cs var:toroot ?>training/monitoring-device-state/docking-monitoring.html"
zh-cn-lang="确定和监控基座对接状态和类型"
ja-lang="ホルダーの装着状態とタイプの特定と監視"
es-lang="Cómo determinar y controlar el tipo de conector y el estado de la conexión"
>Determining and Monitoring the Docking State and Type</a>
</li>
- <li><a href="/training/monitoring-device-state/connectivity-monitoring.html"
+ <li><a href="<?cs var:toroot ?>training/monitoring-device-state/connectivity-monitoring.html"
zh-cn-lang="确定和监控网络连接状态"
ja-lang="接続状態の特定と監視"
es-lang="Cómo determinar y controlar el estado de la conectividad"
>Determining and Monitoring the Connectivity Status</a>
</li>
- <li><a href="/training/monitoring-device-state/manifest-receivers.html"
+ <li><a href="<?cs var:toroot ?>training/monitoring-device-state/manifest-receivers.html"
zh-cn-lang="根据需要操作广播接收器"
ja-lang="オンデマンドでのブロードキャスト レシーバ操作"
es-lang="Cómo manipular los receptores de emisión bajo demanda"
diff --git a/docs/html/training/tv/index.jd b/docs/html/training/tv/index.jd
index 9d15f46..54f7016 100644
--- a/docs/html/training/tv/index.jd
+++ b/docs/html/training/tv/index.jd
@@ -17,6 +17,14 @@
</div>
</div>
+
+<a class="notice-developers-video wide" href="http://www.youtube.com/watch?v=zsRnRLh-O34">
+<div>
+ <h3>Video</h3>
+ <p>DevBytes: Design for Large Displays - Part 1</p>
+</div>
+</a>
+
<p>
Smart TVs powered by Android bring your favorite Android apps to the best screen in your house.
Thousands of apps in the Google Play Store are already optimized for TVs. This class shows how
@@ -48,4 +56,4 @@
<dt><b><a href="unsupported-features-tv.html">Handling features not supported on TV</a></b></dt>
<dd>Lists the hardware features that are usually not available on TVs. This lesson also shows you how to
provide alternatives for missing features or check for missing features and disable code at run time.</dd>
-</dl>
\ No newline at end of file
+</dl>
diff --git a/docs/image_sources/training/game-controllers/backward-compatible-inputmanager.graffle b/docs/image_sources/training/game-controllers/backward-compatible-inputmanager.graffle
new file mode 100644
index 0000000..fbf78be
--- /dev/null
+++ b/docs/image_sources/training/game-controllers/backward-compatible-inputmanager.graffle
@@ -0,0 +1,1076 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>ActiveLayerIndex</key>
+ <integer>0</integer>
+ <key>ApplicationVersion</key>
+ <array>
+ <string>com.omnigroup.OmniGrafflePro</string>
+ <string>139.18.0.187838</string>
+ </array>
+ <key>AutoAdjust</key>
+ <true/>
+ <key>BackgroundGraphic</key>
+ <dict>
+ <key>Bounds</key>
+ <string>{{0, 0}, {756, 553}}</string>
+ <key>Class</key>
+ <string>SolidGraphic</string>
+ <key>ID</key>
+ <integer>2</integer>
+ <key>Style</key>
+ <dict>
+ <key>shadow</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ </dict>
+ </dict>
+ <key>BaseZoom</key>
+ <integer>0</integer>
+ <key>CanvasOrigin</key>
+ <string>{0, 0}</string>
+ <key>ColumnAlign</key>
+ <integer>1</integer>
+ <key>ColumnSpacing</key>
+ <real>36</real>
+ <key>CreationDate</key>
+ <string>2013-10-03 20:37:16 +0000</string>
+ <key>Creator</key>
+ <string>Quddus Chong</string>
+ <key>DisplayScale</key>
+ <string>1 0/72 in = 1.0000 in</string>
+ <key>GraphDocumentVersion</key>
+ <integer>8</integer>
+ <key>GraphicsList</key>
+ <array>
+ <dict>
+ <key>Bounds</key>
+ <string>{{69.703689575195312, 209}, {115.59260559082031, 42.580599999999997}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>FontInfo</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>a</key>
+ <string>0.5</string>
+ <key>b</key>
+ <string>0</string>
+ <key>g</key>
+ <string>0</string>
+ <key>r</key>
+ <string>0</string>
+ </dict>
+ <key>Font</key>
+ <string>Helvetica</string>
+ <key>Size</key>
+ <real>12</real>
+ </dict>
+ <key>ID</key>
+ <integer>205</integer>
+ <key>Shape</key>
+ <string>Rectangle</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ <key>shadow</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>Text</key>
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1265
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs24 \cf0 Your game code}</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>Class</key>
+ <string>LineGraphic</string>
+ <key>Head</key>
+ <dict>
+ <key>ID</key>
+ <integer>157</integer>
+ <key>Info</key>
+ <integer>8</integer>
+ </dict>
+ <key>ID</key>
+ <integer>204</integer>
+ <key>Points</key>
+ <array>
+ <string>{212, 269.08485000000002}</string>
+ <string>{283.00000000000006, 269.08485000000002}</string>
+ </array>
+ <key>Style</key>
+ <dict>
+ <key>stroke</key>
+ <dict>
+ <key>HeadArrow</key>
+ <string>FilledArrow</string>
+ <key>Legacy</key>
+ <true/>
+ <key>TailArrow</key>
+ <string>0</string>
+ </dict>
+ </dict>
+ <key>Tail</key>
+ <dict>
+ <key>ID</key>
+ <integer>203</integer>
+ <key>Info</key>
+ <integer>7</integer>
+ </dict>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{43, 244}, {169, 50.169699999999999}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>FontInfo</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0</string>
+ <key>g</key>
+ <string>0</string>
+ <key>r</key>
+ <string>0</string>
+ </dict>
+ <key>Font</key>
+ <string>DroidSans-Bold</string>
+ <key>Size</key>
+ <real>10</real>
+ </dict>
+ <key>ID</key>
+ <integer>203</integer>
+ <key>Magnets</key>
+ <array>
+ <string>{1, 1}</string>
+ <string>{1, -1}</string>
+ <string>{-1, -1}</string>
+ <string>{-1, 1}</string>
+ <string>{0, 1}</string>
+ <string>{0, -1}</string>
+ <string>{1, 0}</string>
+ <string>{-1, 0}</string>
+ <string>{-0.5, -0.233518}</string>
+ <string>{-0.49144199999999999, 0.26006299999999999}</string>
+ <string>{0.50711799999999996, -0.22408600000000001}</string>
+ <string>{0.50711799999999996, 0.267179}</string>
+ <string>{-0.27431, -0.474028}</string>
+ <string>{0.27977999999999997, -0.47847800000000001}</string>
+ <string>{0.29393799999999998, 0.54304399999999997}</string>
+ <string>{-0.28623199999999999, 0.55380399999999996}</string>
+ </array>
+ <key>Shape</key>
+ <string>Rectangle</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0</string>
+ <key>g</key>
+ <string>0.5</string>
+ <key>r</key>
+ <string>1</string>
+ </dict>
+ <key>FillType</key>
+ <integer>2</integer>
+ <key>GradientAngle</key>
+ <real>90</real>
+ <key>GradientColor</key>
+ <dict>
+ <key>b</key>
+ <string>0.2</string>
+ <key>g</key>
+ <string>0.4</string>
+ <key>r</key>
+ <string>0.6</string>
+ </dict>
+ </dict>
+ <key>shadow</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>a</key>
+ <string>0.35</string>
+ <key>b</key>
+ <string>0</string>
+ <key>g</key>
+ <string>0</string>
+ <key>r</key>
+ <string>0</string>
+ </dict>
+ <key>Fuzziness</key>
+ <real>2.3972222805023193</real>
+ <key>ShadowVector</key>
+ <string>{0, 1}</string>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.2</string>
+ <key>g</key>
+ <string>0.4</string>
+ <key>r</key>
+ <string>0.6</string>
+ </dict>
+ <key>CornerRadius</key>
+ <real>3</real>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>Text</key>
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1265
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc
+
+\f0\b\fs24 \cf0 GameView}</string>
+ <key>VerticalPad</key>
+ <integer>0</integer>
+ </dict>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{519.5, 399}, {162, 42.580599999999997}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>FontInfo</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>a</key>
+ <string>0.5</string>
+ <key>b</key>
+ <string>0</string>
+ <key>g</key>
+ <string>0</string>
+ <key>r</key>
+ <string>0</string>
+ </dict>
+ <key>Font</key>
+ <string>Helvetica</string>
+ <key>Size</key>
+ <real>12</real>
+ </dict>
+ <key>ID</key>
+ <integer>202</integer>
+ <key>Shape</key>
+ <string>Rectangle</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ <key>shadow</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>Text</key>
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1265
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs24 \cf0 Implementation on Android 2.3 up to Android 4.0}</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{526.5, 108.4194}, {148, 42.580599999999997}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>FontInfo</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>a</key>
+ <string>0.5</string>
+ <key>b</key>
+ <string>0</string>
+ <key>g</key>
+ <string>0</string>
+ <key>r</key>
+ <string>0</string>
+ </dict>
+ <key>Font</key>
+ <string>Helvetica</string>
+ <key>Size</key>
+ <real>12</real>
+ </dict>
+ <key>ID</key>
+ <integer>201</integer>
+ <key>Shape</key>
+ <string>Rectangle</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ <key>shadow</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>Text</key>
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1265
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs24 \cf0 "Proxy" implementation on Android 4.1 and higher}</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{327.40739440917969, 209}, {80.185199999999995, 42.580599999999997}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>FontInfo</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>a</key>
+ <string>0.5</string>
+ <key>b</key>
+ <string>0</string>
+ <key>g</key>
+ <string>0</string>
+ <key>r</key>
+ <string>0</string>
+ </dict>
+ <key>Font</key>
+ <string>Helvetica</string>
+ <key>Size</key>
+ <real>12</real>
+ </dict>
+ <key>ID</key>
+ <integer>100</integer>
+ <key>Shape</key>
+ <string>Rectangle</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ <key>shadow</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>Text</key>
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1265
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs24 \cf0 Interface}</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>Class</key>
+ <string>LineGraphic</string>
+ <key>FontInfo</key>
+ <dict>
+ <key>Font</key>
+ <string>DroidSans</string>
+ <key>Size</key>
+ <real>11</real>
+ </dict>
+ <key>Head</key>
+ <dict>
+ <key>ID</key>
+ <integer>157</integer>
+ <key>Info</key>
+ <integer>7</integer>
+ </dict>
+ <key>ID</key>
+ <integer>200</integer>
+ <key>OrthogonalBarAutomatic</key>
+ <true/>
+ <key>OrthogonalBarPoint</key>
+ <string>{0, 0}</string>
+ <key>OrthogonalBarPosition</key>
+ <real>20.600000381469727</real>
+ <key>Points</key>
+ <array>
+ <string>{540, 368.91515000000004}</string>
+ <string>{475, 283}</string>
+ <string>{451.99999999999994, 269.08485000000002}</string>
+ </array>
+ <key>Style</key>
+ <dict>
+ <key>stroke</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>a</key>
+ <string>0.7</string>
+ <key>b</key>
+ <string>0</string>
+ <key>g</key>
+ <string>0</string>
+ <key>r</key>
+ <string>0</string>
+ </dict>
+ <key>CornerRadius</key>
+ <real>4</real>
+ <key>HeadArrow</key>
+ <string>FilledArrow</string>
+ <key>Legacy</key>
+ <true/>
+ <key>LineType</key>
+ <integer>2</integer>
+ <key>TailArrow</key>
+ <string>FilledArrow</string>
+ </dict>
+ </dict>
+ <key>Tail</key>
+ <dict>
+ <key>ID</key>
+ <integer>159</integer>
+ <key>Info</key>
+ <integer>8</integer>
+ </dict>
+ </dict>
+ <dict>
+ <key>Class</key>
+ <string>LineGraphic</string>
+ <key>FontInfo</key>
+ <dict>
+ <key>Font</key>
+ <string>DroidSans</string>
+ <key>Size</key>
+ <real>11</real>
+ </dict>
+ <key>Head</key>
+ <dict>
+ <key>ID</key>
+ <integer>157</integer>
+ <key>Info</key>
+ <integer>7</integer>
+ </dict>
+ <key>ID</key>
+ <integer>198</integer>
+ <key>OrthogonalBarAutomatic</key>
+ <true/>
+ <key>OrthogonalBarPoint</key>
+ <string>{0, 0}</string>
+ <key>OrthogonalBarPosition</key>
+ <real>20.657249450683594</real>
+ <key>Points</key>
+ <array>
+ <string>{540, 176.08484999999999}</string>
+ <string>{474.88549999999998, 177.5}</string>
+ <string>{451.99999999999994, 269.08485000000002}</string>
+ </array>
+ <key>Style</key>
+ <dict>
+ <key>stroke</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>a</key>
+ <string>0.7</string>
+ <key>b</key>
+ <string>0</string>
+ <key>g</key>
+ <string>0</string>
+ <key>r</key>
+ <string>0</string>
+ </dict>
+ <key>CornerRadius</key>
+ <real>4</real>
+ <key>HeadArrow</key>
+ <string>FilledArrow</string>
+ <key>Legacy</key>
+ <true/>
+ <key>LineType</key>
+ <integer>2</integer>
+ <key>TailArrow</key>
+ <string>FilledArrow</string>
+ </dict>
+ </dict>
+ <key>Tail</key>
+ <dict>
+ <key>ID</key>
+ <integer>158</integer>
+ <key>Info</key>
+ <integer>8</integer>
+ </dict>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{540, 343.83030000000002}, {121, 50.169699999999999}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>FontInfo</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0</string>
+ <key>g</key>
+ <string>0</string>
+ <key>r</key>
+ <string>0</string>
+ </dict>
+ <key>Font</key>
+ <string>DroidSans-Bold</string>
+ <key>Size</key>
+ <real>10</real>
+ </dict>
+ <key>ID</key>
+ <integer>159</integer>
+ <key>Magnets</key>
+ <array>
+ <string>{1, 1}</string>
+ <string>{1, -1}</string>
+ <string>{-1, -1}</string>
+ <string>{-1, 1}</string>
+ <string>{0, 1}</string>
+ <string>{0, -1}</string>
+ <string>{1, 0}</string>
+ <string>{-1, 0}</string>
+ <string>{-0.5, -0.233518}</string>
+ <string>{-0.49144199999999999, 0.26006299999999999}</string>
+ <string>{0.50711799999999996, -0.22408600000000001}</string>
+ <string>{0.50711799999999996, 0.267179}</string>
+ <string>{-0.27431, -0.474028}</string>
+ <string>{0.27977999999999997, -0.47847800000000001}</string>
+ <string>{0.29393799999999998, 0.54304399999999997}</string>
+ <string>{-0.28623199999999999, 0.55380399999999996}</string>
+ </array>
+ <key>Shape</key>
+ <string>Rectangle</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>1</string>
+ <key>g</key>
+ <string>0.874135</string>
+ <key>r</key>
+ <string>0.71718</string>
+ </dict>
+ <key>FillType</key>
+ <integer>2</integer>
+ <key>GradientAngle</key>
+ <real>90</real>
+ <key>GradientColor</key>
+ <dict>
+ <key>b</key>
+ <string>1</string>
+ <key>g</key>
+ <string>0.662438</string>
+ <key>r</key>
+ <string>0.464468</string>
+ </dict>
+ </dict>
+ <key>shadow</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>a</key>
+ <string>0.35</string>
+ <key>b</key>
+ <string>0</string>
+ <key>g</key>
+ <string>0</string>
+ <key>r</key>
+ <string>0</string>
+ </dict>
+ <key>Fuzziness</key>
+ <real>2.3972222805023193</real>
+ <key>ShadowVector</key>
+ <string>{0, 1}</string>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.93512</string>
+ <key>g</key>
+ <string>0.472602</string>
+ <key>r</key>
+ <string>0.333854</string>
+ </dict>
+ <key>CornerRadius</key>
+ <real>3</real>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>Text</key>
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1265
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc
+
+\f0\b\fs24 \cf0 InputManagerV9}</string>
+ <key>VerticalPad</key>
+ <integer>0</integer>
+ </dict>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{540, 151}, {121, 50.169699999999999}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>FontInfo</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0</string>
+ <key>g</key>
+ <string>0</string>
+ <key>r</key>
+ <string>0</string>
+ </dict>
+ <key>Font</key>
+ <string>DroidSans-Bold</string>
+ <key>Size</key>
+ <real>10</real>
+ </dict>
+ <key>ID</key>
+ <integer>158</integer>
+ <key>Magnets</key>
+ <array>
+ <string>{1, 1}</string>
+ <string>{1, -1}</string>
+ <string>{-1, -1}</string>
+ <string>{-1, 1}</string>
+ <string>{0, 1}</string>
+ <string>{0, -1}</string>
+ <string>{1, 0}</string>
+ <string>{-1, 0}</string>
+ <string>{-0.5, -0.233518}</string>
+ <string>{-0.49144199999999999, 0.26006299999999999}</string>
+ <string>{0.50711799999999996, -0.22408600000000001}</string>
+ <string>{0.50711799999999996, 0.267179}</string>
+ <string>{-0.27431, -0.474028}</string>
+ <string>{0.27977999999999997, -0.47847800000000001}</string>
+ <string>{0.29393799999999998, 0.54304399999999997}</string>
+ <string>{-0.28623199999999999, 0.55380399999999996}</string>
+ </array>
+ <key>Shape</key>
+ <string>Rectangle</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>1</string>
+ <key>g</key>
+ <string>0.874135</string>
+ <key>r</key>
+ <string>0.71718</string>
+ </dict>
+ <key>FillType</key>
+ <integer>2</integer>
+ <key>GradientAngle</key>
+ <real>90</real>
+ <key>GradientColor</key>
+ <dict>
+ <key>b</key>
+ <string>1</string>
+ <key>g</key>
+ <string>0.662438</string>
+ <key>r</key>
+ <string>0.464468</string>
+ </dict>
+ </dict>
+ <key>shadow</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>a</key>
+ <string>0.35</string>
+ <key>b</key>
+ <string>0</string>
+ <key>g</key>
+ <string>0</string>
+ <key>r</key>
+ <string>0</string>
+ </dict>
+ <key>Fuzziness</key>
+ <real>2.3972222805023193</real>
+ <key>ShadowVector</key>
+ <string>{0, 1}</string>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.93512</string>
+ <key>g</key>
+ <string>0.472602</string>
+ <key>r</key>
+ <string>0.333854</string>
+ </dict>
+ <key>CornerRadius</key>
+ <real>3</real>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>Text</key>
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1265
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc
+
+\f0\b\fs24 \cf0 InputManagerV16}</string>
+ <key>VerticalPad</key>
+ <integer>0</integer>
+ </dict>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{283, 244}, {169, 50.169699999999999}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>FontInfo</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0</string>
+ <key>g</key>
+ <string>0</string>
+ <key>r</key>
+ <string>0</string>
+ </dict>
+ <key>Font</key>
+ <string>DroidSans-Bold</string>
+ <key>Size</key>
+ <real>10</real>
+ </dict>
+ <key>ID</key>
+ <integer>157</integer>
+ <key>Magnets</key>
+ <array>
+ <string>{1, 1}</string>
+ <string>{1, -1}</string>
+ <string>{-1, -1}</string>
+ <string>{-1, 1}</string>
+ <string>{0, 1}</string>
+ <string>{0, -1}</string>
+ <string>{1, 0}</string>
+ <string>{-1, 0}</string>
+ <string>{-0.5, -0.233518}</string>
+ <string>{-0.49144199999999999, 0.26006299999999999}</string>
+ <string>{0.50711799999999996, -0.22408600000000001}</string>
+ <string>{0.50711799999999996, 0.267179}</string>
+ <string>{-0.27431, -0.474028}</string>
+ <string>{0.27977999999999997, -0.47847800000000001}</string>
+ <string>{0.29393799999999998, 0.54304399999999997}</string>
+ <string>{-0.28623199999999999, 0.55380399999999996}</string>
+ </array>
+ <key>Shape</key>
+ <string>Rectangle</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>1</string>
+ <key>g</key>
+ <string>0.874135</string>
+ <key>r</key>
+ <string>0.71718</string>
+ </dict>
+ <key>FillType</key>
+ <integer>2</integer>
+ <key>GradientAngle</key>
+ <real>90</real>
+ <key>GradientColor</key>
+ <dict>
+ <key>b</key>
+ <string>1</string>
+ <key>g</key>
+ <string>0.662438</string>
+ <key>r</key>
+ <string>0.464468</string>
+ </dict>
+ </dict>
+ <key>shadow</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>a</key>
+ <string>0.35</string>
+ <key>b</key>
+ <string>0</string>
+ <key>g</key>
+ <string>0</string>
+ <key>r</key>
+ <string>0</string>
+ </dict>
+ <key>Fuzziness</key>
+ <real>2.3972222805023193</real>
+ <key>ShadowVector</key>
+ <string>{0, 1}</string>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.93512</string>
+ <key>g</key>
+ <string>0.472602</string>
+ <key>r</key>
+ <string>0.333854</string>
+ </dict>
+ <key>CornerRadius</key>
+ <real>3</real>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>Text</key>
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1265
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc
+
+\f0\b\fs24 \cf0 InputManagerCompat}</string>
+ <key>VerticalPad</key>
+ <integer>0</integer>
+ </dict>
+ </dict>
+ </array>
+ <key>GridInfo</key>
+ <dict/>
+ <key>GuidesLocked</key>
+ <string>NO</string>
+ <key>GuidesVisible</key>
+ <string>YES</string>
+ <key>HPages</key>
+ <integer>1</integer>
+ <key>ImageCounter</key>
+ <integer>1</integer>
+ <key>KeepToScale</key>
+ <false/>
+ <key>Layers</key>
+ <array>
+ <dict>
+ <key>Lock</key>
+ <string>NO</string>
+ <key>Name</key>
+ <string>Layer 1</string>
+ <key>Print</key>
+ <string>YES</string>
+ <key>View</key>
+ <string>YES</string>
+ </dict>
+ </array>
+ <key>LayoutInfo</key>
+ <dict>
+ <key>Animate</key>
+ <string>NO</string>
+ <key>circoMinDist</key>
+ <real>18</real>
+ <key>circoSeparation</key>
+ <real>0.0</real>
+ <key>layoutEngine</key>
+ <string>dot</string>
+ <key>neatoSeparation</key>
+ <real>0.0</real>
+ <key>twopiSeparation</key>
+ <real>0.0</real>
+ </dict>
+ <key>LinksVisible</key>
+ <string>NO</string>
+ <key>MagnetsVisible</key>
+ <string>NO</string>
+ <key>MasterSheets</key>
+ <array/>
+ <key>ModificationDate</key>
+ <string>2014-01-17 19:18:34 +0000</string>
+ <key>Modifier</key>
+ <string>Quddus Chong</string>
+ <key>NotesVisible</key>
+ <string>NO</string>
+ <key>Orientation</key>
+ <integer>2</integer>
+ <key>OriginVisible</key>
+ <string>NO</string>
+ <key>PageBreaks</key>
+ <string>YES</string>
+ <key>PrintInfo</key>
+ <dict>
+ <key>NSBottomMargin</key>
+ <array>
+ <string>float</string>
+ <string>41</string>
+ </array>
+ <key>NSHorizonalPagination</key>
+ <array>
+ <string>coded</string>
+ <string>BAtzdHJlYW10eXBlZIHoA4QBQISEhAhOU051bWJlcgCEhAdOU1ZhbHVlAISECE5TT2JqZWN0AIWEASqEhAFxlwCG</string>
+ </array>
+ <key>NSLeftMargin</key>
+ <array>
+ <string>float</string>
+ <string>18</string>
+ </array>
+ <key>NSOrientation</key>
+ <array>
+ <string>coded</string>
+ <string>BAtzdHJlYW10eXBlZIHoA4QBQISEhAhOU051bWJlcgCEhAdOU1ZhbHVlAISECE5TT2JqZWN0AIWEASqEhAFxlwGG</string>
+ </array>
+ <key>NSPaperSize</key>
+ <array>
+ <string>size</string>
+ <string>{792, 612}</string>
+ </array>
+ <key>NSPrintReverseOrientation</key>
+ <array>
+ <string>int</string>
+ <string>0</string>
+ </array>
+ <key>NSRightMargin</key>
+ <array>
+ <string>float</string>
+ <string>18</string>
+ </array>
+ <key>NSTopMargin</key>
+ <array>
+ <string>float</string>
+ <string>18</string>
+ </array>
+ </dict>
+ <key>PrintOnePage</key>
+ <false/>
+ <key>ReadOnly</key>
+ <string>NO</string>
+ <key>RowAlign</key>
+ <integer>1</integer>
+ <key>RowSpacing</key>
+ <real>36</real>
+ <key>SheetTitle</key>
+ <string>Canvas 1</string>
+ <key>SmartAlignmentGuidesActive</key>
+ <string>YES</string>
+ <key>SmartDistanceGuidesActive</key>
+ <string>YES</string>
+ <key>UniqueID</key>
+ <integer>1</integer>
+ <key>UseEntirePage</key>
+ <false/>
+ <key>VPages</key>
+ <integer>1</integer>
+ <key>WindowInfo</key>
+ <dict>
+ <key>CurrentSheet</key>
+ <integer>0</integer>
+ <key>ExpandedCanvases</key>
+ <array>
+ <dict>
+ <key>name</key>
+ <string>Canvas 1</string>
+ </dict>
+ </array>
+ <key>Frame</key>
+ <string>{{130, 0}, {1112, 878}}</string>
+ <key>ListView</key>
+ <true/>
+ <key>OutlineWidth</key>
+ <integer>142</integer>
+ <key>RightSidebar</key>
+ <false/>
+ <key>ShowRuler</key>
+ <true/>
+ <key>Sidebar</key>
+ <true/>
+ <key>SidebarWidth</key>
+ <integer>120</integer>
+ <key>VisibleRegion</key>
+ <string>{{-111, -85}, {977, 723}}</string>
+ <key>Zoom</key>
+ <real>1</real>
+ <key>ZoomValues</key>
+ <array>
+ <array>
+ <string>Canvas 1</string>
+ <real>1</real>
+ <real>1</real>
+ </array>
+ </array>
+ </dict>
+</dict>
+</plist>
diff --git a/docs/image_sources/training/game-controllers/game-controller-profiles.graffle b/docs/image_sources/training/game-controllers/game-controller-profiles.graffle
new file mode 100644
index 0000000..fc62fc5
--- /dev/null
+++ b/docs/image_sources/training/game-controllers/game-controller-profiles.graffle
@@ -0,0 +1,2773 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+ <key>ActiveLayerIndex</key>
+ <integer>1</integer>
+ <key>ApplicationVersion</key>
+ <array>
+ <string>com.omnigroup.OmniGrafflePro</string>
+ <string>139.18.0.187838</string>
+ </array>
+ <key>AutoAdjust</key>
+ <true/>
+ <key>BackgroundGraphic</key>
+ <dict>
+ <key>Bounds</key>
+ <string>{{0, 0}, {1152, 733}}</string>
+ <key>Class</key>
+ <string>SolidGraphic</string>
+ <key>ID</key>
+ <integer>2</integer>
+ <key>Style</key>
+ <dict>
+ <key>shadow</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ </dict>
+ </dict>
+ <key>BaseZoom</key>
+ <integer>0</integer>
+ <key>CanvasOrigin</key>
+ <string>{0, 0}</string>
+ <key>ColumnAlign</key>
+ <integer>1</integer>
+ <key>ColumnSpacing</key>
+ <real>36</real>
+ <key>CreationDate</key>
+ <string>2013-03-04 20:35:59 +0000</string>
+ <key>Creator</key>
+ <string>Dan Galpin</string>
+ <key>DisplayScale</key>
+ <string>1 0/72 in = 1.0000 in</string>
+ <key>ExportShapes</key>
+ <array>
+ <dict>
+ <key>InspectorGroup</key>
+ <real>255</real>
+ <key>ShapeImageRect</key>
+ <string>{{2, 2}, {22, 22}}</string>
+ <key>ShapeName</key>
+ <string>F1E2180B-1353-44D7-847D-FBDA9B734CEF-643-000123C8E8BEFFA9</string>
+ <key>ShouldExport</key>
+ <string>YES</string>
+ <key>StrokePath</key>
+ <dict>
+ <key>elements</key>
+ <array>
+ <dict>
+ <key>element</key>
+ <string>MOVETO</string>
+ <key>point</key>
+ <string>{0.5, 0.49999619000000001}</string>
+ </dict>
+ <dict>
+ <key>control1</key>
+ <string>{0.48931121999999999, 0.25319671999999999}</string>
+ <key>control2</key>
+ <string>{0.44103335999999999, 0.012794494999999999}</string>
+ <key>element</key>
+ <string>CURVETO</string>
+ <key>point</key>
+ <string>{0.35516356999999998, -0.17620087000000001}</string>
+ </dict>
+ <dict>
+ <key>control1</key>
+ <string>{0.15901183999999999, -0.60793686000000002}</string>
+ <key>control2</key>
+ <string>{-0.15901278999999999, -0.60793686000000002}</string>
+ <key>element</key>
+ <string>CURVETO</string>
+ <key>point</key>
+ <string>{-0.35516452999999998, -0.17620087000000001}</string>
+ </dict>
+ <dict>
+ <key>control1</key>
+ <string>{-0.44103335999999999, 0.012794494999999999}</string>
+ <key>control2</key>
+ <string>{-0.48931216999999999, 0.25319671999999999}</string>
+ <key>element</key>
+ <string>CURVETO</string>
+ <key>point</key>
+ <string>{-0.5, 0.49999619000000001}</string>
+ </dict>
+ <dict>
+ <key>element</key>
+ <string>CLOSE</string>
+ </dict>
+ <dict>
+ <key>element</key>
+ <string>MOVETO</string>
+ <key>point</key>
+ <string>{0.5, 0.49999619000000001}</string>
+ </dict>
+ </array>
+ </dict>
+ <key>TextBounds</key>
+ <string>{{0, 0}, {1, 1}}</string>
+ </dict>
+ <dict>
+ <key>InspectorGroup</key>
+ <real>255</real>
+ <key>ShapeImageRect</key>
+ <string>{{2, 2}, {22, 22}}</string>
+ <key>ShapeName</key>
+ <string>3183FE08-E827-4DFB-B09C-26BEBDBFE644-643-00011FC72A7BAF86</string>
+ <key>ShouldExport</key>
+ <string>YES</string>
+ <key>StrokePath</key>
+ <dict>
+ <key>elements</key>
+ <array>
+ <dict>
+ <key>element</key>
+ <string>MOVETO</string>
+ <key>point</key>
+ <string>{0.16853929000000001, -0.16853952}</string>
+ </dict>
+ <dict>
+ <key>element</key>
+ <string>LINETO</string>
+ <key>point</key>
+ <string>{0.16853929000000001, -0.5}</string>
+ </dict>
+ <dict>
+ <key>element</key>
+ <string>LINETO</string>
+ <key>point</key>
+ <string>{-0.16853940000000001, -0.5}</string>
+ </dict>
+ <dict>
+ <key>element</key>
+ <string>LINETO</string>
+ <key>point</key>
+ <string>{-0.16853940000000001, -0.16853952}</string>
+ </dict>
+ <dict>
+ <key>element</key>
+ <string>LINETO</string>
+ <key>point</key>
+ <string>{-0.5, -0.16853952}</string>
+ </dict>
+ <dict>
+ <key>element</key>
+ <string>LINETO</string>
+ <key>point</key>
+ <string>{-0.5, 0.16853929000000001}</string>
+ </dict>
+ <dict>
+ <key>element</key>
+ <string>LINETO</string>
+ <key>point</key>
+ <string>{-0.16853940000000001, 0.16853929000000001}</string>
+ </dict>
+ <dict>
+ <key>element</key>
+ <string>LINETO</string>
+ <key>point</key>
+ <string>{-0.16853940000000001, 0.5}</string>
+ </dict>
+ <dict>
+ <key>element</key>
+ <string>LINETO</string>
+ <key>point</key>
+ <string>{0.16853929000000001, 0.5}</string>
+ </dict>
+ <dict>
+ <key>element</key>
+ <string>LINETO</string>
+ <key>point</key>
+ <string>{0.16853929000000001, 0.16853929000000001}</string>
+ </dict>
+ <dict>
+ <key>element</key>
+ <string>LINETO</string>
+ <key>point</key>
+ <string>{0.5, 0.16853929000000001}</string>
+ </dict>
+ <dict>
+ <key>element</key>
+ <string>LINETO</string>
+ <key>point</key>
+ <string>{0.5, -0.16853952}</string>
+ </dict>
+ <dict>
+ <key>element</key>
+ <string>CLOSE</string>
+ </dict>
+ <dict>
+ <key>element</key>
+ <string>MOVETO</string>
+ <key>point</key>
+ <string>{0.16853929000000001, -0.16853952}</string>
+ </dict>
+ </array>
+ </dict>
+ <key>TextBounds</key>
+ <string>{{0, 0}, {1, 1}}</string>
+ </dict>
+ <dict>
+ <key>InspectorGroup</key>
+ <real>255</real>
+ <key>ShapeImageRect</key>
+ <string>{{2, 2}, {22, 22}}</string>
+ <key>ShapeName</key>
+ <string>C23360B7-896D-4E43-821E-E438291A4B42-643-000123B31059F14D</string>
+ <key>ShouldExport</key>
+ <string>YES</string>
+ <key>StrokePath</key>
+ <dict>
+ <key>elements</key>
+ <array>
+ <dict>
+ <key>element</key>
+ <string>MOVETO</string>
+ <key>point</key>
+ <string>{0.12745094000000001, 0}</string>
+ </dict>
+ <dict>
+ <key>element</key>
+ <string>LINETO</string>
+ <key>point</key>
+ <string>{0.5, 0}</string>
+ </dict>
+ <dict>
+ <key>element</key>
+ <string>LINETO</string>
+ <key>point</key>
+ <string>{0.5, -0.5}</string>
+ </dict>
+ <dict>
+ <key>element</key>
+ <string>LINETO</string>
+ <key>point</key>
+ <string>{-0.5, -0.5}</string>
+ </dict>
+ <dict>
+ <key>element</key>
+ <string>LINETO</string>
+ <key>point</key>
+ <string>{-0.5, 0}</string>
+ </dict>
+ <dict>
+ <key>element</key>
+ <string>LINETO</string>
+ <key>point</key>
+ <string>{-0.12745094000000001, 0}</string>
+ </dict>
+ <dict>
+ <key>element</key>
+ <string>LINETO</string>
+ <key>point</key>
+ <string>{-0.12745094000000001, 0.5}</string>
+ </dict>
+ <dict>
+ <key>element</key>
+ <string>LINETO</string>
+ <key>point</key>
+ <string>{0.12745094000000001, 0.5}</string>
+ </dict>
+ <dict>
+ <key>element</key>
+ <string>CLOSE</string>
+ </dict>
+ <dict>
+ <key>element</key>
+ <string>MOVETO</string>
+ <key>point</key>
+ <string>{0.12745094000000001, 0}</string>
+ </dict>
+ </array>
+ </dict>
+ <key>TextBounds</key>
+ <string>{{0, 0}, {1, 1}}</string>
+ </dict>
+ <dict>
+ <key>InspectorGroup</key>
+ <real>255</real>
+ <key>ShapeImageRect</key>
+ <string>{{2, 2}, {22, 22}}</string>
+ <key>ShapeName</key>
+ <string>47D48890-EFFB-40D4-9B16-B837B487F35B-643-000123949D248202</string>
+ <key>ShouldExport</key>
+ <string>YES</string>
+ <key>StrokePath</key>
+ <dict>
+ <key>elements</key>
+ <array>
+ <dict>
+ <key>element</key>
+ <string>MOVETO</string>
+ <key>point</key>
+ <string>{-0.45872511999999999, -0.5}</string>
+ </dict>
+ <dict>
+ <key>control1</key>
+ <string>{-0.51545845999999995, -0.26532650000000002}</string>
+ <key>control2</key>
+ <string>{-0.51370585000000002, 0.098152161000000002}</string>
+ <key>element</key>
+ <string>CURVETO</string>
+ <key>point</key>
+ <string>{-0.45346713, 0.32486773000000002}</string>
+ </dict>
+ <dict>
+ <key>control1</key>
+ <string>{-0.39142346, 0.55837822000000004}</string>
+ <key>control2</key>
+ <string>{-0.29083102999999999, 0.55837822000000004}</string>
+ <key>element</key>
+ <string>CURVETO</string>
+ <key>point</key>
+ <string>{-0.22878745, 0.32486773000000002}</string>
+ </dict>
+ <dict>
+ <key>control1</key>
+ <string>{-0.22439509999999999, 0.30833673}</string>
+ <key>control2</key>
+ <string>{-0.2203137, 0.29107856999999998}</string>
+ <key>element</key>
+ <string>CURVETO</string>
+ <key>point</key>
+ <string>{-0.21654329, 0.27319621999999999}</string>
+ </dict>
+ <dict>
+ <key>element</key>
+ <string>LINETO</string>
+ <key>point</key>
+ <string>{0, 0.27319621999999999}</string>
+ </dict>
+ <dict>
+ <key>element</key>
+ <string>LINETO</string>
+ <key>point</key>
+ <string>{0.21654325999999999, 0.27319621999999999}</string>
+ </dict>
+ <dict>
+ <key>control1</key>
+ <string>{0.22031379000000001, 0.29107856999999998}</string>
+ <key>control2</key>
+ <string>{0.22439516000000001, 0.30833673}</string>
+ <key>element</key>
+ <string>CURVETO</string>
+ <key>point</key>
+ <string>{0.22878741999999999, 0.32486773000000002}</string>
+ </dict>
+ <dict>
+ <key>control1</key>
+ <string>{0.29083102999999999, 0.55837822000000004}</string>
+ <key>control2</key>
+ <string>{0.39142357999999999, 0.55837822000000004}</string>
+ <key>element</key>
+ <string>CURVETO</string>
+ <key>point</key>
+ <string>{0.45346701, 0.32486773000000002}</string>
+ </dict>
+ <dict>
+ <key>control1</key>
+ <string>{0.51370572999999997, 0.098152161000000002}</string>
+ <key>control2</key>
+ <string>{0.51545845999999995, -0.26532650000000002}</string>
+ <key>element</key>
+ <string>CURVETO</string>
+ <key>point</key>
+ <string>{0.45872509, -0.5}</string>
+ </dict>
+ <dict>
+ <key>element</key>
+ <string>LINETO</string>
+ <key>point</key>
+ <string>{0.22352933999999999, -0.5}</string>
+ </dict>
+ <dict>
+ <key>control1</key>
+ <string>{0.22344869000000001, -0.49966621}</string>
+ <key>control2</key>
+ <string>{0.22336811000000001, -0.49933242999999999}</string>
+ <key>element</key>
+ <string>CURVETO</string>
+ <key>point</key>
+ <string>{0.22328770000000001, -0.49899817000000002}</string>
+ </dict>
+ <dict>
+ <key>element</key>
+ <string>LINETO</string>
+ <key>point</key>
+ <string>{0, -0.49899817000000002}</string>
+ </dict>
+ <dict>
+ <key>element</key>
+ <string>LINETO</string>
+ <key>point</key>
+ <string>{-0.22328772999999999, -0.49899817000000002}</string>
+ </dict>
+ <dict>
+ <key>control1</key>
+ <string>{-0.22336813999999999, -0.49933242999999999}</string>
+ <key>control2</key>
+ <string>{-0.22344869000000001, -0.49966621}</string>
+ <key>element</key>
+ <string>CURVETO</string>
+ <key>point</key>
+ <string>{-0.22352933999999999, -0.5}</string>
+ </dict>
+ <dict>
+ <key>element</key>
+ <string>CLOSE</string>
+ </dict>
+ <dict>
+ <key>element</key>
+ <string>MOVETO</string>
+ <key>point</key>
+ <string>{-0.45872511999999999, -0.5}</string>
+ </dict>
+ </array>
+ </dict>
+ <key>TextBounds</key>
+ <string>{{0, 0}, {1, 1}}</string>
+ </dict>
+ <dict>
+ <key>InspectorGroup</key>
+ <real>255</real>
+ <key>ShapeImageRect</key>
+ <string>{{2, 2}, {22, 22}}</string>
+ <key>ShapeName</key>
+ <string>1ECB1682-27C7-4AA3-B9D7-C873C7E35CC3-643-0001204E86C9927B</string>
+ <key>ShouldExport</key>
+ <string>YES</string>
+ <key>StrokePath</key>
+ <dict>
+ <key>elements</key>
+ <array>
+ <dict>
+ <key>element</key>
+ <string>MOVETO</string>
+ <key>point</key>
+ <string>{0, -0.34815770000000001}</string>
+ </dict>
+ <dict>
+ <key>element</key>
+ <string>LINETO</string>
+ <key>point</key>
+ <string>{-0.17229146000000001, -0.34815770000000001}</string>
+ </dict>
+ <dict>
+ <key>control1</key>
+ <string>{-0.17213887, -0.38709176000000001}</string>
+ <key>control2</key>
+ <string>{-0.17783916, -0.43129521999999998}</string>
+ <key>element</key>
+ <string>CURVETO</string>
+ <key>point</key>
+ <string>{-0.19134480000000001, -0.45584047}</string>
+ </dict>
+ <dict>
+ <key>control1</key>
+ <string>{-0.20903580999999999, -0.48799281999999999}</string>
+ <key>control2</key>
+ <string>{-0.30287585, -0.52989668000000001}</string>
+ <key>element</key>
+ <string>CURVETO</string>
+ <key>point</key>
+ <string>{-0.36076200000000003, -0.46868926}</string>
+ </dict>
+ <dict>
+ <key>control1</key>
+ <string>{-0.40301216000000001, -0.42401546000000001}</string>
+ <key>control2</key>
+ <string>{-0.4273439, -0.36313765999999997}</string>
+ <key>element</key>
+ <string>CURVETO</string>
+ <key>point</key>
+ <string>{-0.44148481000000001, -0.33348655999999999}</string>
+ </dict>
+ <dict>
+ <key>control1</key>
+ <string>{-0.45792991, -0.29900670000000001}</string>
+ <key>control2</key>
+ <string>{-0.47685239000000001, -0.18920386}</string>
+ <key>element</key>
+ <string>CURVETO</string>
+ <key>point</key>
+ <string>{-0.47935599000000001, -0.17634570999999999}</string>
+ </dict>
+ <dict>
+ <key>control1</key>
+ <string>{-0.50688135999999995, -0.035002232000000001}</string>
+ <key>control2</key>
+ <string>{-0.50688135999999995, 0.19415568999999999}</string>
+ <key>element</key>
+ <string>CURVETO</string>
+ <key>point</key>
+ <string>{-0.47935599000000001, 0.33549797999999997}</string>
+ </dict>
+ <dict>
+ <key>control1</key>
+ <string>{-0.47144359000000002, 0.37612997999999997}</string>
+ <key>control2</key>
+ <string>{-0.46211770000000002, 0.40508091000000002}</string>
+ <key>element</key>
+ <string>CURVETO</string>
+ <key>point</key>
+ <string>{-0.45219076000000002, 0.42235231000000001}</string>
+ </dict>
+ <dict>
+ <key>control1</key>
+ <string>{-0.45041117000000003, 0.42638290000000001}</string>
+ <key>control2</key>
+ <string>{-0.44854629000000001, 0.43031728000000002}</string>
+ <key>element</key>
+ <string>CURVETO</string>
+ <key>point</key>
+ <string>{-0.44659655999999998, 0.43414568999999997}</string>
+ </dict>
+ <dict>
+ <key>control1</key>
+ <string>{-0.40189775999999999, 0.52195132}</string>
+ <key>control2</key>
+ <string>{-0.32942747999999999, 0.52195132}</string>
+ <key>element</key>
+ <string>CURVETO</string>
+ <key>point</key>
+ <string>{-0.28472847000000001, 0.43414568999999997}</string>
+ </dict>
+ <dict>
+ <key>control1</key>
+ <string>{-0.252276, 0.37039875999999999}</string>
+ <key>control2</key>
+ <string>{-0.24518039999999999, 0.31812059999999998}</string>
+ <key>element</key>
+ <string>CURVETO</string>
+ <key>point</key>
+ <string>{-0.24518039999999999, 0.31812059999999998}</string>
+ </dict>
+ <dict>
+ <key>control1</key>
+ <string>{-0.23554211999999999, 0.26876652000000001}</string>
+ <key>control2</key>
+ <string>{-0.23579177000000001, 0.25717378000000002}</string>
+ <key>element</key>
+ <string>CURVETO</string>
+ <key>point</key>
+ <string>{-0.22040003999999999, 0.28052354000000002}</string>
+ </dict>
+ <dict>
+ <key>control1</key>
+ <string>{-0.17852514999999999, 0.34405743999999999}</string>
+ <key>control2</key>
+ <string>{-0.11063104999999999, 0.34405743999999999}</string>
+ <key>element</key>
+ <string>CURVETO</string>
+ <key>point</key>
+ <string>{-0.068755567000000004, 0.28052354000000002}</string>
+ </dict>
+ <dict>
+ <key>control1</key>
+ <string>{-0.053364097999999999, 0.25717378000000002}</string>
+ <key>control2</key>
+ <string>{-0.043629705999999997, 0.22848975999999999}</string>
+ <key>element</key>
+ <string>CURVETO</string>
+ <key>point</key>
+ <string>{-0.039552628999999999, 0.19839119999999999}</string>
+ </dict>
+ <dict>
+ <key>element</key>
+ <string>LINETO</string>
+ <key>point</key>
+ <string>{0, 0.19839119999999999}</string>
+ </dict>
+ <dict>
+ <key>element</key>
+ <string>LINETO</string>
+ <key>point</key>
+ <string>{0.039552628999999999, 0.19839119999999999}</string>
+ </dict>
+ <dict>
+ <key>control1</key>
+ <string>{0.043629705999999997, 0.22848975999999999}</string>
+ <key>control2</key>
+ <string>{0.053364097999999999, 0.25717378000000002}</string>
+ <key>element</key>
+ <string>CURVETO</string>
+ <key>point</key>
+ <string>{0.068755567000000004, 0.28052354000000002}</string>
+ </dict>
+ <dict>
+ <key>control1</key>
+ <string>{0.11063104999999999, 0.34405743999999999}</string>
+ <key>control2</key>
+ <string>{0.17852509, 0.34405743999999999}</string>
+ <key>element</key>
+ <string>CURVETO</string>
+ <key>point</key>
+ <string>{0.22040008999999999, 0.28052354000000002}</string>
+ </dict>
+ <dict>
+ <key>control1</key>
+ <string>{0.23579174, 0.25717378000000002}</string>
+ <key>control2</key>
+ <string>{0.23554211999999999, 0.26876652000000001}</string>
+ <key>element</key>
+ <string>CURVETO</string>
+ <key>point</key>
+ <string>{0.24518037000000001, 0.31812059999999998}</string>
+ </dict>
+ <dict>
+ <key>control1</key>
+ <string>{0.24518037000000001, 0.31812059999999998}</string>
+ <key>control2</key>
+ <string>{0.252276, 0.37039875999999999}</string>
+ <key>element</key>
+ <string>CURVETO</string>
+ <key>point</key>
+ <string>{0.28472847000000001, 0.43414568999999997}</string>
+ </dict>
+ <dict>
+ <key>control1</key>
+ <string>{0.32942747999999999, 0.52195132}</string>
+ <key>control2</key>
+ <string>{0.40189778999999998, 0.52195132}</string>
+ <key>element</key>
+ <string>CURVETO</string>
+ <key>point</key>
+ <string>{0.44659662, 0.43414568999999997}</string>
+ </dict>
+ <dict>
+ <key>control1</key>
+ <string>{0.44854629000000001, 0.43031728000000002}</string>
+ <key>control2</key>
+ <string>{0.45041120000000001, 0.42638290000000001}</string>
+ <key>element</key>
+ <string>CURVETO</string>
+ <key>point</key>
+ <string>{0.45219076000000002, 0.42235231000000001}</string>
+ </dict>
+ <dict>
+ <key>control1</key>
+ <string>{0.46211766999999998, 0.40508091000000002}</string>
+ <key>control2</key>
+ <string>{0.47144364999999999, 0.37612997999999997}</string>
+ <key>element</key>
+ <string>CURVETO</string>
+ <key>point</key>
+ <string>{0.47935592999999999, 0.33549797999999997}</string>
+ </dict>
+ <dict>
+ <key>control1</key>
+ <string>{0.50688135999999995, 0.19415568999999999}</string>
+ <key>control2</key>
+ <string>{0.50688135999999995, -0.035002232000000001}</string>
+ <key>element</key>
+ <string>CURVETO</string>
+ <key>point</key>
+ <string>{0.47935592999999999, -0.17634570999999999}</string>
+ </dict>
+ <dict>
+ <key>control1</key>
+ <string>{0.47685242, -0.18920386}</string>
+ <key>control2</key>
+ <string>{0.45792985000000003, -0.29900670000000001}</string>
+ <key>element</key>
+ <string>CURVETO</string>
+ <key>point</key>
+ <string>{0.44148481000000001, -0.33348655999999999}</string>
+ </dict>
+ <dict>
+ <key>control1</key>
+ <string>{0.42734396000000002, -0.36313765999999997}</string>
+ <key>control2</key>
+ <string>{0.40301216000000001, -0.42401546000000001}</string>
+ <key>element</key>
+ <string>CURVETO</string>
+ <key>point</key>
+ <string>{0.36076200000000003, -0.46868926}</string>
+ </dict>
+ <dict>
+ <key>control1</key>
+ <string>{0.30287587999999999, -0.52989668000000001}</string>
+ <key>control2</key>
+ <string>{0.20903580999999999, -0.48799281999999999}</string>
+ <key>element</key>
+ <string>CURVETO</string>
+ <key>point</key>
+ <string>{0.19134480000000001, -0.45584047}</string>
+ </dict>
+ <dict>
+ <key>control1</key>
+ <string>{0.17783916, -0.43129521999999998}</string>
+ <key>control2</key>
+ <string>{0.17213881, -0.38709176000000001}</string>
+ <key>element</key>
+ <string>CURVETO</string>
+ <key>point</key>
+ <string>{0.17229140000000001, -0.34815770000000001}</string>
+ </dict>
+ <dict>
+ <key>element</key>
+ <string>CLOSE</string>
+ </dict>
+ <dict>
+ <key>element</key>
+ <string>MOVETO</string>
+ <key>point</key>
+ <string>{0, -0.34815770000000001}</string>
+ </dict>
+ </array>
+ </dict>
+ <key>TextBounds</key>
+ <string>{{0, 0}, {1, 1}}</string>
+ </dict>
+ <dict>
+ <key>InspectorGroup</key>
+ <real>255</real>
+ <key>ShapeImageRect</key>
+ <string>{{2, 2}, {22, 22}}</string>
+ <key>ShapeName</key>
+ <string>A5792564-7BB8-4CC5-9068-338E366F4CDF-643-000123FA94AC0471</string>
+ <key>ShouldExport</key>
+ <string>YES</string>
+ <key>StrokePath</key>
+ <dict>
+ <key>elements</key>
+ <array>
+ <dict>
+ <key>element</key>
+ <string>MOVETO</string>
+ <key>point</key>
+ <string>{0.49999988000000001, 0.5}</string>
+ </dict>
+ <dict>
+ <key>element</key>
+ <string>LINETO</string>
+ <key>point</key>
+ <string>{0.49999988000000001, -0.49681281999999999}</string>
+ </dict>
+ <dict>
+ <key>element</key>
+ <string>LINETO</string>
+ <key>point</key>
+ <string>{0.41531157000000002, -0.49681281999999999}</string>
+ </dict>
+ <dict>
+ <key>control1</key>
+ <string>{0.41504394999999999, -0.49787712000000001}</string>
+ <key>control2</key>
+ <string>{0.41477596999999999, -0.49893760999999998}</string>
+ <key>element</key>
+ <string>CURVETO</string>
+ <key>point</key>
+ <string>{0.41450751000000002, -0.5}</string>
+ </dict>
+ <dict>
+ <key>element</key>
+ <string>LINETO</string>
+ <key>point</key>
+ <string>{-0.36829965999999997, -0.5}</string>
+ </dict>
+ <dict>
+ <key>control1</key>
+ <string>{-0.44126809, -0.21159172000000001}</string>
+ <key>control2</key>
+ <string>{-0.48516821999999998, 0.13798714000000001}</string>
+ <key>element</key>
+ <string>CURVETO</string>
+ <key>point</key>
+ <string>{-0.50000005999999997, 0.5}</string>
+ </dict>
+ <dict>
+ <key>element</key>
+ <string>CLOSE</string>
+ </dict>
+ <dict>
+ <key>element</key>
+ <string>MOVETO</string>
+ <key>point</key>
+ <string>{0.49999988000000001, 0.5}</string>
+ </dict>
+ </array>
+ </dict>
+ <key>TextBounds</key>
+ <string>{{0, 0}, {1, 1}}</string>
+ </dict>
+ </array>
+ <key>GraphDocumentVersion</key>
+ <integer>8</integer>
+ <key>GraphicsList</key>
+ <array>
+ <dict>
+ <key>Class</key>
+ <string>Group</string>
+ <key>Graphics</key>
+ <array>
+ <dict>
+ <key>Bounds</key>
+ <string>{{352.69015502929688, 157.75728808270409}, {39.000000000000007, 26.271913528442393}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>HFlip</key>
+ <string>YES</string>
+ <key>ID</key>
+ <integer>266</integer>
+ <key>Shape</key>
+ <string>Rectangle</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.898039</string>
+ <key>g</key>
+ <string>0.709804</string>
+ <key>r</key>
+ <string>0.2</string>
+ </dict>
+ </dict>
+ <key>shadow</key>
+ <dict>
+ <key>Fuzziness</key>
+ <real>6.559971809387207</real>
+ <key>ShadowVector</key>
+ <string>{1, 1}</string>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>CornerRadius</key>
+ <real>4</real>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>Text</key>
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1265
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs36 \cf1 4}</string>
+ </dict>
+ <key>VFlip</key>
+ <string>YES</string>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{368.23110857347933, 183.90486894506589}, {12.74318471799012, 11.874331160357771}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>HFlip</key>
+ <string>YES</string>
+ <key>ID</key>
+ <integer>267</integer>
+ <key>Shape</key>
+ <string>Bezier</string>
+ <key>ShapeData</key>
+ <dict>
+ <key>UnitPoints</key>
+ <array>
+ <string>{0.5, 0.5}</string>
+ <string>{0.5, 0.5}</string>
+ <string>{-0.5, -0.5}</string>
+ <string>{-0.5, -0.5}</string>
+ <string>{-0.5, -0.5}</string>
+ <string>{-0.5, 0.5}</string>
+ <string>{-0.5, 0.5}</string>
+ <string>{-0.5, 0.5}</string>
+ <string>{0.5, 0.5}</string>
+ </array>
+ </dict>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.898039</string>
+ <key>g</key>
+ <string>0.709804</string>
+ <key>r</key>
+ <string>0.2</string>
+ </dict>
+ </dict>
+ <key>shadow</key>
+ <dict>
+ <key>Fuzziness</key>
+ <real>6.559971809387207</real>
+ <key>ShadowVector</key>
+ <string>{1, 1}</string>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ </dict>
+ <key>VFlip</key>
+ <string>YES</string>
+ </dict>
+ </array>
+ <key>HFlip</key>
+ <string>YES</string>
+ <key>ID</key>
+ <integer>265</integer>
+ <key>Layer</key>
+ <integer>1</integer>
+ <key>VFlip</key>
+ <string>YES</string>
+ </dict>
+ <dict>
+ <key>Class</key>
+ <string>Group</string>
+ <key>Graphics</key>
+ <array>
+ <dict>
+ <key>Bounds</key>
+ <string>{{391.69015389164184, 123.94366571766557}, {39.000000000000007, 26.271913528442393}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>HFlip</key>
+ <string>YES</string>
+ <key>ID</key>
+ <integer>263</integer>
+ <key>Shape</key>
+ <string>Rectangle</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.898039</string>
+ <key>g</key>
+ <string>0.709804</string>
+ <key>r</key>
+ <string>0.2</string>
+ </dict>
+ </dict>
+ <key>shadow</key>
+ <dict>
+ <key>Fuzziness</key>
+ <real>6.559971809387207</real>
+ <key>ShadowVector</key>
+ <string>{1, 1}</string>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>CornerRadius</key>
+ <real>4</real>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>Text</key>
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1265
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs36 \cf1 6}</string>
+ </dict>
+ <key>VFlip</key>
+ <string>YES</string>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{407.2311074358243, 150.09124658002736}, {12.74318471799012, 11.874331160357771}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>HFlip</key>
+ <string>YES</string>
+ <key>ID</key>
+ <integer>264</integer>
+ <key>Shape</key>
+ <string>Bezier</string>
+ <key>ShapeData</key>
+ <dict>
+ <key>UnitPoints</key>
+ <array>
+ <string>{0.5, 0.5}</string>
+ <string>{0.5, 0.5}</string>
+ <string>{-0.5, -0.5}</string>
+ <string>{-0.5, -0.5}</string>
+ <string>{-0.5, -0.5}</string>
+ <string>{-0.5, 0.5}</string>
+ <string>{-0.5, 0.5}</string>
+ <string>{-0.5, 0.5}</string>
+ <string>{0.5, 0.5}</string>
+ </array>
+ </dict>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.898039</string>
+ <key>g</key>
+ <string>0.709804</string>
+ <key>r</key>
+ <string>0.2</string>
+ </dict>
+ </dict>
+ <key>shadow</key>
+ <dict>
+ <key>Fuzziness</key>
+ <real>6.559971809387207</real>
+ <key>ShadowVector</key>
+ <string>{1, 1}</string>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ </dict>
+ <key>VFlip</key>
+ <string>YES</string>
+ </dict>
+ </array>
+ <key>HFlip</key>
+ <string>YES</string>
+ <key>ID</key>
+ <integer>262</integer>
+ <key>Layer</key>
+ <integer>1</integer>
+ <key>VFlip</key>
+ <string>YES</string>
+ </dict>
+ <dict>
+ <key>Class</key>
+ <string>Group</string>
+ <key>Graphics</key>
+ <array>
+ <dict>
+ <key>Bounds</key>
+ <string>{{450.8726169276494, 218.13094531464776}, {39.000000000000007, 26.271913528442397}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>ID</key>
+ <integer>260</integer>
+ <key>Shape</key>
+ <string>Rectangle</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.898039</string>
+ <key>g</key>
+ <string>0.709804</string>
+ <key>r</key>
+ <string>0.2</string>
+ </dict>
+ </dict>
+ <key>shadow</key>
+ <dict>
+ <key>Fuzziness</key>
+ <real>6.559971809387207</real>
+ <key>ShadowVector</key>
+ <string>{1, 1}</string>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>CornerRadius</key>
+ <real>4</real>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>Text</key>
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1265
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs36 \cf1 7}</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{461.58847866547882, 206.38094682037035}, {12.743184717990125, 11.874331160357764}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>ID</key>
+ <integer>261</integer>
+ <key>Shape</key>
+ <string>Bezier</string>
+ <key>ShapeData</key>
+ <dict>
+ <key>UnitPoints</key>
+ <array>
+ <string>{0.5, 0.5}</string>
+ <string>{0.5, 0.5}</string>
+ <string>{-0.5, -0.5}</string>
+ <string>{-0.5, -0.5}</string>
+ <string>{-0.5, -0.5}</string>
+ <string>{-0.5, 0.5}</string>
+ <string>{-0.5, 0.5}</string>
+ <string>{-0.5, 0.5}</string>
+ <string>{0.5, 0.5}</string>
+ </array>
+ </dict>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.898039</string>
+ <key>g</key>
+ <string>0.709804</string>
+ <key>r</key>
+ <string>0.2</string>
+ </dict>
+ </dict>
+ <key>shadow</key>
+ <dict>
+ <key>Fuzziness</key>
+ <real>6.559971809387207</real>
+ <key>ShadowVector</key>
+ <string>{1, 1}</string>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ </dict>
+ </dict>
+ </array>
+ <key>ID</key>
+ <integer>259</integer>
+ <key>Layer</key>
+ <integer>1</integer>
+ </dict>
+ <dict>
+ <key>Class</key>
+ <string>Group</string>
+ <key>Graphics</key>
+ <array>
+ <dict>
+ <key>Bounds</key>
+ <string>{{408.19367815071467, 250.48240007546275}, {39.000000000000007, 26.271913528442397}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>ID</key>
+ <integer>257</integer>
+ <key>Shape</key>
+ <string>Rectangle</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.898039</string>
+ <key>g</key>
+ <string>0.709804</string>
+ <key>r</key>
+ <string>0.2</string>
+ </dict>
+ </dict>
+ <key>shadow</key>
+ <dict>
+ <key>Fuzziness</key>
+ <real>6.559971809387207</real>
+ <key>ShadowVector</key>
+ <string>{1, 1}</string>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>CornerRadius</key>
+ <real>4</real>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>Text</key>
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1265
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs36 \cf1 5}</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{418.90953988854409, 238.73240158118534}, {12.743184717990125, 11.874331160357764}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>ID</key>
+ <integer>258</integer>
+ <key>Shape</key>
+ <string>Bezier</string>
+ <key>ShapeData</key>
+ <dict>
+ <key>UnitPoints</key>
+ <array>
+ <string>{0.5, 0.5}</string>
+ <string>{0.5, 0.5}</string>
+ <string>{-0.5, -0.5}</string>
+ <string>{-0.5, -0.5}</string>
+ <string>{-0.5, -0.5}</string>
+ <string>{-0.5, 0.5}</string>
+ <string>{-0.5, 0.5}</string>
+ <string>{-0.5, 0.5}</string>
+ <string>{0.5, 0.5}</string>
+ </array>
+ </dict>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.898039</string>
+ <key>g</key>
+ <string>0.709804</string>
+ <key>r</key>
+ <string>0.2</string>
+ </dict>
+ </dict>
+ <key>shadow</key>
+ <dict>
+ <key>Fuzziness</key>
+ <real>6.559971809387207</real>
+ <key>ShadowVector</key>
+ <string>{1, 1}</string>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ </dict>
+ </dict>
+ </array>
+ <key>ID</key>
+ <integer>256</integer>
+ <key>Layer</key>
+ <integer>1</integer>
+ </dict>
+ <dict>
+ <key>Class</key>
+ <string>Group</string>
+ <key>Graphics</key>
+ <array>
+ <dict>
+ <key>Bounds</key>
+ <string>{{177.5007049887455, 155.402868593243}, {39, 26.271913528442383}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>ID</key>
+ <integer>248</integer>
+ <key>Shape</key>
+ <string>Rectangle</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.898039</string>
+ <key>g</key>
+ <string>0.709804</string>
+ <key>r</key>
+ <string>0.2</string>
+ </dict>
+ </dict>
+ <key>shadow</key>
+ <dict>
+ <key>Fuzziness</key>
+ <real>6.559971809387207</real>
+ <key>ShadowVector</key>
+ <string>{1, 1}</string>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>CornerRadius</key>
+ <real>4</real>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>Text</key>
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1265
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs36 \cf1 1}</string>
+ </dict>
+ <key>VFlip</key>
+ <string>YES</string>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{188.21656672657295, 181.55044945560479}, {12.743184717990118, 11.874331160357769}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>ID</key>
+ <integer>249</integer>
+ <key>Shape</key>
+ <string>Bezier</string>
+ <key>ShapeData</key>
+ <dict>
+ <key>UnitPoints</key>
+ <array>
+ <string>{0.5, 0.5}</string>
+ <string>{0.5, 0.5}</string>
+ <string>{-0.5, -0.5}</string>
+ <string>{-0.5, -0.5}</string>
+ <string>{-0.5, -0.5}</string>
+ <string>{-0.5, 0.5}</string>
+ <string>{-0.5, 0.5}</string>
+ <string>{-0.5, 0.5}</string>
+ <string>{0.5, 0.5}</string>
+ </array>
+ </dict>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.898039</string>
+ <key>g</key>
+ <string>0.709804</string>
+ <key>r</key>
+ <string>0.2</string>
+ </dict>
+ </dict>
+ <key>shadow</key>
+ <dict>
+ <key>Fuzziness</key>
+ <real>6.559971809387207</real>
+ <key>ShadowVector</key>
+ <string>{1, 1}</string>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ </dict>
+ <key>VFlip</key>
+ <string>YES</string>
+ </dict>
+ </array>
+ <key>ID</key>
+ <integer>247</integer>
+ <key>Layer</key>
+ <integer>1</integer>
+ <key>VFlip</key>
+ <string>YES</string>
+ </dict>
+ <dict>
+ <key>Class</key>
+ <string>Group</string>
+ <key>Graphics</key>
+ <array>
+ <dict>
+ <key>Bounds</key>
+ <string>{{1033.9784545898438, 270.88415416934021}, {39.000000000000007, 26.271913528442397}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>ID</key>
+ <integer>245</integer>
+ <key>Shape</key>
+ <string>Rectangle</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.898039</string>
+ <key>g</key>
+ <string>0.709804</string>
+ <key>r</key>
+ <string>0.2</string>
+ </dict>
+ </dict>
+ <key>shadow</key>
+ <dict>
+ <key>Fuzziness</key>
+ <real>6.559971809387207</real>
+ <key>ShadowVector</key>
+ <string>{1, 1}</string>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>CornerRadius</key>
+ <real>4</real>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>Text</key>
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1265
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs36 \cf1 11}</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{1044.6943163276731, 259.1341556750628}, {12.743184717990125, 11.874331160357764}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>ID</key>
+ <integer>246</integer>
+ <key>Shape</key>
+ <string>Bezier</string>
+ <key>ShapeData</key>
+ <dict>
+ <key>UnitPoints</key>
+ <array>
+ <string>{0.5, 0.5}</string>
+ <string>{0.5, 0.5}</string>
+ <string>{-0.5, -0.5}</string>
+ <string>{-0.5, -0.5}</string>
+ <string>{-0.5, -0.5}</string>
+ <string>{-0.5, 0.5}</string>
+ <string>{-0.5, 0.5}</string>
+ <string>{-0.5, 0.5}</string>
+ <string>{0.5, 0.5}</string>
+ </array>
+ </dict>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.898039</string>
+ <key>g</key>
+ <string>0.709804</string>
+ <key>r</key>
+ <string>0.2</string>
+ </dict>
+ </dict>
+ <key>shadow</key>
+ <dict>
+ <key>Fuzziness</key>
+ <real>6.559971809387207</real>
+ <key>ShadowVector</key>
+ <string>{1, 1}</string>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ </dict>
+ </dict>
+ </array>
+ <key>ID</key>
+ <integer>244</integer>
+ <key>Layer</key>
+ <integer>1</integer>
+ </dict>
+ <dict>
+ <key>Class</key>
+ <string>Group</string>
+ <key>Graphics</key>
+ <array>
+ <dict>
+ <key>Bounds</key>
+ <string>{{963.48967113392712, 314.58124191062183}, {39.000000000000021, 26.271913528442411}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>HFlip</key>
+ <string>YES</string>
+ <key>ID</key>
+ <integer>242</integer>
+ <key>Shape</key>
+ <string>Rectangle</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.898039</string>
+ <key>g</key>
+ <string>0.709804</string>
+ <key>r</key>
+ <string>0.2</string>
+ </dict>
+ </dict>
+ <key>shadow</key>
+ <dict>
+ <key>Fuzziness</key>
+ <real>6.559971809387207</real>
+ <key>ShadowVector</key>
+ <string>{1, 1}</string>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>CornerRadius</key>
+ <real>4</real>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>Text</key>
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1265
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs36 \cf1 10}</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{979.03062467810946, 302.83124341634465}, {12.743184717990129, 11.874331160357775}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>HFlip</key>
+ <string>YES</string>
+ <key>ID</key>
+ <integer>243</integer>
+ <key>Shape</key>
+ <string>Bezier</string>
+ <key>ShapeData</key>
+ <dict>
+ <key>UnitPoints</key>
+ <array>
+ <string>{0.5, 0.5}</string>
+ <string>{0.5, 0.5}</string>
+ <string>{-0.5, -0.5}</string>
+ <string>{-0.5, -0.5}</string>
+ <string>{-0.5, -0.5}</string>
+ <string>{-0.5, 0.5}</string>
+ <string>{-0.5, 0.5}</string>
+ <string>{-0.5, 0.5}</string>
+ <string>{0.5, 0.5}</string>
+ </array>
+ </dict>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.898039</string>
+ <key>g</key>
+ <string>0.709804</string>
+ <key>r</key>
+ <string>0.2</string>
+ </dict>
+ </dict>
+ <key>shadow</key>
+ <dict>
+ <key>Fuzziness</key>
+ <real>6.559971809387207</real>
+ <key>ShadowVector</key>
+ <string>{1, 1}</string>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ </dict>
+ </dict>
+ </array>
+ <key>HFlip</key>
+ <string>YES</string>
+ <key>ID</key>
+ <integer>241</integer>
+ <key>Layer</key>
+ <integer>1</integer>
+ </dict>
+ <dict>
+ <key>Class</key>
+ <string>Group</string>
+ <key>Graphics</key>
+ <array>
+ <dict>
+ <key>Bounds</key>
+ <string>{{692.25354204809798, 314.58123668887146}, {39.000000000000007, 26.271913528442397}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>ID</key>
+ <integer>53</integer>
+ <key>Shape</key>
+ <string>Rectangle</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.898039</string>
+ <key>g</key>
+ <string>0.709804</string>
+ <key>r</key>
+ <string>0.2</string>
+ </dict>
+ </dict>
+ <key>shadow</key>
+ <dict>
+ <key>Fuzziness</key>
+ <real>6.559971809387207</real>
+ <key>ShadowVector</key>
+ <string>{1, 1}</string>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>CornerRadius</key>
+ <real>4</real>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>Text</key>
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1265
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs36 \cf1 9}</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{702.9694037859274, 302.83123819459405}, {12.743184717990125, 11.874331160357764}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>ID</key>
+ <integer>54</integer>
+ <key>Shape</key>
+ <string>Bezier</string>
+ <key>ShapeData</key>
+ <dict>
+ <key>UnitPoints</key>
+ <array>
+ <string>{0.5, 0.5}</string>
+ <string>{0.5, 0.5}</string>
+ <string>{-0.5, -0.5}</string>
+ <string>{-0.5, -0.5}</string>
+ <string>{-0.5, -0.5}</string>
+ <string>{-0.5, 0.5}</string>
+ <string>{-0.5, 0.5}</string>
+ <string>{-0.5, 0.5}</string>
+ <string>{0.5, 0.5}</string>
+ </array>
+ </dict>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.898039</string>
+ <key>g</key>
+ <string>0.709804</string>
+ <key>r</key>
+ <string>0.2</string>
+ </dict>
+ </dict>
+ <key>shadow</key>
+ <dict>
+ <key>Fuzziness</key>
+ <real>6.559971809387207</real>
+ <key>ShadowVector</key>
+ <string>{1, 1}</string>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ </dict>
+ </dict>
+ </array>
+ <key>ID</key>
+ <integer>52</integer>
+ <key>Layer</key>
+ <integer>1</integer>
+ </dict>
+ <dict>
+ <key>Class</key>
+ <string>Group</string>
+ <key>Graphics</key>
+ <array>
+ <dict>
+ <key>Bounds</key>
+ <string>{{629.80290222167969, 270.8841541693406}, {39.000000000000021, 26.271913528442411}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>HFlip</key>
+ <string>YES</string>
+ <key>ID</key>
+ <integer>233</integer>
+ <key>Shape</key>
+ <string>Rectangle</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.898039</string>
+ <key>g</key>
+ <string>0.709804</string>
+ <key>r</key>
+ <string>0.2</string>
+ </dict>
+ </dict>
+ <key>shadow</key>
+ <dict>
+ <key>Fuzziness</key>
+ <real>6.559971809387207</real>
+ <key>ShadowVector</key>
+ <string>{1, 1}</string>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>CornerRadius</key>
+ <real>4</real>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>Text</key>
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1265
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs36 \cf1 8}</string>
+ </dict>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{645.34385576586203, 259.13415567506343}, {12.743184717990129, 11.874331160357775}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>HFlip</key>
+ <string>YES</string>
+ <key>ID</key>
+ <integer>234</integer>
+ <key>Shape</key>
+ <string>Bezier</string>
+ <key>ShapeData</key>
+ <dict>
+ <key>UnitPoints</key>
+ <array>
+ <string>{0.5, 0.5}</string>
+ <string>{0.5, 0.5}</string>
+ <string>{-0.5, -0.5}</string>
+ <string>{-0.5, -0.5}</string>
+ <string>{-0.5, -0.5}</string>
+ <string>{-0.5, 0.5}</string>
+ <string>{-0.5, 0.5}</string>
+ <string>{-0.5, 0.5}</string>
+ <string>{0.5, 0.5}</string>
+ </array>
+ </dict>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.898039</string>
+ <key>g</key>
+ <string>0.709804</string>
+ <key>r</key>
+ <string>0.2</string>
+ </dict>
+ </dict>
+ <key>shadow</key>
+ <dict>
+ <key>Fuzziness</key>
+ <real>6.559971809387207</real>
+ <key>ShadowVector</key>
+ <string>{1, 1}</string>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ </dict>
+ </dict>
+ </array>
+ <key>HFlip</key>
+ <string>YES</string>
+ <key>ID</key>
+ <integer>232</integer>
+ <key>Layer</key>
+ <integer>1</integer>
+ </dict>
+ <dict>
+ <key>Class</key>
+ <string>Group</string>
+ <key>Graphics</key>
+ <array>
+ <dict>
+ <key>Bounds</key>
+ <string>{{307.48943270607771, 230.98592247383127}, {39.000000000000007, 26.271913528442393}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>HFlip</key>
+ <string>YES</string>
+ <key>ID</key>
+ <integer>224</integer>
+ <key>Shape</key>
+ <string>Rectangle</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.898039</string>
+ <key>g</key>
+ <string>0.709804</string>
+ <key>r</key>
+ <string>0.2</string>
+ </dict>
+ </dict>
+ <key>shadow</key>
+ <dict>
+ <key>Fuzziness</key>
+ <real>6.559971809387207</real>
+ <key>ShadowVector</key>
+ <string>{1, 1}</string>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>CornerRadius</key>
+ <real>4</real>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>Text</key>
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1265
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs36 \cf1 3}</string>
+ </dict>
+ <key>VFlip</key>
+ <string>YES</string>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{323.03038625026016, 257.13350333619303}, {12.74318471799012, 11.874331160357771}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>HFlip</key>
+ <string>YES</string>
+ <key>ID</key>
+ <integer>225</integer>
+ <key>Shape</key>
+ <string>Bezier</string>
+ <key>ShapeData</key>
+ <dict>
+ <key>UnitPoints</key>
+ <array>
+ <string>{0.5, 0.5}</string>
+ <string>{0.5, 0.5}</string>
+ <string>{-0.5, -0.5}</string>
+ <string>{-0.5, -0.5}</string>
+ <string>{-0.5, -0.5}</string>
+ <string>{-0.5, 0.5}</string>
+ <string>{-0.5, 0.5}</string>
+ <string>{-0.5, 0.5}</string>
+ <string>{0.5, 0.5}</string>
+ </array>
+ </dict>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.898039</string>
+ <key>g</key>
+ <string>0.709804</string>
+ <key>r</key>
+ <string>0.2</string>
+ </dict>
+ </dict>
+ <key>shadow</key>
+ <dict>
+ <key>Fuzziness</key>
+ <real>6.559971809387207</real>
+ <key>ShadowVector</key>
+ <string>{1, 1}</string>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ </dict>
+ <key>VFlip</key>
+ <string>YES</string>
+ </dict>
+ </array>
+ <key>HFlip</key>
+ <string>YES</string>
+ <key>ID</key>
+ <integer>223</integer>
+ <key>Layer</key>
+ <integer>1</integer>
+ <key>VFlip</key>
+ <string>YES</string>
+ </dict>
+ <dict>
+ <key>Class</key>
+ <string>Group</string>
+ <key>Graphics</key>
+ <array>
+ <dict>
+ <key>Bounds</key>
+ <string>{{219.01409112610222, 230.98592247383127}, {39, 26.271913528442383}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>ID</key>
+ <integer>44</integer>
+ <key>Shape</key>
+ <string>Rectangle</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.898039</string>
+ <key>g</key>
+ <string>0.709804</string>
+ <key>r</key>
+ <string>0.2</string>
+ </dict>
+ </dict>
+ <key>shadow</key>
+ <dict>
+ <key>Fuzziness</key>
+ <real>6.559971809387207</real>
+ <key>ShadowVector</key>
+ <string>{1, 1}</string>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>CornerRadius</key>
+ <real>4</real>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>Text</key>
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1265
+\cocoascreenfonts1{\fonttbl\f0\fswiss\fcharset0 Helvetica;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs36 \cf1 2}</string>
+ </dict>
+ <key>VFlip</key>
+ <string>YES</string>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{229.7299528639297, 257.13350333619303}, {12.743184717990118, 11.874331160357769}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>ID</key>
+ <integer>45</integer>
+ <key>Shape</key>
+ <string>Bezier</string>
+ <key>ShapeData</key>
+ <dict>
+ <key>UnitPoints</key>
+ <array>
+ <string>{0.5, 0.5}</string>
+ <string>{0.5, 0.5}</string>
+ <string>{-0.5, -0.5}</string>
+ <string>{-0.5, -0.5}</string>
+ <string>{-0.5, -0.5}</string>
+ <string>{-0.5, 0.5}</string>
+ <string>{-0.5, 0.5}</string>
+ <string>{-0.5, 0.5}</string>
+ <string>{0.5, 0.5}</string>
+ </array>
+ </dict>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Color</key>
+ <dict>
+ <key>b</key>
+ <string>0.898039</string>
+ <key>g</key>
+ <string>0.709804</string>
+ <key>r</key>
+ <string>0.2</string>
+ </dict>
+ </dict>
+ <key>shadow</key>
+ <dict>
+ <key>Fuzziness</key>
+ <real>6.559971809387207</real>
+ <key>ShadowVector</key>
+ <string>{1, 1}</string>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ </dict>
+ <key>VFlip</key>
+ <string>YES</string>
+ </dict>
+ </array>
+ <key>ID</key>
+ <integer>43</integer>
+ <key>Layer</key>
+ <integer>1</integer>
+ <key>VFlip</key>
+ <string>YES</string>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{242.99996945271255, 45.774649604258862}, {93, 26}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>FitText</key>
+ <string>YES</string>
+ <key>Flow</key>
+ <string>Resize</string>
+ <key>ID</key>
+ <integer>208</integer>
+ <key>Layer</key>
+ <integer>1</integer>
+ <key>Shape</key>
+ <string>Rectangle</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ <key>shadow</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>Pad</key>
+ <integer>0</integer>
+ <key>Text</key>
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1265
+\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset0 OpenSans;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs36 \cf0 Front View }</string>
+ <key>VerticalPad</key>
+ <integer>0</integer>
+ </dict>
+ <key>Wrap</key>
+ <string>NO</string>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{809.73941206158747, 45.774649604259338}, {79, 26}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>FitText</key>
+ <string>YES</string>
+ <key>Flow</key>
+ <string>Resize</string>
+ <key>ID</key>
+ <integer>139</integer>
+ <key>Layer</key>
+ <integer>1</integer>
+ <key>Shape</key>
+ <string>Rectangle</string>
+ <key>Style</key>
+ <dict>
+ <key>fill</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ <key>shadow</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ <key>stroke</key>
+ <dict>
+ <key>Draws</key>
+ <string>NO</string>
+ </dict>
+ </dict>
+ <key>Text</key>
+ <dict>
+ <key>Pad</key>
+ <integer>0</integer>
+ <key>Text</key>
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1265
+\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset0 OpenSans;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs36 \cf0 Top View }</string>
+ <key>VerticalPad</key>
+ <integer>0</integer>
+ </dict>
+ <key>Wrap</key>
+ <string>NO</string>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{978.23938675601653, 264.33125182518802}, {34, 38.5}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>ID</key>
+ <integer>130</integer>
+ <key>Layer</key>
+ <integer>1</integer>
+ <key>Shape</key>
+ <string>Rectangle</string>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{687.23938675601585, 262.87654182518804}, {34, 38.5}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>ID</key>
+ <integer>1</integer>
+ <key>Layer</key>
+ <integer>1</integer>
+ <key>Shape</key>
+ <string>Rectangle</string>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{942.59531675601613, 226.37654182518816}, {125.28812000000001, 30.5}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>HFlip</key>
+ <string>YES</string>
+ <key>ID</key>
+ <integer>129</integer>
+ <key>Layer</key>
+ <integer>1</integer>
+ <key>Shape</key>
+ <string>A5792564-7BB8-4CC5-9068-338E366F4CDF-643-000123FA94AC0471</string>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{630.95126275601592, 226.37654182518816}, {125.28812000000001, 30.5}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>ID</key>
+ <integer>128</integer>
+ <key>Layer</key>
+ <integer>1</integer>
+ <key>Shape</key>
+ <string>A5792564-7BB8-4CC5-9068-338E366F4CDF-643-000123FA94AC0471</string>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{879.23938675601585, 198.76546182518825}, {51, 17.611084000000002}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>ID</key>
+ <integer>118</integer>
+ <key>Layer</key>
+ <integer>1</integer>
+ <key>Shape</key>
+ <string>C23360B7-896D-4E43-821E-E438291A4B42-643-000123B31059F14D</string>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{765.23938675601585, 198.76546182518825}, {51, 17.611084000000002}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>ID</key>
+ <integer>117</integer>
+ <key>Layer</key>
+ <integer>1</integer>
+ <key>Shape</key>
+ <string>C23360B7-896D-4E43-821E-E438291A4B42-643-000123B31059F14D</string>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{641.73978375601587, 216.37654182518816}, {416.99918000000002, 97}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>ID</key>
+ <integer>113</integer>
+ <key>Layer</key>
+ <integer>1</integer>
+ <key>Shape</key>
+ <string>47D48890-EFFB-40D4-9B16-B837B487F35B-643-000123949D248202</string>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{946.47890184399159, 205.37654838106059}, {87, 11}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>ID</key>
+ <integer>125</integer>
+ <key>Layer</key>
+ <integer>1</integer>
+ <key>Shape</key>
+ <string>Rectangle</string>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{723.23945847751429, 205.37654182518818}, {24.522554, 11}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>ID</key>
+ <integer>124</integer>
+ <key>Layer</key>
+ <integer>1</integer>
+ <key>Shape</key>
+ <string>F1E2180B-1353-44D7-847D-FBDA9B734CEF-643-000123C8E8BEFFA9</string>
+ <key>Style</key>
+ <dict/>
+ <key>Text</key>
+ <dict>
+ <key>VerticalPad</key>
+ <integer>0</integer>
+ </dict>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{667.73098603906249, 205.37654008460478}, {24.522554, 11}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>ID</key>
+ <integer>123</integer>
+ <key>Layer</key>
+ <integer>1</integer>
+ <key>Shape</key>
+ <string>F1E2180B-1353-44D7-847D-FBDA9B734CEF-643-000123C8E8BEFFA9</string>
+ <key>Style</key>
+ <dict/>
+ <key>Text</key>
+ <dict>
+ <key>VerticalPad</key>
+ <integer>0</integer>
+ </dict>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{692.25351727169038, 203.33122213769531}, {28.981200999999999, 13.045318999999999}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>ID</key>
+ <integer>122</integer>
+ <key>Layer</key>
+ <integer>1</integer>
+ <key>Shape</key>
+ <string>F1E2180B-1353-44D7-847D-FBDA9B734CEF-643-000123C8E8BEFFA9</string>
+ <key>Style</key>
+ <dict/>
+ <key>Text</key>
+ <dict>
+ <key>VerticalPad</key>
+ <integer>0</integer>
+ </dict>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{408.19366000000002, 212.95468}, {29.113309999999998, 28.843737000000001}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>FontInfo</key>
+ <dict>
+ <key>Font</key>
+ <string>Helvetica</string>
+ <key>Size</key>
+ <real>12</real>
+ </dict>
+ <key>ID</key>
+ <integer>69</integer>
+ <key>Layer</key>
+ <integer>2</integer>
+ <key>Shape</key>
+ <string>Circle</string>
+ <key>Style</key>
+ <dict/>
+ <key>Text</key>
+ <dict>
+ <key>Text</key>
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1265
+\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset0 OpenSans-Light;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs24 \cf0 A}</string>
+ <key>VerticalPad</key>
+ <integer>0</integer>
+ </dict>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{438.13702000000001, 185.56351000000001}, {29.113309999999998, 28.843737000000001}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>ID</key>
+ <integer>70</integer>
+ <key>Layer</key>
+ <integer>2</integer>
+ <key>Shape</key>
+ <string>Circle</string>
+ <key>Style</key>
+ <dict/>
+ <key>Text</key>
+ <dict>
+ <key>Text</key>
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1265
+\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset0 OpenSans;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs24 \cf0 B}</string>
+ <key>VerticalPad</key>
+ <integer>0</integer>
+ </dict>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{378.25031000000001, 185.56351000000001}, {29.113309999999998, 28.843737000000001}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>FontInfo</key>
+ <dict>
+ <key>Font</key>
+ <string>Helvetica</string>
+ <key>Size</key>
+ <real>12</real>
+ </dict>
+ <key>ID</key>
+ <integer>71</integer>
+ <key>Layer</key>
+ <integer>2</integer>
+ <key>Shape</key>
+ <string>Circle</string>
+ <key>Style</key>
+ <dict/>
+ <key>Text</key>
+ <dict>
+ <key>Text</key>
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1265
+\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset0 OpenSans;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs24 \cf0 X}</string>
+ <key>VerticalPad</key>
+ <integer>0</integer>
+ </dict>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{408.19366000000002, 157.75729000000001}, {29.113309999999998, 28.843737000000001}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>ID</key>
+ <integer>72</integer>
+ <key>Layer</key>
+ <integer>2</integer>
+ <key>Shape</key>
+ <string>Circle</string>
+ <key>Style</key>
+ <dict/>
+ <key>Text</key>
+ <dict>
+ <key>Text</key>
+ <string>{\rtf1\ansi\ansicpg1252\cocoartf1265
+\cocoascreenfonts1{\fonttbl\f0\fnil\fcharset0 OpenSans;}
+{\colortbl;\red255\green255\blue255;}
+\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\pardirnatural\qc
+
+\f0\fs24 \cf0 Y}</string>
+ <key>VerticalPad</key>
+ <integer>0</integer>
+ </dict>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{320.50031000000001, 258.40285999999998}, {54, 53.5}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>ID</key>
+ <integer>73</integer>
+ <key>Layer</key>
+ <integer>2</integer>
+ <key>Shape</key>
+ <string>Circle</string>
+ <key>Style</key>
+ <dict/>
+ <key>Text</key>
+ <dict>
+ <key>VerticalPad</key>
+ <integer>0</integer>
+ </dict>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{108.50031, 155.40286}, {89, 89}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>ID</key>
+ <integer>74</integer>
+ <key>Layer</key>
+ <integer>2</integer>
+ <key>Shape</key>
+ <string>3183FE08-E827-4DFB-B09C-26BEBDBFE644-643-00011FC72A7BAF86</string>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{201.00031000000001, 258.40285999999998}, {54, 53.5}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>ID</key>
+ <integer>75</integer>
+ <key>Layer</key>
+ <integer>2</integer>
+ <key>Shape</key>
+ <string>Circle</string>
+ <key>Style</key>
+ <dict/>
+ <key>Text</key>
+ <dict>
+ <key>VerticalPad</key>
+ <integer>0</integer>
+ </dict>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{82.500366, 105.36841}, {414.99921000000001, 273.53435999999999}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>ID</key>
+ <integer>76</integer>
+ <key>Layer</key>
+ <integer>2</integer>
+ <key>Shape</key>
+ <string>1ECB1682-27C7-4AA3-B9D7-C873C7E35CC3-643-0001204E86C9927B</string>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{359.61246, 96.000022999999999}, {112.00001, 48.902847000000001}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>HFlip</key>
+ <string>YES</string>
+ <key>ID</key>
+ <integer>77</integer>
+ <key>Layer</key>
+ <integer>2</integer>
+ <key>Shape</key>
+ <string>Bezier</string>
+ <key>ShapeData</key>
+ <dict>
+ <key>UnitPoints</key>
+ <array>
+ <string>{0.49998891000000001, 0.34931803}</string>
+ <string>{0.50055384999999997, 0.13154410999999999}</string>
+ <string>{0.47943342, -0.11570501}</string>
+ <string>{0.42939042999999999, -0.25299692000000001}</string>
+ <string>{0.36383854999999998, -0.43283796000000002}</string>
+ <string>{0.016128421, -0.66722440999999999}</string>
+ <string>{-0.19835973000000001, -0.32486677000000003}</string>
+ <string>{-0.35491191999999999, -0.074985503999999994}</string>
+ <string>{-0.44506912999999998, 0.26552963000000002}</string>
+ <string>{-0.49746638999999998, 0.43138074999999998}</string>
+ <string>{-0.55840153000000003, 0.62424135000000003}</string>
+ <string>{0.49998891000000001, 0.34931803}</string>
+ </array>
+ </dict>
+ </dict>
+ <dict>
+ <key>Bounds</key>
+ <string>{{104.50069000000001, 96.368431000000001}, {112.00001, 48.902847000000001}}</string>
+ <key>Class</key>
+ <string>ShapedGraphic</string>
+ <key>ID</key>
+ <integer>78</integer>
+ <key>Layer</key>
+ <integer>2</integer>
+ <key>Shape</key>
+ <string>Bezier</string>
+ <key>ShapeData</key>
+ <dict>
+ <key>UnitPoints</key>
+ <array>
+ <string>{0.49998891000000001, 0.34931803}</string>
+ <string>{0.50055384999999997, 0.13154410999999999}</string>
+ <string>{0.47943342, -0.11570501}</string>
+ <string>{0.42939042999999999, -0.25299692000000001}</string>
+ <string>{0.36383854999999998, -0.43283796000000002}</string>
+ <string>{0.016128421, -0.66722440999999999}</string>
+ <string>{-0.19835973000000001, -0.32486677000000003}</string>
+ <string>{-0.35491191999999999, -0.074985503999999994}</string>
+ <string>{-0.44506912999999998, 0.26552963000000002}</string>
+ <string>{-0.49746638999999998, 0.43138074999999998}</string>
+ <string>{-0.55840153000000003, 0.62424135000000003}</string>
+ <string>{0.49998891000000001, 0.34931803}</string>
+ </array>
+ </dict>
+ </dict>
+ </array>
+ <key>GridInfo</key>
+ <dict>
+ <key>ShowsGrid</key>
+ <string>YES</string>
+ </dict>
+ <key>GuidesLocked</key>
+ <string>NO</string>
+ <key>GuidesVisible</key>
+ <string>YES</string>
+ <key>HPages</key>
+ <integer>2</integer>
+ <key>ImageCounter</key>
+ <integer>3</integer>
+ <key>KeepToScale</key>
+ <false/>
+ <key>Layers</key>
+ <array>
+ <dict>
+ <key>Lock</key>
+ <string>NO</string>
+ <key>Name</key>
+ <string>Layer 3</string>
+ <key>Print</key>
+ <string>YES</string>
+ <key>View</key>
+ <string>YES</string>
+ </dict>
+ <dict>
+ <key>Lock</key>
+ <string>NO</string>
+ <key>Name</key>
+ <string>Layer 2</string>
+ <key>Print</key>
+ <string>YES</string>
+ <key>View</key>
+ <string>YES</string>
+ </dict>
+ <dict>
+ <key>Lock</key>
+ <string>NO</string>
+ <key>Name</key>
+ <string>Layer 1</string>
+ <key>Print</key>
+ <string>YES</string>
+ <key>View</key>
+ <string>YES</string>
+ </dict>
+ </array>
+ <key>LayoutInfo</key>
+ <dict>
+ <key>Animate</key>
+ <string>NO</string>
+ <key>circoMinDist</key>
+ <real>18</real>
+ <key>circoSeparation</key>
+ <real>0.0</real>
+ <key>layoutEngine</key>
+ <string>dot</string>
+ <key>neatoSeparation</key>
+ <real>0.0</real>
+ <key>twopiSeparation</key>
+ <real>0.0</real>
+ </dict>
+ <key>LinksVisible</key>
+ <string>NO</string>
+ <key>MagnetsVisible</key>
+ <string>NO</string>
+ <key>MasterSheets</key>
+ <array/>
+ <key>ModificationDate</key>
+ <string>2014-01-22 02:45:32 +0000</string>
+ <key>Modifier</key>
+ <string>Quddus Chong</string>
+ <key>NotesVisible</key>
+ <string>NO</string>
+ <key>Orientation</key>
+ <integer>2</integer>
+ <key>OriginVisible</key>
+ <string>NO</string>
+ <key>PageBreaks</key>
+ <string>YES</string>
+ <key>PrintInfo</key>
+ <dict>
+ <key>NSBottomMargin</key>
+ <array>
+ <string>float</string>
+ <string>41</string>
+ </array>
+ <key>NSHorizonalPagination</key>
+ <array>
+ <string>int</string>
+ <string>0</string>
+ </array>
+ <key>NSLeftMargin</key>
+ <array>
+ <string>float</string>
+ <string>18</string>
+ </array>
+ <key>NSPaperSize</key>
+ <array>
+ <string>size</string>
+ <string>{612, 792}</string>
+ </array>
+ <key>NSPrintReverseOrientation</key>
+ <array>
+ <string>int</string>
+ <string>0</string>
+ </array>
+ <key>NSRightMargin</key>
+ <array>
+ <string>float</string>
+ <string>18</string>
+ </array>
+ <key>NSTopMargin</key>
+ <array>
+ <string>float</string>
+ <string>18</string>
+ </array>
+ </dict>
+ <key>PrintOnePage</key>
+ <false/>
+ <key>ReadOnly</key>
+ <string>NO</string>
+ <key>RowAlign</key>
+ <integer>1</integer>
+ <key>RowSpacing</key>
+ <real>36</real>
+ <key>SheetTitle</key>
+ <string>Canvas 1</string>
+ <key>SmartAlignmentGuidesActive</key>
+ <string>YES</string>
+ <key>SmartDistanceGuidesActive</key>
+ <string>YES</string>
+ <key>UniqueID</key>
+ <integer>1</integer>
+ <key>UseEntirePage</key>
+ <false/>
+ <key>VPages</key>
+ <integer>1</integer>
+ <key>WindowInfo</key>
+ <dict>
+ <key>CurrentSheet</key>
+ <integer>0</integer>
+ <key>ExpandedCanvases</key>
+ <array>
+ <dict>
+ <key>name</key>
+ <string>Canvas 1</string>
+ </dict>
+ </array>
+ <key>Frame</key>
+ <string>{{4, 67}, {1436, 769}}</string>
+ <key>ListView</key>
+ <false/>
+ <key>OutlineWidth</key>
+ <integer>142</integer>
+ <key>RightSidebar</key>
+ <false/>
+ <key>ShowRuler</key>
+ <true/>
+ <key>Sidebar</key>
+ <false/>
+ <key>SidebarWidth</key>
+ <integer>120</integer>
+ <key>VisibleRegion</key>
+ <string>{{159.85915976085272, 0}, {991.54932574132454, 421.83099866410038}}</string>
+ <key>Zoom</key>
+ <real>1.4199999570846558</real>
+ <key>ZoomValues</key>
+ <array>
+ <array>
+ <string>Canvas 1</string>
+ <real>1.4199999570846558</real>
+ <real>0.70999997854232788</real>
+ </array>
+ </array>
+ </dict>
+</dict>
+</plist>
diff --git a/graphics/java/android/graphics/ColorMatrix.java b/graphics/java/android/graphics/ColorMatrix.java
index c22cda1..e3596c8 100644
--- a/graphics/java/android/graphics/ColorMatrix.java
+++ b/graphics/java/android/graphics/ColorMatrix.java
@@ -19,7 +19,7 @@
import android.util.FloatMath;
/**
- * 5x4 matrix for transforming the color+alpha components of a Bitmap.
+ * 4x5 matrix for transforming the color+alpha components of a Bitmap.
* The matrix is stored in a single array, and its treated as follows:
* [ a, b, c, d, e,
* f, g, h, i, j,
diff --git a/services/common_time/Android.mk b/libs/common_time/Android.mk
similarity index 100%
rename from services/common_time/Android.mk
rename to libs/common_time/Android.mk
diff --git a/services/common_time/clock_recovery.cpp b/libs/common_time/clock_recovery.cpp
similarity index 100%
rename from services/common_time/clock_recovery.cpp
rename to libs/common_time/clock_recovery.cpp
diff --git a/services/common_time/clock_recovery.h b/libs/common_time/clock_recovery.h
similarity index 100%
rename from services/common_time/clock_recovery.h
rename to libs/common_time/clock_recovery.h
diff --git a/services/common_time/common_clock.cpp b/libs/common_time/common_clock.cpp
similarity index 100%
rename from services/common_time/common_clock.cpp
rename to libs/common_time/common_clock.cpp
diff --git a/services/common_time/common_clock.h b/libs/common_time/common_clock.h
similarity index 100%
rename from services/common_time/common_clock.h
rename to libs/common_time/common_clock.h
diff --git a/services/common_time/common_clock_service.cpp b/libs/common_time/common_clock_service.cpp
similarity index 100%
rename from services/common_time/common_clock_service.cpp
rename to libs/common_time/common_clock_service.cpp
diff --git a/services/common_time/common_clock_service.h b/libs/common_time/common_clock_service.h
similarity index 100%
rename from services/common_time/common_clock_service.h
rename to libs/common_time/common_clock_service.h
diff --git a/services/common_time/common_time_config_service.cpp b/libs/common_time/common_time_config_service.cpp
similarity index 100%
rename from services/common_time/common_time_config_service.cpp
rename to libs/common_time/common_time_config_service.cpp
diff --git a/services/common_time/common_time_config_service.h b/libs/common_time/common_time_config_service.h
similarity index 100%
rename from services/common_time/common_time_config_service.h
rename to libs/common_time/common_time_config_service.h
diff --git a/services/common_time/common_time_server.cpp b/libs/common_time/common_time_server.cpp
similarity index 100%
rename from services/common_time/common_time_server.cpp
rename to libs/common_time/common_time_server.cpp
diff --git a/services/common_time/common_time_server.h b/libs/common_time/common_time_server.h
similarity index 100%
rename from services/common_time/common_time_server.h
rename to libs/common_time/common_time_server.h
diff --git a/services/common_time/common_time_server_api.cpp b/libs/common_time/common_time_server_api.cpp
similarity index 100%
rename from services/common_time/common_time_server_api.cpp
rename to libs/common_time/common_time_server_api.cpp
diff --git a/services/common_time/common_time_server_packets.cpp b/libs/common_time/common_time_server_packets.cpp
similarity index 100%
rename from services/common_time/common_time_server_packets.cpp
rename to libs/common_time/common_time_server_packets.cpp
diff --git a/services/common_time/common_time_server_packets.h b/libs/common_time/common_time_server_packets.h
similarity index 100%
rename from services/common_time/common_time_server_packets.h
rename to libs/common_time/common_time_server_packets.h
diff --git a/services/common_time/diag_thread.cpp b/libs/common_time/diag_thread.cpp
similarity index 100%
rename from services/common_time/diag_thread.cpp
rename to libs/common_time/diag_thread.cpp
diff --git a/services/common_time/diag_thread.h b/libs/common_time/diag_thread.h
similarity index 100%
rename from services/common_time/diag_thread.h
rename to libs/common_time/diag_thread.h
diff --git a/services/common_time/main.cpp b/libs/common_time/main.cpp
similarity index 100%
rename from services/common_time/main.cpp
rename to libs/common_time/main.cpp
diff --git a/services/common_time/utils.cpp b/libs/common_time/utils.cpp
similarity index 100%
rename from services/common_time/utils.cpp
rename to libs/common_time/utils.cpp
diff --git a/services/common_time/utils.h b/libs/common_time/utils.h
similarity index 100%
rename from services/common_time/utils.h
rename to libs/common_time/utils.h
diff --git a/services/input/Android.mk b/libs/input/Android.mk
similarity index 100%
rename from services/input/Android.mk
rename to libs/input/Android.mk
diff --git a/services/input/EventHub.cpp b/libs/input/EventHub.cpp
similarity index 100%
rename from services/input/EventHub.cpp
rename to libs/input/EventHub.cpp
diff --git a/services/input/EventHub.h b/libs/input/EventHub.h
similarity index 100%
rename from services/input/EventHub.h
rename to libs/input/EventHub.h
diff --git a/services/input/InputApplication.cpp b/libs/input/InputApplication.cpp
similarity index 100%
rename from services/input/InputApplication.cpp
rename to libs/input/InputApplication.cpp
diff --git a/services/input/InputApplication.h b/libs/input/InputApplication.h
similarity index 100%
rename from services/input/InputApplication.h
rename to libs/input/InputApplication.h
diff --git a/services/input/InputDispatcher.cpp b/libs/input/InputDispatcher.cpp
similarity index 100%
rename from services/input/InputDispatcher.cpp
rename to libs/input/InputDispatcher.cpp
diff --git a/services/input/InputDispatcher.h b/libs/input/InputDispatcher.h
similarity index 100%
rename from services/input/InputDispatcher.h
rename to libs/input/InputDispatcher.h
diff --git a/services/input/InputListener.cpp b/libs/input/InputListener.cpp
similarity index 100%
rename from services/input/InputListener.cpp
rename to libs/input/InputListener.cpp
diff --git a/services/input/InputListener.h b/libs/input/InputListener.h
similarity index 100%
rename from services/input/InputListener.h
rename to libs/input/InputListener.h
diff --git a/services/input/InputManager.cpp b/libs/input/InputManager.cpp
similarity index 100%
rename from services/input/InputManager.cpp
rename to libs/input/InputManager.cpp
diff --git a/services/input/InputManager.h b/libs/input/InputManager.h
similarity index 100%
rename from services/input/InputManager.h
rename to libs/input/InputManager.h
diff --git a/services/input/InputReader.cpp b/libs/input/InputReader.cpp
similarity index 100%
rename from services/input/InputReader.cpp
rename to libs/input/InputReader.cpp
diff --git a/services/input/InputReader.h b/libs/input/InputReader.h
similarity index 100%
rename from services/input/InputReader.h
rename to libs/input/InputReader.h
diff --git a/services/input/InputWindow.cpp b/libs/input/InputWindow.cpp
similarity index 100%
rename from services/input/InputWindow.cpp
rename to libs/input/InputWindow.cpp
diff --git a/services/input/InputWindow.h b/libs/input/InputWindow.h
similarity index 100%
rename from services/input/InputWindow.h
rename to libs/input/InputWindow.h
diff --git a/services/input/PointerController.cpp b/libs/input/PointerController.cpp
similarity index 100%
rename from services/input/PointerController.cpp
rename to libs/input/PointerController.cpp
diff --git a/services/input/PointerController.h b/libs/input/PointerController.h
similarity index 100%
rename from services/input/PointerController.h
rename to libs/input/PointerController.h
diff --git a/services/input/SpriteController.cpp b/libs/input/SpriteController.cpp
similarity index 100%
rename from services/input/SpriteController.cpp
rename to libs/input/SpriteController.cpp
diff --git a/services/input/SpriteController.h b/libs/input/SpriteController.h
similarity index 100%
rename from services/input/SpriteController.h
rename to libs/input/SpriteController.h
diff --git a/services/input/tests/Android.mk b/libs/input/tests/Android.mk
similarity index 100%
rename from services/input/tests/Android.mk
rename to libs/input/tests/Android.mk
diff --git a/services/input/tests/InputDispatcher_test.cpp b/libs/input/tests/InputDispatcher_test.cpp
similarity index 100%
rename from services/input/tests/InputDispatcher_test.cpp
rename to libs/input/tests/InputDispatcher_test.cpp
diff --git a/services/input/tests/InputReader_test.cpp b/libs/input/tests/InputReader_test.cpp
similarity index 100%
rename from services/input/tests/InputReader_test.cpp
rename to libs/input/tests/InputReader_test.cpp
diff --git a/media/java/android/media/MediaRouter.java b/media/java/android/media/MediaRouter.java
index d17e8f8..a4d491d8 100644
--- a/media/java/android/media/MediaRouter.java
+++ b/media/java/android/media/MediaRouter.java
@@ -60,9 +60,6 @@
private static final boolean DEBUG = Log.isLoggable(TAG, Log.DEBUG);
static class Static implements DisplayManager.DisplayListener {
- // Time between wifi display scans when actively scanning in milliseconds.
- private static final int WIFI_DISPLAY_SCAN_INTERVAL = 10000;
-
final Context mAppContext;
final Resources mResources;
final IAudioService mAudioService;
@@ -86,6 +83,7 @@
final boolean mCanConfigureWifiDisplays;
boolean mActivelyScanningWifiDisplays;
+ String mPreviousActiveWifiDisplayAddress;
int mDiscoveryRequestRouteTypes;
boolean mDiscoverRequestActiveScan;
@@ -105,16 +103,6 @@
}
};
- final Runnable mScanWifiDisplays = new Runnable() {
- @Override
- public void run() {
- if (mActivelyScanningWifiDisplays) {
- mDisplayService.scanWifiDisplays();
- mHandler.postDelayed(this, WIFI_DISPLAY_SCAN_INTERVAL);
- }
- }
- };
-
Static(Context appContext) {
mAppContext = appContext;
mResources = Resources.getSystem();
@@ -278,15 +266,24 @@
}
// Update wifi display scanning.
- if (activeScanWifiDisplay && mCanConfigureWifiDisplays) {
- if (!mActivelyScanningWifiDisplays) {
- mActivelyScanningWifiDisplays = true;
- mHandler.post(mScanWifiDisplays);
+ // TODO: All of this should be managed by the media router service.
+ if (mCanConfigureWifiDisplays) {
+ if (mSelectedRoute != null
+ && mSelectedRoute.matchesTypes(ROUTE_TYPE_REMOTE_DISPLAY)) {
+ // Don't scan while already connected to a remote display since
+ // it may interfere with the ongoing transmission.
+ activeScanWifiDisplay = false;
}
- } else {
- if (mActivelyScanningWifiDisplays) {
- mActivelyScanningWifiDisplays = false;
- mHandler.removeCallbacks(mScanWifiDisplays);
+ if (activeScanWifiDisplay) {
+ if (!mActivelyScanningWifiDisplays) {
+ mActivelyScanningWifiDisplays = true;
+ mDisplayService.startWifiDisplayScan();
+ }
+ } else {
+ if (mActivelyScanningWifiDisplays) {
+ mActivelyScanningWifiDisplays = false;
+ mDisplayService.stopWifiDisplayScan();
+ }
}
}
@@ -944,6 +941,9 @@
}
dispatchRouteSelected(types & route.getSupportedTypes(), route);
}
+
+ // The behavior of active scans may depend on the currently selected route.
+ sStatic.updateDiscoveryRequest();
}
static void selectDefaultRouteStatic() {
@@ -1290,10 +1290,8 @@
}
static void updateWifiDisplayStatus(WifiDisplayStatus status) {
- boolean wantScan = false;
WifiDisplay[] displays;
WifiDisplay activeDisplay;
-
if (status.getFeatureState() == WifiDisplayStatus.FEATURE_STATE_ON) {
displays = status.getDisplays();
activeDisplay = status.getActiveDisplay();
@@ -1313,6 +1311,8 @@
displays = WifiDisplay.EMPTY_ARRAY;
activeDisplay = null;
}
+ String activeDisplayAddress = activeDisplay != null ?
+ activeDisplay.getDeviceAddress() : null;
// Add or update routes.
for (int i = 0; i < displays.length; i++) {
@@ -1322,9 +1322,11 @@
if (route == null) {
route = makeWifiDisplayRoute(d, status);
addRouteStatic(route);
- wantScan = true;
} else {
- updateWifiDisplayRoute(route, d, status);
+ String address = d.getDeviceAddress();
+ boolean disconnected = !address.equals(activeDisplayAddress)
+ && address.equals(sStatic.mPreviousActiveWifiDisplayAddress);
+ updateWifiDisplayRoute(route, d, status, disconnected);
}
if (d.equals(activeDisplay)) {
selectRouteStatic(route.getSupportedTypes(), route, false);
@@ -1343,11 +1345,9 @@
}
}
- // Don't scan if we're already connected to a wifi display,
- // the scanning process can cause a hiccup with some configurations.
- if (wantScan && activeDisplay != null && sStatic.mCanConfigureWifiDisplays) {
- sStatic.mDisplayService.scanWifiDisplays();
- }
+ // Remember the current active wifi display address so that we can infer disconnections.
+ // TODO: This hack will go away once all of this is moved into the media router service.
+ sStatic.mPreviousActiveWifiDisplayAddress = activeDisplayAddress;
}
private static boolean shouldShowWifiDisplay(WifiDisplay d, WifiDisplay activeDisplay) {
@@ -1405,7 +1405,8 @@
}
private static void updateWifiDisplayRoute(
- RouteInfo route, WifiDisplay display, WifiDisplayStatus wfdStatus) {
+ RouteInfo route, WifiDisplay display, WifiDisplayStatus wfdStatus,
+ boolean disconnected) {
boolean changed = false;
final String newName = display.getFriendlyDisplayName();
if (!route.getName().equals(newName)) {
@@ -1423,7 +1424,7 @@
dispatchRouteChanged(route);
}
- if (!enabled && route.isSelected()) {
+ if ((!enabled || disconnected) && route.isSelected()) {
// Oops, no longer available. Reselect the default.
selectDefaultRouteStatic();
}
diff --git a/packages/DocumentsUI/src/com/android/documentsui/FilteringCursorWrapper.java b/packages/DocumentsUI/src/com/android/documentsui/FilteringCursorWrapper.java
index 55d73f23..1cbc221 100644
--- a/packages/DocumentsUI/src/com/android/documentsui/FilteringCursorWrapper.java
+++ b/packages/DocumentsUI/src/com/android/documentsui/FilteringCursorWrapper.java
@@ -51,7 +51,7 @@
mPosition = new int[count];
cursor.moveToPosition(-1);
- while (cursor.moveToNext()) {
+ while (cursor.moveToNext() && mCount < count) {
final String mimeType = getCursorString(cursor, Document.COLUMN_MIME_TYPE);
final long lastModified = getCursorLong(cursor, Document.COLUMN_LAST_MODIFIED);
if (rejectMimes != null && MimePredicate.mimeMatches(rejectMimes, mimeType)) {
diff --git a/packages/DocumentsUI/src/com/android/documentsui/RecentLoader.java b/packages/DocumentsUI/src/com/android/documentsui/RecentLoader.java
index 3a8a3fb..34ce42d 100644
--- a/packages/DocumentsUI/src/com/android/documentsui/RecentLoader.java
+++ b/packages/DocumentsUI/src/com/android/documentsui/RecentLoader.java
@@ -55,6 +55,10 @@
public class RecentLoader extends AsyncTaskLoader<DirectoryResult> {
private static final boolean LOGD = true;
+ // TODO: clean up cursor ownership so background thread doesn't traverse
+ // previously returned cursors for filtering/sorting; this currently races
+ // with the UI thread.
+
private static final int MAX_OUTSTANDING_RECENTS = 4;
private static final int MAX_OUTSTANDING_RECENTS_SVELTE = 2;
diff --git a/packages/PrintSpooler/src/com/android/printspooler/PrintJobConfigActivity.java b/packages/PrintSpooler/src/com/android/printspooler/PrintJobConfigActivity.java
index 88403a3..c1c7a4e 100644
--- a/packages/PrintSpooler/src/com/android/printspooler/PrintJobConfigActivity.java
+++ b/packages/PrintSpooler/src/com/android/printspooler/PrintJobConfigActivity.java
@@ -1529,9 +1529,13 @@
builder.append(',');
}
PageRange pageRange = pageRanges[i];
- builder.append(pageRange.getStart());
- builder.append('-');
- builder.append(pageRange.getEnd());
+ final int shownStartPage = pageRange.getStart() + 1;
+ final int shownEndPage = pageRange.getEnd() + 1;
+ builder.append(shownStartPage);
+ if (shownStartPage != shownEndPage) {
+ builder.append('-');
+ builder.append(shownEndPage);
+ }
}
mPageRangeEditText.setText(builder.toString());
}
diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettingsModel.java b/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettingsModel.java
index e1a20ec..42201c5 100644
--- a/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettingsModel.java
+++ b/packages/SystemUI/src/com/android/systemui/statusbar/phone/QuickSettingsModel.java
@@ -692,14 +692,8 @@
} else {
connectedRoute = null;
connecting = false;
- final int count = mMediaRouter.getRouteCount();
- for (int i = 0; i < count; i++) {
- MediaRouter.RouteInfo route = mMediaRouter.getRouteAt(i);
- if (route.matchesTypes(MediaRouter.ROUTE_TYPE_REMOTE_DISPLAY)) {
- enabled = true;
- break;
- }
- }
+ enabled = mMediaRouter.isRouteAvailable(MediaRouter.ROUTE_TYPE_REMOTE_DISPLAY,
+ MediaRouter.AVAILABILITY_FLAG_IGNORE_DEFAULT_ROUTE);
}
mRemoteDisplayState.enabled = enabled;
diff --git a/policy/src/com/android/internal/policy/impl/PhoneLayoutInflater.java b/policy/src/com/android/internal/policy/impl/PhoneLayoutInflater.java
index 6bf4beb..968976b 100644
--- a/policy/src/com/android/internal/policy/impl/PhoneLayoutInflater.java
+++ b/policy/src/com/android/internal/policy/impl/PhoneLayoutInflater.java
@@ -26,7 +26,8 @@
public class PhoneLayoutInflater extends LayoutInflater {
private static final String[] sClassPrefixList = {
"android.widget.",
- "android.webkit."
+ "android.webkit.",
+ "android.app."
};
/**
diff --git a/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java b/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java
index c33bd35..f33ab40 100644
--- a/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java
+++ b/policy/src/com/android/internal/policy/impl/PhoneWindowManager.java
@@ -231,7 +231,6 @@
/** If true, hitting shift & menu will broadcast Intent.ACTION_BUG_REPORT */
boolean mEnableShiftMenuBugReports = false;
- boolean mHeadless;
boolean mSafeMode;
WindowState mStatusBar = null;
int mStatusBarHeight;
@@ -855,7 +854,6 @@
mContext = context;
mWindowManager = windowManager;
mWindowManagerFuncs = windowManagerFuncs;
- mHeadless = "1".equals(SystemProperties.get("ro.config.headless", "0"));
mHandler = new PolicyHandler();
mOrientationListener = new MyOrientationListener(mContext, mHandler);
try {
@@ -3602,9 +3600,6 @@
/** {@inheritDoc} */
public void notifyLidSwitchChanged(long whenNanos, boolean lidOpen) {
- // do nothing if headless
- if (mHeadless) return;
-
// lid changed state
final int newLidState = lidOpen ? LID_OPEN : LID_CLOSED;
if (newLidState == mLidState) {
@@ -3837,7 +3832,7 @@
// the device some other way (which is why we have an exemption here for injected
// events).
int result;
- if ((isScreenOn && !mHeadless) || (isInjected && !isWakeKey)) {
+ if (isScreenOn || (isInjected && !isWakeKey)) {
// When the screen is on or if the key is injected pass the key to the application.
result = ACTION_PASS_TO_USER;
} else {
@@ -4663,10 +4658,9 @@
/** {@inheritDoc} */
@Override
public void systemReady() {
- if (!mHeadless) {
- mKeyguardDelegate = new KeyguardServiceDelegate(mContext, null);
- mKeyguardDelegate.onSystemReady();
- }
+ mKeyguardDelegate = new KeyguardServiceDelegate(mContext, null);
+ mKeyguardDelegate.onSystemReady();
+
synchronized (mLock) {
updateOrientationListenerLp();
mSystemReady = true;
@@ -4693,7 +4687,6 @@
/** {@inheritDoc} */
public void showBootMessage(final CharSequence msg, final boolean always) {
- if (mHeadless) return;
mHandler.post(new Runnable() {
@Override public void run() {
if (mBootMsgDialog == null) {
diff --git a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardServiceDelegate.java b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardServiceDelegate.java
index 1357462..e5af716 100644
--- a/policy/src/com/android/internal/policy/impl/keyguard/KeyguardServiceDelegate.java
+++ b/policy/src/com/android/internal/policy/impl/keyguard/KeyguardServiceDelegate.java
@@ -109,6 +109,9 @@
if (!context.bindServiceAsUser(intent, mKeyguardConnection,
Context.BIND_AUTO_CREATE, UserHandle.OWNER)) {
if (DEBUG) Log.v(TAG, "*** Keyguard: can't bind to " + KEYGUARD_CLASS);
+ mKeyguardState.showing = false;
+ mKeyguardState.showingAndNotHidden = false;
+ mKeyguardState.secure = false;
} else {
if (DEBUG) Log.v(TAG, "*** Keyguard started");
}
diff --git a/services/Android.mk b/services/Android.mk
new file mode 100644
index 0000000..80fd35a
--- /dev/null
+++ b/services/Android.mk
@@ -0,0 +1,49 @@
+LOCAL_PATH:= $(call my-dir)
+
+# the java library
+# ============================================================
+include $(CLEAR_VARS)
+
+LOCAL_SRC_FILES :=
+
+# TODO: Move this to the product makefiles
+REQUIRED_SERVICES := core accessibility appwidget backup devicepolicy print
+
+include $(patsubst %,$(LOCAL_PATH)/%/java/service.mk,$(REQUIRED_SERVICES))
+
+LOCAL_MODULE:= services
+
+LOCAL_JAVA_LIBRARIES := android.policy conscrypt telephony-common
+
+#LOCAL_PROGUARD_ENABLED := full
+#LOCAL_PROGUARD_FLAG_FILES := proguard.flags
+
+include $(BUILD_JAVA_LIBRARY)
+
+include $(BUILD_DROIDDOC)
+
+# native library
+# =============================================================
+
+include $(CLEAR_VARS)
+
+LOCAL_SRC_FILES :=
+LOCAL_SHARED_LIBRARIES :=
+
+# include all the jni subdirs to collect their sources
+include $(wildcard $(LOCAL_PATH)/*/jni/Android.mk)
+
+LOCAL_CFLAGS += -DEGL_EGLEXT_PROTOTYPES -DGL_GLEXT_PROTOTYPES
+
+ifeq ($(WITH_MALLOC_LEAK_CHECK),true)
+ LOCAL_CFLAGS += -DMALLOC_LEAK_CHECK
+endif
+
+LOCAL_MODULE:= libandroid_servers
+
+include $(BUILD_SHARED_LIBRARY)
+
+ifeq (,$(ONE_SHOT_MAKEFILE))
+include $(call all-makefiles-under, $(LOCAL_PATH))
+endif
+
diff --git a/services/java/com/android/server/accessibility/AccessibilityInputFilter.java b/services/accessibility/java/com/android/server/accessibility/AccessibilityInputFilter.java
similarity index 100%
rename from services/java/com/android/server/accessibility/AccessibilityInputFilter.java
rename to services/accessibility/java/com/android/server/accessibility/AccessibilityInputFilter.java
diff --git a/services/java/com/android/server/accessibility/AccessibilityManagerService.java b/services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java
similarity index 100%
rename from services/java/com/android/server/accessibility/AccessibilityManagerService.java
rename to services/accessibility/java/com/android/server/accessibility/AccessibilityManagerService.java
diff --git a/services/java/com/android/server/accessibility/EventStreamTransformation.java b/services/accessibility/java/com/android/server/accessibility/EventStreamTransformation.java
similarity index 100%
rename from services/java/com/android/server/accessibility/EventStreamTransformation.java
rename to services/accessibility/java/com/android/server/accessibility/EventStreamTransformation.java
diff --git a/services/java/com/android/server/accessibility/GestureUtils.java b/services/accessibility/java/com/android/server/accessibility/GestureUtils.java
similarity index 100%
rename from services/java/com/android/server/accessibility/GestureUtils.java
rename to services/accessibility/java/com/android/server/accessibility/GestureUtils.java
diff --git a/services/java/com/android/server/accessibility/ScreenMagnifier.java b/services/accessibility/java/com/android/server/accessibility/ScreenMagnifier.java
similarity index 100%
rename from services/java/com/android/server/accessibility/ScreenMagnifier.java
rename to services/accessibility/java/com/android/server/accessibility/ScreenMagnifier.java
diff --git a/services/java/com/android/server/accessibility/TouchExplorer.java b/services/accessibility/java/com/android/server/accessibility/TouchExplorer.java
similarity index 100%
rename from services/java/com/android/server/accessibility/TouchExplorer.java
rename to services/accessibility/java/com/android/server/accessibility/TouchExplorer.java
diff --git a/services/accessibility/java/service.mk b/services/accessibility/java/service.mk
new file mode 100644
index 0000000..5e8f375
--- /dev/null
+++ b/services/accessibility/java/service.mk
@@ -0,0 +1,11 @@
+# Include only if the service is required
+ifneq ($(findstring accessibility,$(REQUIRED_SERVICES)),)
+
+SUB_DIR := accessibility/java
+
+LOCAL_SRC_FILES += \
+ $(call all-java-files-under,$(SUB_DIR))
+
+#DEFINED_SERVICES += com.android.server.accessibility.AccessibilityManagerService
+
+endif
diff --git a/services/appwidget/java/com/android/server/appwidget/AppWidgetService.java b/services/appwidget/java/com/android/server/appwidget/AppWidgetService.java
new file mode 100644
index 0000000..3378e3d
--- /dev/null
+++ b/services/appwidget/java/com/android/server/appwidget/AppWidgetService.java
@@ -0,0 +1,384 @@
+/*
+ * 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.
+ */
+
+package com.android.server.appwidget;
+
+import android.app.ActivityManager;
+import android.appwidget.AppWidgetProviderInfo;
+import android.content.BroadcastReceiver;
+import android.content.ComponentName;
+import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
+import android.content.pm.PackageManager;
+import android.os.Binder;
+import android.os.Bundle;
+import android.os.Handler;
+import android.os.IBinder;
+import android.os.RemoteException;
+import android.os.UserHandle;
+import android.util.Slog;
+import android.util.SparseArray;
+import android.widget.RemoteViews;
+
+import com.android.internal.appwidget.IAppWidgetHost;
+import com.android.internal.appwidget.IAppWidgetService;
+import com.android.internal.os.BackgroundThread;
+import com.android.internal.util.IndentingPrintWriter;
+import com.android.server.SystemService;
+
+import java.io.FileDescriptor;
+import java.io.PrintWriter;
+import java.util.List;
+import java.util.Locale;
+
+
+/**
+ * SystemService that publishes an IAppWidgetService.
+ */
+public class AppWidgetService extends SystemService {
+
+ static final String TAG = "AppWidgetService";
+
+ Context mContext;
+ Handler mSaveStateHandler;
+
+ SparseArray<AppWidgetServiceImpl> mAppWidgetServices;
+
+ @Override
+ public void onCreate(Context context) {
+ mContext = context;
+
+ mSaveStateHandler = BackgroundThread.getHandler();
+
+ mAppWidgetServices = new SparseArray<AppWidgetServiceImpl>(5);
+ AppWidgetServiceImpl primary = new AppWidgetServiceImpl(context, 0, mSaveStateHandler);
+ mAppWidgetServices.append(0, primary);
+ }
+
+ @Override
+ public void onStart() {
+ publishBinderService(Context.APPWIDGET_SERVICE, mServiceImpl);
+ }
+
+ @Override
+ public void onBootPhase(int phase) {
+ if (phase == PHASE_THIRD_PARTY_APPS_CAN_START) {
+ mServiceImpl.systemRunning(isSafeMode());
+ }
+ }
+
+ private final AppWidgetServiceStub mServiceImpl = new AppWidgetServiceStub();
+
+ private class AppWidgetServiceStub extends IAppWidgetService.Stub {
+
+ private boolean mSafeMode;
+ private Locale mLocale;
+ private PackageManager mPackageManager;
+
+ public void systemRunning(boolean safeMode) {
+ mSafeMode = safeMode;
+
+ mAppWidgetServices.get(0).systemReady(safeMode);
+
+ // Register for the boot completed broadcast, so we can send the
+ // ENABLE broacasts. If we try to send them now, they time out,
+ // because the system isn't ready to handle them yet.
+ mContext.registerReceiverAsUser(mBroadcastReceiver, UserHandle.ALL,
+ new IntentFilter(Intent.ACTION_BOOT_COMPLETED), null, null);
+
+ // Register for configuration changes so we can update the names
+ // of the widgets when the locale changes.
+ mContext.registerReceiverAsUser(mBroadcastReceiver, UserHandle.ALL,
+ new IntentFilter(Intent.ACTION_CONFIGURATION_CHANGED), null, null);
+
+ // Register for broadcasts about package install, etc., so we can
+ // update the provider list.
+ IntentFilter filter = new IntentFilter();
+ filter.addAction(Intent.ACTION_PACKAGE_ADDED);
+ filter.addAction(Intent.ACTION_PACKAGE_CHANGED);
+ filter.addAction(Intent.ACTION_PACKAGE_REMOVED);
+ filter.addDataScheme("package");
+ mContext.registerReceiverAsUser(mBroadcastReceiver, UserHandle.ALL,
+ filter, null, null);
+ // Register for events related to sdcard installation.
+ IntentFilter sdFilter = new IntentFilter();
+ sdFilter.addAction(Intent.ACTION_EXTERNAL_APPLICATIONS_AVAILABLE);
+ sdFilter.addAction(Intent.ACTION_EXTERNAL_APPLICATIONS_UNAVAILABLE);
+ mContext.registerReceiverAsUser(mBroadcastReceiver, UserHandle.ALL,
+ sdFilter, null, null);
+
+ IntentFilter userFilter = new IntentFilter();
+ userFilter.addAction(Intent.ACTION_USER_REMOVED);
+ userFilter.addAction(Intent.ACTION_USER_STOPPING);
+ mContext.registerReceiver(new BroadcastReceiver() {
+ @Override
+ public void onReceive(Context context, Intent intent) {
+ if (Intent.ACTION_USER_REMOVED.equals(intent.getAction())) {
+ onUserRemoved(intent.getIntExtra(Intent.EXTRA_USER_HANDLE,
+ UserHandle.USER_NULL));
+ } else if (Intent.ACTION_USER_STOPPING.equals(intent.getAction())) {
+ onUserStopping(intent.getIntExtra(Intent.EXTRA_USER_HANDLE,
+ UserHandle.USER_NULL));
+ }
+ }
+ }, userFilter);
+ }
+
+ @Override
+ public int allocateAppWidgetId(String packageName, int hostId, int userId)
+ throws RemoteException {
+ return getImplForUser(userId).allocateAppWidgetId(packageName, hostId);
+ }
+
+ @Override
+ public int[] getAppWidgetIdsForHost(int hostId, int userId) throws RemoteException {
+ return getImplForUser(userId).getAppWidgetIdsForHost(hostId);
+ }
+
+ @Override
+ public void deleteAppWidgetId(int appWidgetId, int userId) throws RemoteException {
+ getImplForUser(userId).deleteAppWidgetId(appWidgetId);
+ }
+
+ @Override
+ public void deleteHost(int hostId, int userId) throws RemoteException {
+ getImplForUser(userId).deleteHost(hostId);
+ }
+
+ @Override
+ public void deleteAllHosts(int userId) throws RemoteException {
+ getImplForUser(userId).deleteAllHosts();
+ }
+
+ @Override
+ public void bindAppWidgetId(int appWidgetId, ComponentName provider, Bundle options,
+ int userId) throws RemoteException {
+ getImplForUser(userId).bindAppWidgetId(appWidgetId, provider, options);
+ }
+
+ @Override
+ public boolean bindAppWidgetIdIfAllowed(
+ String packageName, int appWidgetId, ComponentName provider, Bundle options,
+ int userId) throws RemoteException {
+ return getImplForUser(userId).bindAppWidgetIdIfAllowed(
+ packageName, appWidgetId, provider, options);
+ }
+
+ @Override
+ public boolean hasBindAppWidgetPermission(String packageName, int userId)
+ throws RemoteException {
+ return getImplForUser(userId).hasBindAppWidgetPermission(packageName);
+ }
+
+ @Override
+ public void setBindAppWidgetPermission(String packageName, boolean permission, int userId)
+ throws RemoteException {
+ getImplForUser(userId).setBindAppWidgetPermission(packageName, permission);
+ }
+
+ @Override
+ public void bindRemoteViewsService(int appWidgetId, Intent intent, IBinder connection,
+ int userId) throws RemoteException {
+ getImplForUser(userId).bindRemoteViewsService(appWidgetId, intent, connection);
+ }
+
+ @Override
+ public int[] startListening(IAppWidgetHost host, String packageName, int hostId,
+ List<RemoteViews> updatedViews, int userId) throws RemoteException {
+ return getImplForUser(userId).startListening(host, packageName, hostId, updatedViews);
+ }
+
+ public void onUserRemoved(int userId) {
+ if (userId < 1) return;
+ synchronized (mAppWidgetServices) {
+ AppWidgetServiceImpl impl = mAppWidgetServices.get(userId);
+ mAppWidgetServices.remove(userId);
+
+ if (impl == null) {
+ AppWidgetServiceImpl.getSettingsFile(userId).delete();
+ } else {
+ impl.onUserRemoved();
+ }
+ }
+ }
+
+ public void onUserStopping(int userId) {
+ if (userId < 1) return;
+ synchronized (mAppWidgetServices) {
+ AppWidgetServiceImpl impl = mAppWidgetServices.get(userId);
+ if (impl != null) {
+ mAppWidgetServices.remove(userId);
+ impl.onUserStopping();
+ }
+ }
+ }
+
+ private void checkPermission(int userId) {
+ int realUserId = ActivityManager.handleIncomingUser(
+ Binder.getCallingPid(),
+ Binder.getCallingUid(),
+ userId,
+ false, /* allowAll */
+ true, /* requireFull */
+ this.getClass().getSimpleName(),
+ this.getClass().getPackage().getName());
+ }
+
+ private AppWidgetServiceImpl getImplForUser(int userId) {
+ checkPermission(userId);
+ boolean sendInitial = false;
+ AppWidgetServiceImpl service;
+ synchronized (mAppWidgetServices) {
+ service = mAppWidgetServices.get(userId);
+ if (service == null) {
+ Slog.i(TAG, "Unable to find AppWidgetServiceImpl for user " + userId
+ + ", adding");
+ // TODO: Verify that it's a valid user
+ service = new AppWidgetServiceImpl(mContext, userId, mSaveStateHandler);
+ service.systemReady(mSafeMode);
+ // Assume that BOOT_COMPLETED was received, as this is a non-primary user.
+ mAppWidgetServices.append(userId, service);
+ sendInitial = true;
+ }
+ }
+ if (sendInitial) {
+ service.sendInitialBroadcasts();
+ }
+ return service;
+ }
+
+ @Override
+ public int[] getAppWidgetIds(ComponentName provider, int userId) throws RemoteException {
+ return getImplForUser(userId).getAppWidgetIds(provider);
+ }
+
+ @Override
+ public AppWidgetProviderInfo getAppWidgetInfo(int appWidgetId, int userId)
+ throws RemoteException {
+ return getImplForUser(userId).getAppWidgetInfo(appWidgetId);
+ }
+
+ @Override
+ public RemoteViews getAppWidgetViews(int appWidgetId, int userId) throws RemoteException {
+ return getImplForUser(userId).getAppWidgetViews(appWidgetId);
+ }
+
+ @Override
+ public void updateAppWidgetOptions(int appWidgetId, Bundle options, int userId) {
+ getImplForUser(userId).updateAppWidgetOptions(appWidgetId, options);
+ }
+
+ @Override
+ public Bundle getAppWidgetOptions(int appWidgetId, int userId) {
+ return getImplForUser(userId).getAppWidgetOptions(appWidgetId);
+ }
+
+ @Override
+ public List<AppWidgetProviderInfo> getInstalledProviders(int categoryFilter, int userId)
+ throws RemoteException {
+ return getImplForUser(userId).getInstalledProviders(categoryFilter);
+ }
+
+ @Override
+ public void notifyAppWidgetViewDataChanged(int[] appWidgetIds, int viewId, int userId)
+ throws RemoteException {
+ getImplForUser(userId).notifyAppWidgetViewDataChanged(
+ appWidgetIds, viewId);
+ }
+
+ @Override
+ public void partiallyUpdateAppWidgetIds(int[] appWidgetIds, RemoteViews views, int userId)
+ throws RemoteException {
+ getImplForUser(userId).partiallyUpdateAppWidgetIds(
+ appWidgetIds, views);
+ }
+
+ @Override
+ public void stopListening(int hostId, int userId) throws RemoteException {
+ getImplForUser(userId).stopListening(hostId);
+ }
+
+ @Override
+ public void unbindRemoteViewsService(int appWidgetId, Intent intent, int userId)
+ throws RemoteException {
+ getImplForUser(userId).unbindRemoteViewsService(
+ appWidgetId, intent);
+ }
+
+ @Override
+ public void updateAppWidgetIds(int[] appWidgetIds, RemoteViews views, int userId)
+ throws RemoteException {
+ getImplForUser(userId).updateAppWidgetIds(appWidgetIds, views);
+ }
+
+ @Override
+ public void updateAppWidgetProvider(ComponentName provider, RemoteViews views, int userId)
+ throws RemoteException {
+ getImplForUser(userId).updateAppWidgetProvider(provider, views);
+ }
+
+ @Override
+ public void dump(FileDescriptor fd, PrintWriter pw, String[] args) {
+ mContext.enforceCallingOrSelfPermission(android.Manifest.permission.DUMP, TAG);
+
+ // Dump the state of all the app widget providers
+ synchronized (mAppWidgetServices) {
+ IndentingPrintWriter ipw = new IndentingPrintWriter(pw, " ");
+ for (int i = 0; i < mAppWidgetServices.size(); i++) {
+ pw.println("User: " + mAppWidgetServices.keyAt(i));
+ ipw.increaseIndent();
+ AppWidgetServiceImpl service = mAppWidgetServices.valueAt(i);
+ service.dump(fd, ipw, args);
+ ipw.decreaseIndent();
+ }
+ }
+ }
+
+ BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver() {
+ public void onReceive(Context context, Intent intent) {
+ String action = intent.getAction();
+ // Slog.d(TAG, "received " + action);
+ if (Intent.ACTION_BOOT_COMPLETED.equals(action)) {
+ int userId = intent.getIntExtra(Intent.EXTRA_USER_HANDLE, UserHandle.USER_NULL);
+ if (userId >= 0) {
+ getImplForUser(userId).sendInitialBroadcasts();
+ } else {
+ Slog.w(TAG, "Incorrect user handle supplied in " + intent);
+ }
+ } else if (Intent.ACTION_CONFIGURATION_CHANGED.equals(action)) {
+ for (int i = 0; i < mAppWidgetServices.size(); i++) {
+ AppWidgetServiceImpl service = mAppWidgetServices.valueAt(i);
+ service.onConfigurationChanged();
+ }
+ } else {
+ int sendingUser = getSendingUserId();
+ if (sendingUser == UserHandle.USER_ALL) {
+ for (int i = 0; i < mAppWidgetServices.size(); i++) {
+ AppWidgetServiceImpl service = mAppWidgetServices.valueAt(i);
+ service.onBroadcastReceived(intent);
+ }
+ } else {
+ AppWidgetServiceImpl service = mAppWidgetServices.get(sendingUser);
+ if (service != null) {
+ service.onBroadcastReceived(intent);
+ }
+ }
+ }
+ }
+ };
+ }
+}
diff --git a/services/java/com/android/server/AppWidgetServiceImpl.java b/services/appwidget/java/com/android/server/appwidget/AppWidgetServiceImpl.java
similarity index 99%
rename from services/java/com/android/server/AppWidgetServiceImpl.java
rename to services/appwidget/java/com/android/server/appwidget/AppWidgetServiceImpl.java
index 69ae846..98dead3 100644
--- a/services/java/com/android/server/AppWidgetServiceImpl.java
+++ b/services/appwidget/java/com/android/server/appwidget/AppWidgetServiceImpl.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.server;
+package com.android.server.appwidget;
import android.app.AlarmManager;
import android.app.AppGlobals;
diff --git a/services/appwidget/java/service.mk b/services/appwidget/java/service.mk
new file mode 100644
index 0000000..0e33446
--- /dev/null
+++ b/services/appwidget/java/service.mk
@@ -0,0 +1,11 @@
+# Include only if the service is required
+ifneq ($(findstring appwidget,$(REQUIRED_SERVICES)),)
+
+SUB_DIR := appwidget/java
+
+LOCAL_SRC_FILES += \
+ $(call all-java-files-under,$(SUB_DIR))
+
+#DEFINED_SERVICES += com.android.server.appwidget.AppWidgetService
+
+endif
diff --git a/services/java/com/android/server/BackupManagerService.java b/services/backup/java/com/android/server/backup/BackupManagerService.java
similarity index 96%
rename from services/java/com/android/server/BackupManagerService.java
rename to services/backup/java/com/android/server/backup/BackupManagerService.java
index baef607..c6dc5e6 100644
--- a/services/java/com/android/server/BackupManagerService.java
+++ b/services/backup/java/com/android/server/backup/BackupManagerService.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.server;
+package com.android.server.backup;
import android.app.ActivityManagerNative;
import android.app.AlarmManager;
@@ -83,7 +83,9 @@
import com.android.internal.backup.IBackupTransport;
import com.android.internal.backup.IObbBackupService;
import com.android.internal.backup.LocalTransport;
-import com.android.server.PackageManagerBackupAgent.Metadata;
+import com.android.server.EventLogTags;
+import com.android.server.SystemService;
+import com.android.server.backup.PackageManagerBackupAgent.Metadata;
import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
@@ -135,7 +137,8 @@
import javax.crypto.spec.PBEKeySpec;
import javax.crypto.spec.SecretKeySpec;
-class BackupManagerService extends IBackupManager.Stub {
+public class BackupManagerService extends IBackupManager.Stub {
+
private static final String TAG = "BackupManagerService";
private static final boolean DEBUG = true;
private static final boolean MORE_DEBUG = false;
@@ -161,6 +164,9 @@
// the first backup pass.
private static final long FIRST_BACKUP_INTERVAL = 12 * AlarmManager.INTERVAL_HOUR;
+ // Retry interval for clear/init when the transport is unavailable
+ private static final long TRANSPORT_RETRY_INTERVAL = 1 * AlarmManager.INTERVAL_HOUR;
+
private static final String RUN_BACKUP_ACTION = "android.app.backup.intent.RUN";
private static final String RUN_INITIALIZE_ACTION = "android.app.backup.intent.INIT";
private static final String RUN_CLEAR_ACTION = "android.app.backup.intent.CLEAR";
@@ -174,6 +180,8 @@
private static final int MSG_RESTORE_TIMEOUT = 8;
private static final int MSG_FULL_CONFIRMATION_TIMEOUT = 9;
private static final int MSG_RUN_FULL_RESTORE = 10;
+ private static final int MSG_RETRY_INIT = 11;
+ private static final int MSG_RETRY_CLEAR = 12;
// backup task state machine tick
static final int MSG_BACKUP_RESTORE_STEP = 20;
@@ -306,6 +314,7 @@
class RestoreParams {
public IBackupTransport transport;
+ public String dirName;
public IRestoreObserver observer;
public long token;
public PackageInfo pkgInfo;
@@ -313,9 +322,10 @@
public boolean needFullBackup;
public String[] filterSet;
- RestoreParams(IBackupTransport _transport, IRestoreObserver _obs,
+ RestoreParams(IBackupTransport _transport, String _dirName, IRestoreObserver _obs,
long _token, PackageInfo _pkg, int _pmToken, boolean _needFullBackup) {
transport = _transport;
+ dirName = _dirName;
observer = _obs;
token = _token;
pkgInfo = _pkg;
@@ -324,9 +334,10 @@
filterSet = null;
}
- RestoreParams(IBackupTransport _transport, IRestoreObserver _obs, long _token,
- boolean _needFullBackup) {
+ RestoreParams(IBackupTransport _transport, String _dirName, IRestoreObserver _obs,
+ long _token, boolean _needFullBackup) {
transport = _transport;
+ dirName = _dirName;
observer = _obs;
token = _token;
pkgInfo = null;
@@ -335,9 +346,10 @@
filterSet = null;
}
- RestoreParams(IBackupTransport _transport, IRestoreObserver _obs, long _token,
- String[] _filterSet, boolean _needFullBackup) {
+ RestoreParams(IBackupTransport _transport, String _dirName, IRestoreObserver _obs,
+ long _token, String[] _filterSet, boolean _needFullBackup) {
transport = _transport;
+ dirName = _dirName;
observer = _obs;
token = _token;
pkgInfo = null;
@@ -357,6 +369,16 @@
}
}
+ class ClearRetryParams {
+ public String transportName;
+ public String packageName;
+
+ ClearRetryParams(String transport, String pkg) {
+ transportName = transport;
+ packageName = pkg;
+ }
+ }
+
class FullParams {
public ParcelFileDescriptor fd;
public final AtomicBoolean latch;
@@ -516,13 +538,28 @@
// When it completes successfully, that old journal file will be
// deleted. If we crash prior to that, the old journal is parsed
// at next boot and the journaled requests fulfilled.
+ boolean staged = true;
if (queue.size() > 0) {
// Spin up a backup state sequence and set it running
- PerformBackupTask pbt = new PerformBackupTask(transport, queue, oldJournal);
- Message pbtMessage = obtainMessage(MSG_BACKUP_RESTORE_STEP, pbt);
- sendMessage(pbtMessage);
+ try {
+ String dirName = transport.transportDirName();
+ PerformBackupTask pbt = new PerformBackupTask(transport, dirName,
+ queue, oldJournal);
+ Message pbtMessage = obtainMessage(MSG_BACKUP_RESTORE_STEP, pbt);
+ sendMessage(pbtMessage);
+ } catch (RemoteException e) {
+ // unable to ask the transport its dir name -- transient failure, since
+ // the above check succeeded. Try again next time.
+ Slog.e(TAG, "Transport became unavailable attempting backup");
+ staged = false;
+ }
} else {
Slog.v(TAG, "Backup requested but nothing pending");
+ staged = false;
+ }
+
+ if (!staged) {
+ // if we didn't actually hand off the wakelock, rewind until next time
synchronized (mQueueLock) {
mBackupRunning = false;
}
@@ -572,7 +609,7 @@
RestoreParams params = (RestoreParams)msg.obj;
Slog.d(TAG, "MSG_RUN_RESTORE observer=" + params.observer);
PerformRestoreTask task = new PerformRestoreTask(
- params.transport, params.observer,
+ params.transport, params.dirName, params.observer,
params.token, params.pkgInfo, params.pmToken,
params.needFullBackup, params.filterSet);
Message restoreMsg = obtainMessage(MSG_BACKUP_RESTORE_STEP, task);
@@ -599,6 +636,14 @@
break;
}
+ case MSG_RETRY_CLEAR:
+ {
+ // reenqueues if the transport remains unavailable
+ ClearRetryParams params = (ClearRetryParams)msg.obj;
+ clearBackupData(params.transportName, params.packageName);
+ break;
+ }
+
case MSG_RUN_INITIALIZE:
{
HashSet<String> queue;
@@ -613,6 +658,16 @@
break;
}
+ case MSG_RETRY_INIT:
+ {
+ synchronized (mQueueLock) {
+ recordInitPendingLocked(msg.arg1 != 0, (String)msg.obj);
+ mAlarmManager.set(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(),
+ mRunInitIntent);
+ }
+ break;
+ }
+
case MSG_RUN_GET_RESTORE_SETS:
{
// Like other async operations, this is entered with the wakelock held
@@ -1126,7 +1181,8 @@
// First, on an encrypted device we require matching the device pw
final boolean isEncrypted;
try {
- isEncrypted = (mMountService.getEncryptionState() != MountService.ENCRYPTION_STATE_NONE);
+ isEncrypted = (mMountService.getEncryptionState() !=
+ IMountService.ENCRYPTION_STATE_NONE);
if (isEncrypted) {
if (DEBUG) {
Slog.i(TAG, "Device encrypted; verifying against device data pw");
@@ -1250,29 +1306,47 @@
void recordInitPendingLocked(boolean isPending, String transportName) {
if (DEBUG) Slog.i(TAG, "recordInitPendingLocked: " + isPending
+ " on transport " + transportName);
+ mBackupHandler.removeMessages(MSG_RETRY_INIT);
+
try {
IBackupTransport transport = getTransport(transportName);
- String transportDirName = transport.transportDirName();
- File stateDir = new File(mBaseStateDir, transportDirName);
- File initPendingFile = new File(stateDir, INIT_SENTINEL_FILE_NAME);
+ if (transport != null) {
+ String transportDirName = transport.transportDirName();
+ File stateDir = new File(mBaseStateDir, transportDirName);
+ File initPendingFile = new File(stateDir, INIT_SENTINEL_FILE_NAME);
- if (isPending) {
- // We need an init before we can proceed with sending backup data.
- // Record that with an entry in our set of pending inits, as well as
- // journaling it via creation of a sentinel file.
- mPendingInits.add(transportName);
- try {
- (new FileOutputStream(initPendingFile)).close();
- } catch (IOException ioe) {
- // Something is badly wrong with our permissions; just try to move on
+ if (isPending) {
+ // We need an init before we can proceed with sending backup data.
+ // Record that with an entry in our set of pending inits, as well as
+ // journaling it via creation of a sentinel file.
+ mPendingInits.add(transportName);
+ try {
+ (new FileOutputStream(initPendingFile)).close();
+ } catch (IOException ioe) {
+ // Something is badly wrong with our permissions; just try to move on
+ }
+ } else {
+ // No more initialization needed; wipe the journal and reset our state.
+ initPendingFile.delete();
+ mPendingInits.remove(transportName);
}
- } else {
- // No more initialization needed; wipe the journal and reset our state.
- initPendingFile.delete();
- mPendingInits.remove(transportName);
+ return; // done; don't fall through to the error case
}
} catch (RemoteException e) {
- // can't happen; the transport is local
+ // transport threw when asked its name; fall through to the lookup-failed case
+ }
+
+ // The named transport doesn't exist or threw. This operation is
+ // important, so we record the need for a an init and post a message
+ // to retry the init later.
+ if (isPending) {
+ mPendingInits.add(transportName);
+ mBackupHandler.sendMessageDelayed(
+ mBackupHandler.obtainMessage(MSG_RETRY_INIT,
+ (isPending ? 1 : 0),
+ 0,
+ transportName),
+ TRANSPORT_RETRY_INTERVAL);
}
}
@@ -1348,7 +1422,10 @@
}
}
} catch (RemoteException e) {
- // can't happen, the transport is local
+ // the transport threw when asked its file naming prefs; declare it invalid
+ Slog.e(TAG, "Unable to register transport as " + name);
+ mTransportNames.remove(component);
+ mTransports.remove(name);
}
}
@@ -1668,7 +1745,7 @@
agent = mConnectedAgent;
}
} catch (RemoteException e) {
- // can't happen
+ // can't happen - ActivityManager is local
}
}
return agent;
@@ -1844,17 +1921,13 @@
int mStatus;
boolean mFinished;
- public PerformBackupTask(IBackupTransport transport, ArrayList<BackupRequest> queue,
- File journal) {
+ public PerformBackupTask(IBackupTransport transport, String dirName,
+ ArrayList<BackupRequest> queue, File journal) {
mTransport = transport;
mOriginalQueue = queue;
mJournal = journal;
- try {
- mStateDir = new File(mBaseStateDir, transport.transportDirName());
- } catch (RemoteException e) {
- // can't happen; the transport is local
- }
+ mStateDir = new File(mBaseStateDir, dirName);
mCurrentState = BackupState.INITIAL;
mFinished = false;
@@ -2100,8 +2173,12 @@
addBackupTrace("success; recording token");
try {
mCurrentToken = mTransport.getCurrentRestoreSet();
- } catch (RemoteException e) {} // can't happen
- writeRestoreTokens();
+ writeRestoreTokens();
+ } catch (RemoteException e) {
+ // nothing for it at this point, unfortunately, but this will be
+ // recorded the next time we fully succeed.
+ addBackupTrace("transport threw returning token");
+ }
}
// Set up the next backup pass - at this point we can set mBackupRunning
@@ -2322,7 +2399,7 @@
addBackupTrace("unbinding " + mCurrentPackage.packageName);
try { // unbind even on timeout, just in case
mActivityManager.unbindBackupAgent(mCurrentPackage.applicationInfo);
- } catch (RemoteException e) {}
+ } catch (RemoteException e) { /* can't happen; activity manager is local */ }
}
}
@@ -4337,7 +4414,7 @@
}
}
- PerformRestoreTask(IBackupTransport transport, IRestoreObserver observer,
+ PerformRestoreTask(IBackupTransport transport, String dirName, IRestoreObserver observer,
long restoreSetToken, PackageInfo targetPackage, int pmToken,
boolean needFullBackup, String[] filterSet) {
mCurrentState = RestoreState.INITIAL;
@@ -4360,11 +4437,7 @@
mFilterSet = null;
}
- try {
- mStateDir = new File(mBaseStateDir, transport.transportDirName());
- } catch (RemoteException e) {
- // can't happen; the transport is local
- }
+ mStateDir = new File(mBaseStateDir, dirName);
}
// Execute one tick of whatever state machine the task implements
@@ -5090,8 +5163,8 @@
}
// Clear the given package's backup data from the current transport
- public void clearBackupData(String packageName) {
- if (DEBUG) Slog.v(TAG, "clearBackupData() of " + packageName);
+ public void clearBackupData(String transportName, String packageName) {
+ if (DEBUG) Slog.v(TAG, "clearBackupData() of " + packageName + " on " + transportName);
PackageInfo info;
try {
info = mPackageManager.getPackageInfo(packageName, PackageManager.GET_SIGNATURES);
@@ -5122,13 +5195,22 @@
// Is the given app an available participant?
if (apps.contains(packageName)) {
- if (DEBUG) Slog.v(TAG, "Found the app - running clear process");
// found it; fire off the clear request
+ if (DEBUG) Slog.v(TAG, "Found the app - running clear process");
+ mBackupHandler.removeMessages(MSG_RETRY_CLEAR);
synchronized (mQueueLock) {
+ final IBackupTransport transport = getTransport(transportName);
+ if (transport == null) {
+ // transport is currently unavailable -- make sure to retry
+ Message msg = mBackupHandler.obtainMessage(MSG_RETRY_CLEAR,
+ new ClearRetryParams(transportName, packageName));
+ mBackupHandler.sendMessageDelayed(msg, TRANSPORT_RETRY_INTERVAL);
+ return;
+ }
long oldId = Binder.clearCallingIdentity();
mWakelock.acquire();
Message msg = mBackupHandler.obtainMessage(MSG_RUN_CLEAR,
- new ClearParams(getTransport(mCurrentTransport), info));
+ new ClearParams(transport, info));
mBackupHandler.sendMessage(msg);
Binder.restoreCallingIdentity(oldId);
}
@@ -5359,7 +5441,8 @@
boolean isEncrypted;
try {
- isEncrypted = (mMountService.getEncryptionState() != MountService.ENCRYPTION_STATE_NONE);
+ isEncrypted = (mMountService.getEncryptionState() !=
+ IMountService.ENCRYPTION_STATE_NONE);
if (isEncrypted) Slog.w(TAG, "Device is encrypted; forcing enc password");
} catch (RemoteException e) {
// couldn't contact the mount service; fail "safe" and assume encryption
@@ -5626,21 +5709,36 @@
+ " restoreSet=" + Long.toHexString(restoreSet));
if (mAutoRestore && mProvisioned && restoreSet != 0) {
- // okay, we're going to attempt a restore of this package from this restore set.
- // The eventual message back into the Package Manager to run the post-install
- // steps for 'token' will be issued from the restore handling code.
+ // Do we have a transport to fetch data for us?
+ IBackupTransport transport = getTransport(mCurrentTransport);
+ if (transport == null) {
+ if (DEBUG) Slog.w(TAG, "No transport for install-time restore");
+ return;
+ }
- // We can use a synthetic PackageInfo here because:
- // 1. We know it's valid, since the Package Manager supplied the name
- // 2. Only the packageName field will be used by the restore code
- PackageInfo pkg = new PackageInfo();
- pkg.packageName = packageName;
+ try {
+ // okay, we're going to attempt a restore of this package from this restore set.
+ // The eventual message back into the Package Manager to run the post-install
+ // steps for 'token' will be issued from the restore handling code.
- mWakelock.acquire();
- Message msg = mBackupHandler.obtainMessage(MSG_RUN_RESTORE);
- msg.obj = new RestoreParams(getTransport(mCurrentTransport), null,
- restoreSet, pkg, token, true);
- mBackupHandler.sendMessage(msg);
+ // This can throw and so *must* happen before the wakelock is acquired
+ String dirName = transport.transportDirName();
+
+ // We can use a synthetic PackageInfo here because:
+ // 1. We know it's valid, since the Package Manager supplied the name
+ // 2. Only the packageName field will be used by the restore code
+ PackageInfo pkg = new PackageInfo();
+ pkg.packageName = packageName;
+
+ mWakelock.acquire();
+ Message msg = mBackupHandler.obtainMessage(MSG_RUN_RESTORE);
+ msg.obj = new RestoreParams(transport, dirName, null,
+ restoreSet, pkg, token, true);
+ mBackupHandler.sendMessage(msg);
+ } catch (RemoteException e) {
+ // Binding to the transport broke; back off and proceed with the installation.
+ Slog.e(TAG, "Unable to contact transport for install-time restore");
+ }
} else {
// Auto-restore disabled or no way to attempt a restore; just tell the Package
// Manager to proceed with the post-install handling for this package.
@@ -5797,13 +5895,23 @@
return -1;
}
+ String dirName;
+ try {
+ dirName = mRestoreTransport.transportDirName();
+ } catch (RemoteException e) {
+ // Transport went AWOL; fail.
+ Slog.e(TAG, "Unable to contact transport for restore");
+ return -1;
+ }
+
synchronized (mQueueLock) {
for (int i = 0; i < mRestoreSets.length; i++) {
if (token == mRestoreSets[i].token) {
long oldId = Binder.clearCallingIdentity();
mWakelock.acquire();
Message msg = mBackupHandler.obtainMessage(MSG_RUN_RESTORE);
- msg.obj = new RestoreParams(mRestoreTransport, observer, token, true);
+ msg.obj = new RestoreParams(mRestoreTransport, dirName,
+ observer, token, true);
mBackupHandler.sendMessage(msg);
Binder.restoreCallingIdentity(oldId);
return 0;
@@ -5857,13 +5965,22 @@
return -1;
}
+ String dirName;
+ try {
+ dirName = mRestoreTransport.transportDirName();
+ } catch (RemoteException e) {
+ // Transport went AWOL; fail.
+ Slog.e(TAG, "Unable to contact transport for restore");
+ return -1;
+ }
+
synchronized (mQueueLock) {
for (int i = 0; i < mRestoreSets.length; i++) {
if (token == mRestoreSets[i].token) {
long oldId = Binder.clearCallingIdentity();
mWakelock.acquire();
Message msg = mBackupHandler.obtainMessage(MSG_RUN_RESTORE);
- msg.obj = new RestoreParams(mRestoreTransport, observer, token,
+ msg.obj = new RestoreParams(mRestoreTransport, dirName, observer, token,
packages, true);
mBackupHandler.sendMessage(msg);
Binder.restoreCallingIdentity(oldId);
@@ -5929,11 +6046,21 @@
return -1;
}
+ String dirName;
+ try {
+ dirName = mRestoreTransport.transportDirName();
+ } catch (RemoteException e) {
+ // Transport went AWOL; fail.
+ Slog.e(TAG, "Unable to contact transport for restore");
+ return -1;
+ }
+
// Ready to go: enqueue the restore request and claim success
long oldId = Binder.clearCallingIdentity();
mWakelock.acquire();
Message msg = mBackupHandler.obtainMessage(MSG_RUN_RESTORE);
- msg.obj = new RestoreParams(mRestoreTransport, observer, token, app, 0, false);
+ msg.obj = new RestoreParams(mRestoreTransport, dirName,
+ observer, token, app, 0, false);
mBackupHandler.sendMessage(msg);
Binder.restoreCallingIdentity(oldId);
return 0;
@@ -5964,7 +6091,7 @@
}
}
- // clean up the BackupManagerService side of the bookkeeping
+ // clean up the BackupManagerImpl side of the bookkeeping
// and cancel any pending timeout message
mBackupManager.clearRestoreSession(mSession);
}
diff --git a/services/backup/java/com/android/server/backup/BackupManagerSystemService.java b/services/backup/java/com/android/server/backup/BackupManagerSystemService.java
new file mode 100644
index 0000000..db2c94a
--- /dev/null
+++ b/services/backup/java/com/android/server/backup/BackupManagerSystemService.java
@@ -0,0 +1,36 @@
+/*
+ * Copyright (C) 2013 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.server.backup;
+
+import android.content.Context;
+
+import com.android.server.SystemService;
+
+public class BackupManagerSystemService extends SystemService {
+ private BackupManagerService mBackupManagerImpl;
+
+ @Override
+ public void onCreate(Context context) {
+ mBackupManagerImpl = new BackupManagerService(context);
+ }
+
+ @Override
+ public void onStart() {
+ publishBinderService(Context.BACKUP_SERVICE, mBackupManagerImpl);
+ }
+}
+
diff --git a/services/java/com/android/server/PackageManagerBackupAgent.java b/services/backup/java/com/android/server/backup/PackageManagerBackupAgent.java
similarity index 99%
rename from services/java/com/android/server/PackageManagerBackupAgent.java
rename to services/backup/java/com/android/server/backup/PackageManagerBackupAgent.java
index 77bddb0..495da88 100644
--- a/services/java/com/android/server/PackageManagerBackupAgent.java
+++ b/services/backup/java/com/android/server/backup/PackageManagerBackupAgent.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.server;
+package com.android.server.backup;
import android.app.backup.BackupAgent;
import android.app.backup.BackupDataInput;
diff --git a/services/java/com/android/server/SystemBackupAgent.java b/services/backup/java/com/android/server/backup/SystemBackupAgent.java
similarity index 79%
rename from services/java/com/android/server/SystemBackupAgent.java
rename to services/backup/java/com/android/server/backup/SystemBackupAgent.java
index 8cf273d..26e2e2a 100644
--- a/services/java/com/android/server/SystemBackupAgent.java
+++ b/services/backup/java/com/android/server/backup/SystemBackupAgent.java
@@ -14,9 +14,10 @@
* limitations under the License.
*/
-package com.android.server;
+package com.android.server.backup;
+import android.app.IWallpaperManager;
import android.app.backup.BackupDataInput;
import android.app.backup.BackupDataOutput;
import android.app.backup.BackupAgentHelper;
@@ -26,11 +27,11 @@
import android.content.Context;
import android.os.Environment;
import android.os.ParcelFileDescriptor;
+import android.os.RemoteException;
import android.os.ServiceManager;
import android.os.UserHandle;
import android.util.Slog;
-
import java.io.File;
import java.io.IOException;
@@ -63,16 +64,23 @@
public void onBackup(ParcelFileDescriptor oldState, BackupDataOutput data,
ParcelFileDescriptor newState) throws IOException {
// We only back up the data under the current "wallpaper" schema with metadata
- WallpaperManagerService wallpaper = (WallpaperManagerService)ServiceManager.getService(
+ IWallpaperManager wallpaper = (IWallpaperManager)ServiceManager.getService(
Context.WALLPAPER_SERVICE);
String[] files = new String[] { WALLPAPER_IMAGE, WALLPAPER_INFO };
String[] keys = new String[] { WALLPAPER_IMAGE_KEY, WALLPAPER_INFO_KEY };
- if (wallpaper != null && wallpaper.getName() != null && wallpaper.getName().length() > 0) {
- // When the wallpaper has a name, back up the info by itself.
- // TODO: Don't rely on the innards of the service object like this!
- // TODO: Send a delete for any stored wallpaper image in this case?
- files = new String[] { WALLPAPER_INFO };
- keys = new String[] { WALLPAPER_INFO_KEY };
+ if (wallpaper != null) {
+ try {
+ final String wallpaperName = wallpaper.getName();
+ if (wallpaperName != null && wallpaperName.length() > 0) {
+ // When the wallpaper has a name, back up the info by itself.
+ // TODO: Don't rely on the innards of the service object like this!
+ // TODO: Send a delete for any stored wallpaper image in this case?
+ files = new String[] { WALLPAPER_INFO };
+ keys = new String[] { WALLPAPER_INFO_KEY };
+ }
+ } catch (RemoteException re) {
+ Slog.e(TAG, "Couldn't get wallpaper name\n" + re);
+ }
}
addHelper("wallpaper", new WallpaperBackupHelper(SystemBackupAgent.this, files, keys));
super.onBackup(oldState, data, newState);
@@ -109,9 +117,15 @@
try {
super.onRestore(data, appVersionCode, newState);
- WallpaperManagerService wallpaper = (WallpaperManagerService)ServiceManager.getService(
+ IWallpaperManager wallpaper = (IWallpaperManager) ServiceManager.getService(
Context.WALLPAPER_SERVICE);
- wallpaper.settingsRestored();
+ if (wallpaper != null) {
+ try {
+ wallpaper.settingsRestored();
+ } catch (RemoteException re) {
+ Slog.e(TAG, "Couldn't restore settings\n" + re);
+ }
+ }
} catch (IOException ex) {
// If there was a failure, delete everything for the wallpaper, this is too aggressive,
// but this is hopefully a rare failure.
@@ -149,10 +163,16 @@
FullBackup.restoreFile(data, size, type, mode, mtime, outFile);
if (restoredWallpaper) {
- WallpaperManagerService wallpaper =
- (WallpaperManagerService)ServiceManager.getService(
+ IWallpaperManager wallpaper =
+ (IWallpaperManager)ServiceManager.getService(
Context.WALLPAPER_SERVICE);
- wallpaper.settingsRestored();
+ if (wallpaper != null) {
+ try {
+ wallpaper.settingsRestored();
+ } catch (RemoteException re) {
+ Slog.e(TAG, "Couldn't restore settings\n" + re);
+ }
+ }
}
} catch (IOException e) {
if (restoredWallpaper) {
diff --git a/services/backup/java/service.mk b/services/backup/java/service.mk
new file mode 100644
index 0000000..bd22b95
--- /dev/null
+++ b/services/backup/java/service.mk
@@ -0,0 +1,11 @@
+# Include only if the service is required
+ifneq ($(findstring backup,$(REQUIRED_SERVICES)),)
+
+SUB_DIR := backup/java
+
+LOCAL_SRC_FILES += \
+ $(call all-java-files-under,$(SUB_DIR))
+
+#DEFINED_SERVICES += com.android.server.backup.BackupManagerService
+
+endif
diff --git a/services/java/com/android/server/AlarmManagerService.java b/services/core/java/com/android/server/AlarmManagerService.java
similarity index 88%
rename from services/java/com/android/server/AlarmManagerService.java
rename to services/core/java/com/android/server/AlarmManagerService.java
index 2e1b0af..3cdf170 100644
--- a/services/java/com/android/server/AlarmManagerService.java
+++ b/services/core/java/com/android/server/AlarmManagerService.java
@@ -31,6 +31,7 @@
import android.os.Binder;
import android.os.Bundle;
import android.os.Handler;
+import android.os.IBinder;
import android.os.Message;
import android.os.PowerManager;
import android.os.SystemClock;
@@ -64,54 +65,51 @@
import com.android.internal.util.LocalLog;
-class AlarmManagerService extends IAlarmManager.Stub {
+class AlarmManagerService extends SystemService {
// The threshold for how long an alarm can be late before we print a
// warning message. The time duration is in milliseconds.
private static final long LATE_ALARM_THRESHOLD = 10 * 1000;
private static final int RTC_WAKEUP_MASK = 1 << RTC_WAKEUP;
private static final int RTC_MASK = 1 << RTC;
- private static final int ELAPSED_REALTIME_WAKEUP_MASK = 1 << ELAPSED_REALTIME_WAKEUP;
+ private static final int ELAPSED_REALTIME_WAKEUP_MASK = 1 << ELAPSED_REALTIME_WAKEUP;
private static final int ELAPSED_REALTIME_MASK = 1 << ELAPSED_REALTIME;
- private static final int TIME_CHANGED_MASK = 1 << 16;
- private static final int IS_WAKEUP_MASK = RTC_WAKEUP_MASK|ELAPSED_REALTIME_WAKEUP_MASK;
+ static final int TIME_CHANGED_MASK = 1 << 16;
+ static final int IS_WAKEUP_MASK = RTC_WAKEUP_MASK|ELAPSED_REALTIME_WAKEUP_MASK;
// Mask for testing whether a given alarm type is wakeup vs non-wakeup
- private static final int TYPE_NONWAKEUP_MASK = 0x1; // low bit => non-wakeup
+ static final int TYPE_NONWAKEUP_MASK = 0x1; // low bit => non-wakeup
- private static final String TAG = "AlarmManager";
- private static final String ClockReceiver_TAG = "ClockReceiver";
- private static final boolean localLOGV = false;
- private static final boolean DEBUG_BATCH = localLOGV || false;
- private static final boolean DEBUG_VALIDATE = localLOGV || false;
- private static final int ALARM_EVENT = 1;
- private static final String TIMEZONE_PROPERTY = "persist.sys.timezone";
+ static final String TAG = "AlarmManager";
+ static final String ClockReceiver_TAG = "ClockReceiver";
+ static final boolean localLOGV = false;
+ static final boolean DEBUG_BATCH = localLOGV || false;
+ static final boolean DEBUG_VALIDATE = localLOGV || false;
+ static final int ALARM_EVENT = 1;
+ static final String TIMEZONE_PROPERTY = "persist.sys.timezone";
- private static final Intent mBackgroundIntent
+ static final Intent mBackgroundIntent
= new Intent().addFlags(Intent.FLAG_FROM_BACKGROUND);
- private static final IncreasingTimeOrder sIncreasingTimeOrder = new IncreasingTimeOrder();
+ static final IncreasingTimeOrder sIncreasingTimeOrder = new IncreasingTimeOrder();
- private static final boolean WAKEUP_STATS = false;
+ static final boolean WAKEUP_STATS = false;
- private final Context mContext;
+ final LocalLog mLog = new LocalLog(TAG);
- private final LocalLog mLog = new LocalLog(TAG);
+ final Object mLock = new Object();
- private Object mLock = new Object();
-
- private long mNativeData;
+ long mNativeData;
private long mNextWakeup;
private long mNextNonWakeup;
- private int mBroadcastRefCount = 0;
- private PowerManager.WakeLock mWakeLock;
- private ArrayList<InFlight> mInFlight = new ArrayList<InFlight>();
- private final AlarmThread mWaitThread = new AlarmThread();
- private final AlarmHandler mHandler = new AlarmHandler();
- private ClockReceiver mClockReceiver;
+ int mBroadcastRefCount = 0;
+ PowerManager.WakeLock mWakeLock;
+ ArrayList<InFlight> mInFlight = new ArrayList<InFlight>();
+ final AlarmHandler mHandler = new AlarmHandler();
+ ClockReceiver mClockReceiver;
private UninstallReceiver mUninstallReceiver;
- private final ResultReceiver mResultReceiver = new ResultReceiver();
- private final PendingIntent mTimeTickSender;
- private final PendingIntent mDateChangeSender;
+ final ResultReceiver mResultReceiver = new ResultReceiver();
+ PendingIntent mTimeTickSender;
+ PendingIntent mDateChangeSender;
class WakeupEvent {
public long when;
@@ -125,8 +123,8 @@
}
}
- private final LinkedList<WakeupEvent> mRecentWakeups = new LinkedList<WakeupEvent>();
- private final long RECENT_WAKEUP_PERIOD = 1000L * 60 * 60 * 24; // one day
+ final LinkedList<WakeupEvent> mRecentWakeups = new LinkedList<WakeupEvent>();
+ final long RECENT_WAKEUP_PERIOD = 1000L * 60 * 60 * 24; // one day
static final class Batch {
long start; // These endpoints are always in ELAPSED
@@ -317,9 +315,9 @@
}
// minimum recurrence period or alarm futurity for us to be able to fuzz it
- private static final long MIN_FUZZABLE_INTERVAL = 10000;
- private static final BatchTimeOrder sBatchOrder = new BatchTimeOrder();
- private final ArrayList<Batch> mAlarmBatches = new ArrayList<Batch>();
+ static final long MIN_FUZZABLE_INTERVAL = 10000;
+ static final BatchTimeOrder sBatchOrder = new BatchTimeOrder();
+ final ArrayList<Batch> mAlarmBatches = new ArrayList<Batch>();
static long convertToElapsed(long when, int type) {
final boolean isRtc = (type == RTC || type == RTC_WAKEUP);
@@ -403,7 +401,7 @@
}
}
- private static final class InFlight extends Intent {
+ static final class InFlight extends Intent {
final PendingIntent mPendingIntent;
final WorkSource mWorkSource;
final Pair<String, ComponentName> mTarget;
@@ -427,7 +425,7 @@
}
}
- private static final class FilterStats {
+ static final class FilterStats {
final BroadcastStats mBroadcastStats;
final Pair<String, ComponentName> mTarget;
@@ -443,7 +441,7 @@
}
}
- private static final class BroadcastStats {
+ static final class BroadcastStats {
final String mPackageName;
long aggregateTime;
@@ -459,47 +457,48 @@
}
}
- private final HashMap<String, BroadcastStats> mBroadcastStats
+ final HashMap<String, BroadcastStats> mBroadcastStats
= new HashMap<String, BroadcastStats>();
- public AlarmManagerService(Context context) {
- mContext = context;
+ @Override
+ public void onStart() {
mNativeData = init();
mNextWakeup = mNextNonWakeup = 0;
// We have to set current TimeZone info to kernel
// because kernel doesn't keep this after reboot
- String tz = SystemProperties.get(TIMEZONE_PROPERTY);
- if (tz != null) {
- setTimeZone(tz);
- }
+ setTimeZoneImpl(SystemProperties.get(TIMEZONE_PROPERTY));
- PowerManager pm = (PowerManager)context.getSystemService(Context.POWER_SERVICE);
+ PowerManager pm = (PowerManager) getContext().getSystemService(Context.POWER_SERVICE);
mWakeLock = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, TAG);
- mTimeTickSender = PendingIntent.getBroadcastAsUser(context, 0,
+ mTimeTickSender = PendingIntent.getBroadcastAsUser(getContext(), 0,
new Intent(Intent.ACTION_TIME_TICK).addFlags(
Intent.FLAG_RECEIVER_REGISTERED_ONLY
| Intent.FLAG_RECEIVER_FOREGROUND), 0,
UserHandle.ALL);
Intent intent = new Intent(Intent.ACTION_DATE_CHANGED);
intent.addFlags(Intent.FLAG_RECEIVER_REPLACE_PENDING);
- mDateChangeSender = PendingIntent.getBroadcastAsUser(context, 0, intent,
+ mDateChangeSender = PendingIntent.getBroadcastAsUser(getContext(), 0, intent,
Intent.FLAG_RECEIVER_REGISTERED_ONLY_BEFORE_BOOT, UserHandle.ALL);
// now that we have initied the driver schedule the alarm
- mClockReceiver= new ClockReceiver();
+ mClockReceiver = new ClockReceiver();
mClockReceiver.scheduleTimeTickEvent();
mClockReceiver.scheduleDateChangedEvent();
mUninstallReceiver = new UninstallReceiver();
if (mNativeData != 0) {
- mWaitThread.start();
+ AlarmThread waitThread = new AlarmThread();
+ waitThread.start();
} else {
Slog.w(TAG, "Failed to open alarm driver. Falling back to a handler.");
}
+
+ publishBinderService(Context.ALARM_SERVICE, mService);
}
-
+
+ @Override
protected void finalize() throws Throwable {
try {
close(mNativeData);
@@ -508,19 +507,51 @@
}
}
- @Override
- public void set(int type, long triggerAtTime, long windowLength, long interval,
- PendingIntent operation, WorkSource workSource) {
- if (workSource != null) {
- mContext.enforceCallingPermission(
- android.Manifest.permission.UPDATE_DEVICE_STATS,
- "AlarmManager.set");
+ void setTimeZoneImpl(String tz) {
+ if (TextUtils.isEmpty(tz)) {
+ return;
}
- set(type, triggerAtTime, windowLength, interval, operation, false, workSource);
+ TimeZone zone = TimeZone.getTimeZone(tz);
+ // Prevent reentrant calls from stepping on each other when writing
+ // the time zone property
+ boolean timeZoneWasChanged = false;
+ synchronized (this) {
+ String current = SystemProperties.get(TIMEZONE_PROPERTY);
+ if (current == null || !current.equals(zone.getID())) {
+ if (localLOGV) {
+ Slog.v(TAG, "timezone changed: " + current + ", new=" + zone.getID());
+ }
+ timeZoneWasChanged = true;
+ SystemProperties.set(TIMEZONE_PROPERTY, zone.getID());
+ }
+
+ // Update the kernel timezone information
+ // Kernel tracks time offsets as 'minutes west of GMT'
+ int gmtOffset = zone.getOffset(System.currentTimeMillis());
+ setKernelTimezone(mNativeData, -(gmtOffset / 60000));
+ }
+
+ TimeZone.setDefault(null);
+
+ if (timeZoneWasChanged) {
+ Intent intent = new Intent(Intent.ACTION_TIMEZONE_CHANGED);
+ intent.addFlags(Intent.FLAG_RECEIVER_REPLACE_PENDING);
+ intent.putExtra("time-zone", zone.getID());
+ getContext().sendBroadcastAsUser(intent, UserHandle.ALL);
+ }
}
- public void set(int type, long triggerAtTime, long windowLength, long interval,
+ void removeImpl(PendingIntent operation) {
+ if (operation == null) {
+ return;
+ }
+ synchronized (mLock) {
+ removeLocked(operation);
+ }
+ }
+
+ void setImpl(int type, long triggerAtTime, long windowLength, long interval,
PendingIntent operation, boolean isStandalone, WorkSource workSource) {
if (operation == null) {
Slog.w(TAG, "set/setRepeating ignored because there is no intent");
@@ -606,231 +637,64 @@
rescheduleKernelAlarmsLocked();
}
- private void logBatchesLocked() {
- ByteArrayOutputStream bs = new ByteArrayOutputStream(2048);
- PrintWriter pw = new PrintWriter(bs);
- final long nowRTC = System.currentTimeMillis();
- final long nowELAPSED = SystemClock.elapsedRealtime();
- final int NZ = mAlarmBatches.size();
- for (int iz = 0; iz < NZ; iz++) {
- Batch bz = mAlarmBatches.get(iz);
- pw.append("Batch "); pw.print(iz); pw.append(": "); pw.println(bz);
- dumpAlarmList(pw, bz.alarms, " ", nowELAPSED, nowRTC);
- pw.flush();
- Slog.v(TAG, bs.toString());
- bs.reset();
- }
- }
-
- private boolean validateConsistencyLocked() {
- if (DEBUG_VALIDATE) {
- long lastTime = Long.MIN_VALUE;
- final int N = mAlarmBatches.size();
- for (int i = 0; i < N; i++) {
- Batch b = mAlarmBatches.get(i);
- if (b.start >= lastTime) {
- // duplicate start times are okay because of standalone batches
- lastTime = b.start;
- } else {
- Slog.e(TAG, "CONSISTENCY FAILURE: Batch " + i + " is out of order");
- logBatchesLocked();
- return false;
- }
- }
- }
- return true;
- }
-
- private Batch findFirstWakeupBatchLocked() {
- final int N = mAlarmBatches.size();
- for (int i = 0; i < N; i++) {
- Batch b = mAlarmBatches.get(i);
- if (b.hasWakeups()) {
- return b;
- }
- }
- return null;
- }
-
- private void rescheduleKernelAlarmsLocked() {
- // Schedule the next upcoming wakeup alarm. If there is a deliverable batch
- // prior to that which contains no wakeups, we schedule that as well.
- if (mAlarmBatches.size() > 0) {
- final Batch firstWakeup = findFirstWakeupBatchLocked();
- final Batch firstBatch = mAlarmBatches.get(0);
- if (firstWakeup != null && mNextWakeup != firstWakeup.start) {
- mNextWakeup = firstWakeup.start;
- setLocked(ELAPSED_REALTIME_WAKEUP, firstWakeup.start);
- }
- if (firstBatch != firstWakeup && mNextNonWakeup != firstBatch.start) {
- mNextNonWakeup = firstBatch.start;
- setLocked(ELAPSED_REALTIME, firstBatch.start);
- }
- }
- }
-
- public void setTime(long millis) {
- mContext.enforceCallingOrSelfPermission(
- "android.permission.SET_TIME",
- "setTime");
-
- SystemClock.setCurrentTimeMillis(millis);
- }
-
- public void setTimeZone(String tz) {
- mContext.enforceCallingOrSelfPermission(
- "android.permission.SET_TIME_ZONE",
- "setTimeZone");
-
- long oldId = Binder.clearCallingIdentity();
- try {
- if (TextUtils.isEmpty(tz)) return;
- TimeZone zone = TimeZone.getTimeZone(tz);
- // Prevent reentrant calls from stepping on each other when writing
- // the time zone property
- boolean timeZoneWasChanged = false;
- synchronized (this) {
- String current = SystemProperties.get(TIMEZONE_PROPERTY);
- if (current == null || !current.equals(zone.getID())) {
- if (localLOGV) {
- Slog.v(TAG, "timezone changed: " + current + ", new=" + zone.getID());
- }
- timeZoneWasChanged = true;
- SystemProperties.set(TIMEZONE_PROPERTY, zone.getID());
- }
-
- // Update the kernel timezone information
- // Kernel tracks time offsets as 'minutes west of GMT'
- int gmtOffset = zone.getOffset(System.currentTimeMillis());
- setKernelTimezone(mNativeData, -(gmtOffset / 60000));
+ private final IBinder mService = new IAlarmManager.Stub() {
+ @Override
+ public void set(int type, long triggerAtTime, long windowLength, long interval,
+ PendingIntent operation, WorkSource workSource) {
+ if (workSource != null) {
+ getContext().enforceCallingPermission(
+ android.Manifest.permission.UPDATE_DEVICE_STATS,
+ "AlarmManager.set");
}
- TimeZone.setDefault(null);
+ setImpl(type, triggerAtTime, windowLength, interval, operation,
+ false, workSource);
+ }
- if (timeZoneWasChanged) {
- Intent intent = new Intent(Intent.ACTION_TIMEZONE_CHANGED);
- intent.addFlags(Intent.FLAG_RECEIVER_REPLACE_PENDING);
- intent.putExtra("time-zone", zone.getID());
- mContext.sendBroadcastAsUser(intent, UserHandle.ALL);
- }
- } finally {
- Binder.restoreCallingIdentity(oldId);
+ @Override
+ public void setTime(long millis) {
+ getContext().enforceCallingOrSelfPermission(
+ "android.permission.SET_TIME",
+ "setTime");
+
+ SystemClock.setCurrentTimeMillis(millis);
}
- }
-
- public void remove(PendingIntent operation) {
- if (operation == null) {
- return;
- }
- synchronized (mLock) {
- removeLocked(operation);
- }
- }
-
- public void removeLocked(PendingIntent operation) {
- boolean didRemove = false;
- for (int i = mAlarmBatches.size() - 1; i >= 0; i--) {
- Batch b = mAlarmBatches.get(i);
- didRemove |= b.remove(operation);
- if (b.size() == 0) {
- mAlarmBatches.remove(i);
+
+ @Override
+ public void setTimeZone(String tz) {
+ getContext().enforceCallingOrSelfPermission(
+ "android.permission.SET_TIME_ZONE",
+ "setTimeZone");
+
+ final long oldId = Binder.clearCallingIdentity();
+ try {
+ setTimeZoneImpl(tz);
+ } finally {
+ Binder.restoreCallingIdentity(oldId);
}
}
- if (didRemove) {
- if (DEBUG_BATCH) {
- Slog.v(TAG, "remove(operation) changed bounds; rebatching");
- }
- rebatchAllAlarmsLocked(true);
- rescheduleKernelAlarmsLocked();
- }
- }
+ @Override
+ public void remove(PendingIntent operation) {
+ removeImpl(operation);
- public void removeLocked(String packageName) {
- boolean didRemove = false;
- for (int i = mAlarmBatches.size() - 1; i >= 0; i--) {
- Batch b = mAlarmBatches.get(i);
- didRemove |= b.remove(packageName);
- if (b.size() == 0) {
- mAlarmBatches.remove(i);
- }
}
- if (didRemove) {
- if (DEBUG_BATCH) {
- Slog.v(TAG, "remove(package) changed bounds; rebatching");
+ @Override
+ protected void dump(FileDescriptor fd, PrintWriter pw, String[] args) {
+ if (getContext().checkCallingOrSelfPermission(android.Manifest.permission.DUMP)
+ != PackageManager.PERMISSION_GRANTED) {
+ pw.println("Permission Denial: can't dump AlarmManager from from pid="
+ + Binder.getCallingPid()
+ + ", uid=" + Binder.getCallingUid());
+ return;
}
- rebatchAllAlarmsLocked(true);
- rescheduleKernelAlarmsLocked();
- }
- }
- public void removeUserLocked(int userHandle) {
- boolean didRemove = false;
- for (int i = mAlarmBatches.size() - 1; i >= 0; i--) {
- Batch b = mAlarmBatches.get(i);
- didRemove |= b.remove(userHandle);
- if (b.size() == 0) {
- mAlarmBatches.remove(i);
- }
+ dumpImpl(pw);
}
+ };
- if (didRemove) {
- if (DEBUG_BATCH) {
- Slog.v(TAG, "remove(user) changed bounds; rebatching");
- }
- rebatchAllAlarmsLocked(true);
- rescheduleKernelAlarmsLocked();
- }
- }
-
- public boolean lookForPackageLocked(String packageName) {
- for (int i = 0; i < mAlarmBatches.size(); i++) {
- Batch b = mAlarmBatches.get(i);
- if (b.hasPackage(packageName)) {
- return true;
- }
- }
- return false;
- }
-
- private void setLocked(int type, long when)
- {
- if (mNativeData != 0)
- {
- // The kernel never triggers alarms with negative wakeup times
- // so we ensure they are positive.
- long alarmSeconds, alarmNanoseconds;
- if (when < 0) {
- alarmSeconds = 0;
- alarmNanoseconds = 0;
- } else {
- alarmSeconds = when / 1000;
- alarmNanoseconds = (when % 1000) * 1000 * 1000;
- }
-
- set(mNativeData, type, alarmSeconds, alarmNanoseconds);
- }
- else
- {
- Message msg = Message.obtain();
- msg.what = ALARM_EVENT;
-
- mHandler.removeMessages(ALARM_EVENT);
- mHandler.sendMessageAtTime(msg, when);
- }
- }
-
- @Override
- protected void dump(FileDescriptor fd, PrintWriter pw, String[] args) {
- if (mContext.checkCallingOrSelfPermission(android.Manifest.permission.DUMP)
- != PackageManager.PERMISSION_GRANTED) {
- pw.println("Permission Denial: can't dump AlarmManager from from pid="
- + Binder.getCallingPid()
- + ", uid=" + Binder.getCallingUid());
- return;
- }
-
+ void dumpImpl(PrintWriter pw) {
synchronized (mLock) {
pw.println("Current Alarm Manager state:");
final long nowRTC = System.currentTimeMillis();
@@ -980,6 +844,159 @@
}
}
+ private void logBatchesLocked() {
+ ByteArrayOutputStream bs = new ByteArrayOutputStream(2048);
+ PrintWriter pw = new PrintWriter(bs);
+ final long nowRTC = System.currentTimeMillis();
+ final long nowELAPSED = SystemClock.elapsedRealtime();
+ final int NZ = mAlarmBatches.size();
+ for (int iz = 0; iz < NZ; iz++) {
+ Batch bz = mAlarmBatches.get(iz);
+ pw.append("Batch "); pw.print(iz); pw.append(": "); pw.println(bz);
+ dumpAlarmList(pw, bz.alarms, " ", nowELAPSED, nowRTC);
+ pw.flush();
+ Slog.v(TAG, bs.toString());
+ bs.reset();
+ }
+ }
+
+ private boolean validateConsistencyLocked() {
+ if (DEBUG_VALIDATE) {
+ long lastTime = Long.MIN_VALUE;
+ final int N = mAlarmBatches.size();
+ for (int i = 0; i < N; i++) {
+ Batch b = mAlarmBatches.get(i);
+ if (b.start >= lastTime) {
+ // duplicate start times are okay because of standalone batches
+ lastTime = b.start;
+ } else {
+ Slog.e(TAG, "CONSISTENCY FAILURE: Batch " + i + " is out of order");
+ logBatchesLocked();
+ return false;
+ }
+ }
+ }
+ return true;
+ }
+
+ private Batch findFirstWakeupBatchLocked() {
+ final int N = mAlarmBatches.size();
+ for (int i = 0; i < N; i++) {
+ Batch b = mAlarmBatches.get(i);
+ if (b.hasWakeups()) {
+ return b;
+ }
+ }
+ return null;
+ }
+
+ void rescheduleKernelAlarmsLocked() {
+ // Schedule the next upcoming wakeup alarm. If there is a deliverable batch
+ // prior to that which contains no wakeups, we schedule that as well.
+ if (mAlarmBatches.size() > 0) {
+ final Batch firstWakeup = findFirstWakeupBatchLocked();
+ final Batch firstBatch = mAlarmBatches.get(0);
+ if (firstWakeup != null && mNextWakeup != firstWakeup.start) {
+ mNextWakeup = firstWakeup.start;
+ setLocked(ELAPSED_REALTIME_WAKEUP, firstWakeup.start);
+ }
+ if (firstBatch != firstWakeup && mNextNonWakeup != firstBatch.start) {
+ mNextNonWakeup = firstBatch.start;
+ setLocked(ELAPSED_REALTIME, firstBatch.start);
+ }
+ }
+ }
+
+ private void removeLocked(PendingIntent operation) {
+ boolean didRemove = false;
+ for (int i = mAlarmBatches.size() - 1; i >= 0; i--) {
+ Batch b = mAlarmBatches.get(i);
+ didRemove |= b.remove(operation);
+ if (b.size() == 0) {
+ mAlarmBatches.remove(i);
+ }
+ }
+
+ if (didRemove) {
+ if (DEBUG_BATCH) {
+ Slog.v(TAG, "remove(operation) changed bounds; rebatching");
+ }
+ rebatchAllAlarmsLocked(true);
+ rescheduleKernelAlarmsLocked();
+ }
+ }
+
+ void removeLocked(String packageName) {
+ boolean didRemove = false;
+ for (int i = mAlarmBatches.size() - 1; i >= 0; i--) {
+ Batch b = mAlarmBatches.get(i);
+ didRemove |= b.remove(packageName);
+ if (b.size() == 0) {
+ mAlarmBatches.remove(i);
+ }
+ }
+
+ if (didRemove) {
+ if (DEBUG_BATCH) {
+ Slog.v(TAG, "remove(package) changed bounds; rebatching");
+ }
+ rebatchAllAlarmsLocked(true);
+ rescheduleKernelAlarmsLocked();
+ }
+ }
+
+ void removeUserLocked(int userHandle) {
+ boolean didRemove = false;
+ for (int i = mAlarmBatches.size() - 1; i >= 0; i--) {
+ Batch b = mAlarmBatches.get(i);
+ didRemove |= b.remove(userHandle);
+ if (b.size() == 0) {
+ mAlarmBatches.remove(i);
+ }
+ }
+
+ if (didRemove) {
+ if (DEBUG_BATCH) {
+ Slog.v(TAG, "remove(user) changed bounds; rebatching");
+ }
+ rebatchAllAlarmsLocked(true);
+ rescheduleKernelAlarmsLocked();
+ }
+ }
+
+ boolean lookForPackageLocked(String packageName) {
+ for (int i = 0; i < mAlarmBatches.size(); i++) {
+ Batch b = mAlarmBatches.get(i);
+ if (b.hasPackage(packageName)) {
+ return true;
+ }
+ }
+ return false;
+ }
+
+ private void setLocked(int type, long when) {
+ if (mNativeData != 0) {
+ // The kernel never triggers alarms with negative wakeup times
+ // so we ensure they are positive.
+ long alarmSeconds, alarmNanoseconds;
+ if (when < 0) {
+ alarmSeconds = 0;
+ alarmNanoseconds = 0;
+ } else {
+ alarmSeconds = when / 1000;
+ alarmNanoseconds = (when % 1000) * 1000 * 1000;
+ }
+
+ set(mNativeData, type, alarmSeconds, alarmNanoseconds);
+ } else {
+ Message msg = Message.obtain();
+ msg.what = ALARM_EVENT;
+
+ mHandler.removeMessages(ALARM_EVENT);
+ mHandler.sendMessageAtTime(msg, when);
+ }
+ }
+
private static final void dumpAlarmList(PrintWriter pw, ArrayList<Alarm> list,
String prefix, String label, long now) {
for (int i=list.size()-1; i>=0; i--) {
@@ -1020,7 +1037,7 @@
private native int waitForAlarm(long nativeData);
private native int setKernelTimezone(long nativeData, int minuteswest);
- private void triggerAlarmsLocked(ArrayList<Alarm> triggerList, long nowELAPSED, long nowRTC) {
+ void triggerAlarmsLocked(ArrayList<Alarm> triggerList, long nowELAPSED, long nowRTC) {
// batches are temporally sorted, so we need only pull from the
// start of the list until we either empty it or hit a batch
// that is not yet deliverable
@@ -1166,13 +1183,13 @@
if (DEBUG_BATCH) {
Slog.v(TAG, "Time changed notification from kernel; rebatching");
}
- remove(mTimeTickSender);
+ removeImpl(mTimeTickSender);
rebatchAllAlarms();
mClockReceiver.scheduleTimeTickEvent();
Intent intent = new Intent(Intent.ACTION_TIME_CHANGED);
intent.addFlags(Intent.FLAG_RECEIVER_REPLACE_PENDING
| Intent.FLAG_RECEIVER_REGISTERED_ONLY_BEFORE_BOOT);
- mContext.sendBroadcastAsUser(intent, UserHandle.ALL);
+ getContext().sendBroadcastAsUser(intent, UserHandle.ALL);
}
synchronized (mLock) {
@@ -1206,7 +1223,7 @@
Alarm alarm = triggerList.get(i);
try {
if (localLOGV) Slog.v(TAG, "sending alarm " + alarm);
- alarm.operation.send(mContext, 0,
+ alarm.operation.send(getContext(), 0,
mBackgroundIntent.putExtra(
Intent.EXTRA_ALARM_COUNT, alarm.count),
mResultReceiver, mHandler);
@@ -1248,7 +1265,7 @@
if (alarm.repeatInterval > 0) {
// This IntentSender is no longer valid, but this
// is a repeating alarm, so toss the hoser.
- remove(alarm.operation);
+ removeImpl(alarm.operation);
}
} catch (RuntimeException e) {
Slog.w(TAG, "Failure sending alarm.", e);
@@ -1310,7 +1327,7 @@
if (alarm.repeatInterval > 0) {
// This IntentSender is no longer valid, but this
// is a repeating alarm, so toss the hoser.
- remove(alarm.operation);
+ removeImpl(alarm.operation);
}
}
}
@@ -1323,7 +1340,7 @@
IntentFilter filter = new IntentFilter();
filter.addAction(Intent.ACTION_TIME_TICK);
filter.addAction(Intent.ACTION_DATE_CHANGED);
- mContext.registerReceiver(this, filter);
+ getContext().registerReceiver(this, filter);
}
@Override
@@ -1354,7 +1371,7 @@
final long tickEventDelay = nextTime - currentTime;
final WorkSource workSource = null; // Let system take blame for time tick events.
- set(ELAPSED_REALTIME, SystemClock.elapsedRealtime() + tickEventDelay, 0,
+ setImpl(ELAPSED_REALTIME, SystemClock.elapsedRealtime() + tickEventDelay, 0,
0, mTimeTickSender, true, workSource);
}
@@ -1368,7 +1385,7 @@
calendar.add(Calendar.DAY_OF_MONTH, 1);
final WorkSource workSource = null; // Let system take blame for date change events.
- set(RTC, calendar.getTimeInMillis(), 0, 0, mDateChangeSender, true, workSource);
+ setImpl(RTC, calendar.getTimeInMillis(), 0, 0, mDateChangeSender, true, workSource);
}
}
@@ -1379,12 +1396,12 @@
filter.addAction(Intent.ACTION_PACKAGE_RESTARTED);
filter.addAction(Intent.ACTION_QUERY_PACKAGE_RESTART);
filter.addDataScheme("package");
- mContext.registerReceiver(this, filter);
+ getContext().registerReceiver(this, filter);
// Register for events related to sdcard installation.
IntentFilter sdFilter = new IntentFilter();
sdFilter.addAction(Intent.ACTION_EXTERNAL_APPLICATIONS_UNAVAILABLE);
sdFilter.addAction(Intent.ACTION_USER_STOPPED);
- mContext.registerReceiver(this, sdFilter);
+ getContext().registerReceiver(this, sdFilter);
}
@Override
diff --git a/services/java/com/android/server/AppOpsService.java b/services/core/java/com/android/server/AppOpsService.java
similarity index 99%
rename from services/java/com/android/server/AppOpsService.java
rename to services/core/java/com/android/server/AppOpsService.java
index a1a0d47..e5615c0 100644
--- a/services/java/com/android/server/AppOpsService.java
+++ b/services/core/java/com/android/server/AppOpsService.java
@@ -186,9 +186,9 @@
}
}
- public AppOpsService(File storagePath) {
+ public AppOpsService(File storagePath, Handler handler) {
mFile = new AtomicFile(storagePath);
- mHandler = new Handler();
+ mHandler = handler;
readState();
}
diff --git a/services/java/com/android/server/AssetAtlasService.java b/services/core/java/com/android/server/AssetAtlasService.java
similarity index 100%
rename from services/java/com/android/server/AssetAtlasService.java
rename to services/core/java/com/android/server/AssetAtlasService.java
diff --git a/services/java/com/android/server/AttributeCache.java b/services/core/java/com/android/server/AttributeCache.java
similarity index 100%
rename from services/java/com/android/server/AttributeCache.java
rename to services/core/java/com/android/server/AttributeCache.java
diff --git a/services/java/com/android/server/BatteryService.java b/services/core/java/com/android/server/BatteryService.java
similarity index 97%
rename from services/java/com/android/server/BatteryService.java
rename to services/core/java/com/android/server/BatteryService.java
index 5f3f894..cc9055d 100644
--- a/services/java/com/android/server/BatteryService.java
+++ b/services/core/java/com/android/server/BatteryService.java
@@ -19,6 +19,8 @@
import android.os.BatteryStats;
import com.android.internal.app.IBatteryStats;
import com.android.server.am.BatteryStatsService;
+import com.android.server.lights.Light;
+import com.android.server.lights.LightsManager;
import android.app.ActivityManagerNative;
import android.content.ContentResolver;
@@ -134,13 +136,10 @@
private boolean mSentLowBatteryBroadcast = false;
- private BatteryListener mBatteryPropertiesListener;
- private IBatteryPropertiesRegistrar mBatteryPropertiesRegistrar;
-
- public BatteryService(Context context, LightsService lights) {
+ public BatteryService(Context context, LightsManager lightsManager) {
mContext = context;
mHandler = new Handler(true /*async*/);
- mLed = new Led(context, lights);
+ mLed = new Led(context, lightsManager);
mBatteryStats = BatteryStatsService.getService();
mCriticalBatteryLevel = mContext.getResources().getInteger(
@@ -158,13 +157,11 @@
"DEVPATH=/devices/virtual/switch/invalid_charger");
}
- mBatteryPropertiesListener = new BatteryListener();
-
IBinder b = ServiceManager.getService("batterypropreg");
- mBatteryPropertiesRegistrar = IBatteryPropertiesRegistrar.Stub.asInterface(b);
-
+ final IBatteryPropertiesRegistrar batteryPropertiesRegistrar =
+ IBatteryPropertiesRegistrar.Stub.asInterface(b);
try {
- mBatteryPropertiesRegistrar.registerListener(mBatteryPropertiesListener);
+ batteryPropertiesRegistrar.registerListener(new BatteryListener());
} catch (RemoteException e) {
// Should never happen.
}
@@ -688,7 +685,7 @@
};
private final class Led {
- private final LightsService.Light mBatteryLight;
+ private final Light mBatteryLight;
private final int mBatteryLowARGB;
private final int mBatteryMediumARGB;
@@ -696,8 +693,8 @@
private final int mBatteryLedOn;
private final int mBatteryLedOff;
- public Led(Context context, LightsService lights) {
- mBatteryLight = lights.getLight(LightsService.LIGHT_ID_BATTERY);
+ public Led(Context context, LightsManager lights) {
+ mBatteryLight = lights.getLight(LightsManager.LIGHT_ID_BATTERY);
mBatteryLowARGB = context.getResources().getInteger(
com.android.internal.R.integer.config_notificationsBatteryLowARGB);
@@ -723,7 +720,7 @@
mBatteryLight.setColor(mBatteryLowARGB);
} else {
// Flash red when battery is low and not charging
- mBatteryLight.setFlashing(mBatteryLowARGB, LightsService.LIGHT_FLASH_TIMED,
+ mBatteryLight.setFlashing(mBatteryLowARGB, Light.LIGHT_FLASH_TIMED,
mBatteryLedOn, mBatteryLedOff);
}
} else if (status == BatteryManager.BATTERY_STATUS_CHARGING
@@ -743,8 +740,14 @@
}
private final class BatteryListener extends IBatteryPropertiesListener.Stub {
+ @Override
public void batteryPropertiesChanged(BatteryProperties props) {
- BatteryService.this.update(props);
+ final long identity = Binder.clearCallingIdentity();
+ try {
+ BatteryService.this.update(props);
+ } finally {
+ Binder.restoreCallingIdentity(identity);
+ }
}
}
}
diff --git a/services/java/com/android/server/BluetoothManagerService.java b/services/core/java/com/android/server/BluetoothManagerService.java
similarity index 100%
rename from services/java/com/android/server/BluetoothManagerService.java
rename to services/core/java/com/android/server/BluetoothManagerService.java
diff --git a/services/java/com/android/server/BootReceiver.java b/services/core/java/com/android/server/BootReceiver.java
similarity index 97%
rename from services/java/com/android/server/BootReceiver.java
rename to services/core/java/com/android/server/BootReceiver.java
index da1b254..bce85ce 100644
--- a/services/java/com/android/server/BootReceiver.java
+++ b/services/core/java/com/android/server/BootReceiver.java
@@ -120,6 +120,8 @@
// Negative sizes mean to take the *tail* of the file (see FileUtils.readTextFile())
addFileToDropBox(db, prefs, headers, "/proc/last_kmsg",
-LOG_SIZE, "SYSTEM_LAST_KMSG");
+ addFileToDropBox(db, prefs, headers, "/sys/fs/pstore/console-ramoops",
+ -LOG_SIZE, "SYSTEM_LAST_KMSG");
addFileToDropBox(db, prefs, headers, "/cache/recovery/log",
-LOG_SIZE, "SYSTEM_RECOVERY_LOG");
addFileToDropBox(db, prefs, headers, "/data/dontpanic/apanic_console",
@@ -184,6 +186,11 @@
File file = new File("/proc/last_kmsg");
long fileTime = file.lastModified();
+ if (fileTime <= 0) {
+ file = new File("/sys/fs/pstore/console-ramoops");
+ fileTime = file.lastModified();
+ }
+
if (fileTime <= 0) return; // File does not exist
if (prefs != null) {
diff --git a/services/java/com/android/server/BrickReceiver.java b/services/core/java/com/android/server/BrickReceiver.java
similarity index 100%
rename from services/java/com/android/server/BrickReceiver.java
rename to services/core/java/com/android/server/BrickReceiver.java
diff --git a/services/java/com/android/server/CertBlacklister.java b/services/core/java/com/android/server/CertBlacklister.java
similarity index 100%
rename from services/java/com/android/server/CertBlacklister.java
rename to services/core/java/com/android/server/CertBlacklister.java
diff --git a/services/java/com/android/server/CommonTimeManagementService.java b/services/core/java/com/android/server/CommonTimeManagementService.java
similarity index 100%
rename from services/java/com/android/server/CommonTimeManagementService.java
rename to services/core/java/com/android/server/CommonTimeManagementService.java
diff --git a/services/java/com/android/server/ConnectivityService.java b/services/core/java/com/android/server/ConnectivityService.java
similarity index 99%
rename from services/java/com/android/server/ConnectivityService.java
rename to services/core/java/com/android/server/ConnectivityService.java
index d42ae3a..8d158cf 100644
--- a/services/java/com/android/server/ConnectivityService.java
+++ b/services/core/java/com/android/server/ConnectivityService.java
@@ -26,6 +26,7 @@
import static android.net.ConnectivityManager.TYPE_MOBILE;
import static android.net.ConnectivityManager.TYPE_WIFI;
import static android.net.ConnectivityManager.TYPE_WIMAX;
+import static android.net.ConnectivityManager.TYPE_PROXY;
import static android.net.ConnectivityManager.getNetworkTypeName;
import static android.net.ConnectivityManager.isNetworkTypeValid;
import static android.net.NetworkPolicyManager.RULE_ALLOW_ALL;
@@ -69,6 +70,7 @@
import android.net.NetworkStateTracker;
import android.net.NetworkUtils;
import android.net.Proxy;
+import android.net.ProxyDataTracker;
import android.net.ProxyProperties;
import android.net.RouteInfo;
import android.net.SamplingDataTracker;
@@ -729,6 +731,8 @@
return makeWimaxStateTracker(mContext, mTrackerHandler);
case TYPE_ETHERNET:
return EthernetDataTracker.getInstance();
+ case TYPE_PROXY:
+ return new ProxyDataTracker();
default:
throw new IllegalArgumentException(
"Trying to create a NetworkStateTracker for an unknown radio type: "
diff --git a/services/java/com/android/server/ConsumerIrService.java b/services/core/java/com/android/server/ConsumerIrService.java
similarity index 100%
rename from services/java/com/android/server/ConsumerIrService.java
rename to services/core/java/com/android/server/ConsumerIrService.java
diff --git a/services/java/com/android/server/CountryDetectorService.java b/services/core/java/com/android/server/CountryDetectorService.java
similarity index 100%
rename from services/java/com/android/server/CountryDetectorService.java
rename to services/core/java/com/android/server/CountryDetectorService.java
diff --git a/services/java/com/android/server/DiskStatsService.java b/services/core/java/com/android/server/DiskStatsService.java
similarity index 100%
rename from services/java/com/android/server/DiskStatsService.java
rename to services/core/java/com/android/server/DiskStatsService.java
diff --git a/services/core/java/com/android/server/DisplayThread.java b/services/core/java/com/android/server/DisplayThread.java
new file mode 100644
index 0000000..528ba0a
--- /dev/null
+++ b/services/core/java/com/android/server/DisplayThread.java
@@ -0,0 +1,56 @@
+/*
+ * Copyright (C) 2013 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.server;
+
+import android.os.Handler;
+
+/**
+ * Shared singleton foreground thread for the system. This is a thread for
+ * operations that affect what's on the display, which needs to have a minimum
+ * of latency. This thread should pretty much only be used by the WindowManager,
+ * DisplayManager, and InputManager to perform quick operations in real time.
+ */
+public final class DisplayThread extends ServiceThread {
+ private static DisplayThread sInstance;
+ private static Handler sHandler;
+
+ private DisplayThread() {
+ super("android.display", android.os.Process.THREAD_PRIORITY_DISPLAY, false /*allowIo*/);
+ }
+
+ private static void ensureThreadLocked() {
+ if (sInstance == null) {
+ sInstance = new DisplayThread();
+ sInstance.start();
+ sHandler = new Handler(sInstance.getLooper());
+ }
+ }
+
+ public static DisplayThread get() {
+ synchronized (UiThread.class) {
+ ensureThreadLocked();
+ return sInstance;
+ }
+ }
+
+ public static Handler getHandler() {
+ synchronized (UiThread.class) {
+ ensureThreadLocked();
+ return sHandler;
+ }
+ }
+}
diff --git a/services/java/com/android/server/DockObserver.java b/services/core/java/com/android/server/DockObserver.java
similarity index 100%
rename from services/java/com/android/server/DockObserver.java
rename to services/core/java/com/android/server/DockObserver.java
diff --git a/services/java/com/android/server/DropBoxManagerService.java b/services/core/java/com/android/server/DropBoxManagerService.java
similarity index 100%
rename from services/java/com/android/server/DropBoxManagerService.java
rename to services/core/java/com/android/server/DropBoxManagerService.java
diff --git a/services/java/com/android/server/EntropyMixer.java b/services/core/java/com/android/server/EntropyMixer.java
similarity index 100%
rename from services/java/com/android/server/EntropyMixer.java
rename to services/core/java/com/android/server/EntropyMixer.java
diff --git a/services/java/com/android/server/EventLogTags.logtags b/services/core/java/com/android/server/EventLogTags.logtags
similarity index 100%
rename from services/java/com/android/server/EventLogTags.logtags
rename to services/core/java/com/android/server/EventLogTags.logtags
diff --git a/services/java/com/android/server/FgThread.java b/services/core/java/com/android/server/FgThread.java
similarity index 85%
rename from services/java/com/android/server/FgThread.java
rename to services/core/java/com/android/server/FgThread.java
index 3b655f2..03765db 100644
--- a/services/java/com/android/server/FgThread.java
+++ b/services/core/java/com/android/server/FgThread.java
@@ -17,7 +17,6 @@
package com.android.server;
import android.os.Handler;
-import android.os.HandlerThread;
/**
* Shared singleton foreground thread for the system. This is a thread for regular
@@ -27,12 +26,12 @@
* simply being a background priority), which can cause operations scheduled on it
* to be delayed for a user-noticeable amount of time.
*/
-public final class FgThread extends HandlerThread {
+public final class FgThread extends ServiceThread {
private static FgThread sInstance;
private static Handler sHandler;
private FgThread() {
- super("android.fg", android.os.Process.THREAD_PRIORITY_DEFAULT);
+ super("android.fg", android.os.Process.THREAD_PRIORITY_DEFAULT, true /*allowIo*/);
}
private static void ensureThreadLocked() {
@@ -40,12 +39,6 @@
sInstance = new FgThread();
sInstance.start();
sHandler = new Handler(sInstance.getLooper());
- sHandler.post(new Runnable() {
- @Override
- public void run() {
- android.os.Process.setCanSelfBackground(false);
- }
- });
}
}
diff --git a/services/java/com/android/server/INativeDaemonConnectorCallbacks.java b/services/core/java/com/android/server/INativeDaemonConnectorCallbacks.java
similarity index 100%
rename from services/java/com/android/server/INativeDaemonConnectorCallbacks.java
rename to services/core/java/com/android/server/INativeDaemonConnectorCallbacks.java
diff --git a/services/java/com/android/server/IdleMaintenanceService.java b/services/core/java/com/android/server/IdleMaintenanceService.java
similarity index 100%
rename from services/java/com/android/server/IdleMaintenanceService.java
rename to services/core/java/com/android/server/IdleMaintenanceService.java
diff --git a/services/java/com/android/server/InputMethodManagerService.java b/services/core/java/com/android/server/InputMethodManagerService.java
similarity index 99%
rename from services/java/com/android/server/InputMethodManagerService.java
rename to services/core/java/com/android/server/InputMethodManagerService.java
index a996dbd..26424a5 100644
--- a/services/java/com/android/server/InputMethodManagerService.java
+++ b/services/core/java/com/android/server/InputMethodManagerService.java
@@ -28,7 +28,7 @@
import com.android.internal.view.IInputMethodManager;
import com.android.internal.view.IInputMethodSession;
import com.android.internal.view.InputBindResult;
-import com.android.server.EventLogTags;
+import com.android.server.statusbar.StatusBarManagerService;
import com.android.server.wm.WindowManagerService;
import org.xmlpull.v1.XmlPullParser;
diff --git a/services/java/com/android/server/IntentResolver.java b/services/core/java/com/android/server/IntentResolver.java
similarity index 100%
rename from services/java/com/android/server/IntentResolver.java
rename to services/core/java/com/android/server/IntentResolver.java
diff --git a/services/java/com/android/server/IoThread.java b/services/core/java/com/android/server/IoThread.java
similarity index 84%
rename from services/java/com/android/server/IoThread.java
rename to services/core/java/com/android/server/IoThread.java
index 09f2af7..0f29857 100644
--- a/services/java/com/android/server/IoThread.java
+++ b/services/core/java/com/android/server/IoThread.java
@@ -17,19 +17,18 @@
package com.android.server;
import android.os.Handler;
-import android.os.HandlerThread;
/**
* Shared singleton I/O thread for the system. This is a thread for non-background
* service operations that can potential block briefly on network IO operations
* (not waiting for data itself, but communicating with network daemons).
*/
-public final class IoThread extends HandlerThread {
+public final class IoThread extends ServiceThread {
private static IoThread sInstance;
private static Handler sHandler;
private IoThread() {
- super("android.io", android.os.Process.THREAD_PRIORITY_DEFAULT);
+ super("android.io", android.os.Process.THREAD_PRIORITY_DEFAULT, true /*allowIo*/);
}
private static void ensureThreadLocked() {
@@ -37,12 +36,6 @@
sInstance = new IoThread();
sInstance.start();
sHandler = new Handler(sInstance.getLooper());
- sHandler.post(new Runnable() {
- @Override
- public void run() {
- android.os.Process.setCanSelfBackground(false);
- }
- });
}
}
diff --git a/services/java/com/android/server/LocationManagerService.java b/services/core/java/com/android/server/LocationManagerService.java
similarity index 99%
rename from services/java/com/android/server/LocationManagerService.java
rename to services/core/java/com/android/server/LocationManagerService.java
index 8f480dd..eebd1c5 100644
--- a/services/java/com/android/server/LocationManagerService.java
+++ b/services/core/java/com/android/server/LocationManagerService.java
@@ -1148,6 +1148,11 @@
boolean shouldBeEnabled = isAllowedByCurrentUserSettingsLocked(name);
if (isEnabled && !shouldBeEnabled) {
updateProviderListenersLocked(name, false, mCurrentUserId);
+ // If any provider has been disabled, clear all last locations for all providers.
+ // This is to be on the safe side in case a provider has location derived from
+ // this disabled provider.
+ mLastLocation.clear();
+ mLastLocationCoarseInterval.clear();
changesMade = true;
} else if (!isEnabled && shouldBeEnabled) {
updateProviderListenersLocked(name, true, mCurrentUserId);
diff --git a/services/java/com/android/server/LockSettingsService.java b/services/core/java/com/android/server/LockSettingsService.java
similarity index 100%
rename from services/java/com/android/server/LockSettingsService.java
rename to services/core/java/com/android/server/LockSettingsService.java
diff --git a/services/java/com/android/server/MasterClearReceiver.java b/services/core/java/com/android/server/MasterClearReceiver.java
similarity index 100%
rename from services/java/com/android/server/MasterClearReceiver.java
rename to services/core/java/com/android/server/MasterClearReceiver.java
diff --git a/services/java/com/android/server/MountService.java b/services/core/java/com/android/server/MountService.java
similarity index 100%
rename from services/java/com/android/server/MountService.java
rename to services/core/java/com/android/server/MountService.java
diff --git a/services/java/com/android/server/NativeDaemonConnector.java b/services/core/java/com/android/server/NativeDaemonConnector.java
similarity index 100%
rename from services/java/com/android/server/NativeDaemonConnector.java
rename to services/core/java/com/android/server/NativeDaemonConnector.java
diff --git a/services/java/com/android/server/NativeDaemonConnectorException.java b/services/core/java/com/android/server/NativeDaemonConnectorException.java
similarity index 100%
rename from services/java/com/android/server/NativeDaemonConnectorException.java
rename to services/core/java/com/android/server/NativeDaemonConnectorException.java
diff --git a/services/java/com/android/server/NativeDaemonEvent.java b/services/core/java/com/android/server/NativeDaemonEvent.java
similarity index 100%
rename from services/java/com/android/server/NativeDaemonEvent.java
rename to services/core/java/com/android/server/NativeDaemonEvent.java
diff --git a/services/java/com/android/server/NetworkManagementService.java b/services/core/java/com/android/server/NetworkManagementService.java
similarity index 100%
rename from services/java/com/android/server/NetworkManagementService.java
rename to services/core/java/com/android/server/NetworkManagementService.java
diff --git a/services/java/com/android/server/NetworkTimeUpdateService.java b/services/core/java/com/android/server/NetworkTimeUpdateService.java
similarity index 100%
rename from services/java/com/android/server/NetworkTimeUpdateService.java
rename to services/core/java/com/android/server/NetworkTimeUpdateService.java
diff --git a/services/java/com/android/server/NsdService.java b/services/core/java/com/android/server/NsdService.java
similarity index 100%
rename from services/java/com/android/server/NsdService.java
rename to services/core/java/com/android/server/NsdService.java
diff --git a/services/java/com/android/server/RandomBlock.java b/services/core/java/com/android/server/RandomBlock.java
similarity index 100%
rename from services/java/com/android/server/RandomBlock.java
rename to services/core/java/com/android/server/RandomBlock.java
diff --git a/services/java/com/android/server/RecognitionManagerService.java b/services/core/java/com/android/server/RecognitionManagerService.java
similarity index 100%
rename from services/java/com/android/server/RecognitionManagerService.java
rename to services/core/java/com/android/server/RecognitionManagerService.java
diff --git a/services/java/com/android/server/SamplingProfilerService.java b/services/core/java/com/android/server/SamplingProfilerService.java
similarity index 100%
rename from services/java/com/android/server/SamplingProfilerService.java
rename to services/core/java/com/android/server/SamplingProfilerService.java
diff --git a/services/java/com/android/server/SerialService.java b/services/core/java/com/android/server/SerialService.java
similarity index 100%
rename from services/java/com/android/server/SerialService.java
rename to services/core/java/com/android/server/SerialService.java
diff --git a/services/core/java/com/android/server/ServiceThread.java b/services/core/java/com/android/server/ServiceThread.java
new file mode 100644
index 0000000..bce64af
--- /dev/null
+++ b/services/core/java/com/android/server/ServiceThread.java
@@ -0,0 +1,48 @@
+/*
+ * Copyright (C) 2008 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.server;
+
+import android.os.HandlerThread;
+import android.os.Process;
+import android.os.StrictMode;
+import android.util.Slog;
+
+/**
+ * Special handler thread that we create for system services that require their own loopers.
+ */
+public class ServiceThread extends HandlerThread {
+ private static final String TAG = "ServiceThread";
+
+ private final boolean mAllowIo;
+
+ public ServiceThread(String name, int priority, boolean allowIo) {
+ super(name, priority);
+ mAllowIo = allowIo;
+ }
+
+ @Override
+ public void run() {
+ Process.setCanSelfBackground(false);
+
+ // For debug builds, log event loop stalls to dropbox for analysis.
+ if (!mAllowIo && StrictMode.conditionallyEnableDebugLogging()) {
+ Slog.i(TAG, "Enabled StrictMode logging for " + getName() + " looper.");
+ }
+
+ super.run();
+ }
+}
\ No newline at end of file
diff --git a/services/java/com/android/server/ServiceWatcher.java b/services/core/java/com/android/server/ServiceWatcher.java
similarity index 100%
rename from services/java/com/android/server/ServiceWatcher.java
rename to services/core/java/com/android/server/ServiceWatcher.java
diff --git a/services/java/com/android/server/ShutdownActivity.java b/services/core/java/com/android/server/ShutdownActivity.java
similarity index 100%
rename from services/java/com/android/server/ShutdownActivity.java
rename to services/core/java/com/android/server/ShutdownActivity.java
diff --git a/services/java/com/android/server/SystemServer.java b/services/core/java/com/android/server/SystemServer.java
similarity index 77%
rename from services/java/com/android/server/SystemServer.java
rename to services/core/java/com/android/server/SystemServer.java
index d895137..c22170c 100644
--- a/services/java/com/android/server/SystemServer.java
+++ b/services/core/java/com/android/server/SystemServer.java
@@ -17,6 +17,9 @@
package com.android.server;
import android.app.ActivityManagerNative;
+import android.app.ActivityThread;
+import android.app.IAlarmManager;
+import android.app.INotificationManager;
import android.bluetooth.BluetoothAdapter;
import android.content.ComponentName;
import android.content.ContentResolver;
@@ -28,8 +31,10 @@
import android.media.AudioService;
import android.net.wifi.p2p.WifiP2pService;
import android.os.Environment;
+import android.os.FactoryTest;
import android.os.Handler;
-import android.os.HandlerThread;
+import android.os.IBinder;
+import android.os.IPowerManager;
import android.os.Looper;
import android.os.RemoteException;
import android.os.ServiceManager;
@@ -51,22 +56,30 @@
import com.android.server.accounts.AccountManagerService;
import com.android.server.am.ActivityManagerService;
import com.android.server.am.BatteryStatsService;
+import com.android.server.clipboard.ClipboardService;
import com.android.server.content.ContentService;
import com.android.server.display.DisplayManagerService;
import com.android.server.dreams.DreamManagerService;
import com.android.server.input.InputManagerService;
+import com.android.server.lights.LightsManager;
+import com.android.server.lights.LightsService;
import com.android.server.media.MediaRouterService;
import com.android.server.net.NetworkPolicyManagerService;
import com.android.server.net.NetworkStatsService;
+import com.android.server.notification.NotificationManagerService;
import com.android.server.os.SchedulingPolicyService;
import com.android.server.pm.Installer;
import com.android.server.pm.PackageManagerService;
import com.android.server.pm.UserManagerService;
import com.android.server.power.PowerManagerService;
import com.android.server.power.ShutdownThread;
-import com.android.server.print.PrintManagerService;
import com.android.server.search.SearchManagerService;
+import com.android.server.statusbar.StatusBarManagerService;
+import com.android.server.storage.DeviceStorageMonitorService;
+import com.android.server.twilight.TwilightManager;
+import com.android.server.twilight.TwilightService;
import com.android.server.usb.UsbService;
+import com.android.server.wallpaper.WallpaperManagerService;
import com.android.server.wifi.WifiService;
import com.android.server.wm.WindowManagerService;
@@ -77,62 +90,209 @@
import java.util.Timer;
import java.util.TimerTask;
-class ServerThread {
+public final class SystemServer {
private static final String TAG = "SystemServer";
+
private static final String ENCRYPTING_STATE = "trigger_restart_min_framework";
private static final String ENCRYPTED_STATE = "1";
- ContentResolver mContentResolver;
+ private static final long SNAPSHOT_INTERVAL = 60 * 60 * 1000; // 1hr
- void reportWtf(String msg, Throwable e) {
+ // The earliest supported time. We pick one day into 1970, to
+ // give any timezone code room without going into negative time.
+ private static final long EARLIEST_SUPPORTED_TIME = 86400 * 1000;
+
+ /*
+ * Implementation class names. TODO: Move them to a codegen class or load
+ * them from the build system somehow.
+ */
+ private static final String BACKUP_MANAGER_SERVICE_CLASS =
+ "com.android.server.backup.BackupManagerSystemService";
+ private static final String DEVICE_POLICY_MANAGER_SERVICE_CLASS =
+ "com.android.server.devicepolicy.DevicePolicyManagerSystemService";
+ private static final String APPWIDGET_SERVICE_CLASS =
+ "com.android.server.appwidget.AppWidgetService";
+ private static final String PRINT_MANAGER_SERVICE_CLASS =
+ "com.android.server.print.PrintManagerService";
+
+ private final int mFactoryTestMode;
+ private Timer mProfilerSnapshotTimer;
+
+ private Context mSystemContext;
+ private SystemServiceManager mSystemServiceManager;
+
+ // TODO: remove all of these references by improving dependency resolution and boot phases
+ private Installer mInstaller;
+ private PowerManagerService mPowerManagerService;
+ private ActivityManagerService mActivityManagerService;
+ private DisplayManagerService mDisplayManagerService;
+ private ContentResolver mContentResolver;
+
+ /**
+ * Called to initialize native system services.
+ */
+ private static native void nativeInit();
+
+ /**
+ * The main entry point from zygote.
+ */
+ public static void main(String[] args) {
+ new SystemServer().run();
+ }
+
+ public SystemServer() {
+ mFactoryTestMode = FactoryTest.getMode();
+ }
+
+ private void run() {
+ // If a device's clock is before 1970 (before 0), a lot of
+ // APIs crash dealing with negative numbers, notably
+ // java.io.File#setLastModified, so instead we fake it and
+ // hope that time from cell towers or NTP fixes it shortly.
+ if (System.currentTimeMillis() < EARLIEST_SUPPORTED_TIME) {
+ Slog.w(TAG, "System clock is before 1970; setting to 1970.");
+ SystemClock.setCurrentTimeMillis(EARLIEST_SUPPORTED_TIME);
+ }
+
+ // Here we go!
+ Slog.i(TAG, "Entered the Android system server!");
+ EventLog.writeEvent(EventLogTags.BOOT_PROGRESS_SYSTEM_RUN, SystemClock.uptimeMillis());
+
+ // In case the runtime switched since last boot (such as when
+ // the old runtime was removed in an OTA), set the system
+ // property so that it is in sync. We can't do this in
+ // libnativehelper's JniInvocation::Init code where we already
+ // had to fallback to a different runtime because it is
+ // running as root and we need to be the system user to set
+ // the property. http://b/11463182
+ SystemProperties.set("persist.sys.dalvik.vm.lib.1", VMRuntime.getRuntime().vmLibrary());
+
+ // Enable the sampling profiler.
+ if (SamplingProfilerIntegration.isEnabled()) {
+ SamplingProfilerIntegration.start();
+ mProfilerSnapshotTimer = new Timer();
+ mProfilerSnapshotTimer.schedule(new TimerTask() {
+ @Override
+ public void run() {
+ SamplingProfilerIntegration.writeSnapshot("system_server", null);
+ }
+ }, SNAPSHOT_INTERVAL, SNAPSHOT_INTERVAL);
+ }
+
+ // Mmmmmm... more memory!
+ VMRuntime.getRuntime().clearGrowthLimit();
+
+ // The system server has to run all of the time, so it needs to be
+ // as efficient as possible with its memory usage.
+ VMRuntime.getRuntime().setTargetHeapUtilization(0.8f);
+
+ // Within the system server, it is an error to access Environment paths without
+ // explicitly specifying a user.
+ Environment.setUserRequired(true);
+
+ // Ensure binder calls into the system always run at foreground priority.
+ BinderInternal.disableBackgroundScheduling(true);
+
+ // Prepare the main looper thread (this thread).
+ android.os.Process.setThreadPriority(
+ android.os.Process.THREAD_PRIORITY_FOREGROUND);
+ android.os.Process.setCanSelfBackground(false);
+ Looper.prepareMainLooper();
+
+ // Initialize native services.
+ System.loadLibrary("android_servers");
+ nativeInit();
+
+ // Check whether we failed to shut down last time we tried.
+ // This call may not return.
+ performPendingShutdown();
+
+ // Initialize the system context.
+ createSystemContext();
+
+ // Create the system service manager.
+ mSystemServiceManager = new SystemServiceManager(mSystemContext);
+
+ // Start services.
+ try {
+ startBootstrapServices();
+ startCoreServices();
+ startOtherServices();
+ } catch (RuntimeException ex) {
+ Slog.e("System", "******************************************");
+ Slog.e("System", "************ Failure starting system services", ex);
+ throw ex;
+ }
+
+ // For debug builds, log event loop stalls to dropbox for analysis.
+ if (StrictMode.conditionallyEnableDebugLogging()) {
+ Slog.i(TAG, "Enabled StrictMode for system server main thread.");
+ }
+
+ // Loop forever.
+ Looper.loop();
+ throw new RuntimeException("Main thread loop unexpectedly exited");
+ }
+
+ private void reportWtf(String msg, Throwable e) {
Slog.w(TAG, "***********************************************");
Log.wtf(TAG, "BOOT FAILURE " + msg, e);
}
- public void initAndLoop() {
- EventLog.writeEvent(EventLogTags.BOOT_PROGRESS_SYSTEM_RUN,
- SystemClock.uptimeMillis());
+ private void performPendingShutdown() {
+ final String shutdownAction = SystemProperties.get(
+ ShutdownThread.SHUTDOWN_ACTION_PROPERTY, "");
+ if (shutdownAction != null && shutdownAction.length() > 0) {
+ boolean reboot = (shutdownAction.charAt(0) == '1');
- Looper.prepareMainLooper();
-
- android.os.Process.setThreadPriority(
- android.os.Process.THREAD_PRIORITY_FOREGROUND);
-
- BinderInternal.disableBackgroundScheduling(true);
- android.os.Process.setCanSelfBackground(false);
-
- // Check whether we failed to shut down last time we tried.
- {
- final String shutdownAction = SystemProperties.get(
- ShutdownThread.SHUTDOWN_ACTION_PROPERTY, "");
- if (shutdownAction != null && shutdownAction.length() > 0) {
- boolean reboot = (shutdownAction.charAt(0) == '1');
-
- final String reason;
- if (shutdownAction.length() > 1) {
- reason = shutdownAction.substring(1, shutdownAction.length());
- } else {
- reason = null;
- }
-
- ShutdownThread.rebootOrShutdown(reboot, reason);
+ final String reason;
+ if (shutdownAction.length() > 1) {
+ reason = shutdownAction.substring(1, shutdownAction.length());
+ } else {
+ reason = null;
}
+
+ ShutdownThread.rebootOrShutdown(reboot, reason);
}
+ }
- String factoryTestStr = SystemProperties.get("ro.factorytest");
- int factoryTest = "".equals(factoryTestStr) ? SystemServer.FACTORY_TEST_OFF
- : Integer.parseInt(factoryTestStr);
- final boolean headless = "1".equals(SystemProperties.get("ro.config.headless", "0"));
+ private void createSystemContext() {
+ ActivityThread activityThread = ActivityThread.systemMain();
+ mSystemContext = activityThread.getSystemContext();
+ mSystemContext.setTheme(android.R.style.Theme_Holo);
+ }
- Installer installer = null;
+ private void startBootstrapServices() {
+ // Wait for installd to finish starting up so that it has a chance to
+ // create critical directories such as /data/user with the appropriate
+ // permissions. We need this to complete before we initialize other services.
+ mInstaller = mSystemServiceManager.startService(Installer.class);
+
+ // Power manager needs to be started early because other services need it.
+ // TODO: The conversion to the new pattern is incomplete. We need to switch
+ // the power manager's dependencies over then we can use boot phases to arrange
+ // initialization order and remove the mPowerManagerService field.
+ mPowerManagerService = mSystemServiceManager.startService(PowerManagerService.class);
+
+ // Activity manager runs the show.
+ mActivityManagerService = mSystemServiceManager.startService(
+ ActivityManagerService.Lifecycle.class).getService();
+ }
+
+ private void startCoreServices() {
+ // Display manager is needed to provide display metrics before package manager
+ // starts up.
+ mDisplayManagerService = mSystemServiceManager.startService(DisplayManagerService.class);
+ }
+
+ private void startOtherServices() {
+ final Context context = mSystemContext;
AccountManagerService accountManager = null;
ContentService contentService = null;
- LightsService lights = null;
- PowerManagerService power = null;
- DisplayManagerService display = null;
+ LightsManager lights = null;
BatteryService battery = null;
VibratorService vibrator = null;
- AlarmManagerService alarm = null;
+ IAlarmManager alarm = null;
MountService mountService = null;
NetworkManagementService networkManagement = null;
NetworkStatsService networkStats = null;
@@ -142,14 +302,12 @@
WifiService wifi = null;
NsdService serviceDiscovery= null;
IPackageManager pm = null;
- Context context = null;
WindowManagerService wm = null;
BluetoothManagerService bluetooth = null;
DockObserver dock = null;
UsbService usb = null;
SerialService serial = null;
- TwilightService twilight = null;
- UiModeManagerService uiMode = null;
+ TwilightManager twilight = null;
RecognitionManagerService recognition = null;
NetworkTimeUpdateService networkTimeUpdater = null;
CommonTimeManagementService commonTimeMgmtService = null;
@@ -157,48 +315,8 @@
TelephonyRegistry telephonyRegistry = null;
ConsumerIrService consumerIr = null;
- // Create a handler thread just for the window manager to enjoy.
- HandlerThread wmHandlerThread = new HandlerThread("WindowManager");
- wmHandlerThread.start();
- Handler wmHandler = new Handler(wmHandlerThread.getLooper());
- wmHandler.post(new Runnable() {
- @Override
- public void run() {
- //Looper.myLooper().setMessageLogging(new LogPrinter(
- // android.util.Log.DEBUG, TAG, android.util.Log.LOG_ID_SYSTEM));
- android.os.Process.setThreadPriority(
- android.os.Process.THREAD_PRIORITY_DISPLAY);
- android.os.Process.setCanSelfBackground(false);
-
- // For debug builds, log event loop stalls to dropbox for analysis.
- if (StrictMode.conditionallyEnableDebugLogging()) {
- Slog.i(TAG, "Enabled StrictMode logging for WM Looper");
- }
- }
- });
-
- // bootstrap services
boolean onlyCore = false;
boolean firstBoot = false;
- try {
- // Wait for installd to finished starting up so that it has a chance to
- // create critical directories such as /data/user with the appropriate
- // permissions. We need this to complete before we initialize other services.
- Slog.i(TAG, "Waiting for installd to be ready.");
- installer = new Installer();
- installer.ping();
-
- Slog.i(TAG, "Power Manager");
- power = new PowerManagerService();
- ServiceManager.addService(Context.POWER_SERVICE, power);
-
- Slog.i(TAG, "Activity Manager");
- context = ActivityManagerService.main(factoryTest);
- } catch (RuntimeException e) {
- Slog.e("System", "******************************************");
- Slog.e("System", "************ Failure starting bootstrap service", e);
- }
-
boolean disableStorage = SystemProperties.getBoolean("config.disable_storage", false);
boolean disableMedia = SystemProperties.getBoolean("config.disable_media", false);
boolean disableBluetooth = SystemProperties.getBoolean("config.disable_bluetooth", false);
@@ -209,10 +327,6 @@
boolean disableNetwork = SystemProperties.getBoolean("config.disable_network", false);
try {
- Slog.i(TAG, "Display Manager");
- display = new DisplayManagerService(context, wmHandler);
- ServiceManager.addService(Context.DISPLAY_SERVICE, display, true);
-
Slog.i(TAG, "Telephony Registry");
telephonyRegistry = new TelephonyRegistry(context);
ServiceManager.addService("telephony.registry", telephonyRegistry);
@@ -222,10 +336,8 @@
AttributeCache.init(context);
- if (!display.waitForDefaultDisplay()) {
- reportWtf("Timeout waiting for default display to be initialized.",
- new Throwable());
- }
+ // We need the default display before we can initialize the package manager.
+ mSystemServiceManager.startBootPhase(SystemService.PHASE_WAIT_FOR_DEFAULT_DISPLAY);
Slog.i(TAG, "Package Manager");
// Only run "core" apps if we're encrypting the device.
@@ -238,15 +350,15 @@
onlyCore = true;
}
- pm = PackageManagerService.main(context, installer,
- factoryTest != SystemServer.FACTORY_TEST_OFF,
+ pm = PackageManagerService.main(context, mInstaller,
+ mFactoryTestMode != FactoryTest.FACTORY_TEST_OFF,
onlyCore);
try {
firstBoot = pm.isFirstBoot();
} catch (RemoteException e) {
}
- ActivityManagerService.setSystemProcess();
+ mActivityManagerService.setSystemProcess();
Slog.i(TAG, "Entropy Mixer");
ServiceManager.addService("entropy", new EntropyMixer(context));
@@ -269,13 +381,13 @@
Slog.i(TAG, "Content Manager");
contentService = ContentService.main(context,
- factoryTest == SystemServer.FACTORY_TEST_LOW_LEVEL);
+ mFactoryTestMode == FactoryTest.FACTORY_TEST_LOW_LEVEL);
Slog.i(TAG, "System Content Providers");
- ActivityManagerService.installSystemProviders();
+ mActivityManagerService.installSystemProviders();
- Slog.i(TAG, "Lights Service");
- lights = new LightsService(context);
+ mSystemServiceManager.startService(LightsService.class);
+ lights = LocalServices.getService(LightsManager.class);
Slog.i(TAG, "Battery Service");
battery = new BatteryService(context, lights);
@@ -285,49 +397,49 @@
vibrator = new VibratorService(context);
ServiceManager.addService("vibrator", vibrator);
+ // TODO: use boot phase
+ // only initialize the power service after we have started the
+ // lights service, content providers and the battery service.
+ mPowerManagerService.init(lights, battery,
+ BatteryStatsService.getService(),
+ mActivityManagerService.getAppOpsService());
+
Slog.i(TAG, "Consumer IR Service");
consumerIr = new ConsumerIrService(context);
ServiceManager.addService(Context.CONSUMER_IR_SERVICE, consumerIr);
- // only initialize the power service after we have started the
- // lights service, content providers and the battery service.
- power.init(context, lights, ActivityManagerService.self(), battery,
- BatteryStatsService.getService(),
- ActivityManagerService.self().getAppOpsService(), display);
-
- Slog.i(TAG, "Alarm Manager");
- alarm = new AlarmManagerService(context);
- ServiceManager.addService(Context.ALARM_SERVICE, alarm);
+ mSystemServiceManager.startService(AlarmManagerService.class);
+ alarm = IAlarmManager.Stub.asInterface(
+ ServiceManager.getService(Context.ALARM_SERVICE));
Slog.i(TAG, "Init Watchdog");
- Watchdog.getInstance().init(context, battery, power, alarm,
- ActivityManagerService.self());
- Watchdog.getInstance().addThread(wmHandler, "WindowManager thread");
+ final Watchdog watchdog = Watchdog.getInstance();
+ watchdog.init(context, mActivityManagerService);
Slog.i(TAG, "Input Manager");
- inputManager = new InputManagerService(context, wmHandler);
+ inputManager = new InputManagerService(context);
Slog.i(TAG, "Window Manager");
- wm = WindowManagerService.main(context, power, display, inputManager,
- wmHandler, factoryTest != SystemServer.FACTORY_TEST_LOW_LEVEL,
+ wm = WindowManagerService.main(context, inputManager,
+ mFactoryTestMode != FactoryTest.FACTORY_TEST_LOW_LEVEL,
!firstBoot, onlyCore);
ServiceManager.addService(Context.WINDOW_SERVICE, wm);
ServiceManager.addService(Context.INPUT_SERVICE, inputManager);
- ActivityManagerService.self().setWindowManager(wm);
+ mActivityManagerService.setWindowManager(wm);
inputManager.setWindowManagerCallbacks(wm.getInputMonitor());
inputManager.start();
- display.setWindowManager(wm);
- display.setInputManager(inputManager);
+ // TODO: Use service dependencies instead.
+ mDisplayManagerService.windowManagerAndInputReady();
// Skip Bluetooth if we have an emulator kernel
// TODO: Use a more reliable check to see if this product should
// support Bluetooth - see bug 988521
if (SystemProperties.get("ro.kernel.qemu").equals("1")) {
Slog.i(TAG, "No Bluetooh Service (emulator)");
- } else if (factoryTest == SystemServer.FACTORY_TEST_LOW_LEVEL) {
+ } else if (mFactoryTestMode == FactoryTest.FACTORY_TEST_LOW_LEVEL) {
Slog.i(TAG, "No Bluetooth Service (factory test)");
} else if (!context.getPackageManager().hasSystemFeature
(PackageManager.FEATURE_BLUETOOTH)) {
@@ -344,11 +456,9 @@
Slog.e("System", "************ Failure starting core service", e);
}
- DevicePolicyManagerService devicePolicy = null;
StatusBarManagerService statusBar = null;
+ INotificationManager notification = null;
InputMethodManagerService imm = null;
- AppWidgetService appWidget = null;
- NotificationManagerService notification = null;
WallpaperManagerService wallpaper = null;
LocationManagerService location = null;
CountryDetectorService countryDetector = null;
@@ -356,11 +466,10 @@
LockSettingsService lockSettings = null;
DreamManagerService dreamy = null;
AssetAtlasService atlas = null;
- PrintManagerService printManager = null;
MediaRouterService mediaRouter = null;
// Bring up services needed for UI.
- if (factoryTest != SystemServer.FACTORY_TEST_LOW_LEVEL) {
+ if (mFactoryTestMode != FactoryTest.FACTORY_TEST_LOW_LEVEL) {
//if (!disableNonCoreServices) { // TODO: View depends on these; mock them?
if (true) {
try {
@@ -397,11 +506,11 @@
ActivityManagerNative.getDefault().showBootMessage(
context.getResources().getText(
com.android.internal.R.string.android_upgrading_starting_apps),
- false);
+ false);
} catch (RemoteException e) {
}
- if (factoryTest != SystemServer.FACTORY_TEST_LOW_LEVEL) {
+ if (mFactoryTestMode != FactoryTest.FACTORY_TEST_LOW_LEVEL) {
if (!disableStorage &&
!"0".equals(SystemProperties.get("system_init.startmountservice"))) {
try {
@@ -428,8 +537,7 @@
try {
Slog.i(TAG, "Device Policy");
- devicePolicy = new DevicePolicyManagerService(context);
- ServiceManager.addService(Context.DEVICE_POLICY_SERVICE, devicePolicy);
+ mSystemServiceManager.startServiceIfExists(DEVICE_POLICY_MANAGER_SERVICE_CLASS);
} catch (Throwable e) {
reportWtf("starting DevicePolicyService", e);
}
@@ -487,7 +595,8 @@
try {
Slog.i(TAG, "NetworkPolicy Service");
networkPolicy = new NetworkPolicyManagerService(
- context, ActivityManagerService.self(), power,
+ context, mActivityManagerService,
+ (IPowerManager)ServiceManager.getService(Context.POWER_SERVICE),
networkStats, networkManagement);
ServiceManager.addService(Context.NETWORK_POLICY_SERVICE, networkPolicy);
} catch (Throwable e) {
@@ -567,22 +676,12 @@
reportWtf("making Content Service ready", e);
}
- try {
- Slog.i(TAG, "Notification Manager");
- notification = new NotificationManagerService(context, statusBar, lights);
- ServiceManager.addService(Context.NOTIFICATION_SERVICE, notification);
- networkPolicy.bindNotificationManager(notification);
- } catch (Throwable e) {
- reportWtf("starting Notification Manager", e);
- }
+ mSystemServiceManager.startService(NotificationManagerService.class);
+ notification = INotificationManager.Stub.asInterface(
+ ServiceManager.getService(Context.NOTIFICATION_SERVICE));
+ networkPolicy.bindNotificationManager(notification);
- try {
- Slog.i(TAG, "Device Storage Monitor");
- ServiceManager.addService(DeviceStorageMonitorService.SERVICE,
- new DeviceStorageMonitorService(context));
- } catch (Throwable e) {
- reportWtf("starting DeviceStorageMonitor service", e);
- }
+ mSystemServiceManager.startService(DeviceStorageMonitorService.class);
if (!disableLocation) {
try {
@@ -624,10 +723,8 @@
R.bool.config_enableWallpaperService)) {
try {
Slog.i(TAG, "Wallpaper Service");
- if (!headless) {
- wallpaper = new WallpaperManagerService(context);
- ServiceManager.addService(Context.WALLPAPER_SERVICE, wallpaper);
- }
+ wallpaper = new WallpaperManagerService(context);
+ ServiceManager.addService(Context.WALLPAPER_SERVICE, wallpaper);
} catch (Throwable e) {
reportWtf("starting Wallpaper Service", e);
}
@@ -683,34 +780,22 @@
}
}
- try {
- Slog.i(TAG, "Twilight Service");
- twilight = new TwilightService(context);
- } catch (Throwable e) {
- reportWtf("starting TwilightService", e);
- }
+ mSystemServiceManager.startService(TwilightService.class);
+ twilight = LocalServices.getService(TwilightManager.class);
- try {
- Slog.i(TAG, "UI Mode Manager Service");
- // Listen for UI mode changes
- uiMode = new UiModeManagerService(context, twilight);
- } catch (Throwable e) {
- reportWtf("starting UiModeManagerService", e);
- }
+ mSystemServiceManager.startService(UiModeManagerService.class);
if (!disableNonCoreServices) {
try {
Slog.i(TAG, "Backup Service");
- ServiceManager.addService(Context.BACKUP_SERVICE,
- new BackupManagerService(context));
+ mSystemServiceManager.startServiceIfExists(BACKUP_MANAGER_SERVICE_CLASS);
} catch (Throwable e) {
Slog.e(TAG, "Failure starting Backup Service", e);
}
try {
Slog.i(TAG, "AppWidget Service");
- appWidget = new AppWidgetService(context);
- ServiceManager.addService(Context.APPWIDGET_SERVICE, appWidget);
+ mSystemServiceManager.startServiceIfExists(APPWIDGET_SERVICE_CLASS);
} catch (Throwable e) {
reportWtf("starting AppWidget Service", e);
}
@@ -775,7 +860,7 @@
try {
Slog.i(TAG, "Dreams Service");
// Dreams (interactive idle-time views, a/k/a screen savers)
- dreamy = new DreamManagerService(context, wmHandler);
+ dreamy = new DreamManagerService(context);
ServiceManager.addService(DreamService.DREAM_SERVICE, dreamy);
} catch (Throwable e) {
reportWtf("starting DreamManagerService", e);
@@ -801,8 +886,7 @@
try {
Slog.i(TAG, "Print Service");
- printManager = new PrintManagerService(context);
- ServiceManager.addService(Context.PRINT_SERVICE, printManager);
+ mSystemServiceManager.startServiceIfExists(PRINT_MANAGER_SERVICE_CLASS);
} catch (Throwable e) {
reportWtf("starting Print Service", e);
}
@@ -822,7 +906,7 @@
// we are in safe mode.
final boolean safeMode = wm.detectSafeMode();
if (safeMode) {
- ActivityManagerService.self().enterSafeMode();
+ mActivityManagerService.enterSafeMode();
// Post the safe mode state in the Zygote class
Zygote.systemInSafeMode = true;
// Disable the JIT for the system_server process
@@ -848,21 +932,10 @@
}
}
- if (devicePolicy != null) {
- try {
- devicePolicy.systemReady();
- } catch (Throwable e) {
- reportWtf("making Device Policy Service ready", e);
- }
- }
+ // Needed by DevicePolicyManager for initialization
+ mSystemServiceManager.startBootPhase(SystemService.PHASE_LOCK_SETTINGS_READY);
- if (notification != null) {
- try {
- notification.systemReady();
- } catch (Throwable e) {
- reportWtf("making Notification Service ready", e);
- }
- }
+ mSystemServiceManager.startBootPhase(SystemService.PHASE_SYSTEM_SERVICES_READY);
try {
wm.systemReady();
@@ -871,7 +944,7 @@
}
if (safeMode) {
- ActivityManagerService.self().showSafeModeOverlay();
+ mActivityManagerService.showSafeModeOverlay();
}
// Update the configuration for this context by hand, because we're going
@@ -884,7 +957,8 @@
context.getResources().updateConfiguration(config, metrics);
try {
- power.systemReady(twilight, dreamy);
+ // TODO: use boot phase
+ mPowerManagerService.systemReady(twilight, dreamy);
} catch (Throwable e) {
reportWtf("making Power Manager Service ready", e);
}
@@ -896,7 +970,8 @@
}
try {
- display.systemReady(safeMode, onlyCore);
+ // TODO: use boot phase and communicate these flags some other way
+ mDisplayManagerService.systemReady(safeMode, onlyCore);
} catch (Throwable e) {
reportWtf("making Display Manager Service ready", e);
}
@@ -911,9 +986,6 @@
final ConnectivityService connectivityF = connectivity;
final DockObserver dockF = dock;
final UsbService usbF = usb;
- final TwilightService twilightF = twilight;
- final UiModeManagerService uiModeF = uiMode;
- final AppWidgetService appWidgetF = appWidget;
final WallpaperManagerService wallpaperF = wallpaper;
final InputMethodManagerService immF = imm;
final RecognitionManagerService recognitionF = recognition;
@@ -927,7 +999,6 @@
final AssetAtlasService atlasF = atlas;
final InputManagerService inputManagerF = inputManager;
final TelephonyRegistry telephonyRegistryF = telephonyRegistry;
- final PrintManagerService printManagerF = printManager;
final MediaRouterService mediaRouterF = mediaRouter;
// We now tell the activity manager it is okay to run third party
@@ -935,17 +1006,19 @@
// where third party code can really run (but before it has actually
// started launching the initial applications), for us to complete our
// initialization.
- ActivityManagerService.self().systemReady(new Runnable() {
+ mActivityManagerService.systemReady(new Runnable() {
public void run() {
Slog.i(TAG, "Making services ready");
try {
- ActivityManagerService.self().startObservingNativeCrashes();
+ mActivityManagerService.startObservingNativeCrashes();
} catch (Throwable e) {
reportWtf("observing native crashes", e);
}
- if (!headless) {
+ try {
startSystemUi(contextF);
+ } catch (Throwable e) {
+ reportWtf("starting System UI", e);
}
try {
if (mountServiceF != null) mountServiceF.systemReady();
@@ -988,16 +1061,6 @@
reportWtf("making USB Service ready", e);
}
try {
- if (twilightF != null) twilightF.systemReady();
- } catch (Throwable e) {
- reportWtf("makin Twilight Service ready", e);
- }
- try {
- if (uiModeF != null) uiModeF.systemReady();
- } catch (Throwable e) {
- reportWtf("making UI Mode Service ready", e);
- }
- try {
if (recognitionF != null) recognitionF.systemReady();
} catch (Throwable e) {
reportWtf("making Recognition Service ready", e);
@@ -1006,13 +1069,9 @@
// It is now okay to let the various system services start their
// third party code...
+ mSystemServiceManager.startBootPhase(SystemService.PHASE_THIRD_PARTY_APPS_CAN_START);
try {
- if (appWidgetF != null) appWidgetF.systemRunning(safeMode);
- } catch (Throwable e) {
- reportWtf("Notifying AppWidgetService running", e);
- }
- try {
if (wallpaperF != null) wallpaperF.systemRunning();
} catch (Throwable e) {
reportWtf("Notifying WallpaperService running", e);
@@ -1072,26 +1131,14 @@
}
try {
- if (printManagerF != null) printManagerF.systemRuning();
- } catch (Throwable e) {
- reportWtf("Notifying PrintManagerService running", e);
- }
-
- try {
if (mediaRouterF != null) mediaRouterF.systemRunning();
} catch (Throwable e) {
reportWtf("Notifying MediaRouterService running", e);
}
+
+ mSystemServiceManager.startBootPhase(SystemService.PHASE_BOOT_COMPLETE);
}
});
-
- // For debug builds, log event loop stalls to dropbox for analysis.
- if (StrictMode.conditionallyEnableDebugLogging()) {
- Slog.i(TAG, "Enabled StrictMode for system server main thread.");
- }
-
- Looper.loop();
- Slog.d(TAG, "System ServerThread is exiting!");
}
static final void startSystemUi(Context context) {
@@ -1102,80 +1149,3 @@
context.startServiceAsUser(intent, UserHandle.OWNER);
}
}
-
-public class SystemServer {
- private static final String TAG = "SystemServer";
-
- public static final int FACTORY_TEST_OFF = 0;
- public static final int FACTORY_TEST_LOW_LEVEL = 1;
- public static final int FACTORY_TEST_HIGH_LEVEL = 2;
-
- static Timer timer;
- static final long SNAPSHOT_INTERVAL = 60 * 60 * 1000; // 1hr
-
- // The earliest supported time. We pick one day into 1970, to
- // give any timezone code room without going into negative time.
- private static final long EARLIEST_SUPPORTED_TIME = 86400 * 1000;
-
- /**
- * Called to initialize native system services.
- */
- private static native void nativeInit();
-
- public static void main(String[] args) {
-
- /*
- * In case the runtime switched since last boot (such as when
- * the old runtime was removed in an OTA), set the system
- * property so that it is in sync. We can't do this in
- * libnativehelper's JniInvocation::Init code where we already
- * had to fallback to a different runtime because it is
- * running as root and we need to be the system user to set
- * the property. http://b/11463182
- */
- SystemProperties.set("persist.sys.dalvik.vm.lib.1",
- VMRuntime.getRuntime().vmLibrary());
-
- if (System.currentTimeMillis() < EARLIEST_SUPPORTED_TIME) {
- // If a device's clock is before 1970 (before 0), a lot of
- // APIs crash dealing with negative numbers, notably
- // java.io.File#setLastModified, so instead we fake it and
- // hope that time from cell towers or NTP fixes it
- // shortly.
- Slog.w(TAG, "System clock is before 1970; setting to 1970.");
- SystemClock.setCurrentTimeMillis(EARLIEST_SUPPORTED_TIME);
- }
-
- if (SamplingProfilerIntegration.isEnabled()) {
- SamplingProfilerIntegration.start();
- timer = new Timer();
- timer.schedule(new TimerTask() {
- @Override
- public void run() {
- SamplingProfilerIntegration.writeSnapshot("system_server", null);
- }
- }, SNAPSHOT_INTERVAL, SNAPSHOT_INTERVAL);
- }
-
- // Mmmmmm... more memory!
- dalvik.system.VMRuntime.getRuntime().clearGrowthLimit();
-
- // The system server has to run all of the time, so it needs to be
- // as efficient as possible with its memory usage.
- VMRuntime.getRuntime().setTargetHeapUtilization(0.8f);
-
- Environment.setUserRequired(true);
-
- System.loadLibrary("android_servers");
-
- Slog.i(TAG, "Entered the Android system server!");
-
- // Initialize native services.
- nativeInit();
-
- // This used to be its own separate thread, but now it is
- // just the loop we run on the main thread.
- ServerThread thr = new ServerThread();
- thr.initAndLoop();
- }
-}
diff --git a/services/java/com/android/server/TelephonyRegistry.java b/services/core/java/com/android/server/TelephonyRegistry.java
similarity index 100%
rename from services/java/com/android/server/TelephonyRegistry.java
rename to services/core/java/com/android/server/TelephonyRegistry.java
diff --git a/services/java/com/android/server/TextServicesManagerService.java b/services/core/java/com/android/server/TextServicesManagerService.java
similarity index 100%
rename from services/java/com/android/server/TextServicesManagerService.java
rename to services/core/java/com/android/server/TextServicesManagerService.java
diff --git a/services/java/com/android/server/TwilightCalculator.java b/services/core/java/com/android/server/TwilightCalculator.java
similarity index 100%
rename from services/java/com/android/server/TwilightCalculator.java
rename to services/core/java/com/android/server/TwilightCalculator.java
diff --git a/services/java/com/android/server/UiModeManagerService.java b/services/core/java/com/android/server/UiModeManagerService.java
similarity index 76%
rename from services/java/com/android/server/UiModeManagerService.java
rename to services/core/java/com/android/server/UiModeManagerService.java
index 062be01..de912dc 100644
--- a/services/java/com/android/server/UiModeManagerService.java
+++ b/services/core/java/com/android/server/UiModeManagerService.java
@@ -34,9 +34,9 @@
import android.os.BatteryManager;
import android.os.Binder;
import android.os.Handler;
+import android.os.IBinder;
import android.os.PowerManager;
import android.os.RemoteException;
-import android.os.ServiceManager;
import android.os.UserHandle;
import android.provider.Settings;
import android.service.dreams.Sandman;
@@ -47,9 +47,11 @@
import com.android.internal.R;
import com.android.internal.app.DisableCarModeActivity;
-import com.android.server.TwilightService.TwilightState;
+import com.android.server.twilight.TwilightListener;
+import com.android.server.twilight.TwilightManager;
+import com.android.server.twilight.TwilightState;
-final class UiModeManagerService extends IUiModeManager.Stub {
+final class UiModeManagerService extends SystemService {
private static final String TAG = UiModeManager.class.getSimpleName();
private static final boolean LOG = false;
@@ -57,40 +59,36 @@
private static final boolean ENABLE_LAUNCH_CAR_DOCK_APP = true;
private static final boolean ENABLE_LAUNCH_DESK_DOCK_APP = true;
- private final Context mContext;
- private final TwilightService mTwilightService;
- private final Handler mHandler = new Handler();
-
final Object mLock = new Object();
-
private int mDockState = Intent.EXTRA_DOCK_STATE_UNDOCKED;
- private int mLastBroadcastState = Intent.EXTRA_DOCK_STATE_UNDOCKED;
- private int mNightMode = UiModeManager.MODE_NIGHT_NO;
+ private int mLastBroadcastState = Intent.EXTRA_DOCK_STATE_UNDOCKED;
+ int mNightMode = UiModeManager.MODE_NIGHT_NO;
+
private boolean mCarModeEnabled = false;
private boolean mCharging = false;
- private final int mDefaultUiModeType;
- private final boolean mCarModeKeepsScreenOn;
- private final boolean mDeskModeKeepsScreenOn;
- private final boolean mTelevision;
-
+ private int mDefaultUiModeType;
+ private boolean mCarModeKeepsScreenOn;
+ private boolean mDeskModeKeepsScreenOn;
+ private boolean mTelevision;
private boolean mComputedNightMode;
- private int mCurUiMode = 0;
+
+ int mCurUiMode = 0;
private int mSetUiMode = 0;
-
private boolean mHoldingConfiguration = false;
+
private Configuration mConfiguration = new Configuration();
+ boolean mSystemReady;
- private boolean mSystemReady;
+ private final Handler mHandler = new Handler();
+ private TwilightManager mTwilightManager;
private NotificationManager mNotificationManager;
-
private StatusBarManager mStatusBarManager;
- private final PowerManager mPowerManager;
- private final PowerManager.WakeLock mWakeLock;
+ private PowerManager.WakeLock mWakeLock;
- static Intent buildHomeIntent(String category) {
+ private static Intent buildHomeIntent(String category) {
Intent intent = new Intent(Intent.ACTION_MAIN);
intent.addCategory(category);
intent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK
@@ -142,28 +140,26 @@
}
};
- private final TwilightService.TwilightListener mTwilightListener =
- new TwilightService.TwilightListener() {
+ private final TwilightListener mTwilightListener = new TwilightListener() {
@Override
public void onTwilightStateChanged() {
updateTwilight();
}
};
- public UiModeManagerService(Context context, TwilightService twilight) {
- mContext = context;
- mTwilightService = twilight;
+ @Override
+ public void onStart() {
+ final Context context = getContext();
+ mTwilightManager = getLocalService(TwilightManager.class);
+ final PowerManager powerManager =
+ (PowerManager) context.getSystemService(Context.POWER_SERVICE);
+ mWakeLock = powerManager.newWakeLock(PowerManager.FULL_WAKE_LOCK, TAG);
- ServiceManager.addService(Context.UI_MODE_SERVICE, this);
-
- mContext.registerReceiver(mDockModeReceiver,
+ context.registerReceiver(mDockModeReceiver,
new IntentFilter(Intent.ACTION_DOCK_EVENT));
- mContext.registerReceiver(mBatteryReceiver,
+ context.registerReceiver(mBatteryReceiver,
new IntentFilter(Intent.ACTION_BATTERY_CHANGED));
- mPowerManager = (PowerManager)context.getSystemService(Context.POWER_SERVICE);
- mWakeLock = mPowerManager.newWakeLock(PowerManager.FULL_WAKE_LOCK, TAG);
-
mConfiguration.setToDefaults();
mDefaultUiModeType = context.getResources().getInteger(
@@ -175,101 +171,139 @@
mTelevision = context.getPackageManager().hasSystemFeature(
PackageManager.FEATURE_TELEVISION);
- mNightMode = Settings.Secure.getInt(mContext.getContentResolver(),
+ mNightMode = Settings.Secure.getInt(context.getContentResolver(),
Settings.Secure.UI_NIGHT_MODE, UiModeManager.MODE_NIGHT_AUTO);
- mTwilightService.registerListener(mTwilightListener, mHandler);
+ mTwilightManager.registerListener(mTwilightListener, mHandler);
+
+ publishBinderService(Context.UI_MODE_SERVICE, mService);
}
- @Override // Binder call
- public void disableCarMode(int flags) {
- final long ident = Binder.clearCallingIdentity();
- try {
- synchronized (mLock) {
- setCarModeLocked(false);
- if (mSystemReady) {
- updateLocked(0, flags);
+ private final IBinder mService = new IUiModeManager.Stub() {
+ @Override
+ public void enableCarMode(int flags) {
+ final long ident = Binder.clearCallingIdentity();
+ try {
+ synchronized (mLock) {
+ setCarModeLocked(true);
+ if (mSystemReady) {
+ updateLocked(flags, 0);
+ }
}
+ } finally {
+ Binder.restoreCallingIdentity(ident);
}
- } finally {
- Binder.restoreCallingIdentity(ident);
}
- }
- @Override // Binder call
- public void enableCarMode(int flags) {
- final long ident = Binder.clearCallingIdentity();
- try {
- synchronized (mLock) {
- setCarModeLocked(true);
- if (mSystemReady) {
- updateLocked(flags, 0);
+ @Override
+ public void disableCarMode(int flags) {
+ final long ident = Binder.clearCallingIdentity();
+ try {
+ synchronized (mLock) {
+ setCarModeLocked(false);
+ if (mSystemReady) {
+ updateLocked(0, flags);
+ }
}
+ } finally {
+ Binder.restoreCallingIdentity(ident);
}
- } finally {
- Binder.restoreCallingIdentity(ident);
- }
- }
-
- @Override // Binder call
- public int getCurrentModeType() {
- final long ident = Binder.clearCallingIdentity();
- try {
- synchronized (mLock) {
- return mCurUiMode & Configuration.UI_MODE_TYPE_MASK;
- }
- } finally {
- Binder.restoreCallingIdentity(ident);
- }
- }
-
- @Override // Binder call
- public void setNightMode(int mode) {
- switch (mode) {
- case UiModeManager.MODE_NIGHT_NO:
- case UiModeManager.MODE_NIGHT_YES:
- case UiModeManager.MODE_NIGHT_AUTO:
- break;
- default:
- throw new IllegalArgumentException("Unknown mode: " + mode);
}
- final long ident = Binder.clearCallingIdentity();
- try {
- synchronized (mLock) {
- if (isDoingNightModeLocked() && mNightMode != mode) {
- Settings.Secure.putInt(mContext.getContentResolver(),
- Settings.Secure.UI_NIGHT_MODE, mode);
- mNightMode = mode;
- updateLocked(0, 0);
+ @Override
+ public int getCurrentModeType() {
+ final long ident = Binder.clearCallingIdentity();
+ try {
+ synchronized (mLock) {
+ return mCurUiMode & Configuration.UI_MODE_TYPE_MASK;
}
+ } finally {
+ Binder.restoreCallingIdentity(ident);
}
- } finally {
- Binder.restoreCallingIdentity(ident);
}
- }
- @Override // Binder call
- public int getNightMode() {
+ @Override
+ public void setNightMode(int mode) {
+ switch (mode) {
+ case UiModeManager.MODE_NIGHT_NO:
+ case UiModeManager.MODE_NIGHT_YES:
+ case UiModeManager.MODE_NIGHT_AUTO:
+ break;
+ default:
+ throw new IllegalArgumentException("Unknown mode: " + mode);
+ }
+
+ final long ident = Binder.clearCallingIdentity();
+ try {
+ synchronized (mLock) {
+ if (isDoingNightModeLocked() && mNightMode != mode) {
+ Settings.Secure.putInt(getContext().getContentResolver(),
+ Settings.Secure.UI_NIGHT_MODE, mode);
+ mNightMode = mode;
+ updateLocked(0, 0);
+ }
+ }
+ } finally {
+ Binder.restoreCallingIdentity(ident);
+ }
+ }
+
+ @Override
+ public int getNightMode() {
+ synchronized (mLock) {
+ return mNightMode;
+ }
+ }
+
+ @Override
+ protected void dump(FileDescriptor fd, PrintWriter pw, String[] args) {
+ if (getContext().checkCallingOrSelfPermission(android.Manifest.permission.DUMP)
+ != PackageManager.PERMISSION_GRANTED) {
+
+ pw.println("Permission Denial: can't dump uimode service from from pid="
+ + Binder.getCallingPid()
+ + ", uid=" + Binder.getCallingUid());
+ return;
+ }
+
+ dumpImpl(pw);
+ }
+ };
+
+ void dumpImpl(PrintWriter pw) {
synchronized (mLock) {
- return mNightMode;
+ pw.println("Current UI Mode Service state:");
+ pw.print(" mDockState="); pw.print(mDockState);
+ pw.print(" mLastBroadcastState="); pw.println(mLastBroadcastState);
+ pw.print(" mNightMode="); pw.print(mNightMode);
+ pw.print(" mCarModeEnabled="); pw.print(mCarModeEnabled);
+ pw.print(" mComputedNightMode="); pw.println(mComputedNightMode);
+ pw.print(" mCurUiMode=0x"); pw.print(Integer.toHexString(mCurUiMode));
+ pw.print(" mSetUiMode=0x"); pw.println(Integer.toHexString(mSetUiMode));
+ pw.print(" mHoldingConfiguration="); pw.print(mHoldingConfiguration);
+ pw.print(" mSystemReady="); pw.println(mSystemReady);
+ pw.print(" mTwilightService.getCurrentState()=");
+ pw.println(mTwilightManager.getCurrentState());
}
}
- void systemReady() {
- synchronized (mLock) {
- mSystemReady = true;
- mCarModeEnabled = mDockState == Intent.EXTRA_DOCK_STATE_CAR;
- updateComputedNightModeLocked();
- updateLocked(0, 0);
+ @Override
+ public void onBootPhase(int phase) {
+ if (phase == SystemService.PHASE_SYSTEM_SERVICES_READY) {
+ synchronized (mLock) {
+ mSystemReady = true;
+ mCarModeEnabled = mDockState == Intent.EXTRA_DOCK_STATE_CAR;
+ updateComputedNightModeLocked();
+ updateLocked(0, 0);
+ }
}
}
- private boolean isDoingNightModeLocked() {
+ boolean isDoingNightModeLocked() {
return mCarModeEnabled || mDockState != Intent.EXTRA_DOCK_STATE_UNDOCKED;
}
- private void setCarModeLocked(boolean enabled) {
+ void setCarModeLocked(boolean enabled) {
if (mCarModeEnabled != enabled) {
mCarModeEnabled = enabled;
}
@@ -344,7 +378,7 @@
}
}
- private void updateLocked(int enableFlags, int disableFlags) {
+ void updateLocked(int enableFlags, int disableFlags) {
String action = null;
String oldAction = null;
if (mLastBroadcastState == Intent.EXTRA_DOCK_STATE_CAR) {
@@ -359,7 +393,7 @@
adjustStatusBarCarModeLocked();
if (oldAction != null) {
- mContext.sendBroadcastAsUser(new Intent(oldAction), UserHandle.ALL);
+ getContext().sendBroadcastAsUser(new Intent(oldAction), UserHandle.ALL);
}
mLastBroadcastState = Intent.EXTRA_DOCK_STATE_CAR;
action = UiModeManager.ACTION_ENTER_CAR_MODE;
@@ -367,7 +401,7 @@
} else if (isDeskDockState(mDockState)) {
if (!isDeskDockState(mLastBroadcastState)) {
if (oldAction != null) {
- mContext.sendBroadcastAsUser(new Intent(oldAction), UserHandle.ALL);
+ getContext().sendBroadcastAsUser(new Intent(oldAction), UserHandle.ALL);
}
mLastBroadcastState = mDockState;
action = UiModeManager.ACTION_ENTER_DESK_MODE;
@@ -393,7 +427,7 @@
Intent intent = new Intent(action);
intent.putExtra("enableFlags", enableFlags);
intent.putExtra("disableFlags", disableFlags);
- mContext.sendOrderedBroadcastAsUser(intent, UserHandle.CURRENT, null,
+ getContext().sendOrderedBroadcastAsUser(intent, UserHandle.CURRENT, null,
mResultReceiver, null, Activity.RESULT_OK, null, null);
// Attempting to make this transition a little more clean, we are going
@@ -491,7 +525,7 @@
// activity manager take care of both the start and config
// change.
Intent homeIntent = buildHomeIntent(category);
- if (Sandman.shouldStartDockApp(mContext, homeIntent)) {
+ if (Sandman.shouldStartDockApp(getContext(), homeIntent)) {
try {
int result = ActivityManagerNative.getDefault().startActivityWithConfig(
null, null, homeIntent, null, null, null, 0, 0,
@@ -513,14 +547,15 @@
// If we did not start a dock app, then start dreaming if supported.
if (category != null && !dockAppStarted) {
- Sandman.startDreamWhenDockedIfAppropriate(mContext);
+ Sandman.startDreamWhenDockedIfAppropriate(getContext());
}
}
private void adjustStatusBarCarModeLocked() {
+ final Context context = getContext();
if (mStatusBarManager == null) {
mStatusBarManager = (StatusBarManager)
- mContext.getSystemService(Context.STATUS_BAR_SERVICE);
+ context.getSystemService(Context.STATUS_BAR_SERVICE);
}
// Fear not: StatusBarManagerService manages a list of requests to disable
@@ -536,12 +571,12 @@
if (mNotificationManager == null) {
mNotificationManager = (NotificationManager)
- mContext.getSystemService(Context.NOTIFICATION_SERVICE);
+ context.getSystemService(Context.NOTIFICATION_SERVICE);
}
if (mNotificationManager != null) {
if (mCarModeEnabled) {
- Intent carModeOffIntent = new Intent(mContext, DisableCarModeActivity.class);
+ Intent carModeOffIntent = new Intent(context, DisableCarModeActivity.class);
Notification n = new Notification();
n.icon = R.drawable.stat_notify_car_mode;
@@ -549,10 +584,10 @@
n.flags = Notification.FLAG_ONGOING_EVENT;
n.when = 0;
n.setLatestEventInfo(
- mContext,
- mContext.getString(R.string.car_mode_disable_notification_title),
- mContext.getString(R.string.car_mode_disable_notification_message),
- PendingIntent.getActivityAsUser(mContext, 0, carModeOffIntent, 0,
+ context,
+ context.getString(R.string.car_mode_disable_notification_title),
+ context.getString(R.string.car_mode_disable_notification_message),
+ PendingIntent.getActivityAsUser(context, 0, carModeOffIntent, 0,
null, UserHandle.CURRENT));
mNotificationManager.notifyAsUser(null,
R.string.car_mode_disable_notification_title, n, UserHandle.ALL);
@@ -563,7 +598,7 @@
}
}
- private void updateTwilight() {
+ void updateTwilight() {
synchronized (mLock) {
if (isDoingNightModeLocked() && mNightMode == UiModeManager.MODE_NIGHT_AUTO) {
updateComputedNightModeLocked();
@@ -573,36 +608,11 @@
}
private void updateComputedNightModeLocked() {
- TwilightState state = mTwilightService.getCurrentState();
+ TwilightState state = mTwilightManager.getCurrentState();
if (state != null) {
mComputedNightMode = state.isNight();
}
}
- @Override
- protected void dump(FileDescriptor fd, PrintWriter pw, String[] args) {
- if (mContext.checkCallingOrSelfPermission(android.Manifest.permission.DUMP)
- != PackageManager.PERMISSION_GRANTED) {
- pw.println("Permission Denial: can't dump uimode service from from pid="
- + Binder.getCallingPid()
- + ", uid=" + Binder.getCallingUid());
- return;
- }
-
- synchronized (mLock) {
- pw.println("Current UI Mode Service state:");
- pw.print(" mDockState="); pw.print(mDockState);
- pw.print(" mLastBroadcastState="); pw.println(mLastBroadcastState);
- pw.print(" mNightMode="); pw.print(mNightMode);
- pw.print(" mCarModeEnabled="); pw.print(mCarModeEnabled);
- pw.print(" mComputedNightMode="); pw.println(mComputedNightMode);
- pw.print(" mCurUiMode=0x"); pw.print(Integer.toHexString(mCurUiMode));
- pw.print(" mSetUiMode=0x"); pw.println(Integer.toHexString(mSetUiMode));
- pw.print(" mHoldingConfiguration="); pw.print(mHoldingConfiguration);
- pw.print(" mSystemReady="); pw.println(mSystemReady);
- pw.print(" mTwilightService.getCurrentState()=");
- pw.println(mTwilightService.getCurrentState());
- }
- }
}
diff --git a/services/java/com/android/server/UiThread.java b/services/core/java/com/android/server/UiThread.java
similarity index 66%
rename from services/java/com/android/server/UiThread.java
rename to services/core/java/com/android/server/UiThread.java
index 60d73aa..0beb77f 100644
--- a/services/java/com/android/server/UiThread.java
+++ b/services/core/java/com/android/server/UiThread.java
@@ -17,21 +17,18 @@
package com.android.server;
import android.os.Handler;
-import android.os.HandlerThread;
-import android.os.StrictMode;
-import android.util.Slog;
/**
* Shared singleton thread for showing UI. This is a foreground thread, and in
* additional should not have operations that can take more than a few ms scheduled
* on it to avoid UI jank.
*/
-public final class UiThread extends HandlerThread {
+public final class UiThread extends ServiceThread {
private static UiThread sInstance;
private static Handler sHandler;
private UiThread() {
- super("android.ui", android.os.Process.THREAD_PRIORITY_FOREGROUND);
+ super("android.ui", android.os.Process.THREAD_PRIORITY_FOREGROUND, false /*allowIo*/);
}
private static void ensureThreadLocked() {
@@ -39,19 +36,6 @@
sInstance = new UiThread();
sInstance.start();
sHandler = new Handler(sInstance.getLooper());
- sHandler.post(new Runnable() {
- @Override
- public void run() {
- //Looper.myLooper().setMessageLogging(new LogPrinter(
- // Log.VERBOSE, "WindowManagerPolicy", Log.LOG_ID_SYSTEM));
- android.os.Process.setCanSelfBackground(false);
-
- // For debug builds, log event loop stalls to dropbox for analysis.
- if (StrictMode.conditionallyEnableDebugLogging()) {
- Slog.i("UiThread", "Enabled StrictMode logging for UI thread");
- }
- }
- });
}
}
diff --git a/services/java/com/android/server/UpdateLockService.java b/services/core/java/com/android/server/UpdateLockService.java
similarity index 100%
rename from services/java/com/android/server/UpdateLockService.java
rename to services/core/java/com/android/server/UpdateLockService.java
diff --git a/services/java/com/android/server/VibratorService.java b/services/core/java/com/android/server/VibratorService.java
similarity index 100%
rename from services/java/com/android/server/VibratorService.java
rename to services/core/java/com/android/server/VibratorService.java
diff --git a/services/java/com/android/server/Watchdog.java b/services/core/java/com/android/server/Watchdog.java
similarity index 95%
rename from services/java/com/android/server/Watchdog.java
rename to services/core/java/com/android/server/Watchdog.java
index e17f42d..1ce073a 100644
--- a/services/java/com/android/server/Watchdog.java
+++ b/services/core/java/com/android/server/Watchdog.java
@@ -20,18 +20,15 @@
import android.os.Binder;
import android.os.RemoteException;
import com.android.server.am.ActivityManagerService;
-import com.android.server.power.PowerManagerService;
-import android.app.AlarmManager;
-import android.app.PendingIntent;
import android.content.BroadcastReceiver;
import android.content.ContentResolver;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
-import android.os.BatteryManager;
import android.os.Debug;
import android.os.Handler;
+import android.os.IPowerManager;
import android.os.Looper;
import android.os.Process;
import android.os.ServiceManager;
@@ -45,7 +42,6 @@
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
-import java.util.Calendar;
/** This class calls its monitor every minute. Killing this process if they don't return **/
public class Watchdog extends Thread {
@@ -80,9 +76,6 @@
final ArrayList<HandlerChecker> mHandlerCheckers = new ArrayList<HandlerChecker>();
final HandlerChecker mMonitorChecker;
ContentResolver mResolver;
- BatteryService mBattery;
- PowerManagerService mPower;
- AlarmManagerService mAlarm;
ActivityManagerService mActivity;
int mPhonePid;
@@ -232,15 +225,13 @@
// And also check IO thread.
mHandlerCheckers.add(new HandlerChecker(IoThread.getHandler(),
"i/o thread", DEFAULT_TIMEOUT));
+ // And the display thread.
+ mHandlerCheckers.add(new HandlerChecker(DisplayThread.getHandler(),
+ "display thread", DEFAULT_TIMEOUT));
}
- public void init(Context context, BatteryService battery,
- PowerManagerService power, AlarmManagerService alarm,
- ActivityManagerService activity) {
+ public void init(Context context, ActivityManagerService activity) {
mResolver = context.getContentResolver();
- mBattery = battery;
- mPower = power;
- mAlarm = alarm;
mActivity = activity;
context.registerReceiver(new RebootRequestReceiver(),
@@ -277,15 +268,16 @@
}
}
- public void addThread(Handler thread, String name) {
- addThread(thread, name, DEFAULT_TIMEOUT);
+ public void addThread(Handler thread) {
+ addThread(thread, DEFAULT_TIMEOUT);
}
- public void addThread(Handler thread, String name, long timeoutMillis) {
+ public void addThread(Handler thread, long timeoutMillis) {
synchronized (this) {
if (isAlive()) {
throw new RuntimeException("Threads can't be added once the Watchdog is running");
}
+ final String name = thread.getLooper().getThread().getName();
mHandlerCheckers.add(new HandlerChecker(thread, name, timeoutMillis));
}
}
@@ -295,8 +287,11 @@
*/
void rebootSystem(String reason) {
Slog.i(TAG, "Rebooting system because: " + reason);
- PowerManagerService pms = (PowerManagerService) ServiceManager.getService("power");
- pms.reboot(false, reason, false);
+ IPowerManager pms = (IPowerManager)ServiceManager.getService(Context.POWER_SERVICE);
+ try {
+ pms.reboot(false, reason, false);
+ } catch (RemoteException ex) {
+ }
}
private int evaluateCheckerCompletionLocked() {
diff --git a/services/java/com/android/server/WiredAccessoryManager.java b/services/core/java/com/android/server/WiredAccessoryManager.java
similarity index 100%
rename from services/java/com/android/server/WiredAccessoryManager.java
rename to services/core/java/com/android/server/WiredAccessoryManager.java
diff --git a/services/java/com/android/server/accounts/AccountAuthenticatorCache.java b/services/core/java/com/android/server/accounts/AccountAuthenticatorCache.java
similarity index 100%
rename from services/java/com/android/server/accounts/AccountAuthenticatorCache.java
rename to services/core/java/com/android/server/accounts/AccountAuthenticatorCache.java
diff --git a/services/java/com/android/server/accounts/AccountManagerService.java b/services/core/java/com/android/server/accounts/AccountManagerService.java
similarity index 100%
rename from services/java/com/android/server/accounts/AccountManagerService.java
rename to services/core/java/com/android/server/accounts/AccountManagerService.java
diff --git a/services/java/com/android/server/accounts/IAccountAuthenticatorCache.java b/services/core/java/com/android/server/accounts/IAccountAuthenticatorCache.java
similarity index 100%
rename from services/java/com/android/server/accounts/IAccountAuthenticatorCache.java
rename to services/core/java/com/android/server/accounts/IAccountAuthenticatorCache.java
diff --git a/services/java/com/android/server/am/ActiveServices.java b/services/core/java/com/android/server/am/ActiveServices.java
similarity index 98%
rename from services/java/com/android/server/am/ActiveServices.java
rename to services/core/java/com/android/server/am/ActiveServices.java
index 933247e..17bb3e0 100644
--- a/services/java/com/android/server/am/ActiveServices.java
+++ b/services/core/java/com/android/server/am/ActiveServices.java
@@ -64,7 +64,7 @@
static final boolean DEBUG_SERVICE = ActivityManagerService.DEBUG_SERVICE;
static final boolean DEBUG_SERVICE_EXECUTING = ActivityManagerService.DEBUG_SERVICE_EXECUTING;
static final boolean DEBUG_DELAYED_SERVICE = ActivityManagerService.DEBUG_SERVICE;
- static final boolean DEBUG_DELAYED_STATS = DEBUG_DELAYED_SERVICE;
+ static final boolean DEBUG_DELAYED_STARTS = DEBUG_DELAYED_SERVICE;
static final boolean DEBUG_MU = ActivityManagerService.DEBUG_MU;
static final String TAG = ActivityManagerService.TAG;
static final String TAG_MU = ActivityManagerService.TAG_MU;
@@ -186,11 +186,11 @@
void ensureNotStartingBackground(ServiceRecord r) {
if (mStartingBackground.remove(r)) {
- if (DEBUG_DELAYED_STATS) Slog.v(TAG, "No longer background starting: " + r);
+ if (DEBUG_DELAYED_STARTS) Slog.v(TAG, "No longer background starting: " + r);
rescheduleDelayedStarts();
}
if (mDelayedStartList.remove(r)) {
- if (DEBUG_DELAYED_STATS) Slog.v(TAG, "No longer delaying start: " + r);
+ if (DEBUG_DELAYED_STARTS) Slog.v(TAG, "No longer delaying start: " + r);
}
}
@@ -208,7 +208,7 @@
while (mDelayedStartList.size() > 0
&& mStartingBackground.size() < mMaxStartingBackground) {
ServiceRecord r = mDelayedStartList.remove(0);
- if (DEBUG_DELAYED_STATS) Slog.v(TAG, "REM FR DELAY LIST (exec next): " + r);
+ if (DEBUG_DELAYED_STARTS) Slog.v(TAG, "REM FR DELAY LIST (exec next): " + r);
if (r.pendingStarts.size() <= 0) {
Slog.w(TAG, "**** NO PENDING STARTS! " + r + " startReq=" + r.startRequested
+ " delayedStop=" + r.delayedStop);
@@ -276,7 +276,7 @@
ComponentName startServiceLocked(IApplicationThread caller,
Intent service, String resolvedType,
int callingPid, int callingUid, int userId) {
- if (DEBUG_DELAYED_STATS) Slog.v(TAG, "startService: " + service
+ if (DEBUG_DELAYED_STARTS) Slog.v(TAG, "startService: " + service
+ " type=" + resolvedType + " args=" + service.getExtras());
final boolean callerFg;
@@ -336,7 +336,7 @@
if (r.delayed) {
// This service is already scheduled for a delayed start; just leave
// it still waiting.
- if (DEBUG_DELAYED_STATS) Slog.v(TAG, "Continuing to delay: " + r);
+ if (DEBUG_DELAYED_STARTS) Slog.v(TAG, "Continuing to delay: " + r);
return r.name;
}
if (smap.mStartingBackground.size() >= mMaxStartingBackground) {
@@ -346,15 +346,15 @@
r.delayed = true;
return r.name;
}
- if (DEBUG_DELAYED_STATS) Slog.v(TAG, "Not delaying: " + r);
+ if (DEBUG_DELAYED_STARTS) Slog.v(TAG, "Not delaying: " + r);
addToStarting = true;
} else if (proc.curProcState >= ActivityManager.PROCESS_STATE_SERVICE) {
// We slightly loosen when we will enqueue this new service as a background
// starting service we are waiting for, to also include processes that are
// currently running other services or receivers.
addToStarting = true;
- if (DEBUG_DELAYED_STATS) Slog.v(TAG, "Not delaying, but counting as bg: " + r);
- } else if (DEBUG_DELAYED_STATS) {
+ if (DEBUG_DELAYED_STARTS) Slog.v(TAG, "Not delaying, but counting as bg: " + r);
+ } else if (DEBUG_DELAYED_STARTS) {
StringBuilder sb = new StringBuilder(128);
sb.append("Not potential delay (state=").append(proc.curProcState)
.append(' ').append(proc.adjType);
@@ -367,7 +367,7 @@
sb.append(r.toString());
Slog.v(TAG, sb.toString());
}
- } else if (DEBUG_DELAYED_STATS) {
+ } else if (DEBUG_DELAYED_STARTS) {
if (callerFg) {
Slog.v(TAG, "Not potential delay (callerFg=" + callerFg + " uid="
+ callingUid + " pid=" + callingPid + "): " + r);
@@ -404,7 +404,7 @@
RuntimeException here = new RuntimeException("here");
here.fillInStackTrace();
Slog.v(TAG, "Starting background (first=" + first + "): " + r, here);
- } else if (DEBUG_DELAYED_STATS) {
+ } else if (DEBUG_DELAYED_STARTS) {
Slog.v(TAG, "Starting background (first=" + first + "): " + r);
}
if (first) {
@@ -422,7 +422,7 @@
// If service isn't actually running, but is is being held in the
// delayed list, then we need to keep it started but note that it
// should be stopped once no longer delayed.
- if (DEBUG_DELAYED_STATS) Slog.v(TAG, "Delaying stop of pending: " + service);
+ if (DEBUG_DELAYED_STARTS) Slog.v(TAG, "Delaying stop of pending: " + service);
service.delayedStop = true;
return;
}
@@ -1278,7 +1278,7 @@
// Make sure this service is no longer considered delayed, we are starting it now.
if (r.delayed) {
- if (DEBUG_DELAYED_STATS) Slog.v(TAG, "REM FR DELAY LIST (bring up): " + r);
+ if (DEBUG_DELAYED_STARTS) Slog.v(TAG, "REM FR DELAY LIST (bring up): " + r);
getServiceMap(r.userId).mDelayedStartList.remove(r);
r.delayed = false;
}
@@ -1361,7 +1361,7 @@
// Oh and hey we've already been asked to stop!
r.delayedStop = false;
if (r.startRequested) {
- if (DEBUG_DELAYED_STATS) Slog.v(TAG, "Applying delayed stop (in bring up): " + r);
+ if (DEBUG_DELAYED_STARTS) Slog.v(TAG, "Applying delayed stop (in bring up): " + r);
stopServiceLocked(r);
}
}
@@ -1432,7 +1432,7 @@
sendServiceArgsLocked(r, execInFg, true);
if (r.delayed) {
- if (DEBUG_DELAYED_STATS) Slog.v(TAG, "REM FR DELAY LIST (new proc): " + r);
+ if (DEBUG_DELAYED_STARTS) Slog.v(TAG, "REM FR DELAY LIST (new proc): " + r);
getServiceMap(r.userId).mDelayedStartList.remove(r);
r.delayed = false;
}
@@ -1441,7 +1441,7 @@
// Oh and hey we've already been asked to stop!
r.delayedStop = false;
if (r.startRequested) {
- if (DEBUG_DELAYED_STATS) Slog.v(TAG, "Applying delayed stop (from start): " + r);
+ if (DEBUG_DELAYED_STARTS) Slog.v(TAG, "Applying delayed stop (from start): " + r);
stopServiceLocked(r);
}
}
@@ -1847,7 +1847,7 @@
}
}
if (finishing) {
- if (r.app != null) {
+ if (r.app != null && !r.app.persistent) {
r.app.services.remove(r);
}
r.app = null;
@@ -1930,7 +1930,9 @@
Slog.i(TAG, " Force stopping service " + service);
if (service.app != null) {
service.app.removed = true;
- service.app.services.remove(service);
+ if (!service.app.persistent) {
+ service.app.services.remove(service);
+ }
}
service.app = null;
service.isolatedProc = null;
@@ -2032,7 +2034,7 @@
synchronized (sr.stats.getBatteryStats()) {
sr.stats.stopLaunchedLocked();
}
- if (sr.app != null) {
+ if (sr.app != app && sr.app != null && !sr.app.persistent) {
sr.app.services.remove(sr);
}
sr.app = null;
@@ -2065,13 +2067,19 @@
// Now do remaining service cleanup.
for (int i=app.services.size()-1; i>=0; i--) {
ServiceRecord sr = app.services.valueAt(i);
+
+ // Unless the process is persistent, this process record is going away,
+ // so make sure the service is cleaned out of it.
+ if (!app.persistent) {
+ app.services.removeAt(i);
+ }
+
// Sanity check: if the service listed for the app is not one
- // we actually are maintaining, drop it.
+ // we actually are maintaining, just let it drop.
if (smap.mServicesByName.get(sr.name) != sr) {
ServiceRecord cur = smap.mServicesByName.get(sr.name);
Slog.wtf(TAG, "Service " + sr + " in process " + app
+ " not same as in map: " + cur);
- app.services.removeAt(i);
continue;
}
diff --git a/services/java/com/android/server/am/ActivityManagerService.java b/services/core/java/com/android/server/am/ActivityManagerService.java
similarity index 98%
rename from services/java/com/android/server/am/ActivityManagerService.java
rename to services/core/java/com/android/server/am/ActivityManagerService.java
index fc66e45..019e6f5 100644
--- a/services/java/com/android/server/am/ActivityManagerService.java
+++ b/services/core/java/com/android/server/am/ActivityManagerService.java
@@ -28,11 +28,15 @@
import static com.android.server.am.ActivityStackSupervisor.HOME_STACK_ID;
import android.app.AppOpsManager;
+import android.app.IActivityContainer;
+import android.app.IActivityContainerCallback;
import android.appwidget.AppWidgetManager;
+import android.graphics.Rect;
import android.util.ArrayMap;
import com.android.internal.R;
import com.android.internal.annotations.GuardedBy;
import com.android.internal.app.IAppOpsService;
+import com.android.internal.app.ProcessMap;
import com.android.internal.app.ProcessStats;
import com.android.internal.os.BackgroundThread;
import com.android.internal.os.BatteryStatsImpl;
@@ -45,14 +49,14 @@
import com.android.server.AppOpsService;
import com.android.server.AttributeCache;
import com.android.server.IntentResolver;
-import com.android.internal.app.ProcessMap;
+import com.android.server.ServiceThread;
import com.android.server.SystemServer;
+import com.android.server.SystemService;
import com.android.server.Watchdog;
import com.android.server.am.ActivityStack.ActivityState;
import com.android.server.firewall.IntentFirewall;
import com.android.server.pm.UserManagerService;
import com.android.server.wm.AppTransition;
-import com.android.server.wm.StackBox;
import com.android.server.wm.WindowManagerService;
import com.google.android.collect.Lists;
import com.google.android.collect.Maps;
@@ -68,7 +72,6 @@
import android.app.Activity;
import android.app.ActivityManager;
import android.app.ActivityManager.RunningTaskInfo;
-import android.app.ActivityManager.StackBoxInfo;
import android.app.ActivityManager.StackInfo;
import android.app.ActivityManagerNative;
import android.app.ActivityOptions;
@@ -134,6 +137,7 @@
import android.os.Debug;
import android.os.DropBoxManager;
import android.os.Environment;
+import android.os.FactoryTest;
import android.os.FileObserver;
import android.os.FileUtils;
import android.os.Handler;
@@ -331,8 +335,6 @@
public IntentFirewall mIntentFirewall;
- private final boolean mHeadless;
-
// Whether we should show our dialogs (ANR, crash, etc) or just perform their
// default actuion automatically. Important for devices without direct input
// devices.
@@ -747,7 +749,7 @@
}
}
- private static ThreadLocal<Identity> sCallerIdentity = new ThreadLocal<Identity>();
+ private static final ThreadLocal<Identity> sCallerIdentity = new ThreadLocal<Identity>();
/**
* All information we have collected about the runtime performance of
@@ -996,8 +998,7 @@
WindowManagerService mWindowManager;
- static ActivityManagerService mSelf;
- static ActivityThread mSystemThread;
+ final ActivityThread mSystemThread;
int mCurrentUserId = 0;
private UserManagerService mUserManager;
@@ -1074,10 +1075,13 @@
*/
private boolean mUserIsMonkey;
- final Handler mHandler = new Handler() {
- //public Handler() {
- // if (localLOGV) Slog.v(TAG, "Handler started!");
- //}
+ final ServiceThread mHandlerThread;
+ final MainHandler mHandler;
+
+ final class MainHandler extends Handler {
+ public MainHandler(Looper looper) {
+ super(looper, null, true);
+ }
@Override
public void handleMessage(Message msg) {
@@ -1730,38 +1734,34 @@
}
};
- public static void setSystemProcess() {
+ public void setSystemProcess() {
try {
- ActivityManagerService m = mSelf;
-
- ServiceManager.addService(Context.ACTIVITY_SERVICE, m, true);
- ServiceManager.addService(ProcessStats.SERVICE_NAME, m.mProcessStats);
- ServiceManager.addService("meminfo", new MemBinder(m));
- ServiceManager.addService("gfxinfo", new GraphicsBinder(m));
- ServiceManager.addService("dbinfo", new DbBinder(m));
+ ServiceManager.addService(Context.ACTIVITY_SERVICE, this, true);
+ ServiceManager.addService(ProcessStats.SERVICE_NAME, mProcessStats);
+ ServiceManager.addService("meminfo", new MemBinder(this));
+ ServiceManager.addService("gfxinfo", new GraphicsBinder(this));
+ ServiceManager.addService("dbinfo", new DbBinder(this));
if (MONITOR_CPU_USAGE) {
- ServiceManager.addService("cpuinfo", new CpuBinder(m));
+ ServiceManager.addService("cpuinfo", new CpuBinder(this));
}
- ServiceManager.addService("permission", new PermissionController(m));
+ ServiceManager.addService("permission", new PermissionController(this));
- ApplicationInfo info =
- mSelf.mContext.getPackageManager().getApplicationInfo(
- "android", STOCK_PM_FLAGS);
+ ApplicationInfo info = mContext.getPackageManager().getApplicationInfo(
+ "android", STOCK_PM_FLAGS);
mSystemThread.installSystemApplicationInfo(info);
- synchronized (mSelf) {
- ProcessRecord app = mSelf.newProcessRecordLocked(info,
- info.processName, false);
+ synchronized (this) {
+ ProcessRecord app = newProcessRecordLocked(info, info.processName, false);
app.persistent = true;
app.pid = MY_PID;
app.maxAdj = ProcessList.SYSTEM_ADJ;
- app.makeActive(mSystemThread.getApplicationThread(), mSelf.mProcessStats);
- mSelf.mProcessNames.put(app.processName, app.uid, app);
- synchronized (mSelf.mPidsSelfLocked) {
- mSelf.mPidsSelfLocked.put(app.pid, app);
+ app.makeActive(mSystemThread.getApplicationThread(), mProcessStats);
+ mProcessNames.put(app.processName, app.uid, app);
+ synchronized (mPidsSelfLocked) {
+ mPidsSelfLocked.put(app.pid, app);
}
- mSelf.updateLruProcessLocked(app, false, null);
- mSelf.updateOomAdjLocked();
+ updateLruProcessLocked(app, false, null);
+ updateOomAdjLocked();
}
} catch (PackageManager.NameNotFoundException e) {
throw new RuntimeException(
@@ -1772,105 +1772,17 @@
public void setWindowManager(WindowManagerService wm) {
mWindowManager = wm;
mStackSupervisor.setWindowManager(wm);
- wm.createStack(HOME_STACK_ID, -1, StackBox.TASK_STACK_GOES_OVER, 1.0f);
}
public void startObservingNativeCrashes() {
- final NativeCrashListener ncl = new NativeCrashListener();
+ final NativeCrashListener ncl = new NativeCrashListener(this);
ncl.start();
}
- public static final Context main(int factoryTest) {
- AThread thr = new AThread();
- thr.start();
-
- synchronized (thr) {
- while (thr.mService == null) {
- try {
- thr.wait();
- } catch (InterruptedException e) {
- }
- }
- }
-
- ActivityManagerService m = thr.mService;
- mSelf = m;
- ActivityThread at = ActivityThread.systemMain();
- mSystemThread = at;
- Context context = at.getSystemContext();
- context.setTheme(android.R.style.Theme_Holo);
- m.mContext = context;
- m.mFactoryTest = factoryTest;
- m.mIntentFirewall = new IntentFirewall(m.new IntentFirewallInterface());
-
- m.mStackSupervisor = new ActivityStackSupervisor(m, context, thr.mLooper);
-
- m.mBatteryStatsService.publish(context);
- m.mUsageStatsService.publish(context);
- m.mAppOpsService.publish(context);
-
- synchronized (thr) {
- thr.mReady = true;
- thr.notifyAll();
- }
-
- m.startRunning(null, null, null, null);
-
- return context;
- }
-
- public static ActivityManagerService self() {
- return mSelf;
- }
-
public IAppOpsService getAppOpsService() {
return mAppOpsService;
}
- static class AThread extends Thread {
- ActivityManagerService mService;
- Looper mLooper;
- boolean mReady = false;
-
- public AThread() {
- super("ActivityManager");
- }
-
- @Override
- public void run() {
- Looper.prepare();
-
- android.os.Process.setThreadPriority(
- android.os.Process.THREAD_PRIORITY_FOREGROUND);
- android.os.Process.setCanSelfBackground(false);
-
- ActivityManagerService m = new ActivityManagerService();
-
- synchronized (this) {
- mService = m;
- mLooper = Looper.myLooper();
- Watchdog.getInstance().addThread(new Handler(mLooper), getName());
- notifyAll();
- }
-
- synchronized (this) {
- while (!mReady) {
- try {
- wait();
- } catch (InterruptedException e) {
- }
- }
- }
-
- // For debug builds, log event loop stalls to dropbox for analysis.
- if (StrictMode.conditionallyEnableDebugLogging()) {
- Slog.i(TAG, "Enabled StrictMode logging for AThread's Looper");
- }
-
- Looper.loop();
- }
- }
-
static class MemBinder extends Binder {
ActivityManagerService mActivityManagerService;
MemBinder(ActivityManagerService activityManagerService) {
@@ -1955,22 +1867,54 @@
}
}
- private ActivityManagerService() {
+ public static class Lifecycle extends SystemService {
+ private ActivityManagerService mService;
+
+ @Override
+ public void onCreate(Context context) {
+ mService = new ActivityManagerService(context);
+ }
+
+ @Override
+ public void onStart() {
+ mService.start();
+ }
+
+ public ActivityManagerService getService() {
+ return mService;
+ }
+ }
+
+ // Note: This method is invoked on the main thread but may need to attach various
+ // handlers to other threads. So take care to be explicit about the looper.
+ public ActivityManagerService(Context systemContext) {
+ mContext = systemContext;
+ mFactoryTest = FactoryTest.getMode();
+ mSystemThread = ActivityThread.currentActivityThread();
+
Slog.i(TAG, "Memory class: " + ActivityManager.staticGetMemoryClass());
- mFgBroadcastQueue = new BroadcastQueue(this, "foreground", BROADCAST_FG_TIMEOUT, false);
- mBgBroadcastQueue = new BroadcastQueue(this, "background", BROADCAST_BG_TIMEOUT, true);
+ mHandlerThread = new ServiceThread(TAG,
+ android.os.Process.THREAD_PRIORITY_FOREGROUND, false /*allowIo*/);
+ mHandlerThread.start();
+ mHandler = new MainHandler(mHandlerThread.getLooper());
+
+ mFgBroadcastQueue = new BroadcastQueue(this, mHandler,
+ "foreground", BROADCAST_FG_TIMEOUT, false);
+ mBgBroadcastQueue = new BroadcastQueue(this, mHandler,
+ "background", BROADCAST_BG_TIMEOUT, true);
mBroadcastQueues[0] = mFgBroadcastQueue;
mBroadcastQueues[1] = mBgBroadcastQueue;
mServices = new ActiveServices(this);
mProviderMap = new ProviderMap(this);
+ // TODO: Move creation of battery stats service outside of activity manager service.
File dataDir = Environment.getDataDirectory();
File systemDir = new File(dataDir, "system");
systemDir.mkdirs();
mBatteryStatsService = new BatteryStatsService(new File(
- systemDir, "batterystats.bin").toString());
+ systemDir, "batterystats.bin").toString(), mHandler);
mBatteryStatsService.getActiveStatistics().readLocked();
mBatteryStatsService.getActiveStatistics().writeAsyncLocked();
mOnBattery = DEBUG_POWER ? true
@@ -1980,12 +1924,10 @@
mProcessStats = new ProcessStatsService(this, new File(systemDir, "procstats"));
mUsageStatsService = new UsageStatsService(new File(systemDir, "usagestats").toString());
- mAppOpsService = new AppOpsService(new File(systemDir, "appops.xml"));
+ mAppOpsService = new AppOpsService(new File(systemDir, "appops.xml"), mHandler);
mGrantFile = new AtomicFile(new File(systemDir, "urigrants.xml"));
- mHeadless = "1".equals(SystemProperties.get("ro.config.headless", "0"));
-
// User 0 is the first and only user that runs at boot.
mStartedUsers.put(0, new UserStartedState(new UserHandle(0), true));
mUserLru.add(Integer.valueOf(0));
@@ -2000,10 +1942,9 @@
mConfigurationSeq = mConfiguration.seq = 1;
mProcessCpuTracker.init();
- mCompatModePackages = new CompatModePackages(this, systemDir);
-
- // Add ourself to the Watchdog monitors.
- Watchdog.getInstance().addMonitor(this);
+ mCompatModePackages = new CompatModePackages(this, systemDir, mHandler);
+ mIntentFirewall = new IntentFirewall(new IntentFirewallInterface(), mHandler);
+ mStackSupervisor = new ActivityStackSupervisor(this);
mProcessCpuThread = new Thread("CpuTracker") {
@Override
@@ -2034,7 +1975,18 @@
}
}
};
+
+ Watchdog.getInstance().addMonitor(this);
+ Watchdog.getInstance().addThread(mHandler);
+ }
+
+ private void start() {
mProcessCpuThread.start();
+
+ mBatteryStatsService.publish(mContext);
+ mUsageStatsService.publish(mContext);
+ mAppOpsService.publish(mContext);
+ startRunning(null, null, null, null);
}
@Override
@@ -2730,13 +2682,13 @@
}
gids[0] = UserHandle.getSharedAppGid(UserHandle.getAppId(uid));
}
- if (mFactoryTest != SystemServer.FACTORY_TEST_OFF) {
- if (mFactoryTest == SystemServer.FACTORY_TEST_LOW_LEVEL
+ if (mFactoryTest != FactoryTest.FACTORY_TEST_OFF) {
+ if (mFactoryTest == FactoryTest.FACTORY_TEST_LOW_LEVEL
&& mTopComponent != null
&& app.processName.equals(mTopComponent.getPackageName())) {
uid = 0;
}
- if (mFactoryTest == SystemServer.FACTORY_TEST_HIGH_LEVEL
+ if (mFactoryTest == FactoryTest.FACTORY_TEST_HIGH_LEVEL
&& (app.info.flags&ApplicationInfo.FLAG_FACTORY_TEST) != 0) {
uid = 0;
}
@@ -2846,21 +2798,14 @@
Intent getHomeIntent() {
Intent intent = new Intent(mTopAction, mTopData != null ? Uri.parse(mTopData) : null);
intent.setComponent(mTopComponent);
- if (mFactoryTest != SystemServer.FACTORY_TEST_LOW_LEVEL) {
+ if (mFactoryTest != FactoryTest.FACTORY_TEST_LOW_LEVEL) {
intent.addCategory(Intent.CATEGORY_HOME);
}
return intent;
}
boolean startHomeActivityLocked(int userId) {
- if (mHeadless) {
- // Added because none of the other calls to ensureBootCompleted seem to fire
- // when running headless.
- ensureBootCompleted();
- return false;
- }
-
- if (mFactoryTest == SystemServer.FACTORY_TEST_LOW_LEVEL
+ if (mFactoryTest == FactoryTest.FACTORY_TEST_LOW_LEVEL
&& mTopAction == null) {
// We are running in factory test mode, but unable to find
// the factory test app, so just sit around displaying the
@@ -2924,14 +2869,14 @@
// version than the last one shown, and we are not running in
// low-level factory test mode.
final ContentResolver resolver = mContext.getContentResolver();
- if (mFactoryTest != SystemServer.FACTORY_TEST_LOW_LEVEL &&
+ if (mFactoryTest != FactoryTest.FACTORY_TEST_LOW_LEVEL &&
Settings.Global.getInt(resolver,
Settings.Global.DEVICE_PROVISIONED, 0) != 0) {
mCheckedForSetup = true;
// See if we should be showing the platform update setup UI.
Intent intent = new Intent(Intent.ACTION_UPGRADE_SETUP);
- List<ResolveInfo> ris = mSelf.mContext.getPackageManager()
+ List<ResolveInfo> ris = mContext.getPackageManager()
.queryIntentActivities(intent, PackageManager.GET_META_DATA);
// We don't allow third party apps to replace this.
@@ -2959,7 +2904,7 @@
intent.setComponent(new ComponentName(
ri.activityInfo.packageName, ri.activityInfo.name));
mStackSupervisor.startActivityLocked(null, intent, null, ri.activityInfo,
- null, null, 0, 0, 0, null, 0, null, false, null);
+ null, null, 0, 0, 0, null, 0, null, false, null, null);
}
}
}
@@ -3117,7 +3062,7 @@
// TODO: Switch to user app stacks here.
return mStackSupervisor.startActivityMayWait(caller, -1, callingPackage, intent, resolvedType,
resultTo, resultWho, requestCode, startFlags, profileFile, profileFd,
- null, null, options, userId);
+ null, null, options, userId, null);
}
@Override
@@ -3132,7 +3077,7 @@
// TODO: Switch to user app stacks here.
mStackSupervisor.startActivityMayWait(caller, -1, callingPackage, intent, resolvedType,
resultTo, resultWho, requestCode, startFlags, profileFile, profileFd,
- res, null, options, UserHandle.getCallingUserId());
+ res, null, options, UserHandle.getCallingUserId(), null);
return res;
}
@@ -3147,7 +3092,7 @@
// TODO: Switch to user app stacks here.
int ret = mStackSupervisor.startActivityMayWait(caller, -1, callingPackage, intent,
resolvedType, resultTo, resultWho, requestCode, startFlags,
- null, null, null, config, options, userId);
+ null, null, null, config, options, userId, null);
return ret;
}
@@ -3179,7 +3124,7 @@
}
}
int ret = pir.sendInner(0, fillInIntent, resolvedType, null, null,
- resultTo, resultWho, requestCode, flagsMask, flagsValues, options);
+ resultTo, resultWho, requestCode, flagsMask, flagsValues, options, null);
return ret;
}
@@ -3278,7 +3223,7 @@
int res = mStackSupervisor.startActivityLocked(r.app.thread, intent,
r.resolvedType, aInfo, resultTo != null ? resultTo.appToken : null,
resultWho, requestCode, -1, r.launchedFromUid, r.launchedFromPackage, 0,
- options, false, null);
+ options, false, null, null);
Binder.restoreCallingIdentity(origId);
r.finishing = wasFinishing;
@@ -3291,7 +3236,8 @@
final int startActivityInPackage(int uid, String callingPackage,
Intent intent, String resolvedType, IBinder resultTo,
- String resultWho, int requestCode, int startFlags, Bundle options, int userId) {
+ String resultWho, int requestCode, int startFlags, Bundle options, int userId,
+ IActivityContainer container) {
userId = handleIncomingUser(Binder.getCallingPid(), Binder.getCallingUid(), userId,
false, true, "startActivityInPackage", null);
@@ -3299,7 +3245,7 @@
// TODO: Switch to user app stacks here.
int ret = mStackSupervisor.startActivityMayWait(null, uid, callingPackage, intent, resolvedType,
resultTo, resultWho, requestCode, startFlags,
- null, null, null, null, options, userId);
+ null, null, null, null, options, userId, container);
return ret;
}
@@ -3603,9 +3549,13 @@
*/
private final void handleAppDiedLocked(ProcessRecord app,
boolean restarting, boolean allowRestart) {
+ int pid = app.pid;
cleanUpApplicationRecordLocked(app, restarting, allowRestart, -1);
if (!restarting) {
removeLruProcessLocked(app);
+ if (pid > 0) {
+ ProcessList.remove(pid);
+ }
}
if (mProfileProc == app) {
@@ -5000,7 +4950,7 @@
// See if the top visible activity is waiting to run in this process...
if (normalMode) {
try {
- if (mStackSupervisor.attachApplicationLocked(app, mHeadless)) {
+ if (mStackSupervisor.attachApplicationLocked(app)) {
didSomething = true;
}
} catch (Exception e) {
@@ -5157,7 +5107,7 @@
}
}
- if (mFactoryTest != SystemServer.FACTORY_TEST_LOW_LEVEL) {
+ if (mFactoryTest != FactoryTest.FACTORY_TEST_LOW_LEVEL) {
// Start looking for apps that are abusing wake locks.
Message nmsg = mHandler.obtainMessage(CHECK_EXCESSIVE_WAKE_LOCKS_MSG);
mHandler.sendMessageDelayed(nmsg, POWER_CHECK_DELAY);
@@ -7107,23 +7057,40 @@
}
@Override
- public int createStack(int taskId, int relativeStackBoxId, int position, float weight) {
+ public IBinder getHomeActivityToken() throws RemoteException {
enforceCallingPermission(android.Manifest.permission.MANAGE_ACTIVITY_STACKS,
- "createStack()");
- if (DEBUG_STACK) Slog.d(TAG, "createStack: taskId=" + taskId + " relStackBoxId=" +
- relativeStackBoxId + " position=" + position + " weight=" + weight);
+ "getHomeActivityToken()");
synchronized (this) {
- long ident = Binder.clearCallingIdentity();
- try {
- int stackId = mStackSupervisor.createStack();
- mWindowManager.createStack(stackId, relativeStackBoxId, position, weight);
- if (taskId > 0) {
- moveTaskToStack(taskId, stackId, true);
- }
- return stackId;
- } finally {
- Binder.restoreCallingIdentity(ident);
+ return mStackSupervisor.getHomeActivityToken();
+ }
+ }
+
+ @Override
+ public IActivityContainer createActivityContainer(IBinder parentActivityToken,
+ IActivityContainerCallback callback) throws RemoteException {
+ enforceCallingPermission(android.Manifest.permission.MANAGE_ACTIVITY_STACKS,
+ "createActivityContainer()");
+ synchronized (this) {
+ if (parentActivityToken == null) {
+ throw new IllegalArgumentException("parent token must not be null");
}
+ ActivityRecord r = ActivityRecord.forToken(parentActivityToken);
+ if (r == null) {
+ return null;
+ }
+ return mStackSupervisor.createActivityContainer(r, callback);
+ }
+ }
+
+ @Override
+ public IActivityContainer getEnclosingActivityContainer(IBinder activityToken)
+ throws RemoteException {
+ synchronized (this) {
+ ActivityStack stack = ActivityRecord.getStackLocked(activityToken);
+ if (stack != null) {
+ return stack.mActivityContainer;
+ }
+ return null;
}
}
@@ -7148,99 +7115,40 @@
}
@Override
- public void resizeStackBox(int stackBoxId, float weight) {
+ public void resizeStack(int stackBoxId, Rect bounds) {
enforceCallingPermission(android.Manifest.permission.MANAGE_ACTIVITY_STACKS,
"resizeStackBox()");
long ident = Binder.clearCallingIdentity();
try {
- mWindowManager.resizeStackBox(stackBoxId, weight);
- } finally {
- Binder.restoreCallingIdentity(ident);
- }
- }
-
- private ArrayList<StackInfo> getStacks() {
- synchronized (this) {
- ArrayList<ActivityManager.StackInfo> list = new ArrayList<ActivityManager.StackInfo>();
- ArrayList<ActivityStack> stacks = mStackSupervisor.getStacks();
- for (ActivityStack stack : stacks) {
- ActivityManager.StackInfo stackInfo = new ActivityManager.StackInfo();
- int stackId = stack.mStackId;
- stackInfo.stackId = stackId;
- stackInfo.bounds = mWindowManager.getStackBounds(stackId);
- ArrayList<TaskRecord> tasks = stack.getAllTasks();
- final int numTasks = tasks.size();
- int[] taskIds = new int[numTasks];
- String[] taskNames = new String[numTasks];
- for (int i = 0; i < numTasks; ++i) {
- final TaskRecord task = tasks.get(i);
- taskIds[i] = task.taskId;
- taskNames[i] = task.origActivity != null ? task.origActivity.flattenToString()
- : task.realActivity != null ? task.realActivity.flattenToString()
- : task.getTopActivity() != null ? task.getTopActivity().packageName
- : "unknown";
- }
- stackInfo.taskIds = taskIds;
- stackInfo.taskNames = taskNames;
- list.add(stackInfo);
- }
- return list;
- }
- }
-
- private void addStackInfoToStackBoxInfo(StackBoxInfo stackBoxInfo, List<StackInfo> stackInfos) {
- final int stackId = stackBoxInfo.stackId;
- if (stackId >= 0) {
- for (StackInfo stackInfo : stackInfos) {
- if (stackId == stackInfo.stackId) {
- stackBoxInfo.stack = stackInfo;
- stackInfos.remove(stackInfo);
- return;
- }
- }
- } else {
- addStackInfoToStackBoxInfo(stackBoxInfo.children[0], stackInfos);
- addStackInfoToStackBoxInfo(stackBoxInfo.children[1], stackInfos);
- }
- }
-
- @Override
- public List<StackBoxInfo> getStackBoxes() {
- enforceCallingPermission(android.Manifest.permission.MANAGE_ACTIVITY_STACKS,
- "getStackBoxes()");
- long ident = Binder.clearCallingIdentity();
- try {
- List<StackBoxInfo> stackBoxInfos = mWindowManager.getStackBoxInfos();
- synchronized (this) {
- List<StackInfo> stackInfos = getStacks();
- for (StackBoxInfo stackBoxInfo : stackBoxInfos) {
- addStackInfoToStackBoxInfo(stackBoxInfo, stackInfos);
- }
- }
- return stackBoxInfos;
+ mWindowManager.resizeStack(stackBoxId, bounds);
} finally {
Binder.restoreCallingIdentity(ident);
}
}
@Override
- public StackBoxInfo getStackBoxInfo(int stackBoxId) {
+ public List<StackInfo> getAllStackInfos() {
enforceCallingPermission(android.Manifest.permission.MANAGE_ACTIVITY_STACKS,
- "getStackBoxInfo()");
+ "getAllStackInfos()");
long ident = Binder.clearCallingIdentity();
try {
- List<StackBoxInfo> stackBoxInfos = mWindowManager.getStackBoxInfos();
- StackBoxInfo info = null;
synchronized (this) {
- List<StackInfo> stackInfos = getStacks();
- for (StackBoxInfo stackBoxInfo : stackBoxInfos) {
- addStackInfoToStackBoxInfo(stackBoxInfo, stackInfos);
- if (stackBoxInfo.stackBoxId == stackBoxId) {
- info = stackBoxInfo;
- }
- }
+ return mStackSupervisor.getAllStackInfosLocked();
}
- return info;
+ } finally {
+ Binder.restoreCallingIdentity(ident);
+ }
+ }
+
+ @Override
+ public StackInfo getStackInfo(int stackId) {
+ enforceCallingPermission(android.Manifest.permission.MANAGE_ACTIVITY_STACKS,
+ "getStackInfo()");
+ long ident = Binder.clearCallingIdentity();
+ try {
+ synchronized (this) {
+ return mStackSupervisor.getStackInfoLocked(stackId);
+ }
} finally {
Binder.restoreCallingIdentity(ident);
}
@@ -8061,11 +7969,11 @@
}
}
- public static final void installSystemProviders() {
+ public final void installSystemProviders() {
List<ProviderInfo> providers;
- synchronized (mSelf) {
- ProcessRecord app = mSelf.mProcessNames.get("system", Process.SYSTEM_UID);
- providers = mSelf.generateApplicationProvidersLocked(app);
+ synchronized (this) {
+ ProcessRecord app = mProcessNames.get("system", Process.SYSTEM_UID);
+ providers = generateApplicationProvidersLocked(app);
if (providers != null) {
for (int i=providers.size()-1; i>=0; i--) {
ProviderInfo pi = (ProviderInfo)providers.get(i);
@@ -8081,9 +7989,9 @@
mSystemThread.installSystemProviders(providers);
}
- mSelf.mCoreSettingsObserver = new CoreSettingsObserver(mSelf);
+ mCoreSettingsObserver = new CoreSettingsObserver(this);
- mSelf.mUsageStatsService.monitorPackages();
+ mUsageStatsService.monitorPackages();
}
/**
@@ -9321,7 +9229,7 @@
synchronized(this) {
// Make sure we have no pre-ready processes sitting around.
- if (mFactoryTest == SystemServer.FACTORY_TEST_LOW_LEVEL) {
+ if (mFactoryTest == FactoryTest.FACTORY_TEST_LOW_LEVEL) {
ResolveInfo ri = mContext.getPackageManager()
.resolveActivity(new Intent(Intent.ACTION_FACTORY_TEST),
STOCK_PM_FLAGS);
@@ -9363,7 +9271,7 @@
if (goingCallback != null) goingCallback.run();
synchronized (this) {
- if (mFactoryTest != SystemServer.FACTORY_TEST_LOW_LEVEL) {
+ if (mFactoryTest != FactoryTest.FACTORY_TEST_LOW_LEVEL) {
try {
List apps = AppGlobals.getPackageManager().
getPersistentApplications(STOCK_PM_FLAGS);
@@ -9496,10 +9404,6 @@
private boolean handleAppCrashLocked(ProcessRecord app, String shortMsg, String longMsg,
String stackTrace) {
- if (mHeadless) {
- Log.e(TAG, "handleAppCrashLocked: " + app.processName);
- return false;
- }
long now = SystemClock.uptimeMillis();
Long crashTime;
@@ -12388,6 +12292,7 @@
boolean restarting, boolean allowRestart, int index) {
if (index >= 0) {
removeLruProcessLocked(app);
+ ProcessList.remove(app.pid);
}
mProcessesToGc.remove(app);
@@ -14042,9 +13947,6 @@
*/
boolean updateConfigurationLocked(Configuration values,
ActivityRecord starting, boolean persistent, boolean initLocale) {
- // do nothing if we are headless
- if (mHeadless) return true;
-
int changes = 0;
if (values != null) {
@@ -14127,18 +14029,21 @@
boolean kept = true;
final ActivityStack mainStack = mStackSupervisor.getFocusedStack();
- if (changes != 0 && starting == null) {
- // If the configuration changed, and the caller is not already
- // in the process of starting an activity, then find the top
- // activity to check if its configuration needs to change.
- starting = mainStack.topRunningActivityLocked(null);
- }
+ // mainStack is null during startup.
+ if (mainStack != null) {
+ if (changes != 0 && starting == null) {
+ // If the configuration changed, and the caller is not already
+ // in the process of starting an activity, then find the top
+ // activity to check if its configuration needs to change.
+ starting = mainStack.topRunningActivityLocked(null);
+ }
- if (starting != null) {
- kept = mainStack.ensureActivityConfigurationLocked(starting, changes);
- // And we need to make sure at this point that all other activities
- // are made visible with the correct configuration.
- mStackSupervisor.ensureActivitiesVisibleLocked(starting, changes);
+ if (starting != null) {
+ kept = mainStack.ensureActivityConfigurationLocked(starting, changes);
+ // And we need to make sure at this point that all other activities
+ // are made visible with the correct configuration.
+ mStackSupervisor.ensureActivitiesVisibleLocked(starting, changes);
+ }
}
if (values != null && mWindowManager != null) {
@@ -15250,16 +15155,13 @@
}
if (app.curAdj != app.setAdj) {
- if (Process.setOomAdj(app.pid, app.curAdj)) {
- if (DEBUG_SWITCH || DEBUG_OOM_ADJ) Slog.v(
- TAG, "Set " + app.pid + " " + app.processName +
- " adj " + app.curAdj + ": " + app.adjType);
- app.setAdj = app.curAdj;
- } else {
- success = false;
- Slog.w(TAG, "Failed setting oom adj of " + app + " to " + app.curAdj);
- }
+ ProcessList.setOomAdj(app.pid, app.curAdj);
+ if (DEBUG_SWITCH || DEBUG_OOM_ADJ) Slog.v(
+ TAG, "Set " + app.pid + " " + app.processName +
+ " adj " + app.curAdj + ": " + app.adjType);
+ app.setAdj = app.curAdj;
}
+
if (app.setSchedGroup != app.curSchedGroup) {
app.setSchedGroup = app.curSchedGroup;
if (DEBUG_SWITCH || DEBUG_OOM_ADJ) Slog.v(TAG,
diff --git a/services/java/com/android/server/am/ActivityRecord.java b/services/core/java/com/android/server/am/ActivityRecord.java
similarity index 98%
rename from services/java/com/android/server/am/ActivityRecord.java
rename to services/core/java/com/android/server/am/ActivityRecord.java
index 49f29fe..a27288a 100644
--- a/services/java/com/android/server/am/ActivityRecord.java
+++ b/services/core/java/com/android/server/am/ActivityRecord.java
@@ -21,6 +21,7 @@
import com.android.internal.app.ResolverActivity;
import com.android.server.AttributeCache;
import com.android.server.am.ActivityStack.ActivityState;
+import com.android.server.am.ActivityStackSupervisor.ActivityContainer;
import android.app.ActivityOptions;
import android.app.ResultInfo;
@@ -138,11 +139,13 @@
boolean forceNewConfig; // force re-create with new config next time
int launchCount; // count of launches since last state
long lastLaunchTime; // time of last lauch of this activity
+ ArrayList<ActivityStack> mChildContainers = new ArrayList<ActivityStack>();
String stringName; // for caching of toString().
private boolean inHistory; // are we in the history stack?
final ActivityStackSupervisor mStackSupervisor;
+ ActivityContainer mInitialActivityContainer;
void dump(PrintWriter pw, String prefix) {
final long now = SystemClock.uptimeMillis();
@@ -347,7 +350,8 @@
int _launchedFromUid, String _launchedFromPackage, Intent _intent, String _resolvedType,
ActivityInfo aInfo, Configuration _configuration,
ActivityRecord _resultTo, String _resultWho, int _reqCode,
- boolean _componentSpecified, ActivityStackSupervisor supervisor) {
+ boolean _componentSpecified, ActivityStackSupervisor supervisor,
+ ActivityContainer container) {
service = _service;
appToken = new Token(this);
info = aInfo;
@@ -378,6 +382,7 @@
idle = false;
hasBeenLaunched = false;
mStackSupervisor = supervisor;
+ mInitialActivityContainer = container;
// This starts out true, since the initial state of an activity
// is that we have everything, and we shouldn't never consider it
@@ -481,7 +486,7 @@
void setTask(TaskRecord newTask, ThumbnailHolder newThumbHolder, boolean isRoot) {
if (task != null && task.removeActivity(this)) {
if (task != newTask) {
- mStackSupervisor.removeTask(task);
+ task.stack.removeTask(task);
} else {
Slog.d(TAG, "!!! REMOVE THIS LOG !!! setTask: nearly removed stack=" +
(newTask == null ? null : newTask.stack));
diff --git a/services/java/com/android/server/am/ActivityResult.java b/services/core/java/com/android/server/am/ActivityResult.java
similarity index 100%
rename from services/java/com/android/server/am/ActivityResult.java
rename to services/core/java/com/android/server/am/ActivityResult.java
diff --git a/services/java/com/android/server/am/ActivityStack.java b/services/core/java/com/android/server/am/ActivityStack.java
similarity index 97%
rename from services/java/com/android/server/am/ActivityStack.java
rename to services/core/java/com/android/server/am/ActivityStack.java
index d651a62..4047940 100755
--- a/services/java/com/android/server/am/ActivityStack.java
+++ b/services/core/java/com/android/server/am/ActivityStack.java
@@ -39,6 +39,7 @@
import com.android.internal.os.BatteryStatsImpl;
import com.android.server.Watchdog;
import com.android.server.am.ActivityManagerService.ItemMatcher;
+import com.android.server.am.ActivityStackSupervisor.ActivityContainer;
import com.android.server.wm.AppTransition;
import com.android.server.wm.TaskGroup;
import com.android.server.wm.WindowManagerService;
@@ -52,7 +53,6 @@
import android.app.ResultInfo;
import android.app.ActivityManager.RunningTaskInfo;
import android.content.ComponentName;
-import android.content.Context;
import android.content.Intent;
import android.content.pm.ActivityInfo;
import android.content.pm.PackageManager;
@@ -139,8 +139,6 @@
final ActivityManagerService mService;
final WindowManagerService mWindowManager;
- final Context mContext;
-
/**
* The back history of all previous (and possibly still
* running) activities. It contains #TaskRecord objects.
@@ -229,6 +227,11 @@
int mCurrentUser;
final int mStackId;
+ final ActivityContainer mActivityContainer;
+ /** The other stacks, in order, on the attached display. Updated at attach/detach time. */
+ ArrayList<ActivityStack> mStacks;
+ /** The attached Display's unique identifier, or -1 if detached */
+ int mDisplayId;
/** Run all ActivityStacks through this */
final ActivityStackSupervisor mStackSupervisor;
@@ -319,7 +322,7 @@
}
}
- private int numActivities() {
+ int numActivities() {
int count = 0;
for (int taskNdx = mTaskHistory.size() - 1; taskNdx >= 0; --taskNdx) {
count += mTaskHistory.get(taskNdx).mActivities.size();
@@ -327,14 +330,14 @@
return count;
}
- ActivityStack(ActivityManagerService service, Context context, Looper looper, int stackId) {
- mHandler = new ActivityStackHandler(looper);
- mService = service;
- mWindowManager = service.mWindowManager;
- mStackSupervisor = service.mStackSupervisor;
- mContext = context;
- mStackId = stackId;
- mCurrentUser = service.mCurrentUserId;
+ ActivityStack(ActivityStackSupervisor.ActivityContainer activityContainer) {
+ mActivityContainer = activityContainer;
+ mStackSupervisor = activityContainer.getOuter();
+ mService = mStackSupervisor.mService;
+ mHandler = new ActivityStackHandler(mService.mHandler.getLooper());
+ mWindowManager = mService.mWindowManager;
+ mStackId = activityContainer.mStackId;
+ mCurrentUser = mService.mCurrentUserId;
}
boolean okToShow(ActivityRecord r) {
@@ -436,25 +439,6 @@
return null;
}
- boolean containsApp(ProcessRecord app) {
- if (app == null) {
- return false;
- }
- for (int taskNdx = mTaskHistory.size() - 1; taskNdx >= 0; --taskNdx) {
- final ArrayList<ActivityRecord> activities = mTaskHistory.get(taskNdx).mActivities;
- for (int activityNdx = activities.size() - 1; activityNdx >= 0; --activityNdx) {
- final ActivityRecord r = activities.get(activityNdx);
- if (r.finishing) {
- continue;
- }
- if (r.app == app) {
- return true;
- }
- }
- }
- return false;
- }
-
final boolean updateLRUListLocked(ActivityRecord r) {
final boolean hadit = mLRUActivities.remove(r);
mLRUActivities.add(r);
@@ -465,6 +449,25 @@
return mStackId == HOME_STACK_ID;
}
+ final boolean isOnHomeDisplay() {
+ return isAttached() &&
+ mActivityContainer.mActivityDisplay.mDisplayId == Display.DEFAULT_DISPLAY;
+ }
+
+ final void moveToFront() {
+ if (isAttached()) {
+ if (isOnHomeDisplay()) {
+ mStackSupervisor.moveHomeStack(isHomeStack());
+ }
+ mStacks.remove(this);
+ mStacks.add(this);
+ }
+ }
+
+ final boolean isAttached() {
+ return mStacks != null;
+ }
+
/**
* Returns the top activity in any existing task matching the given
* Intent. Returns null if no such task is found.
@@ -733,6 +736,12 @@
mStackSupervisor.resumeTopActivitiesLocked();
return;
}
+
+ if (mActivityContainer.mParentActivity == null) {
+ // Top level stack, not a child. Look for child stacks.
+ mStackSupervisor.pauseChildStacks(prev, userLeaving, uiSleeping);
+ }
+
if (DEBUG_STATES) Slog.v(TAG, "Moving to PAUSING: " + prev);
else if (DEBUG_PAUSE) Slog.v(TAG, "Start pausing: " + prev);
mResumedActivity = null;
@@ -1251,6 +1260,13 @@
final boolean resumeTopActivityLocked(ActivityRecord prev, Bundle options) {
if (ActivityManagerService.DEBUG_LOCKSCREEN) mService.logLockScreen("");
+ ActivityRecord parent = mActivityContainer.mParentActivity;
+ if (parent != null && parent.state != ActivityState.RESUMED) {
+ // Do not resume this stack if its parent is not resumed.
+ // TODO: If in a loop, make sure that parent stack resumeTopActivity is called 1st.
+ return false;
+ }
+
// Find the first activity that is not finishing.
ActivityRecord next = topRunningActivityLocked(null);
@@ -1265,7 +1281,8 @@
ActivityOptions.abort(options);
if (DEBUG_STATES) Slog.d(TAG, "resumeTopActivityLocked: No more activities go home");
if (DEBUG_STACK) mStackSupervisor.validateTopActivitiesLocked();
- return mStackSupervisor.resumeHomeActivity(prev);
+ // Only resume home if on home display
+ return isOnHomeDisplay() && mStackSupervisor.resumeHomeActivity(prev);
}
next.delayedResume = false;
@@ -1288,25 +1305,17 @@
if (prevTask != null && prevTask.mOnTopOfHome && prev.finishing && prev.frontOfTask) {
if (DEBUG_STACK) mStackSupervisor.validateTopActivitiesLocked();
if (prevTask == nextTask) {
- ArrayList<ActivityRecord> activities = prevTask.mActivities;
- final int numActivities = activities.size();
- for (int activityNdx = 0; activityNdx < numActivities; ++activityNdx) {
- final ActivityRecord r = activities.get(activityNdx);
- // r is usually the same as next, but what if two activities were launched
- // before prev finished?
- if (!r.finishing) {
- r.frontOfTask = true;
- break;
- }
- }
+ prevTask.setFrontOfTask();
} else if (prevTask != topTask()) {
// This task is going away but it was supposed to return to the home task.
// Now the task above it has to return to the home task instead.
final int taskNdx = mTaskHistory.indexOf(prevTask) + 1;
mTaskHistory.get(taskNdx).mOnTopOfHome = true;
} else {
- if (DEBUG_STATES) Slog.d(TAG, "resumeTopActivityLocked: Launching home next");
- return mStackSupervisor.resumeHomeActivity(prev);
+ if (DEBUG_STATES && isOnHomeDisplay()) Slog.d(TAG,
+ "resumeTopActivityLocked: Launching home next");
+ // Only resume home if on home display
+ return isOnHomeDisplay() && mStackSupervisor.resumeHomeActivity(prev);
}
}
@@ -1668,10 +1677,14 @@
private void insertTaskAtTop(TaskRecord task) {
// If this is being moved to the top by another activity or being launched from the home
// activity, set mOnTopOfHome accordingly.
- ActivityStack lastStack = mStackSupervisor.getLastStack();
- final boolean fromHome = lastStack == null ? true : lastStack.isHomeStack();
- if (!isHomeStack() && (fromHome || topTask() != task)) {
- task.mOnTopOfHome = fromHome;
+ if (isOnHomeDisplay()) {
+ ActivityStack lastStack = mStackSupervisor.getLastStack();
+ final boolean fromHome = lastStack.isHomeStack();
+ if (!isHomeStack() && (fromHome || topTask() != task)) {
+ task.mOnTopOfHome = fromHome;
+ }
+ } else {
+ task.mOnTopOfHome = false;
}
mTaskHistory.remove(task);
@@ -1750,9 +1763,9 @@
if (DEBUG_ADD_REMOVE) Slog.i(TAG, "Adding activity " + r + " to stack to task " + task,
new RuntimeException("here").fillInStackTrace());
task.addActivityToTop(r);
+ task.setFrontOfTask();
r.putInHistory();
- r.frontOfTask = newTask;
if (!isHomeStack() || numActivities() > 0) {
// We want to show the starting preview window if we are
// switching to a new task, or the next activity's process is
@@ -2413,15 +2426,12 @@
final ArrayList<ActivityRecord> activities = r.task.mActivities;
final int index = activities.indexOf(r);
if (index < (activities.size() - 1)) {
- ActivityRecord next = activities.get(index+1);
- if (r.frontOfTask) {
- // The next activity is now the front of the task.
- next.frontOfTask = true;
- }
+ r.task.setFrontOfTask();
if ((r.intent.getFlags()&Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET) != 0) {
// If the caller asked that this activity (and all above it)
// be cleared when the task is reset, don't lose that information,
// but propagate it up to the next activity.
+ ActivityRecord next = activities.get(index+1);
next.intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET);
}
}
@@ -2600,7 +2610,7 @@
int res = mStackSupervisor.startActivityLocked(srec.app.thread, destIntent,
null, aInfo, parent.appToken, null,
0, -1, parent.launchedFromUid, parent.launchedFromPackage,
- 0, null, true, null);
+ 0, null, true, null, null);
foundParentInTask = res == ActivityManager.START_SUCCESS;
} catch (RemoteException e) {
foundParentInTask = false;
@@ -2678,7 +2688,8 @@
r.finishLaunchTickingLocked();
}
- final void removeActivityFromHistoryLocked(ActivityRecord r) {
+ private void removeActivityFromHistoryLocked(ActivityRecord r) {
+ mStackSupervisor.removeChildActivityContainers(r);
finishActivityResultsLocked(r, Activity.RESULT_CANCELED, null);
r.makeFinishing();
if (DEBUG_ADD_REMOVE) {
@@ -2693,7 +2704,7 @@
if (mStackSupervisor.isFrontStack(this) && task == topTask() && task.mOnTopOfHome) {
mStackSupervisor.moveHomeToTop();
}
- mStackSupervisor.removeTask(task);
+ removeTask(task);
}
r.takeFromHistory();
removeTimeoutsForActivityLocked(r);
@@ -3052,7 +3063,7 @@
return;
}
- mStackSupervisor.moveHomeStack(isHomeStack());
+ moveToFront();
// Shift all activities with this task up to the top
// of the stack, keeping them in the same internal order.
@@ -3161,7 +3172,7 @@
}
final TaskRecord task = mResumedActivity != null ? mResumedActivity.task : null;
- if (task == tr && task.mOnTopOfHome || numTasks <= 1) {
+ if (task == tr && tr.mOnTopOfHome || numTasks <= 1 && isOnHomeDisplay()) {
tr.mOnTopOfHome = false;
return mStackSupervisor.resumeHomeActivity(null);
}
@@ -3322,6 +3333,8 @@
r.startFreezingScreenLocked(r.app, 0);
+ mStackSupervisor.removeChildActivityContainers(r);
+
try {
if (DEBUG_SWITCH || DEBUG_STATES) Slog.i(TAG,
(andResume ? "Relaunching to RESUMED " : "Relaunching to PAUSED ")
@@ -3354,14 +3367,20 @@
for (int activityNdx = activities.size() - 1; activityNdx >= 0; --activityNdx) {
final ActivityRecord r = activities.get(activityNdx);
if (r.appToken == token) {
- return true;
+ return true;
}
if (r.fullscreen && !r.finishing) {
return false;
}
}
}
- return true;
+ final ActivityRecord r = ActivityRecord.forToken(token);
+ if (r == null) {
+ return false;
+ }
+ if (r.finishing) Slog.e(TAG, "willActivityBeVisibleLocked: Returning false,"
+ + " would have returned true for r=" + r);
+ return !r.finishing;
}
void closeSystemDialogsLocked() {
@@ -3600,14 +3619,30 @@
return starting;
}
- boolean removeTask(TaskRecord task) {
+ void removeTask(TaskRecord task) {
+ mWindowManager.removeTask(task.taskId);
+ final ActivityRecord r = mResumedActivity;
+ if (r != null && r.task == task) {
+ mResumedActivity = null;
+ }
+
final int taskNdx = mTaskHistory.indexOf(task);
final int topTaskNdx = mTaskHistory.size() - 1;
if (task.mOnTopOfHome && taskNdx < topTaskNdx) {
mTaskHistory.get(taskNdx + 1).mOnTopOfHome = true;
}
mTaskHistory.remove(task);
- return mTaskHistory.isEmpty();
+
+ if (mTaskHistory.isEmpty()) {
+ if (DEBUG_STACK) Slog.i(TAG, "removeTask: moving to back stack=" + this);
+ if (isOnHomeDisplay()) {
+ mStackSupervisor.moveHomeStack(!isHomeStack());
+ }
+ if (mStacks != null) {
+ mStacks.remove(this);
+ mStacks.add(0, this);
+ }
+ }
}
TaskRecord createTaskRecord(int taskId, ActivityInfo info, Intent intent, boolean toTop) {
diff --git a/services/java/com/android/server/am/ActivityStackSupervisor.java b/services/core/java/com/android/server/am/ActivityStackSupervisor.java
similarity index 70%
rename from services/java/com/android/server/am/ActivityStackSupervisor.java
rename to services/core/java/com/android/server/am/ActivityStackSupervisor.java
index 483b4a0..a7442c6 100644
--- a/services/java/com/android/server/am/ActivityStackSupervisor.java
+++ b/services/core/java/com/android/server/am/ActivityStackSupervisor.java
@@ -34,8 +34,11 @@
import android.app.Activity;
import android.app.ActivityManager;
+import android.app.ActivityManager.StackInfo;
import android.app.ActivityOptions;
import android.app.AppGlobals;
+import android.app.IActivityContainer;
+import android.app.IActivityContainerCallback;
import android.app.IActivityManager;
import android.app.IApplicationThread;
import android.app.IThumbnailReceiver;
@@ -53,6 +56,11 @@
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.content.res.Configuration;
+import android.graphics.Point;
+import android.hardware.display.DisplayManager;
+import android.hardware.display.DisplayManager.DisplayListener;
+import android.hardware.display.DisplayManagerGlobal;
+import android.hardware.display.VirtualDisplay;
import android.os.Binder;
import android.os.Bundle;
import android.os.Debug;
@@ -68,22 +76,26 @@
import android.os.UserHandle;
import android.util.EventLog;
import android.util.Slog;
-import android.util.SparseIntArray;
+import android.util.SparseArray;
+import android.util.SparseIntArray;
+import android.view.Display;
+import android.view.DisplayInfo;
+import android.view.Surface;
import com.android.internal.app.HeavyWeightSwitcherActivity;
import com.android.internal.os.TransferPipe;
import com.android.server.am.ActivityManagerService.PendingActivityLaunch;
import com.android.server.am.ActivityStack.ActivityState;
-import com.android.server.wm.StackBox;
import com.android.server.wm.WindowManagerService;
import java.io.FileDescriptor;
import java.io.IOException;
import java.io.PrintWriter;
+import java.lang.ref.WeakReference;
import java.util.ArrayList;
import java.util.List;
-public final class ActivityStackSupervisor {
+public final class ActivityStackSupervisor implements DisplayListener {
static final boolean DEBUG = ActivityManagerService.DEBUG || false;
static final boolean DEBUG_ADD_REMOVE = DEBUG || false;
static final boolean DEBUG_APP = DEBUG || false;
@@ -107,19 +119,23 @@
static final int RESUME_TOP_ACTIVITY_MSG = FIRST_SUPERVISOR_STACK_MSG + 2;
static final int SLEEP_TIMEOUT_MSG = FIRST_SUPERVISOR_STACK_MSG + 3;
static final int LAUNCH_TIMEOUT_MSG = FIRST_SUPERVISOR_STACK_MSG + 4;
+ static final int HANDLE_DISPLAY_ADDED = FIRST_SUPERVISOR_STACK_MSG + 5;
+ static final int HANDLE_DISPLAY_CHANGED = FIRST_SUPERVISOR_STACK_MSG + 6;
+ static final int HANDLE_DISPLAY_REMOVED = FIRST_SUPERVISOR_STACK_MSG + 7;
+
+ private final static String VIRTUAL_DISPLAY_BASE_NAME = "ActivityViewVirtualDisplay";
// For debugging to make sure the caller when acquiring/releasing our
// wake lock is the system process.
static final boolean VALIDATE_WAKE_LOCK_CALLER = false;
final ActivityManagerService mService;
- final Context mContext;
- final Looper mLooper;
final ActivityStackSupervisorHandler mHandler;
/** Short cut */
WindowManagerService mWindowManager;
+ DisplayManager mDisplayManager;
/** Dismiss the keyguard after the next activity is displayed? */
boolean mDismissKeyguardOnNextActivity = false;
@@ -134,22 +150,17 @@
/** The current user */
private int mCurrentUser;
- /** The stack containing the launcher app */
+ /** The stack containing the launcher app. Assumed to always be attached to
+ * Display.DEFAULT_DISPLAY. */
private ActivityStack mHomeStack;
- /** The non-home stack currently receiving input or launching the next activity. If home is
- * in front then mHomeStack overrides mFocusedStack.
- * DO NOT ACCESS DIRECTLY - It may be null, use getFocusedStack() */
+ /** The stack currently receiving input or launching the next activity. */
private ActivityStack mFocusedStack;
- /** All the non-launcher stacks */
- private ArrayList<ActivityStack> mStacks = new ArrayList<ActivityStack>();
-
- private static final int STACK_STATE_HOME_IN_FRONT = 0;
- private static final int STACK_STATE_HOME_TO_BACK = 1;
- private static final int STACK_STATE_HOME_IN_BACK = 2;
- private static final int STACK_STATE_HOME_TO_FRONT = 3;
- private int mStackState = STACK_STATE_HOME_IN_FRONT;
+ /** If this is the same as mFocusedStack then the activity on the top of the focused stack has
+ * been resumed. If stacks are changing position this will hold the old stack until the new
+ * stack becomes resumed after which it will be set to mFocusedStack. */
+ private ActivityStack mLastFocusedStack;
/** List of activities that are waiting for a new activity to become visible before completing
* whatever operation they are supposed to do. */
@@ -206,14 +217,19 @@
/** Stack id of the front stack when user switched, indexed by userId. */
SparseIntArray mUserStackInFront = new SparseIntArray(2);
- public ActivityStackSupervisor(ActivityManagerService service, Context context,
- Looper looper) {
+ // TODO: Add listener for removal of references.
+ /** Mapping from (ActivityStack/TaskStack).mStackId to their current state */
+ SparseArray<WeakReference<ActivityContainer>> mActivityContainers =
+ new SparseArray<WeakReference<ActivityContainer>>();
+
+ /** Mapping from displayId to display current state */
+ private SparseArray<ActivityDisplay> mActivityDisplays = new SparseArray<ActivityDisplay>();
+
+ public ActivityStackSupervisor(ActivityManagerService service) {
mService = service;
- mContext = context;
- mLooper = looper;
- PowerManager pm = (PowerManager)context.getSystemService(Context.POWER_SERVICE);
+ PowerManager pm = (PowerManager)mService.mContext.getSystemService(Context.POWER_SERVICE);
mGoingToSleep = pm.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "ActivityManager-Sleep");
- mHandler = new ActivityStackSupervisorHandler(looper);
+ mHandler = new ActivityStackSupervisorHandler(mService.mHandler.getLooper());
if (VALIDATE_WAKE_LOCK_CALLER && Binder.getCallingUid() != Process.myUid()) {
throw new IllegalStateException("Calling must be system uid");
}
@@ -223,9 +239,23 @@
}
void setWindowManager(WindowManagerService wm) {
- mWindowManager = wm;
- mHomeStack = new ActivityStack(mService, mContext, mLooper, HOME_STACK_ID);
- mStacks.add(mHomeStack);
+ synchronized (mService) {
+ mWindowManager = wm;
+
+ mDisplayManager =
+ (DisplayManager)mService.mContext.getSystemService(Context.DISPLAY_SERVICE);
+ mDisplayManager.registerDisplayListener(this, null);
+
+ Display[] displays = mDisplayManager.getDisplays();
+ for (int displayNdx = displays.length - 1; displayNdx >= 0; --displayNdx) {
+ final int displayId = displays[displayNdx].getDisplayId();
+ ActivityDisplay activityDisplay = new ActivityDisplay(displayId);
+ mActivityDisplays.put(displayId, activityDisplay);
+ }
+
+ createStackOnDisplay(null, HOME_STACK_ID, Display.DEFAULT_DISPLAY);
+ mHomeStack = mFocusedStack = mLastFocusedStack = getStack(HOME_STACK_ID);
+ }
}
void dismissKeyguard() {
@@ -237,43 +267,42 @@
}
ActivityStack getFocusedStack() {
- if (mFocusedStack == null) {
- return mHomeStack;
- }
- switch (mStackState) {
- case STACK_STATE_HOME_IN_FRONT:
- case STACK_STATE_HOME_TO_FRONT:
- return mHomeStack;
- case STACK_STATE_HOME_IN_BACK:
- case STACK_STATE_HOME_TO_BACK:
- default:
- return mFocusedStack;
- }
+ return mFocusedStack;
}
ActivityStack getLastStack() {
- switch (mStackState) {
- case STACK_STATE_HOME_IN_FRONT:
- case STACK_STATE_HOME_TO_BACK:
- return mHomeStack;
- case STACK_STATE_HOME_TO_FRONT:
- case STACK_STATE_HOME_IN_BACK:
- default:
- return mFocusedStack;
- }
+ return mLastFocusedStack;
}
+ // TODO: Split into two methods isFrontStack for any visible stack and isFrontmostStack for the
+ // top of all visible stacks.
boolean isFrontStack(ActivityStack stack) {
- return !(stack.isHomeStack() ^ getFocusedStack().isHomeStack());
+ final ActivityRecord parent = stack.mActivityContainer.mParentActivity;
+ if (parent != null) {
+ stack = parent.task.stack;
+ }
+ ArrayList<ActivityStack> stacks = stack.mStacks;
+ if (stacks != null && !stacks.isEmpty()) {
+ return stack == stacks.get(stacks.size() - 1);
+ }
+ return false;
}
void moveHomeStack(boolean toFront) {
- final boolean homeInFront = isFrontStack(mHomeStack);
- if (homeInFront ^ toFront) {
- if (DEBUG_STACK) Slog.d(TAG, "moveHomeTask: mStackState old=" +
- stackStateToString(mStackState) + " new=" + stackStateToString(homeInFront ?
- STACK_STATE_HOME_TO_BACK : STACK_STATE_HOME_TO_FRONT));
- mStackState = homeInFront ? STACK_STATE_HOME_TO_BACK : STACK_STATE_HOME_TO_FRONT;
+ ArrayList<ActivityStack> stacks = mHomeStack.mStacks;
+ int topNdx = stacks.size() - 1;
+ if (topNdx <= 0) {
+ return;
+ }
+ ActivityStack topStack = stacks.get(topNdx);
+ final boolean homeInFront = topStack == mHomeStack;
+ if (homeInFront != toFront) {
+ mLastFocusedStack = topStack;
+ stacks.remove(mHomeStack);
+ stacks.add(toFront ? topNdx : 0, mHomeStack);
+ mFocusedStack = stacks.get(topNdx);
+ if (DEBUG_STACK) Slog.d(TAG, "moveHomeTask: topStack old=" + topStack + " new="
+ + mFocusedStack);
}
}
@@ -301,21 +330,29 @@
}
TaskRecord anyTaskForIdLocked(int id) {
- for (int stackNdx = mStacks.size() - 1; stackNdx >= 0; --stackNdx) {
- ActivityStack stack = mStacks.get(stackNdx);
- TaskRecord task = stack.taskForIdLocked(id);
- if (task != null) {
- return task;
+ int numDisplays = mActivityDisplays.size();
+ for (int displayNdx = 0; displayNdx < numDisplays; ++displayNdx) {
+ ArrayList<ActivityStack> stacks = mActivityDisplays.valueAt(displayNdx).mStacks;
+ for (int stackNdx = stacks.size() - 1; stackNdx >= 0; --stackNdx) {
+ ActivityStack stack = stacks.get(stackNdx);
+ TaskRecord task = stack.taskForIdLocked(id);
+ if (task != null) {
+ return task;
+ }
}
}
return null;
}
ActivityRecord isInAnyStackLocked(IBinder token) {
- for (int stackNdx = mStacks.size() - 1; stackNdx >= 0; --stackNdx) {
- final ActivityRecord r = mStacks.get(stackNdx).isInStackLocked(token);
- if (r != null) {
- return r;
+ int numDisplays = mActivityDisplays.size();
+ for (int displayNdx = 0; displayNdx < numDisplays; ++displayNdx) {
+ ArrayList<ActivityStack> stacks = mActivityDisplays.valueAt(displayNdx).mStacks;
+ for (int stackNdx = stacks.size() - 1; stackNdx >= 0; --stackNdx) {
+ final ActivityRecord r = stacks.get(stackNdx).isInStackLocked(token);
+ if (r != null) {
+ return r;
+ }
}
}
return null;
@@ -331,26 +368,6 @@
return mCurTaskId;
}
- void removeTask(TaskRecord task) {
- mWindowManager.removeTask(task.taskId);
- final ActivityStack stack = task.stack;
- final ActivityRecord r = stack.mResumedActivity;
- if (r != null && r.task == task) {
- stack.mResumedActivity = null;
- }
- if (stack.removeTask(task) && !stack.isHomeStack()) {
- if (DEBUG_STACK) Slog.i(TAG, "removeTask: removing stack " + stack);
- mStacks.remove(stack);
- final int stackId = stack.mStackId;
- final int nextStackId = mWindowManager.removeStack(stackId);
- // TODO: Perhaps we need to let the ActivityManager determine the next focus...
- if (mFocusedStack == null || mFocusedStack.mStackId == stackId) {
- // If this is the last app stack, set mFocusedStack to null.
- mFocusedStack = nextStackId == HOME_STACK_ID ? null : getStack(nextStackId);
- }
- }
- }
-
ActivityRecord resumedAppLocked() {
ActivityStack stack = getFocusedStack();
if (stack == null) {
@@ -366,29 +383,29 @@
return resumedActivity;
}
- boolean attachApplicationLocked(ProcessRecord app, boolean headless) throws Exception {
- boolean didSomething = false;
+ boolean attachApplicationLocked(ProcessRecord app) throws Exception {
final String processName = app.processName;
- for (int stackNdx = mStacks.size() - 1; stackNdx >= 0; --stackNdx) {
- final ActivityStack stack = mStacks.get(stackNdx);
- if (!isFrontStack(stack)) {
- continue;
- }
- ActivityRecord hr = stack.topRunningActivityLocked(null);
- if (hr != null) {
- if (hr.app == null && app.uid == hr.info.applicationInfo.uid
- && processName.equals(hr.processName)) {
- try {
- if (headless) {
- Slog.e(TAG, "Starting activities not supported on headless device: "
- + hr);
- } else if (realStartActivityLocked(hr, app, true, true)) {
- didSomething = true;
+ boolean didSomething = false;
+ for (int displayNdx = mActivityDisplays.size() - 1; displayNdx >= 0; --displayNdx) {
+ ArrayList<ActivityStack> stacks = mActivityDisplays.valueAt(displayNdx).mStacks;
+ for (int stackNdx = stacks.size() - 1; stackNdx >= 0; --stackNdx) {
+ final ActivityStack stack = stacks.get(stackNdx);
+ if (!isFrontStack(stack)) {
+ continue;
+ }
+ ActivityRecord hr = stack.topRunningActivityLocked(null);
+ if (hr != null) {
+ if (hr.app == null && app.uid == hr.info.applicationInfo.uid
+ && processName.equals(hr.processName)) {
+ try {
+ if (realStartActivityLocked(hr, app, true, true)) {
+ didSomething = true;
+ }
+ } catch (Exception e) {
+ Slog.w(TAG, "Exception in new application when starting activity "
+ + hr.intent.getComponent().flattenToShortString(), e);
+ throw e;
}
- } catch (Exception e) {
- Slog.w(TAG, "Exception in new application when starting activity "
- + hr.intent.getComponent().flattenToShortString(), e);
- throw e;
}
}
}
@@ -400,53 +417,54 @@
}
boolean allResumedActivitiesIdle() {
- for (int stackNdx = mStacks.size() - 1; stackNdx >= 0; --stackNdx) {
- final ActivityStack stack = mStacks.get(stackNdx);
- if (!isFrontStack(stack)) {
- continue;
- }
- final ActivityRecord resumedActivity = stack.mResumedActivity;
- if (resumedActivity == null || !resumedActivity.idle) {
- return false;
+ for (int displayNdx = mActivityDisplays.size() - 1; displayNdx >= 0; --displayNdx) {
+ ArrayList<ActivityStack> stacks = mActivityDisplays.valueAt(displayNdx).mStacks;
+ for (int stackNdx = stacks.size() - 1; stackNdx >= 0; --stackNdx) {
+ final ActivityStack stack = stacks.get(stackNdx);
+ if (!isFrontStack(stack) || stack.numActivities() == 0) {
+ continue;
+ }
+ final ActivityRecord resumedActivity = stack.mResumedActivity;
+ if (resumedActivity == null || !resumedActivity.idle) {
+ if (DEBUG_STATES) Slog.d(TAG, "allResumedActivitiesIdle: stack="
+ + stack.mStackId + " " + resumedActivity + " not idle");
+ return false;
+ }
}
}
return true;
}
boolean allResumedActivitiesComplete() {
- for (int stackNdx = mStacks.size() - 1; stackNdx >= 0; --stackNdx) {
- final ActivityStack stack = mStacks.get(stackNdx);
- if (isFrontStack(stack)) {
- final ActivityRecord r = stack.mResumedActivity;
- if (r != null && r.state != ActivityState.RESUMED) {
- return false;
+ for (int displayNdx = mActivityDisplays.size() - 1; displayNdx >= 0; --displayNdx) {
+ ArrayList<ActivityStack> stacks = mActivityDisplays.valueAt(displayNdx).mStacks;
+ for (int stackNdx = stacks.size() - 1; stackNdx >= 0; --stackNdx) {
+ final ActivityStack stack = stacks.get(stackNdx);
+ if (isFrontStack(stack)) {
+ final ActivityRecord r = stack.mResumedActivity;
+ if (r != null && r.state != ActivityState.RESUMED) {
+ return false;
+ }
}
}
}
// TODO: Not sure if this should check if all Paused are complete too.
- switch (mStackState) {
- case STACK_STATE_HOME_TO_BACK:
- if (DEBUG_STACK) Slog.d(TAG, "allResumedActivitiesComplete: mStackState old=" +
- stackStateToString(STACK_STATE_HOME_TO_BACK) + " new=" +
- stackStateToString(STACK_STATE_HOME_IN_BACK));
- mStackState = STACK_STATE_HOME_IN_BACK;
- break;
- case STACK_STATE_HOME_TO_FRONT:
- if (DEBUG_STACK) Slog.d(TAG, "allResumedActivitiesComplete: mStackState old=" +
- stackStateToString(STACK_STATE_HOME_TO_FRONT) + " new=" +
- stackStateToString(STACK_STATE_HOME_IN_FRONT));
- mStackState = STACK_STATE_HOME_IN_FRONT;
- break;
- }
+ if (DEBUG_STACK) Slog.d(TAG,
+ "allResumedActivitiesComplete: mLastFocusedStack changing from=" +
+ mLastFocusedStack + " to=" + mFocusedStack);
+ mLastFocusedStack = mFocusedStack;
return true;
}
boolean allResumedActivitiesVisible() {
- for (int stackNdx = mStacks.size() - 1; stackNdx >= 0; --stackNdx) {
- final ActivityStack stack = mStacks.get(stackNdx);
- final ActivityRecord r = stack.mResumedActivity;
- if (r != null && (!r.nowVisible || r.waitingVisible)) {
- return false;
+ for (int displayNdx = mActivityDisplays.size() - 1; displayNdx >= 0; --displayNdx) {
+ ArrayList<ActivityStack> stacks = mActivityDisplays.valueAt(displayNdx).mStacks;
+ for (int stackNdx = stacks.size() - 1; stackNdx >= 0; --stackNdx) {
+ final ActivityStack stack = stacks.get(stackNdx);
+ final ActivityRecord r = stack.mResumedActivity;
+ if (r != null && (!r.nowVisible || r.waitingVisible)) {
+ return false;
+ }
}
}
return true;
@@ -459,13 +477,16 @@
*/
boolean pauseBackStacks(boolean userLeaving) {
boolean someActivityPaused = false;
- for (int stackNdx = mStacks.size() - 1; stackNdx >= 0; --stackNdx) {
- final ActivityStack stack = mStacks.get(stackNdx);
- if (!isFrontStack(stack) && stack.mResumedActivity != null) {
- if (DEBUG_STATES) Slog.d(TAG, "pauseBackStacks: stack=" + stack +
- " mResumedActivity=" + stack.mResumedActivity);
- stack.startPausingLocked(userLeaving, false);
- someActivityPaused = true;
+ for (int displayNdx = mActivityDisplays.size() - 1; displayNdx >= 0; --displayNdx) {
+ ArrayList<ActivityStack> stacks = mActivityDisplays.valueAt(displayNdx).mStacks;
+ for (int stackNdx = stacks.size() - 1; stackNdx >= 0; --stackNdx) {
+ final ActivityStack stack = stacks.get(stackNdx);
+ if (!isFrontStack(stack) && stack.mResumedActivity != null) {
+ if (DEBUG_STATES) Slog.d(TAG, "pauseBackStacks: stack=" + stack +
+ " mResumedActivity=" + stack.mResumedActivity);
+ stack.startPausingLocked(userLeaving, false);
+ someActivityPaused = true;
+ }
}
}
return someActivityPaused;
@@ -473,23 +494,40 @@
boolean allPausedActivitiesComplete() {
boolean pausing = true;
- for (int stackNdx = mStacks.size() - 1; stackNdx >= 0; --stackNdx) {
- final ActivityStack stack = mStacks.get(stackNdx);
- final ActivityRecord r = stack.mPausingActivity;
- if (r != null && r.state != ActivityState.PAUSED
- && r.state != ActivityState.STOPPED
- && r.state != ActivityState.STOPPING) {
- if (DEBUG_STATES) {
- Slog.d(TAG, "allPausedActivitiesComplete: r=" + r + " state=" + r.state);
- pausing = false;
- } else {
- return false;
+ for (int displayNdx = mActivityDisplays.size() - 1; displayNdx >= 0; --displayNdx) {
+ ArrayList<ActivityStack> stacks = mActivityDisplays.valueAt(displayNdx).mStacks;
+ for (int stackNdx = stacks.size() - 1; stackNdx >= 0; --stackNdx) {
+ final ActivityStack stack = stacks.get(stackNdx);
+ final ActivityRecord r = stack.mPausingActivity;
+ if (r != null && r.state != ActivityState.PAUSED
+ && r.state != ActivityState.STOPPED
+ && r.state != ActivityState.STOPPING) {
+ if (DEBUG_STATES) {
+ Slog.d(TAG, "allPausedActivitiesComplete: r=" + r + " state=" + r.state);
+ pausing = false;
+ } else {
+ return false;
+ }
}
}
}
return pausing;
}
+ void pauseChildStacks(ActivityRecord parent, boolean userLeaving, boolean uiSleeping) {
+ // TODO: Put all stacks in supervisor and iterate through them instead.
+ for (int displayNdx = mActivityDisplays.size() - 1; displayNdx >= 0; --displayNdx) {
+ ArrayList<ActivityStack> stacks = mActivityDisplays.valueAt(displayNdx).mStacks;
+ for (int stackNdx = stacks.size() - 1; stackNdx >= 0; --stackNdx) {
+ final ActivityStack stack = stacks.get(stackNdx);
+ if (stack.mResumedActivity != null &&
+ stack.mActivityContainer.mParentActivity == parent) {
+ stack.startPausingLocked(userLeaving, uiSleeping);
+ }
+ }
+ }
+ }
+
void reportActivityVisibleLocked(ActivityRecord r) {
for (int i = mWaitingActivityVisible.size()-1; i >= 0; i--) {
WaitResult w = mWaitingActivityVisible.get(i);
@@ -525,8 +563,10 @@
return r;
}
- for (int stackNdx = mStacks.size() - 1; stackNdx >= 0; --stackNdx) {
- final ActivityStack stack = mStacks.get(stackNdx);
+ // Return to the home stack.
+ final ArrayList<ActivityStack> stacks = mHomeStack.mStacks;
+ for (int stackNdx = stacks.size() - 1; stackNdx >= 0; --stackNdx) {
+ final ActivityStack stack = stacks.get(stackNdx);
if (stack != focusedStack && isFrontStack(stack)) {
r = stack.topRunningActivityLocked(null);
if (r != null) {
@@ -542,15 +582,19 @@
ActivityRecord r = null;
// Gather all of the running tasks for each stack into runningTaskLists.
- final int numStacks = mStacks.size();
- ArrayList<RunningTaskInfo>[] runningTaskLists = new ArrayList[numStacks];
- for (int stackNdx = numStacks - 1; stackNdx >= 0; --stackNdx) {
- final ActivityStack stack = mStacks.get(stackNdx);
- ArrayList<RunningTaskInfo> stackTaskList = new ArrayList<RunningTaskInfo>();
- runningTaskLists[stackNdx] = stackTaskList;
- final ActivityRecord ar = stack.getTasksLocked(receiver, pending, stackTaskList);
- if (isFrontStack(stack)) {
- r = ar;
+ ArrayList<ArrayList<RunningTaskInfo>> runningTaskLists =
+ new ArrayList<ArrayList<RunningTaskInfo>>();
+ final int numDisplays = mActivityDisplays.size();
+ for (int displayNdx = 0; displayNdx < numDisplays; ++displayNdx) {
+ ArrayList<ActivityStack> stacks = mActivityDisplays.valueAt(displayNdx).mStacks;
+ for (int stackNdx = stacks.size() - 1; stackNdx >= 0; --stackNdx) {
+ final ActivityStack stack = stacks.get(stackNdx);
+ ArrayList<RunningTaskInfo> stackTaskList = new ArrayList<RunningTaskInfo>();
+ runningTaskLists.add(stackTaskList);
+ final ActivityRecord ar = stack.getTasksLocked(receiver, pending, stackTaskList);
+ if (r == null && isFrontStack(stack)) {
+ r = ar;
+ }
}
}
@@ -559,8 +603,9 @@
while (maxNum > 0) {
long mostRecentActiveTime = Long.MIN_VALUE;
ArrayList<RunningTaskInfo> selectedStackList = null;
- for (int stackNdx = 0; stackNdx < numStacks; ++stackNdx) {
- ArrayList<RunningTaskInfo> stackTaskList = runningTaskLists[stackNdx];
+ final int numTaskLists = runningTaskLists.size();
+ for (int stackNdx = 0; stackNdx < numTaskLists; ++stackNdx) {
+ ArrayList<RunningTaskInfo> stackTaskList = runningTaskLists.get(stackNdx);
if (!stackTaskList.isEmpty()) {
final long lastActiveTime = stackTaskList.get(0).lastActiveTime;
if (lastActiveTime > mostRecentActiveTime) {
@@ -630,14 +675,14 @@
void startHomeActivity(Intent intent, ActivityInfo aInfo) {
moveHomeToTop();
startActivityLocked(null, intent, null, aInfo, null, null, 0, 0, 0, null, 0,
- null, false, null);
+ null, false, null, null);
}
final int startActivityMayWait(IApplicationThread caller, int callingUid,
String callingPackage, Intent intent, String resolvedType, IBinder resultTo,
String resultWho, int requestCode, int startFlags, String profileFile,
ParcelFileDescriptor profileFd, WaitResult outResult, Configuration config,
- Bundle options, int userId) {
+ Bundle options, int userId, IActivityContainer iContainer) {
// Refuse possible leaked file descriptors
if (intent != null && intent.hasFileDescriptors()) {
throw new IllegalArgumentException("File descriptors passed in Intent");
@@ -651,6 +696,7 @@
ActivityInfo aInfo = resolveActivity(intent, resolvedType, startFlags,
profileFile, profileFd, userId);
+ ActivityContainer container = (ActivityContainer)iContainer;
synchronized (mService) {
int callingPid;
if (callingUid >= 0) {
@@ -662,7 +708,12 @@
callingPid = callingUid = -1;
}
- final ActivityStack stack = getFocusedStack();
+ final ActivityStack stack;
+ if (container == null || container.mStack.isOnHomeDisplay()) {
+ stack = getFocusedStack();
+ } else {
+ stack = container.mStack;
+ }
stack.mConfigWillChange = config != null
&& mService.mConfiguration.diff(config) != 0;
if (DEBUG_CONFIGURATION) Slog.v(TAG,
@@ -738,9 +789,9 @@
}
}
- int res = startActivityLocked(caller, intent, resolvedType,
- aInfo, resultTo, resultWho, requestCode, callingPid, callingUid,
- callingPackage, startFlags, options, componentSpecified, null);
+ int res = startActivityLocked(caller, intent, resolvedType, aInfo, resultTo, resultWho,
+ requestCode, callingPid, callingUid, callingPackage, startFlags, options,
+ componentSpecified, null, container);
if (stack.mConfigWillChange) {
// If the caller also wants to switch to a new configuration,
@@ -855,7 +906,7 @@
}
int res = startActivityLocked(caller, intent, resolvedTypes[i],
aInfo, resultTo, null, -1, callingPid, callingUid, callingPackage,
- 0, theseOptions, componentSpecified, outActivity);
+ 0, theseOptions, componentSpecified, outActivity, null);
if (res < 0) {
return res;
}
@@ -1079,7 +1130,7 @@
Intent intent, String resolvedType, ActivityInfo aInfo, IBinder resultTo,
String resultWho, int requestCode,
int callingPid, int callingUid, String callingPackage, int startFlags, Bundle options,
- boolean componentSpecified, ActivityRecord[] outActivity) {
+ boolean componentSpecified, ActivityRecord[] outActivity, ActivityContainer container) {
int err = ActivityManager.START_SUCCESS;
ProcessRecord callerApp = null;
@@ -1214,8 +1265,8 @@
}
ActivityRecord r = new ActivityRecord(mService, callerApp, callingUid, callingPackage,
- intent, resolvedType, aInfo, mService.mConfiguration,
- resultRecord, resultWho, requestCode, componentSpecified, this);
+ intent, resolvedType, aInfo, mService.mConfiguration, resultRecord, resultWho,
+ requestCode, componentSpecified, this, container);
if (outActivity != null) {
outActivity[0] = r;
}
@@ -1263,25 +1314,35 @@
if (r.isApplicationActivity() || (task != null && task.isApplicationTask())) {
if (task != null) {
final ActivityStack taskStack = task.stack;
- if (mFocusedStack != taskStack) {
- if (DEBUG_FOCUS || DEBUG_STACK) Slog.d(TAG,
- "adjustStackFocus: Setting focused stack to r=" + r + " task=" + task);
- mFocusedStack = taskStack.isHomeStack() ? null : taskStack;
- } else {
- if (DEBUG_FOCUS || DEBUG_STACK) Slog.d(TAG,
- "adjustStackFocus: Focused stack already=" + mFocusedStack);
+ if (taskStack.isOnHomeDisplay()) {
+ if (mFocusedStack != taskStack) {
+ if (DEBUG_FOCUS || DEBUG_STACK) Slog.d(TAG, "adjustStackFocus: Setting " +
+ "focused stack to r=" + r + " task=" + task);
+ mFocusedStack = taskStack;
+ } else {
+ if (DEBUG_FOCUS || DEBUG_STACK) Slog.d(TAG,
+ "adjustStackFocus: Focused stack already=" + mFocusedStack);
+ }
}
return taskStack;
}
- if (mFocusedStack != null) {
+ final ActivityContainer container = r.mInitialActivityContainer;
+ if (container != null) {
+ // The first time put it on the desired stack, after this put on task stack.
+ r.mInitialActivityContainer = null;
+ return container.mStack;
+ }
+
+ if (mFocusedStack != mHomeStack) {
if (DEBUG_FOCUS || DEBUG_STACK) Slog.d(TAG,
"adjustStackFocus: Have a focused stack=" + mFocusedStack);
return mFocusedStack;
}
- for (int stackNdx = mStacks.size() - 1; stackNdx > 0; --stackNdx) {
- ActivityStack stack = mStacks.get(stackNdx);
+ final ArrayList<ActivityStack> homeDisplayStacks = mHomeStack.mStacks;
+ for (int stackNdx = homeDisplayStacks.size() - 1; stackNdx >= 0; --stackNdx) {
+ final ActivityStack stack = homeDisplayStacks.get(stackNdx);
if (!stack.isHomeStack()) {
if (DEBUG_FOCUS || DEBUG_STACK) Slog.d(TAG,
"adjustStackFocus: Setting focused stack=" + stack);
@@ -1290,9 +1351,8 @@
}
}
- // Time to create the first app stack for this user.
- int stackId =
- mService.createStack(-1, HOME_STACK_ID, StackBox.TASK_STACK_GOES_OVER, 1.0f);
+ // Need to create an app stack for this user.
+ int stackId = createStackOnDisplay(null, getNextStackId(), Display.DEFAULT_DISPLAY);
if (DEBUG_FOCUS || DEBUG_STACK) Slog.d(TAG, "adjustStackFocus: New stack r=" + r +
" stackId=" + stackId);
mFocusedStack = getStack(stackId);
@@ -1302,30 +1362,10 @@
}
void setFocusedStack(ActivityRecord r) {
- if (r == null) {
- return;
- }
- if (!r.isApplicationActivity() || (r.task != null && !r.task.isApplicationTask())) {
- if (mStackState != STACK_STATE_HOME_IN_FRONT) {
- if (DEBUG_STACK || DEBUG_FOCUS) Slog.d(TAG, "setFocusedStack: mStackState old=" +
- stackStateToString(mStackState) + " new=" +
- stackStateToString(STACK_STATE_HOME_TO_FRONT) +
- " Callers=" + Debug.getCallers(3));
- mStackState = STACK_STATE_HOME_TO_FRONT;
- }
- } else {
- if (DEBUG_FOCUS || DEBUG_STACK) Slog.d(TAG,
- "setFocusedStack: Setting focused stack to r=" + r + " task=" + r.task +
- " Callers=" + Debug.getCallers(3));
- final ActivityStack taskStack = r.task.stack;
- mFocusedStack = taskStack.isHomeStack() ? null : taskStack;
- if (mStackState != STACK_STATE_HOME_IN_BACK) {
- if (DEBUG_STACK) Slog.d(TAG, "setFocusedStack: mStackState old=" +
- stackStateToString(mStackState) + " new=" +
- stackStateToString(STACK_STATE_HOME_TO_BACK) +
- " Callers=" + Debug.getCallers(3));
- mStackState = STACK_STATE_HOME_TO_BACK;
- }
+ if (r != null) {
+ final boolean isHomeActivity =
+ !r.isApplicationActivity() || (r.task != null && !r.task.isApplicationTask());
+ moveHomeStack(isHomeActivity);
}
}
@@ -1452,7 +1492,7 @@
targetStack.mLastPausedActivity = null;
if (DEBUG_TASKS) Slog.d(TAG, "Bring to front target: " + targetStack
+ " from " + intentActivity);
- moveHomeStack(targetStack.isHomeStack());
+ targetStack.moveToFront();
if (intentActivity.task.intent == null) {
// This task was started because of movement of
// the activity based on affinity... now that we
@@ -1502,9 +1542,6 @@
} else {
ActivityOptions.abort(options);
}
- if (r.task == null) Slog.v(TAG,
- "startActivityUncheckedLocked: task left null",
- new RuntimeException("here").fillInStackTrace());
return ActivityManager.START_RETURN_INTENT_TO_CALLER;
}
if ((launchFlags &
@@ -1597,9 +1634,6 @@
} else {
ActivityOptions.abort(options);
}
- if (r.task == null) Slog.v(TAG,
- "startActivityUncheckedLocked: task left null",
- new RuntimeException("here").fillInStackTrace());
return ActivityManager.START_TASK_TO_FRONT;
}
}
@@ -1637,15 +1671,9 @@
// We don't need to start a new activity, and
// the client said not to do anything if that
// is the case, so this is it!
- if (r.task == null) Slog.v(TAG,
- "startActivityUncheckedLocked: task left null",
- new RuntimeException("here").fillInStackTrace());
return ActivityManager.START_RETURN_INTENT_TO_CALLER;
}
top.deliverNewIntentLocked(callingUid, r.intent);
- if (r.task == null) Slog.v(TAG,
- "startActivityUncheckedLocked: task left null",
- new RuntimeException("here").fillInStackTrace());
return ActivityManager.START_DELIVERED_TO_TOP;
}
}
@@ -1658,9 +1686,6 @@
r.requestCode, Activity.RESULT_CANCELED, null);
}
ActivityOptions.abort(options);
- if (r.task == null) Slog.v(TAG,
- "startActivityUncheckedLocked: task left null",
- new RuntimeException("here").fillInStackTrace());
return ActivityManager.START_CLASS_NOT_FOUND;
}
@@ -1671,7 +1696,7 @@
if (r.resultTo == null && !addingToTask
&& (launchFlags&Intent.FLAG_ACTIVITY_NEW_TASK) != 0) {
targetStack = adjustStackFocus(r);
- moveHomeStack(targetStack.isHomeStack());
+ targetStack.moveToFront();
if (reuseTask == null) {
r.setTask(targetStack.createTaskRecord(getNextTaskId(),
newTaskInfo != null ? newTaskInfo : r.info,
@@ -1689,13 +1714,13 @@
== (Intent.FLAG_ACTIVITY_NEW_TASK|Intent.FLAG_ACTIVITY_TASK_ON_HOME)) {
// Caller wants to appear on home activity, so before starting
// their own activity we will bring home to the front.
- r.task.mOnTopOfHome = true;
+ r.task.mOnTopOfHome = r.task.stack.isOnHomeDisplay();
}
}
} else if (sourceRecord != null) {
TaskRecord sourceTask = sourceRecord.task;
targetStack = sourceTask.stack;
- moveHomeStack(targetStack.isHomeStack());
+ targetStack.moveToFront();
if (!addingToTask &&
(launchFlags&Intent.FLAG_ACTIVITY_CLEAR_TOP) != 0) {
// In this case, we are adding the activity to an existing
@@ -1713,9 +1738,6 @@
targetStack.resumeTopActivityLocked(null);
}
ActivityOptions.abort(options);
- if (r.task == null) Slog.w(TAG,
- "startActivityUncheckedLocked: task left null",
- new RuntimeException("here").fillInStackTrace());
return ActivityManager.START_DELIVERED_TO_TOP;
}
} else if (!addingToTask &&
@@ -1749,7 +1771,7 @@
// of a new task... just put it in the top task, though these days
// this case should never happen.
targetStack = adjustStackFocus(r);
- moveHomeStack(targetStack.isHomeStack());
+ targetStack.moveToFront();
ActivityRecord prev = targetStack.topActivity();
r.setTask(prev != null ? prev.task
: targetStack.createTaskRecord(getNextTaskId(), r.info, intent, true),
@@ -1941,17 +1963,21 @@
boolean handleAppDiedLocked(ProcessRecord app) {
boolean hasVisibleActivities = false;
- for (int stackNdx = mStacks.size() - 1; stackNdx >= 0; --stackNdx) {
- hasVisibleActivities |= mStacks.get(stackNdx).handleAppDiedLocked(app);
+ for (int displayNdx = mActivityDisplays.size() - 1; displayNdx >= 0; --displayNdx) {
+ final ArrayList<ActivityStack> stacks = mActivityDisplays.valueAt(displayNdx).mStacks;
+ for (int stackNdx = stacks.size() - 1; stackNdx >= 0; --stackNdx) {
+ hasVisibleActivities |= stacks.get(stackNdx).handleAppDiedLocked(app);
+ }
}
return hasVisibleActivities;
}
void closeSystemDialogsLocked() {
- final int numStacks = mStacks.size();
- for (int stackNdx = 0; stackNdx < numStacks; ++stackNdx) {
- final ActivityStack stack = mStacks.get(stackNdx);
- stack.closeSystemDialogsLocked();
+ for (int displayNdx = mActivityDisplays.size() - 1; displayNdx >= 0; --displayNdx) {
+ final ArrayList<ActivityStack> stacks = mActivityDisplays.valueAt(displayNdx).mStacks;
+ for (int stackNdx = stacks.size() - 1; stackNdx >= 0; --stackNdx) {
+ stacks.get(stackNdx).closeSystemDialogsLocked();
+ }
}
}
@@ -1964,11 +1990,14 @@
*/
boolean forceStopPackageLocked(String name, boolean doit, boolean evenPersistent, int userId) {
boolean didSomething = false;
- final int numStacks = mStacks.size();
- for (int stackNdx = 0; stackNdx < numStacks; ++stackNdx) {
- final ActivityStack stack = mStacks.get(stackNdx);
- if (stack.forceStopPackageLocked(name, doit, evenPersistent, userId)) {
- didSomething = true;
+ for (int displayNdx = mActivityDisplays.size() - 1; displayNdx >= 0; --displayNdx) {
+ final ArrayList<ActivityStack> stacks = mActivityDisplays.valueAt(displayNdx).mStacks;
+ final int numStacks = stacks.size();
+ for (int stackNdx = 0; stackNdx < numStacks; ++stackNdx) {
+ final ActivityStack stack = stacks.get(stackNdx);
+ if (stack.forceStopPackageLocked(name, doit, evenPersistent, userId)) {
+ didSomething = true;
+ }
}
}
return didSomething;
@@ -1983,15 +2012,18 @@
// we don't blow away the previous app if this activity is being
// hosted by the process that is actually still the foreground.
ProcessRecord fgApp = null;
- for (int stackNdx = mStacks.size() - 1; stackNdx >= 0; --stackNdx) {
- final ActivityStack stack = mStacks.get(stackNdx);
- if (isFrontStack(stack)) {
- if (stack.mResumedActivity != null) {
- fgApp = stack.mResumedActivity.app;
- } else if (stack.mPausingActivity != null) {
- fgApp = stack.mPausingActivity.app;
+ for (int displayNdx = mActivityDisplays.size() - 1; displayNdx >= 0; --displayNdx) {
+ final ArrayList<ActivityStack> stacks = mActivityDisplays.valueAt(displayNdx).mStacks;
+ for (int stackNdx = stacks.size() - 1; stackNdx >= 0; --stackNdx) {
+ final ActivityStack stack = stacks.get(stackNdx);
+ if (isFrontStack(stack)) {
+ if (stack.mResumedActivity != null) {
+ fgApp = stack.mResumedActivity.app;
+ } else if (stack.mPausingActivity != null) {
+ fgApp = stack.mPausingActivity.app;
+ }
+ break;
}
- break;
}
}
@@ -2015,13 +2047,16 @@
targetStack = getFocusedStack();
}
boolean result = false;
- for (int stackNdx = mStacks.size() - 1; stackNdx >= 0; --stackNdx) {
- final ActivityStack stack = mStacks.get(stackNdx);
- if (isFrontStack(stack)) {
- if (stack == targetStack) {
- result = stack.resumeTopActivityLocked(target, targetOptions);
- } else {
- stack.resumeTopActivityLocked(null);
+ for (int displayNdx = mActivityDisplays.size() - 1; displayNdx >= 0; --displayNdx) {
+ final ArrayList<ActivityStack> stacks = mActivityDisplays.valueAt(displayNdx).mStacks;
+ for (int stackNdx = stacks.size() - 1; stackNdx >= 0; --stackNdx) {
+ final ActivityStack stack = stacks.get(stackNdx);
+ if (isFrontStack(stack)) {
+ if (stack == targetStack) {
+ result = stack.resumeTopActivityLocked(target, targetOptions);
+ } else {
+ stack.resumeTopActivityLocked(null);
+ }
}
}
}
@@ -2029,38 +2064,118 @@
}
void finishTopRunningActivityLocked(ProcessRecord app) {
- final int numStacks = mStacks.size();
- for (int stackNdx = 0; stackNdx < numStacks; ++stackNdx) {
- final ActivityStack stack = mStacks.get(stackNdx);
- stack.finishTopRunningActivityLocked(app);
+ for (int displayNdx = mActivityDisplays.size() - 1; displayNdx >= 0; --displayNdx) {
+ final ArrayList<ActivityStack> stacks = mActivityDisplays.valueAt(displayNdx).mStacks;
+ final int numStacks = stacks.size();
+ for (int stackNdx = 0; stackNdx < numStacks; ++stackNdx) {
+ final ActivityStack stack = stacks.get(stackNdx);
+ stack.finishTopRunningActivityLocked(app);
+ }
}
}
void findTaskToMoveToFrontLocked(int taskId, int flags, Bundle options) {
- for (int stackNdx = mStacks.size() - 1; stackNdx >= 0; --stackNdx) {
- if (mStacks.get(stackNdx).findTaskToMoveToFrontLocked(taskId, flags, options)) {
- if (DEBUG_STACK) Slog.d(TAG, "findTaskToMoveToFront: moved to front of stack=" +
- mStacks.get(stackNdx));
- return;
+ for (int displayNdx = mActivityDisplays.size() - 1; displayNdx >= 0; --displayNdx) {
+ final ArrayList<ActivityStack> stacks = mActivityDisplays.valueAt(displayNdx).mStacks;
+ for (int stackNdx = stacks.size() - 1; stackNdx >= 0; --stackNdx) {
+ if (stacks.get(stackNdx).findTaskToMoveToFrontLocked(taskId, flags, options)) {
+ if (DEBUG_STACK) Slog.d(TAG, "findTaskToMoveToFront: moved to front of stack="
+ + stacks.get(stackNdx));
+ return;
+ }
}
}
}
ActivityStack getStack(int stackId) {
- for (int stackNdx = mStacks.size() - 1; stackNdx >= 0; --stackNdx) {
- final ActivityStack stack = mStacks.get(stackNdx);
- if (stack.getStackId() == stackId) {
- return stack;
+ WeakReference<ActivityContainer> weakReference = mActivityContainers.get(stackId);
+ if (weakReference != null) {
+ ActivityContainer activityContainer = weakReference.get();
+ if (activityContainer != null) {
+ return activityContainer.mStack;
+ } else {
+ mActivityContainers.remove(stackId);
}
}
return null;
}
ArrayList<ActivityStack> getStacks() {
- return new ArrayList<ActivityStack>(mStacks);
+ ArrayList<ActivityStack> allStacks = new ArrayList<ActivityStack>();
+ for (int displayNdx = mActivityDisplays.size() - 1; displayNdx >= 0; --displayNdx) {
+ allStacks.addAll(mActivityDisplays.valueAt(displayNdx).mStacks);
+ }
+ return allStacks;
}
- int createStack() {
+ IBinder getHomeActivityToken() {
+ final ArrayList<TaskRecord> tasks = mHomeStack.getAllTasks();
+ for (int taskNdx = tasks.size() - 1; taskNdx >= 0; --taskNdx) {
+ final TaskRecord task = tasks.get(taskNdx);
+ if (task.isHomeTask()) {
+ final ArrayList<ActivityRecord> activities = task.mActivities;
+ for (int activityNdx = activities.size() - 1; activityNdx >= 0; --activityNdx) {
+ final ActivityRecord r = activities.get(activityNdx);
+ if (r.isHomeActivity()) {
+ return r.appToken;
+ }
+ }
+ }
+ }
+ return null;
+ }
+
+ ActivityContainer createActivityContainer(ActivityRecord parentActivity, int stackId,
+ IActivityContainerCallback callback) {
+ ActivityContainer activityContainer = new ActivityContainer(parentActivity, stackId,
+ callback);
+ mActivityContainers.put(stackId, new WeakReference<ActivityContainer>(activityContainer));
+ if (parentActivity != null) {
+ parentActivity.mChildContainers.add(activityContainer.mStack);
+ }
+ return activityContainer;
+ }
+
+ ActivityContainer createActivityContainer(ActivityRecord parentActivity,
+ IActivityContainerCallback callback) {
+ return createActivityContainer(parentActivity, getNextStackId(), callback);
+ }
+
+ void removeChildActivityContainers(ActivityRecord parentActivity) {
+ for (int ndx = mActivityContainers.size() - 1; ndx >= 0; --ndx) {
+ final ActivityContainer container = mActivityContainers.valueAt(ndx).get();
+ if (container == null) {
+ mActivityContainers.removeAt(ndx);
+ continue;
+ }
+ if (container.mParentActivity != parentActivity) {
+ continue;
+ }
+
+ ActivityStack stack = container.mStack;
+ ActivityRecord top = stack.topRunningNonDelayedActivityLocked(null);
+ if (top != null) {
+ // TODO: Make sure the next activity doesn't start up when top is destroyed.
+ stack.destroyActivityLocked(top, true, true, "stack removal");
+ }
+ mActivityContainers.removeAt(ndx);
+ container.detachLocked();
+ }
+ }
+
+ private int createStackOnDisplay(ActivityRecord parentActivity, int stackId, int displayId) {
+ ActivityDisplay activityDisplay = mActivityDisplays.get(displayId);
+ if (activityDisplay == null) {
+ return -1;
+ }
+
+ ActivityContainer activityContainer =
+ createActivityContainer(parentActivity, stackId, null);
+ activityContainer.attachToDisplayLocked(activityDisplay);
+ return stackId;
+ }
+
+ int getNextStackId() {
while (true) {
if (++mLastStackId <= HOME_STACK_ID) {
mLastStackId = HOME_STACK_ID + 1;
@@ -2069,7 +2184,6 @@
break;
}
}
- mStacks.add(new ActivityStack(mService, mContext, mLooper, mLastStackId));
return mLastStackId;
}
@@ -2083,7 +2197,7 @@
Slog.w(TAG, "moveTaskToStack: no stack for id=" + stackId);
return;
}
- removeTask(task);
+ task.stack.removeTask(task);
stack.addTask(task, toTop);
mWindowManager.addTask(taskId, stackId, toTop);
resumeTopActivitiesLocked();
@@ -2091,15 +2205,18 @@
ActivityRecord findTaskLocked(ActivityRecord r) {
if (DEBUG_TASKS) Slog.d(TAG, "Looking for task of " + r);
- for (int stackNdx = mStacks.size() - 1; stackNdx >= 0; --stackNdx) {
- final ActivityStack stack = mStacks.get(stackNdx);
- if (!r.isApplicationActivity() && !stack.isHomeStack()) {
- if (DEBUG_TASKS) Slog.d(TAG, "Skipping stack: " + stack);
- continue;
- }
- final ActivityRecord ar = stack.findTaskLocked(r);
- if (ar != null) {
- return ar;
+ for (int displayNdx = mActivityDisplays.size() - 1; displayNdx >= 0; --displayNdx) {
+ final ArrayList<ActivityStack> stacks = mActivityDisplays.valueAt(displayNdx).mStacks;
+ for (int stackNdx = stacks.size() - 1; stackNdx >= 0; --stackNdx) {
+ final ActivityStack stack = stacks.get(stackNdx);
+ if (!r.isApplicationActivity() && !stack.isHomeStack()) {
+ if (DEBUG_TASKS) Slog.d(TAG, "Skipping stack: " + stack);
+ continue;
+ }
+ final ActivityRecord ar = stack.findTaskLocked(r);
+ if (ar != null) {
+ return ar;
+ }
}
}
if (DEBUG_TASKS) Slog.d(TAG, "No task found");
@@ -2107,10 +2224,13 @@
}
ActivityRecord findActivityLocked(Intent intent, ActivityInfo info) {
- for (int stackNdx = mStacks.size() - 1; stackNdx >= 0; --stackNdx) {
- final ActivityRecord ar = mStacks.get(stackNdx).findActivityLocked(intent, info);
- if (ar != null) {
- return ar;
+ for (int displayNdx = mActivityDisplays.size() - 1; displayNdx >= 0; --displayNdx) {
+ final ArrayList<ActivityStack> stacks = mActivityDisplays.valueAt(displayNdx).mStacks;
+ for (int stackNdx = stacks.size() - 1; stackNdx >= 0; --stackNdx) {
+ final ActivityRecord ar = stacks.get(stackNdx).findActivityLocked(intent, info);
+ if (ar != null) {
+ return ar;
+ }
}
}
return null;
@@ -2138,8 +2258,11 @@
final long endTime = System.currentTimeMillis() + timeout;
while (true) {
boolean cantShutdown = false;
- for (int stackNdx = mStacks.size() - 1; stackNdx >= 0; --stackNdx) {
- cantShutdown |= mStacks.get(stackNdx).checkReadyForSleepLocked();
+ for (int displayNdx = mActivityDisplays.size() - 1; displayNdx >= 0; --displayNdx) {
+ final ArrayList<ActivityStack> stacks = mActivityDisplays.valueAt(displayNdx).mStacks;
+ for (int stackNdx = stacks.size() - 1; stackNdx >= 0; --stackNdx) {
+ cantShutdown |= stacks.get(stackNdx).checkReadyForSleepLocked();
+ }
}
if (cantShutdown) {
long timeRemaining = endTime - System.currentTimeMillis();
@@ -2170,11 +2293,14 @@
if (mGoingToSleep.isHeld()) {
mGoingToSleep.release();
}
- for (int stackNdx = mStacks.size() - 1; stackNdx >= 0; --stackNdx) {
- final ActivityStack stack = mStacks.get(stackNdx);
- stack.awakeFromSleepingLocked();
- if (isFrontStack(stack)) {
- resumeTopActivitiesLocked();
+ for (int displayNdx = mActivityDisplays.size() - 1; displayNdx >= 0; --displayNdx) {
+ final ArrayList<ActivityStack> stacks = mActivityDisplays.valueAt(displayNdx).mStacks;
+ for (int stackNdx = stacks.size() - 1; stackNdx >= 0; --stackNdx) {
+ final ActivityStack stack = stacks.get(stackNdx);
+ stack.awakeFromSleepingLocked();
+ if (isFrontStack(stack)) {
+ resumeTopActivitiesLocked();
+ }
}
}
mGoingToSleepActivities.clear();
@@ -2193,8 +2319,11 @@
if (!mSleepTimeout) {
boolean dontSleep = false;
- for (int stackNdx = mStacks.size() - 1; stackNdx >= 0; --stackNdx) {
- dontSleep |= mStacks.get(stackNdx).checkReadyForSleepLocked();
+ for (int displayNdx = mActivityDisplays.size() - 1; displayNdx >= 0; --displayNdx) {
+ final ArrayList<ActivityStack> stacks = mActivityDisplays.valueAt(displayNdx).mStacks;
+ for (int stackNdx = stacks.size() - 1; stackNdx >= 0; --stackNdx) {
+ dontSleep |= stacks.get(stackNdx).checkReadyForSleepLocked();
+ }
}
if (mStoppingActivities.size() > 0) {
@@ -2217,8 +2346,11 @@
}
}
- for (int stackNdx = mStacks.size() - 1; stackNdx >= 0; --stackNdx) {
- mStacks.get(stackNdx).goToSleep();
+ for (int displayNdx = mActivityDisplays.size() - 1; displayNdx >= 0; --displayNdx) {
+ final ArrayList<ActivityStack> stacks = mActivityDisplays.valueAt(displayNdx).mStacks;
+ for (int stackNdx = stacks.size() - 1; stackNdx >= 0; --stackNdx) {
+ stacks.get(stackNdx).goToSleep();
+ }
}
removeSleepTimeouts();
@@ -2245,37 +2377,45 @@
}
void handleAppCrashLocked(ProcessRecord app) {
- final int numStacks = mStacks.size();
- for (int stackNdx = 0; stackNdx < numStacks; ++stackNdx) {
- final ActivityStack stack = mStacks.get(stackNdx);
- stack.handleAppCrashLocked(app);
+ for (int displayNdx = mActivityDisplays.size() - 1; displayNdx >= 0; --displayNdx) {
+ final ArrayList<ActivityStack> stacks = mActivityDisplays.valueAt(displayNdx).mStacks;
+ final int numStacks = stacks.size();
+ for (int stackNdx = 0; stackNdx < numStacks; ++stackNdx) {
+ final ActivityStack stack = stacks.get(stackNdx);
+ stack.handleAppCrashLocked(app);
+ }
}
}
void ensureActivitiesVisibleLocked(ActivityRecord starting, int configChanges) {
// First the front stacks. In case any are not fullscreen and are in front of home.
boolean showHomeBehindStack = false;
- for (int stackNdx = mStacks.size() - 1; stackNdx >= 0; --stackNdx) {
- final ActivityStack stack = mStacks.get(stackNdx);
- if (isFrontStack(stack)) {
- showHomeBehindStack =
- stack.ensureActivitiesVisibleLocked(starting, configChanges);
- }
- }
- // Now do back stacks.
- for (int stackNdx = mStacks.size() - 1; stackNdx >= 0; --stackNdx) {
- final ActivityStack stack = mStacks.get(stackNdx);
- if (!isFrontStack(stack)) {
- stack.ensureActivitiesVisibleLocked(starting, configChanges, showHomeBehindStack);
+ for (int displayNdx = mActivityDisplays.size() - 1; displayNdx >= 0; --displayNdx) {
+ final ArrayList<ActivityStack> stacks = mActivityDisplays.valueAt(displayNdx).mStacks;
+ final int topStackNdx = stacks.size() - 1;
+ for (int stackNdx = topStackNdx; stackNdx >= 0; --stackNdx) {
+ final ActivityStack stack = stacks.get(stackNdx);
+ if (stackNdx == topStackNdx) {
+ // Top stack.
+ showHomeBehindStack =
+ stack.ensureActivitiesVisibleLocked(starting, configChanges);
+ } else {
+ // Back stack.
+ stack.ensureActivitiesVisibleLocked(starting, configChanges,
+ showHomeBehindStack);
+ }
}
}
}
void scheduleDestroyAllActivities(ProcessRecord app, String reason) {
- final int numStacks = mStacks.size();
- for (int stackNdx = 0; stackNdx < numStacks; ++stackNdx) {
- final ActivityStack stack = mStacks.get(stackNdx);
- stack.scheduleDestroyActivities(app, false, reason);
+ for (int displayNdx = mActivityDisplays.size() - 1; displayNdx >= 0; --displayNdx) {
+ final ArrayList<ActivityStack> stacks = mActivityDisplays.valueAt(displayNdx).mStacks;
+ final int numStacks = stacks.size();
+ for (int stackNdx = 0; stackNdx < numStacks; ++stackNdx) {
+ final ActivityStack stack = stacks.get(stackNdx);
+ stack.scheduleDestroyActivities(app, false, reason);
+ }
}
}
@@ -2285,8 +2425,13 @@
mCurrentUser = userId;
mStartingUsers.add(uss);
- for (int stackNdx = mStacks.size() - 1; stackNdx >= 0; --stackNdx) {
- mStacks.get(stackNdx).switchUserLocked(userId);
+ for (int displayNdx = mActivityDisplays.size() - 1; displayNdx >= 0; --displayNdx) {
+ final ArrayList<ActivityStack> stacks = mActivityDisplays.valueAt(displayNdx).mStacks;
+ for (int stackNdx = stacks.size() - 1; stackNdx >= 0; --stackNdx) {
+ final ActivityStack stack = stacks.get(stackNdx);
+ stack.switchUserLocked(userId);
+ mWindowManager.moveTaskToTop(stack.topTask().taskId);
+ }
}
ActivityStack stack = getStack(restoreStackId);
@@ -2294,8 +2439,13 @@
stack = mHomeStack;
}
final boolean homeInFront = stack.isHomeStack();
- moveHomeStack(homeInFront);
- mWindowManager.moveTaskToTop(stack.topTask().taskId);
+ if (stack.isOnHomeDisplay()) {
+ moveHomeStack(homeInFront);
+ mWindowManager.moveTaskToTop(stack.topTask().taskId);
+ } else {
+ // Stack was moved to another display while user was swapped out.
+ resumeHomeActivity(null);
+ }
return homeInFront;
}
@@ -2340,8 +2490,9 @@
}
void validateTopActivitiesLocked() {
- for (int stackNdx = mStacks.size() - 1; stackNdx >= 0; --stackNdx) {
- final ActivityStack stack = mStacks.get(stackNdx);
+ // FIXME
+/* for (int stackNdx = stacks.size() - 1; stackNdx >= 0; --stackNdx) {
+ final ActivityStack stack = stacks.get(stackNdx);
final ActivityRecord r = stack.topRunningActivityLocked(null);
final ActivityState state = r == null ? ActivityState.DESTROYED : r.state;
if (isFrontStack(stack)) {
@@ -2371,23 +2522,14 @@
}
}
}
- }
-
- private static String stackStateToString(int stackState) {
- switch (stackState) {
- case STACK_STATE_HOME_IN_FRONT: return "STACK_STATE_HOME_IN_FRONT";
- case STACK_STATE_HOME_TO_BACK: return "STACK_STATE_HOME_TO_BACK";
- case STACK_STATE_HOME_IN_BACK: return "STACK_STATE_HOME_IN_BACK";
- case STACK_STATE_HOME_TO_FRONT: return "STACK_STATE_HOME_TO_FRONT";
- default: return "Unknown stackState=" + stackState;
- }
+*/
}
public void dump(PrintWriter pw, String prefix) {
pw.print(prefix); pw.print("mDismissKeyguardOnNextActivity=");
pw.println(mDismissKeyguardOnNextActivity);
pw.print(prefix); pw.print("mFocusedStack=" + mFocusedStack);
- pw.print(" mStackState="); pw.println(stackStateToString(mStackState));
+ pw.print(" mLastFocusedStack="); pw.println(mLastFocusedStack);
pw.print(prefix); pw.println("mSleepTimeout=" + mSleepTimeout);
pw.print(prefix); pw.println("mCurTaskId=" + mCurTaskId);
pw.print(prefix); pw.println("mUserStackInFront=" + mUserStackInFront);
@@ -2416,42 +2558,48 @@
boolean dumpClient, String dumpPackage) {
boolean printed = false;
boolean needSep = false;
- final int numStacks = mStacks.size();
- for (int stackNdx = 0; stackNdx < numStacks; ++stackNdx) {
- final ActivityStack stack = mStacks.get(stackNdx);
- StringBuilder stackHeader = new StringBuilder(128);
- stackHeader.append(" Stack #");
- stackHeader.append(mStacks.indexOf(stack));
- stackHeader.append(":");
- printed |= stack.dumpActivitiesLocked(fd, pw, dumpAll, dumpClient, dumpPackage, needSep,
- stackHeader.toString());
- printed |= dumpHistoryList(fd, pw, stack.mLRUActivities, " ", "Run", false, !dumpAll,
- false, dumpPackage, true, " Running activities (most recent first):", null);
+ for (int displayNdx = 0; displayNdx < mActivityDisplays.size(); ++displayNdx) {
+ ActivityDisplay activityDisplay = mActivityDisplays.valueAt(displayNdx);
+ pw.print("Display #"); pw.println(activityDisplay.mDisplayId);
+ ArrayList<ActivityStack> stacks = activityDisplay.mStacks;
+ final int numStacks = stacks.size();
+ for (int stackNdx = 0; stackNdx < numStacks; ++stackNdx) {
+ final ActivityStack stack = stacks.get(stackNdx);
+ StringBuilder stackHeader = new StringBuilder(128);
+ stackHeader.append(" Stack #");
+ stackHeader.append(stack.mStackId);
+ stackHeader.append(":");
+ printed |= stack.dumpActivitiesLocked(fd, pw, dumpAll, dumpClient, dumpPackage,
+ needSep, stackHeader.toString());
+ printed |= dumpHistoryList(fd, pw, stack.mLRUActivities, " ", "Run", false,
+ !dumpAll, false, dumpPackage, true,
+ " Running activities (most recent first):", null);
- needSep = printed;
- boolean pr = printThisActivity(pw, stack.mPausingActivity, dumpPackage, needSep,
- " mPausingActivity: ");
- if (pr) {
- printed = true;
- needSep = false;
- }
- pr = printThisActivity(pw, stack.mResumedActivity, dumpPackage, needSep,
- " mResumedActivity: ");
- if (pr) {
- printed = true;
- needSep = false;
- }
- if (dumpAll) {
- pr = printThisActivity(pw, stack.mLastPausedActivity, dumpPackage, needSep,
- " mLastPausedActivity: ");
+ needSep = printed;
+ boolean pr = printThisActivity(pw, stack.mPausingActivity, dumpPackage, needSep,
+ " mPausingActivity: ");
if (pr) {
printed = true;
- needSep = true;
+ needSep = false;
}
- printed |= printThisActivity(pw, stack.mLastNoHistoryActivity, dumpPackage,
- needSep, " mLastNoHistoryActivity: ");
+ pr = printThisActivity(pw, stack.mResumedActivity, dumpPackage, needSep,
+ " mResumedActivity: ");
+ if (pr) {
+ printed = true;
+ needSep = false;
+ }
+ if (dumpAll) {
+ pr = printThisActivity(pw, stack.mLastPausedActivity, dumpPackage, needSep,
+ " mLastPausedActivity: ");
+ if (pr) {
+ printed = true;
+ needSep = true;
+ }
+ printed |= printThisActivity(pw, stack.mLastNoHistoryActivity, dumpPackage,
+ needSep, " mLastNoHistoryActivity: ");
+ }
+ needSep = printed;
}
- needSep = printed;
}
printed |= dumpHistoryList(fd, pw, mFinishingActivities, " ", "Fin", false, !dumpAll,
@@ -2568,7 +2716,9 @@
}
final void scheduleResumeTopActivities() {
- mHandler.sendEmptyMessage(RESUME_TOP_ACTIVITY_MSG);
+ if (!mHandler.hasMessages(RESUME_TOP_ACTIVITY_MSG)) {
+ mHandler.sendEmptyMessage(RESUME_TOP_ACTIVITY_MSG);
+ }
}
void removeSleepTimeouts() {
@@ -2581,6 +2731,101 @@
mHandler.sendEmptyMessageDelayed(SLEEP_TIMEOUT_MSG, SLEEP_TIMEOUT);
}
+ @Override
+ public void onDisplayAdded(int displayId) {
+ mHandler.sendMessage(mHandler.obtainMessage(HANDLE_DISPLAY_ADDED, displayId, 0));
+ }
+
+ @Override
+ public void onDisplayRemoved(int displayId) {
+ mHandler.sendMessage(mHandler.obtainMessage(HANDLE_DISPLAY_REMOVED, displayId, 0));
+ }
+
+ @Override
+ public void onDisplayChanged(int displayId) {
+ mHandler.sendMessage(mHandler.obtainMessage(HANDLE_DISPLAY_CHANGED, displayId, 0));
+ }
+
+ public void handleDisplayAddedLocked(int displayId) {
+ boolean newDisplay;
+ synchronized (mService) {
+ newDisplay = mActivityDisplays.get(displayId) == null;
+ if (newDisplay) {
+ ActivityDisplay activityDisplay = new ActivityDisplay(displayId);
+ mActivityDisplays.put(displayId, activityDisplay);
+ }
+ }
+ if (newDisplay) {
+ mWindowManager.onDisplayAdded(displayId);
+ }
+ }
+
+ public void handleDisplayRemovedLocked(int displayId) {
+ synchronized (mService) {
+ ActivityDisplay activityDisplay = mActivityDisplays.get(displayId);
+ if (activityDisplay != null) {
+ ArrayList<ActivityStack> stacks = activityDisplay.mStacks;
+ for (int stackNdx = stacks.size() - 1; stackNdx >= 0; --stackNdx) {
+ stacks.get(stackNdx).mActivityContainer.detachLocked();
+ }
+ mActivityDisplays.remove(displayId);
+ }
+ }
+ mWindowManager.onDisplayRemoved(displayId);
+ }
+
+ public void handleDisplayChangedLocked(int displayId) {
+ synchronized (mService) {
+ ActivityDisplay activityDisplay = mActivityDisplays.get(displayId);
+ if (activityDisplay != null) {
+ // TODO: Update the bounds.
+ }
+ }
+ mWindowManager.onDisplayChanged(displayId);
+ }
+
+ StackInfo getStackInfo(ActivityStack stack) {
+ StackInfo info = new StackInfo();
+ mWindowManager.getStackBounds(stack.mStackId, info.bounds);
+ info.displayId = Display.DEFAULT_DISPLAY;
+ info.stackId = stack.mStackId;
+
+ ArrayList<TaskRecord> tasks = stack.getAllTasks();
+ final int numTasks = tasks.size();
+ int[] taskIds = new int[numTasks];
+ String[] taskNames = new String[numTasks];
+ for (int i = 0; i < numTasks; ++i) {
+ final TaskRecord task = tasks.get(i);
+ taskIds[i] = task.taskId;
+ taskNames[i] = task.origActivity != null ? task.origActivity.flattenToString()
+ : task.realActivity != null ? task.realActivity.flattenToString()
+ : task.getTopActivity() != null ? task.getTopActivity().packageName
+ : "unknown";
+ }
+ info.taskIds = taskIds;
+ info.taskNames = taskNames;
+ return info;
+ }
+
+ StackInfo getStackInfoLocked(int stackId) {
+ ActivityStack stack = getStack(stackId);
+ if (stack != null) {
+ return getStackInfo(stack);
+ }
+ return null;
+ }
+
+ ArrayList<StackInfo> getAllStackInfosLocked() {
+ ArrayList<StackInfo> list = new ArrayList<StackInfo>();
+ for (int displayNdx = 0; displayNdx < mActivityDisplays.size(); ++displayNdx) {
+ ArrayList<ActivityStack> stacks = mActivityDisplays.valueAt(displayNdx).mStacks;
+ for (int ndx = stacks.size() - 1; ndx >= 0; --ndx) {
+ list.add(getStackInfo(stacks.get(ndx)));
+ }
+ }
+ return list;
+ }
+
private final class ActivityStackSupervisorHandler extends Handler {
public ActivityStackSupervisorHandler(Looper looper) {
@@ -2644,7 +2889,240 @@
}
}
} break;
+ case HANDLE_DISPLAY_ADDED: {
+ handleDisplayAddedLocked(msg.arg1);
+ } break;
+ case HANDLE_DISPLAY_CHANGED: {
+ handleDisplayChangedLocked(msg.arg1);
+ } break;
+ case HANDLE_DISPLAY_REMOVED: {
+ handleDisplayRemovedLocked(msg.arg1);
+ } break;
}
}
}
+
+ class ActivityContainer extends IActivityContainer.Stub {
+ final int mStackId;
+ final IActivityContainerCallback mCallback;
+ final ActivityStack mStack;
+ final ActivityRecord mParentActivity;
+ final String mIdString;
+
+ /** Display this ActivityStack is currently on. Null if not attached to a Display. */
+ ActivityDisplay mActivityDisplay;
+
+ ActivityContainer(ActivityRecord parentActivity, int stackId,
+ IActivityContainerCallback callback) {
+ synchronized (mService) {
+ mStackId = stackId;
+ mStack = new ActivityStack(this);
+ mParentActivity = parentActivity;
+ mCallback = callback;
+ mIdString = "ActivtyContainer{" + mStackId + ", parent=" + mParentActivity + "}";
+ if (DEBUG_STACK) Slog.d(TAG, "Creating " + this);
+ }
+ }
+
+ void attachToDisplayLocked(ActivityDisplay activityDisplay) {
+ if (DEBUG_STACK) Slog.d(TAG, "attachToDisplayLocked: " + this
+ + " to display=" + activityDisplay);
+ mActivityDisplay = activityDisplay;
+ mStack.mDisplayId = activityDisplay.mDisplayId;
+ mStack.mStacks = activityDisplay.mStacks;
+
+ activityDisplay.attachActivities(mStack);
+ mWindowManager.attachStack(mStackId, activityDisplay.mDisplayId);
+ }
+
+ @Override
+ public void attachToDisplay(int displayId) throws RemoteException {
+ synchronized (mService) {
+ ActivityDisplay activityDisplay = mActivityDisplays.get(displayId);
+ if (activityDisplay == null) {
+ return;
+ }
+ attachToDisplayLocked(activityDisplay);
+ }
+ }
+
+ @Override
+ public int getDisplayId() throws RemoteException {
+ if (mActivityDisplay != null) {
+ return mActivityDisplay.mDisplayId;
+ }
+ return -1;
+ }
+
+ private void detachLocked() {
+ if (DEBUG_STACK) Slog.d(TAG, "detachLocked: " + this + " from display="
+ + mActivityDisplay + " Callers=" + Debug.getCallers(2));
+ if (mActivityDisplay != null) {
+ mActivityDisplay.detachActivitiesLocked(mStack);
+ mActivityDisplay = null;
+ mStack.mDisplayId = -1;
+ mStack.mStacks = null;
+ mWindowManager.detachStack(mStackId);
+ }
+ }
+
+ @Override
+ public void detachFromDisplay() throws RemoteException {
+ synchronized (mService) {
+ detachLocked();
+ }
+ }
+
+ @Override
+ public final int startActivity(Intent intent) {
+ mService.enforceNotIsolatedCaller("ActivityContainer.startActivity");
+ int userId = mService.handleIncomingUser(Binder.getCallingPid(),
+ Binder.getCallingUid(), mCurrentUser, false, true, "ActivityContainer", null);
+ // TODO: Switch to user app stacks here.
+ String mimeType = intent.getType();
+ if (mimeType == null && intent.getData() != null
+ && "content".equals(intent.getData().getScheme())) {
+ mimeType = mService.getProviderMimeType(intent.getData(), userId);
+ }
+ return startActivityMayWait(null, -1, null, intent, mimeType, null, null, 0, 0, null,
+ null, null, null, null, userId, this);
+ }
+
+ @Override
+ public final int startActivityIntentSender(IIntentSender intentSender) {
+ mService.enforceNotIsolatedCaller("ActivityContainer.startActivityIntentSender");
+
+ if (!(intentSender instanceof PendingIntentRecord)) {
+ throw new IllegalArgumentException("Bad PendingIntent object");
+ }
+
+ return ((PendingIntentRecord)intentSender).sendInner(0, null, null, null, null, null,
+ null, 0, 0, 0, null, this);
+ }
+
+ @Override
+ public IBinder asBinder() {
+ return this;
+ }
+
+ @Override
+ public void attachToSurface(Surface surface, int width, int height, int density) {
+ mService.enforceNotIsolatedCaller("ActivityContainer.attachToSurface");
+
+ final long origId = Binder.clearCallingIdentity();
+ try {
+ synchronized (mService) {
+ ActivityDisplay activityDisplay =
+ new ActivityDisplay(surface, width, height, density);
+ mActivityDisplays.put(activityDisplay.mDisplayId, activityDisplay);
+ attachToDisplayLocked(activityDisplay);
+ mStack.resumeTopActivityLocked(null);
+ }
+ if (DEBUG_STACK) Slog.d(TAG, "attachToSurface: " + this + " to display="
+ + mActivityDisplay);
+ } finally {
+ Binder.restoreCallingIdentity(origId);
+ }
+ }
+
+ ActivityStackSupervisor getOuter() {
+ return ActivityStackSupervisor.this;
+ }
+
+ boolean isAttached() {
+ return mActivityDisplay != null;
+ }
+
+ void getBounds(Point outBounds) {
+ if (mActivityDisplay != null) {
+ mActivityDisplay.getBounds(outBounds);
+ } else {
+ outBounds.set(0, 0);
+ }
+ }
+
+ @Override
+ public String toString() {
+ return mIdString + (mActivityDisplay == null ? "N" : "A");
+ }
+ }
+
+ /** Exactly one of these classes per Display in the system. Capable of holding zero or more
+ * attached {@link ActivityStack}s */
+ final class ActivityDisplay {
+ /** Actual Display this object tracks. */
+ int mDisplayId;
+ Display mDisplay;
+ DisplayInfo mDisplayInfo = new DisplayInfo();
+ Surface mSurface;
+
+ /** All of the stacks on this display. Order matters, topmost stack is in front of all other
+ * stacks, bottommost behind. Accessed directly by ActivityManager package classes */
+ final ArrayList<ActivityStack> mStacks = new ArrayList<ActivityStack>();
+
+ /** If this display is for an ActivityView then the VirtualDisplay created for it is stored
+ * here. */
+ VirtualDisplay mVirtualDisplay;
+
+ ActivityDisplay(int displayId) {
+ init(mDisplayManager.getDisplay(displayId));
+ }
+
+ ActivityDisplay(Display display) {
+ init(display);
+ }
+
+ ActivityDisplay(Surface surface, int width, int height, int density) {
+ DisplayManagerGlobal dm = DisplayManagerGlobal.getInstance();
+ long ident = Binder.clearCallingIdentity();
+ try {
+ mVirtualDisplay = dm.createVirtualDisplay(mService.mContext,
+ VIRTUAL_DISPLAY_BASE_NAME, width, height, density, surface,
+ DisplayManager.VIRTUAL_DISPLAY_FLAG_PUBLIC |
+ DisplayManager.VIRTUAL_DISPLAY_FLAG_OWN_CONTENT_ONLY);
+ } finally {
+ Binder.restoreCallingIdentity(ident);
+ }
+
+ init(mVirtualDisplay.getDisplay());
+ mSurface = surface;
+
+ mWindowManager.handleDisplayAdded(mDisplayId);
+ }
+
+ private void init(Display display) {
+ mDisplay = display;
+ mDisplayId = display.getDisplayId();
+ mDisplay.getDisplayInfo(mDisplayInfo);
+ }
+
+ void attachActivities(ActivityStack stack) {
+ if (DEBUG_STACK) Slog.v(TAG, "attachActivities: attaching " + stack + " to displayId="
+ + mDisplayId);
+ mStacks.add(stack);
+ }
+
+ void detachActivitiesLocked(ActivityStack stack) {
+ if (DEBUG_STACK) Slog.v(TAG, "detachActivitiesLocked: detaching " + stack
+ + " from displayId=" + mDisplayId);
+ mStacks.remove(stack);
+ if (mStacks.isEmpty() && mVirtualDisplay != null) {
+ mVirtualDisplay.release();
+ mVirtualDisplay = null;
+ }
+ mSurface.release();
+ }
+
+ void getBounds(Point bounds) {
+ mDisplay.getDisplayInfo(mDisplayInfo);
+ bounds.x = mDisplayInfo.appWidth;
+ bounds.y = mDisplayInfo.appHeight;
+ }
+
+ @Override
+ public String toString() {
+ return "ActivityDisplay={" + mDisplayId + (mVirtualDisplay == null ? "" : "V")
+ + " numStacks=" + mStacks.size() + "}";
+ }
+ }
}
diff --git a/services/java/com/android/server/am/AppBindRecord.java b/services/core/java/com/android/server/am/AppBindRecord.java
similarity index 100%
rename from services/java/com/android/server/am/AppBindRecord.java
rename to services/core/java/com/android/server/am/AppBindRecord.java
diff --git a/services/java/com/android/server/am/AppErrorDialog.java b/services/core/java/com/android/server/am/AppErrorDialog.java
similarity index 100%
rename from services/java/com/android/server/am/AppErrorDialog.java
rename to services/core/java/com/android/server/am/AppErrorDialog.java
diff --git a/services/java/com/android/server/am/AppErrorResult.java b/services/core/java/com/android/server/am/AppErrorResult.java
similarity index 100%
rename from services/java/com/android/server/am/AppErrorResult.java
rename to services/core/java/com/android/server/am/AppErrorResult.java
diff --git a/services/java/com/android/server/am/AppNotRespondingDialog.java b/services/core/java/com/android/server/am/AppNotRespondingDialog.java
similarity index 100%
rename from services/java/com/android/server/am/AppNotRespondingDialog.java
rename to services/core/java/com/android/server/am/AppNotRespondingDialog.java
diff --git a/services/java/com/android/server/am/AppWaitingForDebuggerDialog.java b/services/core/java/com/android/server/am/AppWaitingForDebuggerDialog.java
similarity index 100%
rename from services/java/com/android/server/am/AppWaitingForDebuggerDialog.java
rename to services/core/java/com/android/server/am/AppWaitingForDebuggerDialog.java
diff --git a/services/java/com/android/server/am/BackupRecord.java b/services/core/java/com/android/server/am/BackupRecord.java
similarity index 100%
rename from services/java/com/android/server/am/BackupRecord.java
rename to services/core/java/com/android/server/am/BackupRecord.java
diff --git a/services/java/com/android/server/am/BaseErrorDialog.java b/services/core/java/com/android/server/am/BaseErrorDialog.java
similarity index 100%
rename from services/java/com/android/server/am/BaseErrorDialog.java
rename to services/core/java/com/android/server/am/BaseErrorDialog.java
diff --git a/services/java/com/android/server/am/BatteryStatsService.java b/services/core/java/com/android/server/am/BatteryStatsService.java
similarity index 98%
rename from services/java/com/android/server/am/BatteryStatsService.java
rename to services/core/java/com/android/server/am/BatteryStatsService.java
index 2d59678..ff06513 100644
--- a/services/java/com/android/server/am/BatteryStatsService.java
+++ b/services/core/java/com/android/server/am/BatteryStatsService.java
@@ -24,6 +24,7 @@
import android.content.pm.PackageManager;
import android.os.BatteryStats;
import android.os.Binder;
+import android.os.Handler;
import android.os.IBinder;
import android.os.Parcel;
import android.os.Process;
@@ -54,8 +55,8 @@
private boolean mBluetoothPendingStats;
private BluetoothHeadset mBluetoothHeadset;
- BatteryStatsService(String filename) {
- mStats = new BatteryStatsImpl(filename);
+ BatteryStatsService(String filename, Handler handler) {
+ mStats = new BatteryStatsImpl(filename, handler);
}
public void publish(Context context) {
diff --git a/services/java/com/android/server/am/BroadcastFilter.java b/services/core/java/com/android/server/am/BroadcastFilter.java
similarity index 100%
rename from services/java/com/android/server/am/BroadcastFilter.java
rename to services/core/java/com/android/server/am/BroadcastFilter.java
diff --git a/services/java/com/android/server/am/BroadcastQueue.java b/services/core/java/com/android/server/am/BroadcastQueue.java
similarity index 98%
rename from services/java/com/android/server/am/BroadcastQueue.java
rename to services/core/java/com/android/server/am/BroadcastQueue.java
index bfb667f..aef9e5c 100644
--- a/services/java/com/android/server/am/BroadcastQueue.java
+++ b/services/core/java/com/android/server/am/BroadcastQueue.java
@@ -33,6 +33,7 @@
import android.os.Bundle;
import android.os.Handler;
import android.os.IBinder;
+import android.os.Looper;
import android.os.Message;
import android.os.Process;
import android.os.RemoteException;
@@ -132,7 +133,14 @@
static final int BROADCAST_INTENT_MSG = ActivityManagerService.FIRST_BROADCAST_QUEUE_MSG;
static final int BROADCAST_TIMEOUT_MSG = ActivityManagerService.FIRST_BROADCAST_QUEUE_MSG + 1;
- final Handler mHandler = new Handler() {
+ final BroadcastHandler mHandler;
+
+ private final class BroadcastHandler extends Handler {
+ public BroadcastHandler(Looper looper) {
+ super(looper, null, true);
+ }
+
+ @Override
public void handleMessage(Message msg) {
switch (msg.what) {
case BROADCAST_INTENT_MSG: {
@@ -164,9 +172,10 @@
}
}
- BroadcastQueue(ActivityManagerService service, String name, long timeoutPeriod,
- boolean allowDelayBehindServices) {
+ BroadcastQueue(ActivityManagerService service, Handler handler,
+ String name, long timeoutPeriod, boolean allowDelayBehindServices) {
mService = service;
+ mHandler = new BroadcastHandler(handler.getLooper());
mQueueName = name;
mTimeoutPeriod = timeoutPeriod;
mDelayBehindServices = allowDelayBehindServices;
diff --git a/services/java/com/android/server/am/BroadcastRecord.java b/services/core/java/com/android/server/am/BroadcastRecord.java
similarity index 100%
rename from services/java/com/android/server/am/BroadcastRecord.java
rename to services/core/java/com/android/server/am/BroadcastRecord.java
diff --git a/services/java/com/android/server/am/CompatModeDialog.java b/services/core/java/com/android/server/am/CompatModeDialog.java
similarity index 100%
rename from services/java/com/android/server/am/CompatModeDialog.java
rename to services/core/java/com/android/server/am/CompatModeDialog.java
diff --git a/services/java/com/android/server/am/CompatModePackages.java b/services/core/java/com/android/server/am/CompatModePackages.java
similarity index 97%
rename from services/java/com/android/server/am/CompatModePackages.java
rename to services/core/java/com/android/server/am/CompatModePackages.java
index 4d5577b..207d630 100644
--- a/services/java/com/android/server/am/CompatModePackages.java
+++ b/services/core/java/com/android/server/am/CompatModePackages.java
@@ -19,6 +19,7 @@
import android.content.pm.IPackageManager;
import android.content.res.CompatibilityInfo;
import android.os.Handler;
+import android.os.Looper;
import android.os.Message;
import android.os.RemoteException;
import android.util.AtomicFile;
@@ -41,22 +42,27 @@
private static final int MSG_WRITE = ActivityManagerService.FIRST_COMPAT_MODE_MSG;
- private final Handler mHandler = new Handler() {
- @Override public void handleMessage(Message msg) {
+ private final CompatHandler mHandler;
+
+ private final class CompatHandler extends Handler {
+ public CompatHandler(Looper looper) {
+ super(looper, null, true);
+ }
+
+ @Override
+ public void handleMessage(Message msg) {
switch (msg.what) {
case MSG_WRITE:
saveCompatModes();
break;
- default:
- super.handleMessage(msg);
- break;
}
}
};
- public CompatModePackages(ActivityManagerService service, File systemDir) {
+ public CompatModePackages(ActivityManagerService service, File systemDir, Handler handler) {
mService = service;
mFile = new AtomicFile(new File(systemDir, "packages-compat.xml"));
+ mHandler = new CompatHandler(handler.getLooper());
FileInputStream fis = null;
try {
diff --git a/services/java/com/android/server/am/ConnectionRecord.java b/services/core/java/com/android/server/am/ConnectionRecord.java
similarity index 100%
rename from services/java/com/android/server/am/ConnectionRecord.java
rename to services/core/java/com/android/server/am/ConnectionRecord.java
diff --git a/services/java/com/android/server/am/ContentProviderConnection.java b/services/core/java/com/android/server/am/ContentProviderConnection.java
similarity index 100%
rename from services/java/com/android/server/am/ContentProviderConnection.java
rename to services/core/java/com/android/server/am/ContentProviderConnection.java
diff --git a/services/java/com/android/server/am/ContentProviderRecord.java b/services/core/java/com/android/server/am/ContentProviderRecord.java
similarity index 100%
rename from services/java/com/android/server/am/ContentProviderRecord.java
rename to services/core/java/com/android/server/am/ContentProviderRecord.java
diff --git a/services/java/com/android/server/am/CoreSettingsObserver.java b/services/core/java/com/android/server/am/CoreSettingsObserver.java
similarity index 100%
rename from services/java/com/android/server/am/CoreSettingsObserver.java
rename to services/core/java/com/android/server/am/CoreSettingsObserver.java
diff --git a/services/java/com/android/server/am/EventLogTags.logtags b/services/core/java/com/android/server/am/EventLogTags.logtags
similarity index 100%
rename from services/java/com/android/server/am/EventLogTags.logtags
rename to services/core/java/com/android/server/am/EventLogTags.logtags
diff --git a/services/java/com/android/server/am/FactoryErrorDialog.java b/services/core/java/com/android/server/am/FactoryErrorDialog.java
similarity index 100%
rename from services/java/com/android/server/am/FactoryErrorDialog.java
rename to services/core/java/com/android/server/am/FactoryErrorDialog.java
diff --git a/services/java/com/android/server/am/IntentBindRecord.java b/services/core/java/com/android/server/am/IntentBindRecord.java
similarity index 100%
rename from services/java/com/android/server/am/IntentBindRecord.java
rename to services/core/java/com/android/server/am/IntentBindRecord.java
diff --git a/services/java/com/android/server/am/LaunchWarningWindow.java b/services/core/java/com/android/server/am/LaunchWarningWindow.java
similarity index 100%
rename from services/java/com/android/server/am/LaunchWarningWindow.java
rename to services/core/java/com/android/server/am/LaunchWarningWindow.java
diff --git a/services/java/com/android/server/am/NativeCrashListener.java b/services/core/java/com/android/server/am/NativeCrashListener.java
similarity index 99%
rename from services/java/com/android/server/am/NativeCrashListener.java
rename to services/core/java/com/android/server/am/NativeCrashListener.java
index 2c7f1f1..b12843b 100644
--- a/services/java/com/android/server/am/NativeCrashListener.java
+++ b/services/core/java/com/android/server/am/NativeCrashListener.java
@@ -95,8 +95,8 @@
* Daemon thread that accept()s incoming domain socket connections from debuggerd
* and processes the crash dump that is passed through.
*/
- NativeCrashListener() {
- mAm = ActivityManagerService.self();
+ NativeCrashListener(ActivityManagerService am) {
+ mAm = am;
}
@Override
diff --git a/services/java/com/android/server/am/PendingIntentRecord.java b/services/core/java/com/android/server/am/PendingIntentRecord.java
similarity index 97%
rename from services/java/com/android/server/am/PendingIntentRecord.java
rename to services/core/java/com/android/server/am/PendingIntentRecord.java
index 17f24a9..00fa216 100644
--- a/services/java/com/android/server/am/PendingIntentRecord.java
+++ b/services/core/java/com/android/server/am/PendingIntentRecord.java
@@ -17,6 +17,7 @@
package com.android.server.am;
import android.app.ActivityManager;
+import android.app.IActivityContainer;
import android.content.IIntentSender;
import android.content.IIntentReceiver;
import android.app.PendingIntent;
@@ -190,13 +191,13 @@
public int send(int code, Intent intent, String resolvedType,
IIntentReceiver finishedReceiver, String requiredPermission) {
return sendInner(code, intent, resolvedType, finishedReceiver,
- requiredPermission, null, null, 0, 0, 0, null);
+ requiredPermission, null, null, 0, 0, 0, null, null);
}
int sendInner(int code, Intent intent, String resolvedType,
IIntentReceiver finishedReceiver, String requiredPermission,
IBinder resultTo, String resultWho, int requestCode,
- int flagsMask, int flagsValues, Bundle options) {
+ int flagsMask, int flagsValues, Bundle options, IActivityContainer container) {
synchronized(owner) {
if (!canceled) {
sent = true;
@@ -251,7 +252,7 @@
} else {
owner.startActivityInPackage(uid, key.packageName, finalIntent,
resolvedType, resultTo, resultWho, requestCode, 0,
- options, userId);
+ options, userId, container);
}
} catch (RuntimeException e) {
Slog.w(ActivityManagerService.TAG,
@@ -302,7 +303,8 @@
}
return ActivityManager.START_CANCELED;
}
-
+
+ @Override
protected void finalize() throws Throwable {
try {
if (!canceled) {
diff --git a/services/java/com/android/server/am/PendingThumbnailsRecord.java b/services/core/java/com/android/server/am/PendingThumbnailsRecord.java
similarity index 100%
rename from services/java/com/android/server/am/PendingThumbnailsRecord.java
rename to services/core/java/com/android/server/am/PendingThumbnailsRecord.java
diff --git a/services/java/com/android/server/am/ProcessList.java b/services/core/java/com/android/server/am/ProcessList.java
similarity index 86%
rename from services/java/com/android/server/am/ProcessList.java
rename to services/core/java/com/android/server/am/ProcessList.java
index d3777c7..f5920c8 100644
--- a/services/java/com/android/server/am/ProcessList.java
+++ b/services/core/java/com/android/server/am/ProcessList.java
@@ -18,6 +18,8 @@
import java.io.FileOutputStream;
import java.io.IOException;
+import java.io.OutputStream;
+import java.nio.ByteBuffer;
import android.app.ActivityManager;
import com.android.internal.util.MemInfoReader;
@@ -26,6 +28,8 @@
import android.content.res.Resources;
import android.graphics.Point;
import android.os.SystemProperties;
+import android.net.LocalSocketAddress;
+import android.net.LocalSocket;
import android.util.Slog;
import android.view.Display;
@@ -141,6 +145,16 @@
// Threshold of number of cached+empty where we consider memory critical.
static final int TRIM_LOW_THRESHOLD = 5;
+ // Low Memory Killer Daemon command codes.
+ // These must be kept in sync with the definitions in lmkd.c
+ //
+ // LMK_TARGET <minfree> <minkillprio> ... (up to 6 pairs)
+ // LMK_PROCPRIO <pid> <prio>
+ // LMK_PROCREMOVE <pid>
+ static final byte LMK_TARGET = 0;
+ static final byte LMK_PROCPRIO = 1;
+ static final byte LMK_PROCREMOVE = 2;
+
// These are the various interesting memory levels that we will give to
// the OOM killer. Note that the OOM killer only supports 6 slots, so we
// can't give it a different value for every possible kind of process.
@@ -150,18 +164,18 @@
};
// These are the low-end OOM level limits. This is appropriate for an
// HVGA or smaller phone with less than 512MB. Values are in KB.
- private final long[] mOomMinFreeLow = new long[] {
+ private final int[] mOomMinFreeLow = new int[] {
8192, 12288, 16384,
24576, 28672, 32768
};
// These are the high-end OOM level limits. This is appropriate for a
// 1280x800 or larger screen with around 1GB RAM. Values are in KB.
- private final long[] mOomMinFreeHigh = new long[] {
+ private final int[] mOomMinFreeHigh = new int[] {
49152, 61440, 73728,
86016, 98304, 122880
};
// The actual OOM killer memory levels we are using.
- private final long[] mOomMinFree = new long[mOomAdj.length];
+ private final int[] mOomMinFree = new int[mOomAdj.length];
private final long mTotalMemMb;
@@ -169,6 +183,9 @@
private boolean mHaveDisplaySize;
+ private static LocalSocket sLmkdSocket;
+ private static OutputStream sLmkdOutputStream;
+
ProcessList() {
MemInfoReader minfo = new MemInfoReader();
minfo.readMemInfo();
@@ -202,9 +219,6 @@
+ " dh=" + displayHeight);
}
- StringBuilder adjString = new StringBuilder();
- StringBuilder memString = new StringBuilder();
-
float scale = scaleMem > scaleDisp ? scaleMem : scaleDisp;
if (scale < 0) scale = 0;
else if (scale > 1) scale = 1;
@@ -217,20 +231,20 @@
}
for (int i=0; i<mOomAdj.length; i++) {
- long low = mOomMinFreeLow[i];
- long high = mOomMinFreeHigh[i];
- mOomMinFree[i] = (long)(low + ((high-low)*scale));
+ int low = mOomMinFreeLow[i];
+ int high = mOomMinFreeHigh[i];
+ mOomMinFree[i] = (int)(low + ((high-low)*scale));
}
if (minfree_abs >= 0) {
for (int i=0; i<mOomAdj.length; i++) {
- mOomMinFree[i] = (long)((float)minfree_abs * mOomMinFree[i] / mOomMinFree[mOomAdj.length - 1]);
+ mOomMinFree[i] = (int)((float)minfree_abs * mOomMinFree[i] / mOomMinFree[mOomAdj.length - 1]);
}
}
if (minfree_adj != 0) {
for (int i=0; i<mOomAdj.length; i++) {
- mOomMinFree[i] += (long)((float)minfree_adj * mOomMinFree[i] / mOomMinFree[mOomAdj.length - 1]);
+ mOomMinFree[i] += (int)((float)minfree_adj * mOomMinFree[i] / mOomMinFree[mOomAdj.length - 1]);
if (mOomMinFree[i] < 0) {
mOomMinFree[i] = 0;
}
@@ -242,15 +256,6 @@
// before killing background processes.
mCachedRestoreLevel = (getMemLevel(ProcessList.CACHED_APP_MAX_ADJ)/1024) / 3;
- for (int i=0; i<mOomAdj.length; i++) {
- if (i > 0) {
- adjString.append(',');
- memString.append(',');
- }
- adjString.append(mOomAdj[i]);
- memString.append((mOomMinFree[i]*1024)/PAGE_SIZE);
- }
-
// Ask the kernel to try to keep enough memory free to allocate 3 full
// screen 32bpp buffers without entering direct reclaim.
int reserve = displayWidth * displayHeight * 4 * 3 / 1024;
@@ -268,10 +273,15 @@
}
}
- //Slog.i("XXXXXXX", "******************************* MINFREE: " + memString);
if (write) {
- writeFile("/sys/module/lowmemorykiller/parameters/adj", adjString.toString());
- writeFile("/sys/module/lowmemorykiller/parameters/minfree", memString.toString());
+ ByteBuffer buf = ByteBuffer.allocate(4 * (2*mOomAdj.length + 1));
+ buf.putInt(LMK_TARGET);
+ for (int i=0; i<mOomAdj.length; i++) {
+ buf.putInt((mOomMinFree[i]*1024)/PAGE_SIZE);
+ buf.putInt(mOomAdj[i]);
+ }
+
+ writeLmkd(buf);
SystemProperties.set("sys.sysctl.extra_free_kbytes", Integer.toString(reserve));
}
// GB: 2048,3072,4096,6144,7168,8192
@@ -506,19 +516,78 @@
return mCachedRestoreLevel;
}
- private void writeFile(String path, String data) {
- FileOutputStream fos = null;
+ /**
+ * Set the out-of-memory badness adjustment for a process.
+ *
+ * @param pid The process identifier to set.
+ * @param amt Adjustment value -- lmkd allows -16 to +15.
+ *
+ * {@hide}
+ */
+ public static final void setOomAdj(int pid, int amt) {
+ if (amt == UNKNOWN_ADJ)
+ return;
+
+ ByteBuffer buf = ByteBuffer.allocate(4 * 3);
+ buf.putInt(LMK_PROCPRIO);
+ buf.putInt(pid);
+ buf.putInt(amt);
+ writeLmkd(buf);
+ }
+
+ /*
+ * {@hide}
+ */
+ public static final void remove(int pid) {
+ ByteBuffer buf = ByteBuffer.allocate(4 * 2);
+ buf.putInt(LMK_PROCREMOVE);
+ buf.putInt(pid);
+ writeLmkd(buf);
+ }
+
+ private static boolean openLmkdSocket() {
try {
- fos = new FileOutputStream(path);
- fos.write(data.getBytes());
- } catch (IOException e) {
- Slog.w(ActivityManagerService.TAG, "Unable to write " + path);
- } finally {
- if (fos != null) {
+ sLmkdSocket = new LocalSocket(LocalSocket.SOCKET_SEQPACKET);
+ sLmkdSocket.connect(
+ new LocalSocketAddress("lmkd",
+ LocalSocketAddress.Namespace.RESERVED));
+ sLmkdOutputStream = sLmkdSocket.getOutputStream();
+ } catch (IOException ex) {
+ Slog.w(ActivityManagerService.TAG,
+ "lowmemorykiller daemon socket open failed");
+ sLmkdSocket = null;
+ return false;
+ }
+
+ return true;
+ }
+
+ private static void writeLmkd(ByteBuffer buf) {
+
+ for (int i = 0; i < 3; i++) {
+ if (sLmkdSocket == null) {
+ if (openLmkdSocket() == false) {
+ try {
+ Thread.sleep(1000);
+ } catch (InterruptedException ie) {
+ }
+ continue;
+ }
+ }
+
+ try {
+ sLmkdOutputStream.write(buf.array(), 0, buf.position());
+ return;
+ } catch (IOException ex) {
+ Slog.w(ActivityManagerService.TAG,
+ "Error writing to lowmemorykiller socket");
+
try {
- fos.close();
- } catch (IOException e) {
+ sLmkdSocket.close();
+ } catch (IOException ex2) {
}
+
+ sLmkdSocket = null;
}
}
}
diff --git a/services/java/com/android/server/am/ProcessMemInfo.java b/services/core/java/com/android/server/am/ProcessMemInfo.java
similarity index 100%
rename from services/java/com/android/server/am/ProcessMemInfo.java
rename to services/core/java/com/android/server/am/ProcessMemInfo.java
diff --git a/services/java/com/android/server/am/ProcessRecord.java b/services/core/java/com/android/server/am/ProcessRecord.java
similarity index 100%
rename from services/java/com/android/server/am/ProcessRecord.java
rename to services/core/java/com/android/server/am/ProcessRecord.java
diff --git a/services/java/com/android/server/am/ProcessStatsService.java b/services/core/java/com/android/server/am/ProcessStatsService.java
similarity index 100%
rename from services/java/com/android/server/am/ProcessStatsService.java
rename to services/core/java/com/android/server/am/ProcessStatsService.java
diff --git a/services/java/com/android/server/am/ProviderMap.java b/services/core/java/com/android/server/am/ProviderMap.java
similarity index 100%
rename from services/java/com/android/server/am/ProviderMap.java
rename to services/core/java/com/android/server/am/ProviderMap.java
diff --git a/services/java/com/android/server/am/ReceiverList.java b/services/core/java/com/android/server/am/ReceiverList.java
similarity index 100%
rename from services/java/com/android/server/am/ReceiverList.java
rename to services/core/java/com/android/server/am/ReceiverList.java
diff --git a/services/java/com/android/server/am/ServiceRecord.java b/services/core/java/com/android/server/am/ServiceRecord.java
similarity index 98%
rename from services/java/com/android/server/am/ServiceRecord.java
rename to services/core/java/com/android/server/am/ServiceRecord.java
index 80e6e94..cb04835 100644
--- a/services/java/com/android/server/am/ServiceRecord.java
+++ b/services/core/java/com/android/server/am/ServiceRecord.java
@@ -18,7 +18,8 @@
import com.android.internal.app.ProcessStats;
import com.android.internal.os.BatteryStatsImpl;
-import com.android.server.NotificationManagerService;
+import com.android.server.LocalServices;
+import com.android.server.notification.NotificationManagerInternal;
import android.app.INotificationManager;
import android.app.Notification;
@@ -427,8 +428,8 @@
final Notification localForegroundNoti = foregroundNoti;
ams.mHandler.post(new Runnable() {
public void run() {
- NotificationManagerService nm =
- (NotificationManagerService) NotificationManager.getService();
+ NotificationManagerInternal nm = LocalServices.getService(
+ NotificationManagerInternal.class);
if (nm == null) {
return;
}
@@ -479,7 +480,7 @@
throw new RuntimeException("icon must be non-zero");
}
int[] outId = new int[1];
- nm.enqueueNotificationInternal(localPackageName, localPackageName,
+ nm.enqueueNotification(localPackageName, localPackageName,
appUid, appPid, null, localForegroundId, localForegroundNoti,
outId, userId);
} catch (RuntimeException e) {
diff --git a/services/java/com/android/server/am/StrictModeViolationDialog.java b/services/core/java/com/android/server/am/StrictModeViolationDialog.java
similarity index 100%
rename from services/java/com/android/server/am/StrictModeViolationDialog.java
rename to services/core/java/com/android/server/am/StrictModeViolationDialog.java
diff --git a/services/java/com/android/server/am/TaskAccessInfo.java b/services/core/java/com/android/server/am/TaskAccessInfo.java
similarity index 100%
rename from services/java/com/android/server/am/TaskAccessInfo.java
rename to services/core/java/com/android/server/am/TaskAccessInfo.java
diff --git a/services/java/com/android/server/am/TaskRecord.java b/services/core/java/com/android/server/am/TaskRecord.java
similarity index 95%
rename from services/java/com/android/server/am/TaskRecord.java
rename to services/core/java/com/android/server/am/TaskRecord.java
index 3d568ff..9740812 100644
--- a/services/java/com/android/server/am/TaskRecord.java
+++ b/services/core/java/com/android/server/am/TaskRecord.java
@@ -60,7 +60,8 @@
/** Takes on same set of values as ActivityRecord.mActivityType */
private int mTaskType;
- /** Launch the home activity when leaving this task. */
+ /** Launch the home activity when leaving this task. Will be false for tasks that are not on
+ * Display.DEFAULT_DISPLAY. */
boolean mOnTopOfHome = false;
TaskRecord(int _taskId, ActivityInfo info, Intent _intent) {
@@ -159,18 +160,33 @@
return null;
}
+ /** Call after activity movement or finish to make sure that frontOfTask is set correctly */
+ final void setFrontOfTask() {
+ boolean foundFront = false;
+ final int numActivities = mActivities.size();
+ for (int activityNdx = 0; activityNdx < numActivities; ++activityNdx) {
+ final ActivityRecord r = mActivities.get(activityNdx);
+ if (foundFront || r.finishing) {
+ r.frontOfTask = false;
+ } else {
+ r.frontOfTask = true;
+ // Set frontOfTask false for every following activity.
+ foundFront = true;
+ }
+ }
+ }
+
/**
- * Reorder the history stack so that the activity at the given index is
- * brought to the front.
+ * Reorder the history stack so that the passed activity is brought to the front.
*/
final void moveActivityToFrontLocked(ActivityRecord newTop) {
if (DEBUG_ADD_REMOVE) Slog.i(TAG, "Removing and adding activity " + newTop
+ " to stack at top", new RuntimeException("here").fillInStackTrace());
- getTopActivity().frontOfTask = false;
mActivities.remove(newTop);
mActivities.add(newTop);
- newTop.frontOfTask = true;
+
+ setFrontOfTask();
}
void addActivityAtBottom(ActivityRecord r) {
diff --git a/services/java/com/android/server/am/ThumbnailHolder.java b/services/core/java/com/android/server/am/ThumbnailHolder.java
similarity index 100%
rename from services/java/com/android/server/am/ThumbnailHolder.java
rename to services/core/java/com/android/server/am/ThumbnailHolder.java
diff --git a/services/java/com/android/server/am/UriPermission.java b/services/core/java/com/android/server/am/UriPermission.java
similarity index 100%
rename from services/java/com/android/server/am/UriPermission.java
rename to services/core/java/com/android/server/am/UriPermission.java
diff --git a/services/java/com/android/server/am/UriPermissionOwner.java b/services/core/java/com/android/server/am/UriPermissionOwner.java
similarity index 100%
rename from services/java/com/android/server/am/UriPermissionOwner.java
rename to services/core/java/com/android/server/am/UriPermissionOwner.java
diff --git a/services/java/com/android/server/am/UsageStatsService.java b/services/core/java/com/android/server/am/UsageStatsService.java
similarity index 100%
rename from services/java/com/android/server/am/UsageStatsService.java
rename to services/core/java/com/android/server/am/UsageStatsService.java
diff --git a/services/java/com/android/server/am/UserStartedState.java b/services/core/java/com/android/server/am/UserStartedState.java
similarity index 100%
rename from services/java/com/android/server/am/UserStartedState.java
rename to services/core/java/com/android/server/am/UserStartedState.java
diff --git a/services/java/com/android/server/am/package.html b/services/core/java/com/android/server/am/package.html
similarity index 100%
rename from services/java/com/android/server/am/package.html
rename to services/core/java/com/android/server/am/package.html
diff --git a/services/java/com/android/server/ClipboardService.java b/services/core/java/com/android/server/clipboard/ClipboardService.java
similarity index 99%
rename from services/java/com/android/server/ClipboardService.java
rename to services/core/java/com/android/server/clipboard/ClipboardService.java
index 069ae23..6aa596d 100644
--- a/services/java/com/android/server/ClipboardService.java
+++ b/services/core/java/com/android/server/clipboard/ClipboardService.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.server;
+package com.android.server.clipboard;
import android.app.ActivityManagerNative;
import android.app.AppGlobals;
diff --git a/services/java/com/android/server/connectivity/DataConnectionStats.java b/services/core/java/com/android/server/connectivity/DataConnectionStats.java
similarity index 100%
rename from services/java/com/android/server/connectivity/DataConnectionStats.java
rename to services/core/java/com/android/server/connectivity/DataConnectionStats.java
diff --git a/services/java/com/android/server/connectivity/Nat464Xlat.java b/services/core/java/com/android/server/connectivity/Nat464Xlat.java
similarity index 100%
rename from services/java/com/android/server/connectivity/Nat464Xlat.java
rename to services/core/java/com/android/server/connectivity/Nat464Xlat.java
diff --git a/services/java/com/android/server/connectivity/PacManager.java b/services/core/java/com/android/server/connectivity/PacManager.java
similarity index 100%
rename from services/java/com/android/server/connectivity/PacManager.java
rename to services/core/java/com/android/server/connectivity/PacManager.java
diff --git a/services/java/com/android/server/connectivity/Tethering.java b/services/core/java/com/android/server/connectivity/Tethering.java
similarity index 100%
rename from services/java/com/android/server/connectivity/Tethering.java
rename to services/core/java/com/android/server/connectivity/Tethering.java
diff --git a/services/java/com/android/server/connectivity/Vpn.java b/services/core/java/com/android/server/connectivity/Vpn.java
similarity index 100%
rename from services/java/com/android/server/connectivity/Vpn.java
rename to services/core/java/com/android/server/connectivity/Vpn.java
diff --git a/services/java/com/android/server/content/ContentService.java b/services/core/java/com/android/server/content/ContentService.java
similarity index 100%
rename from services/java/com/android/server/content/ContentService.java
rename to services/core/java/com/android/server/content/ContentService.java
diff --git a/services/java/com/android/server/content/SyncManager.java b/services/core/java/com/android/server/content/SyncManager.java
similarity index 100%
rename from services/java/com/android/server/content/SyncManager.java
rename to services/core/java/com/android/server/content/SyncManager.java
diff --git a/services/java/com/android/server/content/SyncOperation.java b/services/core/java/com/android/server/content/SyncOperation.java
similarity index 100%
rename from services/java/com/android/server/content/SyncOperation.java
rename to services/core/java/com/android/server/content/SyncOperation.java
diff --git a/services/java/com/android/server/content/SyncQueue.java b/services/core/java/com/android/server/content/SyncQueue.java
similarity index 100%
rename from services/java/com/android/server/content/SyncQueue.java
rename to services/core/java/com/android/server/content/SyncQueue.java
diff --git a/services/java/com/android/server/content/SyncStorageEngine.java b/services/core/java/com/android/server/content/SyncStorageEngine.java
similarity index 100%
rename from services/java/com/android/server/content/SyncStorageEngine.java
rename to services/core/java/com/android/server/content/SyncStorageEngine.java
diff --git a/services/java/com/android/server/display/DisplayAdapter.java b/services/core/java/com/android/server/display/DisplayAdapter.java
similarity index 100%
rename from services/java/com/android/server/display/DisplayAdapter.java
rename to services/core/java/com/android/server/display/DisplayAdapter.java
diff --git a/services/java/com/android/server/display/DisplayDevice.java b/services/core/java/com/android/server/display/DisplayDevice.java
similarity index 99%
rename from services/java/com/android/server/display/DisplayDevice.java
rename to services/core/java/com/android/server/display/DisplayDevice.java
index 4161147..9ec1122 100644
--- a/services/java/com/android/server/display/DisplayDevice.java
+++ b/services/core/java/com/android/server/display/DisplayDevice.java
@@ -17,6 +17,7 @@
package com.android.server.display;
import android.graphics.Rect;
+import android.hardware.display.DisplayViewport;
import android.os.IBinder;
import android.view.Surface;
import android.view.SurfaceControl;
diff --git a/services/java/com/android/server/display/DisplayDeviceInfo.java b/services/core/java/com/android/server/display/DisplayDeviceInfo.java
similarity index 95%
rename from services/java/com/android/server/display/DisplayDeviceInfo.java
rename to services/core/java/com/android/server/display/DisplayDeviceInfo.java
index 11c5d87..75f1f53 100644
--- a/services/java/com/android/server/display/DisplayDeviceInfo.java
+++ b/services/core/java/com/android/server/display/DisplayDeviceInfo.java
@@ -16,6 +16,7 @@
package com.android.server.display;
+import android.hardware.display.DisplayViewport;
import android.util.DisplayMetrics;
import android.view.Display;
import android.view.Surface;
@@ -63,6 +64,7 @@
/**
* Flag: Indicates that the display device is owned by a particular application
* and that no other application should be able to interact with it.
+ * Should typically be used together with {@link #FLAG_OWN_CONTENT_ONLY}.
*/
public static final int FLAG_PRIVATE = 1 << 4;
@@ -78,6 +80,12 @@
public static final int FLAG_PRESENTATION = 1 << 6;
/**
+ * Flag: Only show this display's own content; do not mirror
+ * the content of another display.
+ */
+ public static final int FLAG_OWN_CONTENT_ONLY = 1 << 7;
+
+ /**
* Touch attachment: Display does not receive touch.
*/
public static final int TOUCH_NONE = 0;
@@ -297,6 +305,9 @@
if ((flags & FLAG_PRESENTATION) != 0) {
msg.append(", FLAG_PRESENTATION");
}
+ if ((flags & FLAG_OWN_CONTENT_ONLY) != 0) {
+ msg.append(", FLAG_OWN_CONTENT_ONLY");
+ }
return msg.toString();
}
}
diff --git a/services/core/java/com/android/server/display/DisplayManagerService.java b/services/core/java/com/android/server/display/DisplayManagerService.java
new file mode 100644
index 0000000..d5ee838
--- /dev/null
+++ b/services/core/java/com/android/server/display/DisplayManagerService.java
@@ -0,0 +1,1367 @@
+/*
+ * Copyright (C) 2012 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.server.display;
+
+import com.android.internal.util.IndentingPrintWriter;
+
+import android.Manifest;
+import android.content.Context;
+import android.content.pm.PackageManager;
+import android.hardware.display.DisplayManager;
+import android.hardware.display.DisplayManagerGlobal;
+import android.hardware.display.DisplayManagerInternal;
+import android.hardware.display.DisplayViewport;
+import android.hardware.display.DisplayManagerInternal.DisplayTransactionListener;
+import android.hardware.display.IDisplayManager;
+import android.hardware.display.IDisplayManagerCallback;
+import android.hardware.display.WifiDisplayStatus;
+import android.hardware.input.InputManagerInternal;
+import android.os.Binder;
+import android.os.Handler;
+import android.os.IBinder;
+import android.os.IBinder.DeathRecipient;
+import android.os.Looper;
+import android.os.Message;
+import android.os.Process;
+import android.os.RemoteException;
+import android.os.SystemClock;
+import android.os.SystemProperties;
+import android.text.TextUtils;
+import android.util.Log;
+import android.util.Slog;
+import android.util.SparseArray;
+import android.view.Display;
+import android.view.DisplayInfo;
+import android.view.Surface;
+import android.view.WindowManagerInternal;
+
+import com.android.server.DisplayThread;
+import com.android.server.LocalServices;
+import com.android.server.SystemService;
+import com.android.server.UiThread;
+
+import java.io.FileDescriptor;
+import java.io.PrintWriter;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.concurrent.CopyOnWriteArrayList;
+
+/**
+ * Manages attached displays.
+ * <p>
+ * The {@link DisplayManagerService} manages the global lifecycle of displays,
+ * decides how to configure logical displays based on the physical display devices currently
+ * attached, sends notifications to the system and to applications when the state
+ * changes, and so on.
+ * </p><p>
+ * The display manager service relies on a collection of {@link DisplayAdapter} components,
+ * for discovering and configuring physical display devices attached to the system.
+ * There are separate display adapters for each manner that devices are attached:
+ * one display adapter for built-in local displays, one for simulated non-functional
+ * displays when the system is headless, one for simulated overlay displays used for
+ * development, one for wifi displays, etc.
+ * </p><p>
+ * Display adapters are only weakly coupled to the display manager service.
+ * Display adapters communicate changes in display device state to the display manager
+ * service asynchronously via a {@link DisplayAdapter.Listener} registered
+ * by the display manager service. This separation of concerns is important for
+ * two main reasons. First, it neatly encapsulates the responsibilities of these
+ * two classes: display adapters handle individual display devices whereas
+ * the display manager service handles the global state. Second, it eliminates
+ * the potential for deadlocks resulting from asynchronous display device discovery.
+ * </p>
+ *
+ * <h3>Synchronization</h3>
+ * <p>
+ * Because the display manager may be accessed by multiple threads, the synchronization
+ * story gets a little complicated. In particular, the window manager may call into
+ * the display manager while holding a surface transaction with the expectation that
+ * it can apply changes immediately. Unfortunately, that means we can't just do
+ * everything asynchronously (*grump*).
+ * </p><p>
+ * To make this work, all of the objects that belong to the display manager must
+ * use the same lock. We call this lock the synchronization root and it has a unique
+ * type {@link DisplayManagerService.SyncRoot}. Methods that require this lock are
+ * named with the "Locked" suffix.
+ * </p><p>
+ * Where things get tricky is that the display manager is not allowed to make
+ * any potentially reentrant calls, especially into the window manager. We generally
+ * avoid this by making all potentially reentrant out-calls asynchronous.
+ * </p>
+ */
+public final class DisplayManagerService extends SystemService {
+ private static final String TAG = "DisplayManagerService";
+ private static final boolean DEBUG = false;
+
+ // When this system property is set to 0, WFD is forcibly disabled on boot.
+ // When this system property is set to 1, WFD is forcibly enabled on boot.
+ // Otherwise WFD is enabled according to the value of config_enableWifiDisplay.
+ private static final String FORCE_WIFI_DISPLAY_ENABLE = "persist.debug.wfd.enable";
+
+ private static final long WAIT_FOR_DEFAULT_DISPLAY_TIMEOUT = 10000;
+
+ private static final int MSG_REGISTER_DEFAULT_DISPLAY_ADAPTER = 1;
+ private static final int MSG_REGISTER_ADDITIONAL_DISPLAY_ADAPTERS = 2;
+ private static final int MSG_DELIVER_DISPLAY_EVENT = 3;
+ private static final int MSG_REQUEST_TRAVERSAL = 4;
+ private static final int MSG_UPDATE_VIEWPORT = 5;
+
+ private static final int DISPLAY_BLANK_STATE_UNKNOWN = 0;
+ private static final int DISPLAY_BLANK_STATE_BLANKED = 1;
+ private static final int DISPLAY_BLANK_STATE_UNBLANKED = 2;
+
+ private Context mContext;
+ private final DisplayManagerHandler mHandler;
+ private final Handler mUiHandler;
+ private final DisplayAdapterListener mDisplayAdapterListener;
+ private WindowManagerInternal mWindowManagerInternal;
+ private InputManagerInternal mInputManagerInternal;
+
+ // The synchronization root for the display manager.
+ // This lock guards most of the display manager's state.
+ // NOTE: This is synchronized on while holding WindowManagerService.mWindowMap so never call
+ // into WindowManagerService methods that require mWindowMap while holding this unless you are
+ // very very sure that no deadlock can occur.
+ private final SyncRoot mSyncRoot = new SyncRoot();
+
+ // True if in safe mode.
+ // This option may disable certain display adapters.
+ public boolean mSafeMode;
+
+ // True if we are in a special boot mode where only core applications and
+ // services should be started. This option may disable certain display adapters.
+ public boolean mOnlyCore;
+
+ // True if the display manager service should pretend there is only one display
+ // and only tell applications about the existence of the default logical display.
+ // The display manager can still mirror content to secondary displays but applications
+ // cannot present unique content on those displays.
+ // Used for demonstration purposes only.
+ private final boolean mSingleDisplayDemoMode;
+
+ // All callback records indexed by calling process id.
+ public final SparseArray<CallbackRecord> mCallbacks =
+ new SparseArray<CallbackRecord>();
+
+ // List of all currently registered display adapters.
+ private final ArrayList<DisplayAdapter> mDisplayAdapters = new ArrayList<DisplayAdapter>();
+
+ // List of all currently connected display devices.
+ private final ArrayList<DisplayDevice> mDisplayDevices = new ArrayList<DisplayDevice>();
+
+ // List of all logical displays indexed by logical display id.
+ private final SparseArray<LogicalDisplay> mLogicalDisplays =
+ new SparseArray<LogicalDisplay>();
+ private int mNextNonDefaultDisplayId = Display.DEFAULT_DISPLAY + 1;
+
+ // List of all display transaction listeners.
+ private final CopyOnWriteArrayList<DisplayTransactionListener> mDisplayTransactionListeners =
+ new CopyOnWriteArrayList<DisplayTransactionListener>();
+
+ // Set to true if all displays have been blanked by the power manager.
+ private int mAllDisplayBlankStateFromPowerManager = DISPLAY_BLANK_STATE_UNKNOWN;
+
+ // Set to true when there are pending display changes that have yet to be applied
+ // to the surface flinger state.
+ private boolean mPendingTraversal;
+
+ // The Wifi display adapter, or null if not registered.
+ private WifiDisplayAdapter mWifiDisplayAdapter;
+
+ // The number of active wifi display scan requests.
+ private int mWifiDisplayScanRequestCount;
+
+ // The virtual display adapter, or null if not registered.
+ private VirtualDisplayAdapter mVirtualDisplayAdapter;
+
+ // Viewports of the default display and the display that should receive touch
+ // input from an external source. Used by the input system.
+ private final DisplayViewport mDefaultViewport = new DisplayViewport();
+ private final DisplayViewport mExternalTouchViewport = new DisplayViewport();
+
+ // Persistent data store for all internal settings maintained by the display manager service.
+ private final PersistentDataStore mPersistentDataStore = new PersistentDataStore();
+
+ // Temporary callback list, used when sending display events to applications.
+ // May be used outside of the lock but only on the handler thread.
+ private final ArrayList<CallbackRecord> mTempCallbacks = new ArrayList<CallbackRecord>();
+
+ // Temporary display info, used for comparing display configurations.
+ private final DisplayInfo mTempDisplayInfo = new DisplayInfo();
+
+ // Temporary viewports, used when sending new viewport information to the
+ // input system. May be used outside of the lock but only on the handler thread.
+ private final DisplayViewport mTempDefaultViewport = new DisplayViewport();
+ private final DisplayViewport mTempExternalTouchViewport = new DisplayViewport();
+
+ public DisplayManagerService() {
+ mHandler = new DisplayManagerHandler(DisplayThread.get().getLooper());
+ mUiHandler = UiThread.getHandler();
+ mDisplayAdapterListener = new DisplayAdapterListener();
+ mSingleDisplayDemoMode = SystemProperties.getBoolean("persist.demo.singledisplay", false);
+ }
+
+ @Override
+ public void onCreate(Context context) {
+ mContext = context;
+ }
+
+ @Override
+ public void onStart() {
+ mHandler.sendEmptyMessage(MSG_REGISTER_DEFAULT_DISPLAY_ADAPTER);
+
+ publishBinderService(Context.DISPLAY_SERVICE, new BinderService(),
+ true /*allowIsolated*/);
+ publishLocalService(DisplayManagerInternal.class, new LocalService());
+ }
+
+ @Override
+ public void onBootPhase(int phase) {
+ if (phase == PHASE_WAIT_FOR_DEFAULT_DISPLAY) {
+ synchronized (mSyncRoot) {
+ long timeout = SystemClock.uptimeMillis() + WAIT_FOR_DEFAULT_DISPLAY_TIMEOUT;
+ while (mLogicalDisplays.get(Display.DEFAULT_DISPLAY) == null) {
+ long delay = timeout - SystemClock.uptimeMillis();
+ if (delay <= 0) {
+ throw new RuntimeException("Timeout waiting for default display "
+ + "to be initialized.");
+ }
+ if (DEBUG) {
+ Slog.d(TAG, "waitForDefaultDisplay: waiting, timeout=" + delay);
+ }
+ try {
+ mSyncRoot.wait(delay);
+ } catch (InterruptedException ex) {
+ }
+ }
+ }
+ }
+ }
+
+ // TODO: Use dependencies or a boot phase
+ public void windowManagerAndInputReady() {
+ synchronized (mSyncRoot) {
+ mWindowManagerInternal = LocalServices.getService(WindowManagerInternal.class);
+ mInputManagerInternal = LocalServices.getService(InputManagerInternal.class);
+ scheduleTraversalLocked(false);
+ }
+ }
+
+ /**
+ * Called when the system is ready to go.
+ */
+ public void systemReady(boolean safeMode, boolean onlyCore) {
+ synchronized (mSyncRoot) {
+ mSafeMode = safeMode;
+ mOnlyCore = onlyCore;
+ }
+
+ mHandler.sendEmptyMessage(MSG_REGISTER_ADDITIONAL_DISPLAY_ADAPTERS);
+ }
+
+ private void registerDisplayTransactionListenerInternal(
+ DisplayTransactionListener listener) {
+ // List is self-synchronized copy-on-write.
+ mDisplayTransactionListeners.add(listener);
+ }
+
+ private void unregisterDisplayTransactionListenerInternal(
+ DisplayTransactionListener listener) {
+ // List is self-synchronized copy-on-write.
+ mDisplayTransactionListeners.remove(listener);
+ }
+
+ private void setDisplayInfoOverrideFromWindowManagerInternal(
+ int displayId, DisplayInfo info) {
+ synchronized (mSyncRoot) {
+ LogicalDisplay display = mLogicalDisplays.get(displayId);
+ if (display != null) {
+ if (display.setDisplayInfoOverrideFromWindowManagerLocked(info)) {
+ sendDisplayEventLocked(displayId, DisplayManagerGlobal.EVENT_DISPLAY_CHANGED);
+ scheduleTraversalLocked(false);
+ }
+ }
+ }
+ }
+
+ private void performTraversalInTransactionFromWindowManagerInternal() {
+ synchronized (mSyncRoot) {
+ if (!mPendingTraversal) {
+ return;
+ }
+ mPendingTraversal = false;
+
+ performTraversalInTransactionLocked();
+ }
+
+ // List is self-synchronized copy-on-write.
+ for (DisplayTransactionListener listener : mDisplayTransactionListeners) {
+ listener.onDisplayTransaction();
+ }
+ }
+
+ private void blankAllDisplaysFromPowerManagerInternal() {
+ synchronized (mSyncRoot) {
+ if (mAllDisplayBlankStateFromPowerManager != DISPLAY_BLANK_STATE_BLANKED) {
+ mAllDisplayBlankStateFromPowerManager = DISPLAY_BLANK_STATE_BLANKED;
+ updateAllDisplayBlankingLocked();
+ scheduleTraversalLocked(false);
+ }
+ }
+ }
+
+ private void unblankAllDisplaysFromPowerManagerInternal() {
+ synchronized (mSyncRoot) {
+ if (mAllDisplayBlankStateFromPowerManager != DISPLAY_BLANK_STATE_UNBLANKED) {
+ mAllDisplayBlankStateFromPowerManager = DISPLAY_BLANK_STATE_UNBLANKED;
+ updateAllDisplayBlankingLocked();
+ scheduleTraversalLocked(false);
+ }
+ }
+ }
+
+ private DisplayInfo getDisplayInfoInternal(int displayId, int callingUid) {
+ synchronized (mSyncRoot) {
+ LogicalDisplay display = mLogicalDisplays.get(displayId);
+ if (display != null) {
+ DisplayInfo info = display.getDisplayInfoLocked();
+ if (info.hasAccess(callingUid)) {
+ return info;
+ }
+ }
+ return null;
+ }
+ }
+
+ private int[] getDisplayIdsInternal(int callingUid) {
+ synchronized (mSyncRoot) {
+ final int count = mLogicalDisplays.size();
+ int[] displayIds = new int[count];
+ int n = 0;
+ for (int i = 0; i < count; i++) {
+ LogicalDisplay display = mLogicalDisplays.valueAt(i);
+ DisplayInfo info = display.getDisplayInfoLocked();
+ if (info.hasAccess(callingUid)) {
+ displayIds[n++] = mLogicalDisplays.keyAt(i);
+ }
+ }
+ if (n != count) {
+ displayIds = Arrays.copyOfRange(displayIds, 0, n);
+ }
+ return displayIds;
+ }
+ }
+
+ private void registerCallbackInternal(IDisplayManagerCallback callback, int callingPid) {
+ synchronized (mSyncRoot) {
+ if (mCallbacks.get(callingPid) != null) {
+ throw new SecurityException("The calling process has already "
+ + "registered an IDisplayManagerCallback.");
+ }
+
+ CallbackRecord record = new CallbackRecord(callingPid, callback);
+ try {
+ IBinder binder = callback.asBinder();
+ binder.linkToDeath(record, 0);
+ } catch (RemoteException ex) {
+ // give up
+ throw new RuntimeException(ex);
+ }
+
+ mCallbacks.put(callingPid, record);
+ }
+ }
+
+ private void onCallbackDied(CallbackRecord record) {
+ synchronized (mSyncRoot) {
+ mCallbacks.remove(record.mPid);
+ stopWifiDisplayScanLocked(record);
+ }
+ }
+
+ private void startWifiDisplayScanInternal(int callingPid) {
+ synchronized (mSyncRoot) {
+ CallbackRecord record = mCallbacks.get(callingPid);
+ if (record == null) {
+ throw new IllegalStateException("The calling process has not "
+ + "registered an IDisplayManagerCallback.");
+ }
+ startWifiDisplayScanLocked(record);
+ }
+ }
+
+ private void startWifiDisplayScanLocked(CallbackRecord record) {
+ if (!record.mWifiDisplayScanRequested) {
+ record.mWifiDisplayScanRequested = true;
+ if (mWifiDisplayScanRequestCount++ == 0) {
+ if (mWifiDisplayAdapter != null) {
+ mWifiDisplayAdapter.requestStartScanLocked();
+ }
+ }
+ }
+ }
+
+ private void stopWifiDisplayScanInternal(int callingPid) {
+ synchronized (mSyncRoot) {
+ CallbackRecord record = mCallbacks.get(callingPid);
+ if (record == null) {
+ throw new IllegalStateException("The calling process has not "
+ + "registered an IDisplayManagerCallback.");
+ }
+ stopWifiDisplayScanLocked(record);
+ }
+ }
+
+ private void stopWifiDisplayScanLocked(CallbackRecord record) {
+ if (record.mWifiDisplayScanRequested) {
+ record.mWifiDisplayScanRequested = false;
+ if (--mWifiDisplayScanRequestCount == 0) {
+ if (mWifiDisplayAdapter != null) {
+ mWifiDisplayAdapter.requestStopScanLocked();
+ }
+ } else if (mWifiDisplayScanRequestCount < 0) {
+ Log.wtf(TAG, "mWifiDisplayScanRequestCount became negative: "
+ + mWifiDisplayScanRequestCount);
+ mWifiDisplayScanRequestCount = 0;
+ }
+ }
+ }
+
+ private void connectWifiDisplayInternal(String address) {
+ synchronized (mSyncRoot) {
+ if (mWifiDisplayAdapter != null) {
+ mWifiDisplayAdapter.requestConnectLocked(address);
+ }
+ }
+ }
+
+ private void pauseWifiDisplayInternal() {
+ synchronized (mSyncRoot) {
+ if (mWifiDisplayAdapter != null) {
+ mWifiDisplayAdapter.requestPauseLocked();
+ }
+ }
+ }
+
+ private void resumeWifiDisplayInternal() {
+ synchronized (mSyncRoot) {
+ if (mWifiDisplayAdapter != null) {
+ mWifiDisplayAdapter.requestResumeLocked();
+ }
+ }
+ }
+
+ private void disconnectWifiDisplayInternal() {
+ synchronized (mSyncRoot) {
+ if (mWifiDisplayAdapter != null) {
+ mWifiDisplayAdapter.requestDisconnectLocked();
+ }
+ }
+ }
+
+ private void renameWifiDisplayInternal(String address, String alias) {
+ synchronized (mSyncRoot) {
+ if (mWifiDisplayAdapter != null) {
+ mWifiDisplayAdapter.requestRenameLocked(address, alias);
+ }
+ }
+ }
+
+ private void forgetWifiDisplayInternal(String address) {
+ synchronized (mSyncRoot) {
+ if (mWifiDisplayAdapter != null) {
+ mWifiDisplayAdapter.requestForgetLocked(address);
+ }
+ }
+ }
+
+ private WifiDisplayStatus getWifiDisplayStatusInternal() {
+ synchronized (mSyncRoot) {
+ if (mWifiDisplayAdapter != null) {
+ return mWifiDisplayAdapter.getWifiDisplayStatusLocked();
+ }
+ return new WifiDisplayStatus();
+ }
+ }
+
+ private int createVirtualDisplayInternal(IBinder appToken, int callingUid, String packageName,
+ String name, int width, int height, int densityDpi, Surface surface, int flags) {
+ synchronized (mSyncRoot) {
+ if (mVirtualDisplayAdapter == null) {
+ Slog.w(TAG, "Rejecting request to create private virtual display "
+ + "because the virtual display adapter is not available.");
+ return -1;
+ }
+
+ DisplayDevice device = mVirtualDisplayAdapter.createVirtualDisplayLocked(
+ appToken, callingUid, packageName, name, width, height, densityDpi,
+ surface, flags);
+ if (device == null) {
+ return -1;
+ }
+
+ handleDisplayDeviceAddedLocked(device);
+ LogicalDisplay display = findLogicalDisplayForDeviceLocked(device);
+ if (display != null) {
+ return display.getDisplayIdLocked();
+ }
+
+ // Something weird happened and the logical display was not created.
+ Slog.w(TAG, "Rejecting request to create virtual display "
+ + "because the logical display was not created.");
+ mVirtualDisplayAdapter.releaseVirtualDisplayLocked(appToken);
+ handleDisplayDeviceRemovedLocked(device);
+ }
+ return -1;
+ }
+
+ private void releaseVirtualDisplayInternal(IBinder appToken) {
+ synchronized (mSyncRoot) {
+ if (mVirtualDisplayAdapter == null) {
+ return;
+ }
+
+ DisplayDevice device =
+ mVirtualDisplayAdapter.releaseVirtualDisplayLocked(appToken);
+ if (device != null) {
+ handleDisplayDeviceRemovedLocked(device);
+ }
+ }
+ }
+
+ private void registerDefaultDisplayAdapter() {
+ // Register default display adapter.
+ synchronized (mSyncRoot) {
+ registerDisplayAdapterLocked(new LocalDisplayAdapter(
+ mSyncRoot, mContext, mHandler, mDisplayAdapterListener));
+ }
+ }
+
+ private void registerAdditionalDisplayAdapters() {
+ synchronized (mSyncRoot) {
+ if (shouldRegisterNonEssentialDisplayAdaptersLocked()) {
+ registerOverlayDisplayAdapterLocked();
+ registerWifiDisplayAdapterLocked();
+ registerVirtualDisplayAdapterLocked();
+ }
+ }
+ }
+
+ private void registerOverlayDisplayAdapterLocked() {
+ registerDisplayAdapterLocked(new OverlayDisplayAdapter(
+ mSyncRoot, mContext, mHandler, mDisplayAdapterListener, mUiHandler));
+ }
+
+ private void registerWifiDisplayAdapterLocked() {
+ if (mContext.getResources().getBoolean(
+ com.android.internal.R.bool.config_enableWifiDisplay)
+ || SystemProperties.getInt(FORCE_WIFI_DISPLAY_ENABLE, -1) == 1) {
+ mWifiDisplayAdapter = new WifiDisplayAdapter(
+ mSyncRoot, mContext, mHandler, mDisplayAdapterListener,
+ mPersistentDataStore);
+ registerDisplayAdapterLocked(mWifiDisplayAdapter);
+ }
+ }
+
+ private void registerVirtualDisplayAdapterLocked() {
+ mVirtualDisplayAdapter = new VirtualDisplayAdapter(
+ mSyncRoot, mContext, mHandler, mDisplayAdapterListener);
+ registerDisplayAdapterLocked(mVirtualDisplayAdapter);
+ }
+
+ private boolean shouldRegisterNonEssentialDisplayAdaptersLocked() {
+ // In safe mode, we disable non-essential display adapters to give the user
+ // an opportunity to fix broken settings or other problems that might affect
+ // system stability.
+ // In only-core mode, we disable non-essential display adapters to minimize
+ // the number of dependencies that are started while in this mode and to
+ // prevent problems that might occur due to the device being encrypted.
+ return !mSafeMode && !mOnlyCore;
+ }
+
+ private void registerDisplayAdapterLocked(DisplayAdapter adapter) {
+ mDisplayAdapters.add(adapter);
+ adapter.registerLocked();
+ }
+
+ private void handleDisplayDeviceAdded(DisplayDevice device) {
+ synchronized (mSyncRoot) {
+ handleDisplayDeviceAddedLocked(device);
+ }
+ }
+
+ private void handleDisplayDeviceAddedLocked(DisplayDevice device) {
+ if (mDisplayDevices.contains(device)) {
+ Slog.w(TAG, "Attempted to add already added display device: "
+ + device.getDisplayDeviceInfoLocked());
+ return;
+ }
+
+ Slog.i(TAG, "Display device added: " + device.getDisplayDeviceInfoLocked());
+
+ mDisplayDevices.add(device);
+ addLogicalDisplayLocked(device);
+ updateDisplayBlankingLocked(device);
+ scheduleTraversalLocked(false);
+ }
+
+ private void handleDisplayDeviceChanged(DisplayDevice device) {
+ synchronized (mSyncRoot) {
+ if (!mDisplayDevices.contains(device)) {
+ Slog.w(TAG, "Attempted to change non-existent display device: "
+ + device.getDisplayDeviceInfoLocked());
+ return;
+ }
+
+ Slog.i(TAG, "Display device changed: " + device.getDisplayDeviceInfoLocked());
+
+ device.applyPendingDisplayDeviceInfoChangesLocked();
+ if (updateLogicalDisplaysLocked()) {
+ scheduleTraversalLocked(false);
+ }
+ }
+ }
+
+ private void handleDisplayDeviceRemoved(DisplayDevice device) {
+ synchronized (mSyncRoot) {
+ handleDisplayDeviceRemovedLocked(device);
+ }
+ }
+ private void handleDisplayDeviceRemovedLocked(DisplayDevice device) {
+ if (!mDisplayDevices.remove(device)) {
+ Slog.w(TAG, "Attempted to remove non-existent display device: "
+ + device.getDisplayDeviceInfoLocked());
+ return;
+ }
+
+ Slog.i(TAG, "Display device removed: " + device.getDisplayDeviceInfoLocked());
+
+ updateLogicalDisplaysLocked();
+ scheduleTraversalLocked(false);
+ }
+
+ private void updateAllDisplayBlankingLocked() {
+ final int count = mDisplayDevices.size();
+ for (int i = 0; i < count; i++) {
+ DisplayDevice device = mDisplayDevices.get(i);
+ updateDisplayBlankingLocked(device);
+ }
+ }
+
+ private void updateDisplayBlankingLocked(DisplayDevice device) {
+ // Blank or unblank the display immediately to match the state requested
+ // by the power manager (if known).
+ DisplayDeviceInfo info = device.getDisplayDeviceInfoLocked();
+ if ((info.flags & DisplayDeviceInfo.FLAG_NEVER_BLANK) == 0) {
+ switch (mAllDisplayBlankStateFromPowerManager) {
+ case DISPLAY_BLANK_STATE_BLANKED:
+ device.blankLocked();
+ break;
+ case DISPLAY_BLANK_STATE_UNBLANKED:
+ device.unblankLocked();
+ break;
+ }
+ }
+ }
+
+ // Adds a new logical display based on the given display device.
+ // Sends notifications if needed.
+ private void addLogicalDisplayLocked(DisplayDevice device) {
+ DisplayDeviceInfo deviceInfo = device.getDisplayDeviceInfoLocked();
+ boolean isDefault = (deviceInfo.flags
+ & DisplayDeviceInfo.FLAG_DEFAULT_DISPLAY) != 0;
+ if (isDefault && mLogicalDisplays.get(Display.DEFAULT_DISPLAY) != null) {
+ Slog.w(TAG, "Ignoring attempt to add a second default display: " + deviceInfo);
+ isDefault = false;
+ }
+
+ if (!isDefault && mSingleDisplayDemoMode) {
+ Slog.i(TAG, "Not creating a logical display for a secondary display "
+ + " because single display demo mode is enabled: " + deviceInfo);
+ return;
+ }
+
+ final int displayId = assignDisplayIdLocked(isDefault);
+ final int layerStack = assignLayerStackLocked(displayId);
+
+ LogicalDisplay display = new LogicalDisplay(displayId, layerStack, device);
+ display.updateLocked(mDisplayDevices);
+ if (!display.isValidLocked()) {
+ // This should never happen currently.
+ Slog.w(TAG, "Ignoring display device because the logical display "
+ + "created from it was not considered valid: " + deviceInfo);
+ return;
+ }
+
+ mLogicalDisplays.put(displayId, display);
+
+ // Wake up waitForDefaultDisplay.
+ if (isDefault) {
+ mSyncRoot.notifyAll();
+ }
+
+ sendDisplayEventLocked(displayId, DisplayManagerGlobal.EVENT_DISPLAY_ADDED);
+ }
+
+ private int assignDisplayIdLocked(boolean isDefault) {
+ return isDefault ? Display.DEFAULT_DISPLAY : mNextNonDefaultDisplayId++;
+ }
+
+ private int assignLayerStackLocked(int displayId) {
+ // Currently layer stacks and display ids are the same.
+ // This need not be the case.
+ return displayId;
+ }
+
+ // Updates all existing logical displays given the current set of display devices.
+ // Removes invalid logical displays.
+ // Sends notifications if needed.
+ private boolean updateLogicalDisplaysLocked() {
+ boolean changed = false;
+ for (int i = mLogicalDisplays.size(); i-- > 0; ) {
+ final int displayId = mLogicalDisplays.keyAt(i);
+ LogicalDisplay display = mLogicalDisplays.valueAt(i);
+
+ mTempDisplayInfo.copyFrom(display.getDisplayInfoLocked());
+ display.updateLocked(mDisplayDevices);
+ if (!display.isValidLocked()) {
+ mLogicalDisplays.removeAt(i);
+ sendDisplayEventLocked(displayId, DisplayManagerGlobal.EVENT_DISPLAY_REMOVED);
+ changed = true;
+ } else if (!mTempDisplayInfo.equals(display.getDisplayInfoLocked())) {
+ sendDisplayEventLocked(displayId, DisplayManagerGlobal.EVENT_DISPLAY_CHANGED);
+ changed = true;
+ }
+ }
+ return changed;
+ }
+
+ private void performTraversalInTransactionLocked() {
+ // Clear all viewports before configuring displays so that we can keep
+ // track of which ones we have configured.
+ clearViewportsLocked();
+
+ // Configure each display device.
+ final int count = mDisplayDevices.size();
+ for (int i = 0; i < count; i++) {
+ DisplayDevice device = mDisplayDevices.get(i);
+ configureDisplayInTransactionLocked(device);
+ device.performTraversalInTransactionLocked();
+ }
+
+ // Tell the input system about these new viewports.
+ if (mInputManagerInternal != null) {
+ mHandler.sendEmptyMessage(MSG_UPDATE_VIEWPORT);
+ }
+ }
+
+ private void setDisplayHasContentInternal(int displayId, boolean hasContent,
+ boolean inTraversal) {
+ synchronized (mSyncRoot) {
+ LogicalDisplay display = mLogicalDisplays.get(displayId);
+ if (display != null && display.hasContentLocked() != hasContent) {
+ if (DEBUG) {
+ Slog.d(TAG, "Display " + displayId + " hasContent flag changed: "
+ + "hasContent=" + hasContent + ", inTraversal=" + inTraversal);
+ }
+
+ display.setHasContentLocked(hasContent);
+ scheduleTraversalLocked(inTraversal);
+ }
+ }
+ }
+
+ private void clearViewportsLocked() {
+ mDefaultViewport.valid = false;
+ mExternalTouchViewport.valid = false;
+ }
+
+ private void configureDisplayInTransactionLocked(DisplayDevice device) {
+ final DisplayDeviceInfo info = device.getDisplayDeviceInfoLocked();
+ final boolean ownContent = (info.flags & DisplayDeviceInfo.FLAG_OWN_CONTENT_ONLY) != 0;
+
+ // Find the logical display that the display device is showing.
+ // Certain displays only ever show their own content.
+ LogicalDisplay display = findLogicalDisplayForDeviceLocked(device);
+ if (!ownContent) {
+ if (display != null && !display.hasContentLocked()) {
+ // If the display does not have any content of its own, then
+ // automatically mirror the default logical display contents.
+ display = null;
+ }
+ if (display == null) {
+ display = mLogicalDisplays.get(Display.DEFAULT_DISPLAY);
+ }
+ }
+
+ // Apply the logical display configuration to the display device.
+ if (display == null) {
+ // TODO: no logical display for the device, blank it
+ Slog.w(TAG, "Missing logical display to use for physical display device: "
+ + device.getDisplayDeviceInfoLocked());
+ return;
+ }
+ boolean isBlanked = (mAllDisplayBlankStateFromPowerManager == DISPLAY_BLANK_STATE_BLANKED)
+ && (info.flags & DisplayDeviceInfo.FLAG_NEVER_BLANK) == 0;
+ display.configureDisplayInTransactionLocked(device, isBlanked);
+
+ // Update the viewports if needed.
+ if (!mDefaultViewport.valid
+ && (info.flags & DisplayDeviceInfo.FLAG_DEFAULT_DISPLAY) != 0) {
+ setViewportLocked(mDefaultViewport, display, device);
+ }
+ if (!mExternalTouchViewport.valid
+ && info.touch == DisplayDeviceInfo.TOUCH_EXTERNAL) {
+ setViewportLocked(mExternalTouchViewport, display, device);
+ }
+ }
+
+ private static void setViewportLocked(DisplayViewport viewport,
+ LogicalDisplay display, DisplayDevice device) {
+ viewport.valid = true;
+ viewport.displayId = display.getDisplayIdLocked();
+ device.populateViewportLocked(viewport);
+ }
+
+ private LogicalDisplay findLogicalDisplayForDeviceLocked(DisplayDevice device) {
+ final int count = mLogicalDisplays.size();
+ for (int i = 0; i < count; i++) {
+ LogicalDisplay display = mLogicalDisplays.valueAt(i);
+ if (display.getPrimaryDisplayDeviceLocked() == device) {
+ return display;
+ }
+ }
+ return null;
+ }
+
+ private void sendDisplayEventLocked(int displayId, int event) {
+ Message msg = mHandler.obtainMessage(MSG_DELIVER_DISPLAY_EVENT, displayId, event);
+ mHandler.sendMessage(msg);
+ }
+
+ // Requests that performTraversalsInTransactionFromWindowManager be called at a
+ // later time to apply changes to surfaces and displays.
+ private void scheduleTraversalLocked(boolean inTraversal) {
+ if (!mPendingTraversal && mWindowManagerInternal != null) {
+ mPendingTraversal = true;
+ if (!inTraversal) {
+ mHandler.sendEmptyMessage(MSG_REQUEST_TRAVERSAL);
+ }
+ }
+ }
+
+ // Runs on Handler thread.
+ // Delivers display event notifications to callbacks.
+ private void deliverDisplayEvent(int displayId, int event) {
+ if (DEBUG) {
+ Slog.d(TAG, "Delivering display event: displayId="
+ + displayId + ", event=" + event);
+ }
+
+ // Grab the lock and copy the callbacks.
+ final int count;
+ synchronized (mSyncRoot) {
+ count = mCallbacks.size();
+ mTempCallbacks.clear();
+ for (int i = 0; i < count; i++) {
+ mTempCallbacks.add(mCallbacks.valueAt(i));
+ }
+ }
+
+ // After releasing the lock, send the notifications out.
+ for (int i = 0; i < count; i++) {
+ mTempCallbacks.get(i).notifyDisplayEventAsync(displayId, event);
+ }
+ mTempCallbacks.clear();
+ }
+
+ private void dumpInternal(PrintWriter pw) {
+ pw.println("DISPLAY MANAGER (dumpsys display)");
+
+ synchronized (mSyncRoot) {
+ pw.println(" mOnlyCode=" + mOnlyCore);
+ pw.println(" mSafeMode=" + mSafeMode);
+ pw.println(" mPendingTraversal=" + mPendingTraversal);
+ pw.println(" mAllDisplayBlankStateFromPowerManager="
+ + mAllDisplayBlankStateFromPowerManager);
+ pw.println(" mNextNonDefaultDisplayId=" + mNextNonDefaultDisplayId);
+ pw.println(" mDefaultViewport=" + mDefaultViewport);
+ pw.println(" mExternalTouchViewport=" + mExternalTouchViewport);
+ pw.println(" mSingleDisplayDemoMode=" + mSingleDisplayDemoMode);
+ pw.println(" mWifiDisplayScanRequestCount=" + mWifiDisplayScanRequestCount);
+
+ IndentingPrintWriter ipw = new IndentingPrintWriter(pw, " ");
+ ipw.increaseIndent();
+
+ pw.println();
+ pw.println("Display Adapters: size=" + mDisplayAdapters.size());
+ for (DisplayAdapter adapter : mDisplayAdapters) {
+ pw.println(" " + adapter.getName());
+ adapter.dumpLocked(ipw);
+ }
+
+ pw.println();
+ pw.println("Display Devices: size=" + mDisplayDevices.size());
+ for (DisplayDevice device : mDisplayDevices) {
+ pw.println(" " + device.getDisplayDeviceInfoLocked());
+ device.dumpLocked(ipw);
+ }
+
+ final int logicalDisplayCount = mLogicalDisplays.size();
+ pw.println();
+ pw.println("Logical Displays: size=" + logicalDisplayCount);
+ for (int i = 0; i < logicalDisplayCount; i++) {
+ int displayId = mLogicalDisplays.keyAt(i);
+ LogicalDisplay display = mLogicalDisplays.valueAt(i);
+ pw.println(" Display " + displayId + ":");
+ display.dumpLocked(ipw);
+ }
+
+ final int callbackCount = mCallbacks.size();
+ pw.println();
+ pw.println("Callbacks: size=" + callbackCount);
+ for (int i = 0; i < callbackCount; i++) {
+ CallbackRecord callback = mCallbacks.valueAt(i);
+ pw.println(" " + i + ": mPid=" + callback.mPid
+ + ", mWifiDisplayScanRequested=" + callback.mWifiDisplayScanRequested);
+ }
+ }
+ }
+
+ /**
+ * This is the object that everything in the display manager locks on.
+ * We make it an inner class within the {@link DisplayManagerService} to so that it is
+ * clear that the object belongs to the display manager service and that it is
+ * a unique object with a special purpose.
+ */
+ public static final class SyncRoot {
+ }
+
+ private final class DisplayManagerHandler extends Handler {
+ public DisplayManagerHandler(Looper looper) {
+ super(looper, null, true /*async*/);
+ }
+
+ @Override
+ public void handleMessage(Message msg) {
+ switch (msg.what) {
+ case MSG_REGISTER_DEFAULT_DISPLAY_ADAPTER:
+ registerDefaultDisplayAdapter();
+ break;
+
+ case MSG_REGISTER_ADDITIONAL_DISPLAY_ADAPTERS:
+ registerAdditionalDisplayAdapters();
+ break;
+
+ case MSG_DELIVER_DISPLAY_EVENT:
+ deliverDisplayEvent(msg.arg1, msg.arg2);
+ break;
+
+ case MSG_REQUEST_TRAVERSAL:
+ mWindowManagerInternal.requestTraversalFromDisplayManager();
+ break;
+
+ case MSG_UPDATE_VIEWPORT: {
+ synchronized (mSyncRoot) {
+ mTempDefaultViewport.copyFrom(mDefaultViewport);
+ mTempExternalTouchViewport.copyFrom(mExternalTouchViewport);
+ }
+ mInputManagerInternal.setDisplayViewports(
+ mTempDefaultViewport, mTempExternalTouchViewport);
+ break;
+ }
+ }
+ }
+ }
+
+ private final class DisplayAdapterListener implements DisplayAdapter.Listener {
+ @Override
+ public void onDisplayDeviceEvent(DisplayDevice device, int event) {
+ switch (event) {
+ case DisplayAdapter.DISPLAY_DEVICE_EVENT_ADDED:
+ handleDisplayDeviceAdded(device);
+ break;
+
+ case DisplayAdapter.DISPLAY_DEVICE_EVENT_CHANGED:
+ handleDisplayDeviceChanged(device);
+ break;
+
+ case DisplayAdapter.DISPLAY_DEVICE_EVENT_REMOVED:
+ handleDisplayDeviceRemoved(device);
+ break;
+ }
+ }
+
+ @Override
+ public void onTraversalRequested() {
+ synchronized (mSyncRoot) {
+ scheduleTraversalLocked(false);
+ }
+ }
+ }
+
+ private final class CallbackRecord implements DeathRecipient {
+ public final int mPid;
+ private final IDisplayManagerCallback mCallback;
+
+ public boolean mWifiDisplayScanRequested;
+
+ public CallbackRecord(int pid, IDisplayManagerCallback callback) {
+ mPid = pid;
+ mCallback = callback;
+ }
+
+ @Override
+ public void binderDied() {
+ if (DEBUG) {
+ Slog.d(TAG, "Display listener for pid " + mPid + " died.");
+ }
+ onCallbackDied(this);
+ }
+
+ public void notifyDisplayEventAsync(int displayId, int event) {
+ try {
+ mCallback.onDisplayEvent(displayId, event);
+ } catch (RemoteException ex) {
+ Slog.w(TAG, "Failed to notify process "
+ + mPid + " that displays changed, assuming it died.", ex);
+ binderDied();
+ }
+ }
+ }
+
+ private final class BinderService extends IDisplayManager.Stub {
+ /**
+ * Returns information about the specified logical display.
+ *
+ * @param displayId The logical display id.
+ * @return The logical display info, or null if the display does not exist. The
+ * returned object must be treated as immutable.
+ */
+ @Override // Binder call
+ public DisplayInfo getDisplayInfo(int displayId) {
+ final int callingUid = Binder.getCallingUid();
+ final long token = Binder.clearCallingIdentity();
+ try {
+ return getDisplayInfoInternal(displayId, callingUid);
+ } finally {
+ Binder.restoreCallingIdentity(token);
+ }
+ }
+
+ /**
+ * Returns the list of all display ids.
+ */
+ @Override // Binder call
+ public int[] getDisplayIds() {
+ final int callingUid = Binder.getCallingUid();
+ final long token = Binder.clearCallingIdentity();
+ try {
+ return getDisplayIdsInternal(callingUid);
+ } finally {
+ Binder.restoreCallingIdentity(token);
+ }
+ }
+
+ @Override // Binder call
+ public void registerCallback(IDisplayManagerCallback callback) {
+ if (callback == null) {
+ throw new IllegalArgumentException("listener must not be null");
+ }
+
+ final int callingPid = Binder.getCallingPid();
+ final long token = Binder.clearCallingIdentity();
+ try {
+ registerCallbackInternal(callback, callingPid);
+ } finally {
+ Binder.restoreCallingIdentity(token);
+ }
+ }
+
+ @Override // Binder call
+ public void startWifiDisplayScan() {
+ mContext.enforceCallingOrSelfPermission(Manifest.permission.CONFIGURE_WIFI_DISPLAY,
+ "Permission required to start wifi display scans");
+
+ final int callingPid = Binder.getCallingPid();
+ final long token = Binder.clearCallingIdentity();
+ try {
+ startWifiDisplayScanInternal(callingPid);
+ } finally {
+ Binder.restoreCallingIdentity(token);
+ }
+ }
+
+ @Override // Binder call
+ public void stopWifiDisplayScan() {
+ mContext.enforceCallingOrSelfPermission(Manifest.permission.CONFIGURE_WIFI_DISPLAY,
+ "Permission required to stop wifi display scans");
+
+ final int callingPid = Binder.getCallingPid();
+ final long token = Binder.clearCallingIdentity();
+ try {
+ stopWifiDisplayScanInternal(callingPid);
+ } finally {
+ Binder.restoreCallingIdentity(token);
+ }
+ }
+
+ @Override // Binder call
+ public void connectWifiDisplay(String address) {
+ if (address == null) {
+ throw new IllegalArgumentException("address must not be null");
+ }
+ mContext.enforceCallingOrSelfPermission(Manifest.permission.CONFIGURE_WIFI_DISPLAY,
+ "Permission required to connect to a wifi display");
+
+ final long token = Binder.clearCallingIdentity();
+ try {
+ connectWifiDisplayInternal(address);
+ } finally {
+ Binder.restoreCallingIdentity(token);
+ }
+ }
+
+ @Override // Binder call
+ public void disconnectWifiDisplay() {
+ // This request does not require special permissions.
+ // Any app can request disconnection from the currently active wifi display.
+ // This exception should no longer be needed once wifi display control moves
+ // to the media router service.
+
+ final long token = Binder.clearCallingIdentity();
+ try {
+ disconnectWifiDisplayInternal();
+ } finally {
+ Binder.restoreCallingIdentity(token);
+ }
+ }
+
+ @Override // Binder call
+ public void renameWifiDisplay(String address, String alias) {
+ if (address == null) {
+ throw new IllegalArgumentException("address must not be null");
+ }
+ mContext.enforceCallingOrSelfPermission(Manifest.permission.CONFIGURE_WIFI_DISPLAY,
+ "Permission required to rename to a wifi display");
+
+ final long token = Binder.clearCallingIdentity();
+ try {
+ renameWifiDisplayInternal(address, alias);
+ } finally {
+ Binder.restoreCallingIdentity(token);
+ }
+ }
+
+ @Override // Binder call
+ public void forgetWifiDisplay(String address) {
+ if (address == null) {
+ throw new IllegalArgumentException("address must not be null");
+ }
+ mContext.enforceCallingOrSelfPermission(Manifest.permission.CONFIGURE_WIFI_DISPLAY,
+ "Permission required to forget to a wifi display");
+
+ final long token = Binder.clearCallingIdentity();
+ try {
+ forgetWifiDisplayInternal(address);
+ } finally {
+ Binder.restoreCallingIdentity(token);
+ }
+ }
+
+ @Override // Binder call
+ public void pauseWifiDisplay() {
+ mContext.enforceCallingOrSelfPermission(Manifest.permission.CONFIGURE_WIFI_DISPLAY,
+ "Permission required to pause a wifi display session");
+
+ final long token = Binder.clearCallingIdentity();
+ try {
+ pauseWifiDisplayInternal();
+ } finally {
+ Binder.restoreCallingIdentity(token);
+ }
+ }
+
+ @Override // Binder call
+ public void resumeWifiDisplay() {
+ mContext.enforceCallingOrSelfPermission(Manifest.permission.CONFIGURE_WIFI_DISPLAY,
+ "Permission required to resume a wifi display session");
+
+ final long token = Binder.clearCallingIdentity();
+ try {
+ resumeWifiDisplayInternal();
+ } finally {
+ Binder.restoreCallingIdentity(token);
+ }
+ }
+
+ @Override // Binder call
+ public WifiDisplayStatus getWifiDisplayStatus() {
+ // This request does not require special permissions.
+ // Any app can get information about available wifi displays.
+
+ final long token = Binder.clearCallingIdentity();
+ try {
+ return getWifiDisplayStatusInternal();
+ } finally {
+ Binder.restoreCallingIdentity(token);
+ }
+ }
+
+ @Override // Binder call
+ public int createVirtualDisplay(IBinder appToken, String packageName,
+ String name, int width, int height, int densityDpi, Surface surface, int flags) {
+ final int callingUid = Binder.getCallingUid();
+ if (!validatePackageName(callingUid, packageName)) {
+ throw new SecurityException("packageName must match the calling uid");
+ }
+ if (appToken == null) {
+ throw new IllegalArgumentException("appToken must not be null");
+ }
+ if (TextUtils.isEmpty(name)) {
+ throw new IllegalArgumentException("name must be non-null and non-empty");
+ }
+ if (width <= 0 || height <= 0 || densityDpi <= 0) {
+ throw new IllegalArgumentException("width, height, and densityDpi must be "
+ + "greater than 0");
+ }
+ if (surface == null) {
+ throw new IllegalArgumentException("surface must not be null");
+ }
+ if (callingUid != Process.SYSTEM_UID &&
+ (flags & DisplayManager.VIRTUAL_DISPLAY_FLAG_PUBLIC) != 0) {
+ if (mContext.checkCallingPermission(android.Manifest.permission.CAPTURE_VIDEO_OUTPUT)
+ != PackageManager.PERMISSION_GRANTED
+ && mContext.checkCallingPermission(
+ android.Manifest.permission.CAPTURE_SECURE_VIDEO_OUTPUT)
+ != PackageManager.PERMISSION_GRANTED) {
+ throw new SecurityException("Requires CAPTURE_VIDEO_OUTPUT or "
+ + "CAPTURE_SECURE_VIDEO_OUTPUT permission to create a "
+ + "public virtual display.");
+ }
+ }
+ if ((flags & DisplayManager.VIRTUAL_DISPLAY_FLAG_SECURE) != 0) {
+ if (mContext.checkCallingPermission(
+ android.Manifest.permission.CAPTURE_SECURE_VIDEO_OUTPUT)
+ != PackageManager.PERMISSION_GRANTED) {
+ throw new SecurityException("Requires CAPTURE_SECURE_VIDEO_OUTPUT "
+ + "to create a secure virtual display.");
+ }
+ }
+
+ final long token = Binder.clearCallingIdentity();
+ try {
+ return createVirtualDisplayInternal(appToken, callingUid, packageName,
+ name, width, height, densityDpi, surface, flags);
+ } finally {
+ Binder.restoreCallingIdentity(token);
+ }
+ }
+
+ @Override // Binder call
+ public void releaseVirtualDisplay(IBinder appToken) {
+ final long token = Binder.clearCallingIdentity();
+ try {
+ releaseVirtualDisplayInternal(appToken);
+ } finally {
+ Binder.restoreCallingIdentity(token);
+ }
+ }
+
+ @Override // Binder call
+ public void dump(FileDescriptor fd, final PrintWriter pw, String[] args) {
+ if (mContext == null
+ || mContext.checkCallingOrSelfPermission(Manifest.permission.DUMP)
+ != PackageManager.PERMISSION_GRANTED) {
+ pw.println("Permission Denial: can't dump DisplayManager from from pid="
+ + Binder.getCallingPid() + ", uid=" + Binder.getCallingUid());
+ return;
+ }
+
+ final long token = Binder.clearCallingIdentity();
+ try {
+ dumpInternal(pw);
+ } finally {
+ Binder.restoreCallingIdentity(token);
+ }
+ }
+
+ private boolean validatePackageName(int uid, String packageName) {
+ if (packageName != null) {
+ String[] packageNames = mContext.getPackageManager().getPackagesForUid(uid);
+ if (packageNames != null) {
+ for (String n : packageNames) {
+ if (n.equals(packageName)) {
+ return true;
+ }
+ }
+ }
+ }
+ return false;
+ }
+ }
+
+ private final class LocalService extends DisplayManagerInternal {
+ @Override
+ public void blankAllDisplaysFromPowerManager() {
+ blankAllDisplaysFromPowerManagerInternal();
+ }
+
+ @Override
+ public void unblankAllDisplaysFromPowerManager() {
+ unblankAllDisplaysFromPowerManagerInternal();
+ }
+
+ @Override
+ public DisplayInfo getDisplayInfo(int displayId) {
+ return getDisplayInfoInternal(displayId, Process.myUid());
+ }
+
+ @Override
+ public void registerDisplayTransactionListener(DisplayTransactionListener listener) {
+ if (listener == null) {
+ throw new IllegalArgumentException("listener must not be null");
+ }
+
+ registerDisplayTransactionListenerInternal(listener);
+ }
+
+ @Override
+ public void unregisterDisplayTransactionListener(DisplayTransactionListener listener) {
+ if (listener == null) {
+ throw new IllegalArgumentException("listener must not be null");
+ }
+
+ unregisterDisplayTransactionListenerInternal(listener);
+ }
+
+ @Override
+ public void setDisplayInfoOverrideFromWindowManager(int displayId, DisplayInfo info) {
+ setDisplayInfoOverrideFromWindowManagerInternal(displayId, info);
+ }
+
+ @Override
+ public void performTraversalInTransactionFromWindowManager() {
+ performTraversalInTransactionFromWindowManagerInternal();
+ }
+
+ @Override
+ public void setDisplayHasContent(int displayId, boolean hasContent, boolean inTraversal) {
+ setDisplayHasContentInternal(displayId, hasContent, inTraversal);
+ }
+ }
+}
diff --git a/services/java/com/android/server/display/LocalDisplayAdapter.java b/services/core/java/com/android/server/display/LocalDisplayAdapter.java
similarity index 100%
rename from services/java/com/android/server/display/LocalDisplayAdapter.java
rename to services/core/java/com/android/server/display/LocalDisplayAdapter.java
diff --git a/services/java/com/android/server/display/LogicalDisplay.java b/services/core/java/com/android/server/display/LogicalDisplay.java
similarity index 100%
rename from services/java/com/android/server/display/LogicalDisplay.java
rename to services/core/java/com/android/server/display/LogicalDisplay.java
diff --git a/services/java/com/android/server/display/OverlayDisplayAdapter.java b/services/core/java/com/android/server/display/OverlayDisplayAdapter.java
similarity index 100%
rename from services/java/com/android/server/display/OverlayDisplayAdapter.java
rename to services/core/java/com/android/server/display/OverlayDisplayAdapter.java
diff --git a/services/java/com/android/server/display/OverlayDisplayWindow.java b/services/core/java/com/android/server/display/OverlayDisplayWindow.java
similarity index 100%
rename from services/java/com/android/server/display/OverlayDisplayWindow.java
rename to services/core/java/com/android/server/display/OverlayDisplayWindow.java
diff --git a/services/java/com/android/server/display/PersistentDataStore.java b/services/core/java/com/android/server/display/PersistentDataStore.java
similarity index 100%
rename from services/java/com/android/server/display/PersistentDataStore.java
rename to services/core/java/com/android/server/display/PersistentDataStore.java
diff --git a/services/java/com/android/server/display/VirtualDisplayAdapter.java b/services/core/java/com/android/server/display/VirtualDisplayAdapter.java
similarity index 95%
rename from services/java/com/android/server/display/VirtualDisplayAdapter.java
rename to services/core/java/com/android/server/display/VirtualDisplayAdapter.java
index 46d473c..95ca0d2 100644
--- a/services/java/com/android/server/display/VirtualDisplayAdapter.java
+++ b/services/core/java/com/android/server/display/VirtualDisplayAdapter.java
@@ -157,8 +157,11 @@
mInfo.yDpi = mDensityDpi;
mInfo.flags = 0;
if ((mFlags & DisplayManager.VIRTUAL_DISPLAY_FLAG_PUBLIC) == 0) {
- mInfo.flags |= DisplayDeviceInfo.FLAG_PRIVATE |
- DisplayDeviceInfo.FLAG_NEVER_BLANK;
+ mInfo.flags |= DisplayDeviceInfo.FLAG_PRIVATE
+ | DisplayDeviceInfo.FLAG_NEVER_BLANK
+ | DisplayDeviceInfo.FLAG_OWN_CONTENT_ONLY;
+ } else if ((mFlags & DisplayManager.VIRTUAL_DISPLAY_FLAG_OWN_CONTENT_ONLY) != 0) {
+ mInfo.flags |= DisplayDeviceInfo.FLAG_OWN_CONTENT_ONLY;
}
if ((mFlags & DisplayManager.VIRTUAL_DISPLAY_FLAG_SECURE) != 0) {
mInfo.flags |= DisplayDeviceInfo.FLAG_SECURE;
diff --git a/services/java/com/android/server/display/WifiDisplayAdapter.java b/services/core/java/com/android/server/display/WifiDisplayAdapter.java
similarity index 96%
rename from services/java/com/android/server/display/WifiDisplayAdapter.java
rename to services/core/java/com/android/server/display/WifiDisplayAdapter.java
index fdef039..cd57941 100644
--- a/services/java/com/android/server/display/WifiDisplayAdapter.java
+++ b/services/core/java/com/android/server/display/WifiDisplayAdapter.java
@@ -127,7 +127,7 @@
pw.println("mPendingStatusChangeBroadcast=" + mPendingStatusChangeBroadcast);
pw.println("mPendingNotificationUpdate=" + mPendingNotificationUpdate);
pw.println("mSupportsProtectedBuffers=" + mSupportsProtectedBuffers);
-
+
// Try to dump the controller state.
if (mDisplayController == null) {
pw.println("mDisplayController=null");
@@ -157,16 +157,31 @@
});
}
- public void requestScanLocked() {
+ public void requestStartScanLocked() {
if (DEBUG) {
- Slog.d(TAG, "requestScanLocked");
+ Slog.d(TAG, "requestStartScanLocked");
}
getHandler().post(new Runnable() {
@Override
public void run() {
if (mDisplayController != null) {
- mDisplayController.requestScan();
+ mDisplayController.requestStartScan();
+ }
+ }
+ });
+ }
+
+ public void requestStopScanLocked() {
+ if (DEBUG) {
+ Slog.d(TAG, "requestStopScanLocked");
+ }
+
+ getHandler().post(new Runnable() {
+ @Override
+ public void run() {
+ if (mDisplayController != null) {
+ mDisplayController.requestStopScan();
}
}
});
@@ -187,15 +202,6 @@
});
}
- private boolean isRememberedDisplayLocked(String address) {
- for (WifiDisplay display : mRememberedDisplays) {
- if (display.getDeviceAddress().equals(address)) {
- return true;
- }
- }
- return false;
- }
-
public void requestPauseLocked() {
if (DEBUG) {
Slog.d(TAG, "requestPauseLocked");
@@ -552,20 +558,20 @@
}
@Override
- public void onScanFinished(WifiDisplay[] availableDisplays) {
+ public void onScanResults(WifiDisplay[] availableDisplays) {
synchronized (getSyncRoot()) {
availableDisplays = mPersistentDataStore.applyWifiDisplayAliases(
availableDisplays);
- // check if any of the available displays changed canConnect status
boolean changed = !Arrays.equals(mAvailableDisplays, availableDisplays);
+
+ // Check whether any of the available displays changed canConnect status.
for (int i = 0; !changed && i<availableDisplays.length; i++) {
changed = availableDisplays[i].canConnect()
!= mAvailableDisplays[i].canConnect();
}
- if (mScanState != WifiDisplayStatus.SCAN_STATE_NOT_SCANNING || changed) {
- mScanState = WifiDisplayStatus.SCAN_STATE_NOT_SCANNING;
+ if (changed) {
mAvailableDisplays = availableDisplays;
fixRememberedDisplayNamesFromAvailableDisplaysLocked();
updateDisplaysLocked();
@@ -575,6 +581,16 @@
}
@Override
+ public void onScanFinished() {
+ synchronized (getSyncRoot()) {
+ if (mScanState != WifiDisplayStatus.SCAN_STATE_NOT_SCANNING) {
+ mScanState = WifiDisplayStatus.SCAN_STATE_NOT_SCANNING;
+ scheduleStatusChangedBroadcastLocked();
+ }
+ }
+ }
+
+ @Override
public void onDisplayConnecting(WifiDisplay display) {
synchronized (getSyncRoot()) {
display = mPersistentDataStore.applyWifiDisplayAlias(display);
diff --git a/services/java/com/android/server/display/WifiDisplayController.java b/services/core/java/com/android/server/display/WifiDisplayController.java
similarity index 89%
rename from services/java/com/android/server/display/WifiDisplayController.java
rename to services/core/java/com/android/server/display/WifiDisplayController.java
index b2939fe..dbb59b2 100644
--- a/services/java/com/android/server/display/WifiDisplayController.java
+++ b/services/core/java/com/android/server/display/WifiDisplayController.java
@@ -27,7 +27,6 @@
import android.hardware.display.WifiDisplay;
import android.hardware.display.WifiDisplaySessionInfo;
import android.hardware.display.WifiDisplayStatus;
-import android.media.AudioManager;
import android.media.RemoteDisplay;
import android.net.NetworkInfo;
import android.net.Uri;
@@ -75,12 +74,19 @@
private static final int DEFAULT_CONTROL_PORT = 7236;
private static final int MAX_THROUGHPUT = 50;
- private static final int CONNECTION_TIMEOUT_SECONDS = 60;
+ private static final int CONNECTION_TIMEOUT_SECONDS = 30;
private static final int RTSP_TIMEOUT_SECONDS = 30;
private static final int RTSP_TIMEOUT_SECONDS_CERT_MODE = 120;
- private static final int DISCOVER_PEERS_MAX_RETRIES = 10;
- private static final int DISCOVER_PEERS_RETRY_DELAY_MILLIS = 500;
+ // We repeatedly issue calls to discover peers every so often for a few reasons.
+ // 1. The initial request may fail and need to retried.
+ // 2. Discovery will self-abort after any group is initiated, which may not necessarily
+ // be what we want to have happen.
+ // 3. Discovery will self-timeout after 2 minutes, whereas we want discovery to
+ // be occur for as long as a client is requesting it be.
+ // 4. We don't seem to get updated results for displays we've already found until
+ // we ask to discover again, particularly for the isSessionAvailable() property.
+ private static final int DISCOVER_PEERS_INTERVAL_MILLIS = 10000;
private static final int CONNECT_MAX_RETRIES = 3;
private static final int CONNECT_RETRY_DELAY_MILLIS = 500;
@@ -103,12 +109,12 @@
// True if Wifi display is enabled by the user.
private boolean mWifiDisplayOnSetting;
+ // True if a scan was requested independent of whether one is actually in progress.
+ private boolean mScanRequested;
+
// True if there is a call to discoverPeers in progress.
private boolean mDiscoverPeersInProgress;
- // Number of discover peers retries remaining.
- private int mDiscoverPeersRetriesLeft;
-
// The device to which we want to connect, or null if we want to be disconnected.
private WifiP2pDevice mDesiredDevice;
@@ -209,8 +215,8 @@
pw.println("mWfdEnabled=" + mWfdEnabled);
pw.println("mWfdEnabling=" + mWfdEnabling);
pw.println("mNetworkInfo=" + mNetworkInfo);
+ pw.println("mScanRequested=" + mScanRequested);
pw.println("mDiscoverPeersInProgress=" + mDiscoverPeersInProgress);
- pw.println("mDiscoverPeersRetriesLeft=" + mDiscoverPeersRetriesLeft);
pw.println("mDesiredDevice=" + describeWifiP2pDevice(mDesiredDevice));
pw.println("mConnectingDisplay=" + describeWifiP2pDevice(mConnectingDevice));
pw.println("mDisconnectingDisplay=" + describeWifiP2pDevice(mDisconnectingDevice));
@@ -232,8 +238,18 @@
}
}
- public void requestScan() {
- discoverPeers();
+ public void requestStartScan() {
+ if (!mScanRequested) {
+ mScanRequested = true;
+ updateScanState();
+ }
+ }
+
+ public void requestStopScan() {
+ if (mScanRequested) {
+ mScanRequested = false;
+ updateScanState();
+ }
}
public void requestConnect(String address) {
@@ -282,6 +298,7 @@
mWfdEnabling = false;
mWfdEnabled = true;
reportFeatureState();
+ updateScanState();
}
}
@@ -318,6 +335,7 @@
mWfdEnabling = false;
mWfdEnabled = false;
reportFeatureState();
+ updateScanState();
disconnect();
}
}
@@ -340,12 +358,29 @@
WifiDisplayStatus.FEATURE_STATE_OFF;
}
- private void discoverPeers() {
- if (!mDiscoverPeersInProgress) {
- mDiscoverPeersInProgress = true;
- mDiscoverPeersRetriesLeft = DISCOVER_PEERS_MAX_RETRIES;
- handleScanStarted();
- tryDiscoverPeers();
+ private void updateScanState() {
+ if (mScanRequested && mWfdEnabled && mDesiredDevice == null) {
+ if (!mDiscoverPeersInProgress) {
+ Slog.i(TAG, "Starting Wifi display scan.");
+ mDiscoverPeersInProgress = true;
+ handleScanStarted();
+ tryDiscoverPeers();
+ }
+ } else {
+ if (mDiscoverPeersInProgress) {
+ // Cancel automatic retry right away.
+ mHandler.removeCallbacks(mDiscoverPeers);
+
+ // Defer actually stopping discovery if we have a connection attempt in progress.
+ // The wifi display connection attempt often fails if we are not in discovery
+ // mode. So we allow discovery to continue until we give up trying to connect.
+ if (mDesiredDevice == null || mDesiredDevice == mConnectedDevice) {
+ Slog.i(TAG, "Stopping Wifi display scan.");
+ mDiscoverPeersInProgress = false;
+ stopPeerDiscovery();
+ handleScanFinished();
+ }
+ }
}
}
@@ -357,8 +392,9 @@
Slog.d(TAG, "Discover peers succeeded. Requesting peers now.");
}
- mDiscoverPeersInProgress = false;
- requestPeers();
+ if (mDiscoverPeersInProgress) {
+ requestPeers();
+ }
}
@Override
@@ -367,30 +403,28 @@
Slog.d(TAG, "Discover peers failed with reason " + reason + ".");
}
- if (mDiscoverPeersInProgress) {
- if (reason == 0 && mDiscoverPeersRetriesLeft > 0 && mWfdEnabled) {
- mHandler.postDelayed(new Runnable() {
- @Override
- public void run() {
- if (mDiscoverPeersInProgress) {
- if (mDiscoverPeersRetriesLeft > 0 && mWfdEnabled) {
- mDiscoverPeersRetriesLeft -= 1;
- if (DEBUG) {
- Slog.d(TAG, "Retrying discovery. Retries left: "
- + mDiscoverPeersRetriesLeft);
- }
- tryDiscoverPeers();
- } else {
- handleScanFinished();
- mDiscoverPeersInProgress = false;
- }
- }
- }
- }, DISCOVER_PEERS_RETRY_DELAY_MILLIS);
- } else {
- handleScanFinished();
- mDiscoverPeersInProgress = false;
- }
+ // Ignore the error.
+ // We will retry automatically in a little bit.
+ }
+ });
+
+ // Retry discover peers periodically until stopped.
+ mHandler.postDelayed(mDiscoverPeers, DISCOVER_PEERS_INTERVAL_MILLIS);
+ }
+
+ private void stopPeerDiscovery() {
+ mWifiP2pManager.stopPeerDiscovery(mWifiP2pChannel, new ActionListener() {
+ @Override
+ public void onSuccess() {
+ if (DEBUG) {
+ Slog.d(TAG, "Stop peer discovery succeeded.");
+ }
+ }
+
+ @Override
+ public void onFailure(int reason) {
+ if (DEBUG) {
+ Slog.d(TAG, "Stop peer discovery failed with reason " + reason + ".");
}
}
});
@@ -415,7 +449,9 @@
}
}
- handleScanFinished();
+ if (mDiscoverPeersInProgress) {
+ handleScanResults();
+ }
}
});
}
@@ -429,7 +465,7 @@
});
}
- private void handleScanFinished() {
+ private void handleScanResults() {
final int count = mAvailableWifiDisplayPeers.size();
final WifiDisplay[] displays = WifiDisplay.CREATOR.newArray(count);
for (int i = 0; i < count; i++) {
@@ -441,7 +477,16 @@
mHandler.post(new Runnable() {
@Override
public void run() {
- mListener.onScanFinished(displays);
+ mListener.onScanResults(displays);
+ }
+ });
+ }
+
+ private void handleScanFinished() {
+ mHandler.post(new Runnable() {
+ @Override
+ public void run() {
+ mListener.onScanFinished();
}
});
}
@@ -484,6 +529,12 @@
return;
}
+ if (!mWfdEnabled) {
+ Slog.i(TAG, "Ignoring request to connect to Wifi display because the "
+ +" feature is currently disabled: " + device.deviceName);
+ return;
+ }
+
mDesiredDevice = device;
mConnectionRetriesLeft = CONNECT_MAX_RETRIES;
updateConnection();
@@ -508,6 +559,10 @@
* connection is established (or not).
*/
private void updateConnection() {
+ // Step 0. Stop scans if necessary to prevent interference while connected.
+ // Resume scans later when no longer attempting to connect.
+ updateScanState();
+
// Step 1. Before we try to connect to a new device, tell the system we
// have disconnected from the old one.
if (mRemoteDisplay != null && mConnectedDevice != mDesiredDevice) {
@@ -661,7 +716,7 @@
return; // wait for asynchronous callback
}
- // Step 6. Listen for incoming connections.
+ // Step 6. Listen for incoming RTSP connection.
if (mConnectedDevice != null && mRemoteDisplay == null) {
Inet4Address addr = getInterfaceAddress(mConnectedDeviceGroupInfo);
if (addr == null) {
@@ -817,7 +872,11 @@
}
} else {
mConnectedDeviceGroupInfo = null;
- disconnect();
+
+ // Disconnect if we lost the network while connecting or connected to a display.
+ if (mConnectingDevice != null || mConnectedDevice != null) {
+ disconnect();
+ }
// After disconnection for a group, for some reason we have a tendency
// to get a peer change notification with an empty list of peers.
@@ -828,6 +887,13 @@
}
}
+ private final Runnable mDiscoverPeers = new Runnable() {
+ @Override
+ public void run() {
+ tryDiscoverPeers();
+ }
+ };
+
private final Runnable mConnectionTimeout = new Runnable() {
@Override
public void run() {
@@ -1033,7 +1099,8 @@
void onFeatureStateChanged(int featureState);
void onScanStarted();
- void onScanFinished(WifiDisplay[] availableDisplays);
+ void onScanResults(WifiDisplay[] availableDisplays);
+ void onScanFinished();
void onDisplayConnecting(WifiDisplay display);
void onDisplayConnectionFailed();
diff --git a/services/java/com/android/server/dreams/DreamController.java b/services/core/java/com/android/server/dreams/DreamController.java
similarity index 100%
rename from services/java/com/android/server/dreams/DreamController.java
rename to services/core/java/com/android/server/dreams/DreamController.java
diff --git a/services/java/com/android/server/dreams/DreamManagerService.java b/services/core/java/com/android/server/dreams/DreamManagerService.java
similarity index 98%
rename from services/java/com/android/server/dreams/DreamManagerService.java
rename to services/core/java/com/android/server/dreams/DreamManagerService.java
index b6e7781..f5acc4c 100644
--- a/services/java/com/android/server/dreams/DreamManagerService.java
+++ b/services/core/java/com/android/server/dreams/DreamManagerService.java
@@ -17,6 +17,7 @@
package com.android.server.dreams;
import com.android.internal.util.DumpUtils;
+import com.android.server.FgThread;
import android.app.ActivityManager;
import android.content.BroadcastReceiver;
@@ -65,9 +66,9 @@
private int mCurrentDreamUserId;
private boolean mCurrentDreamIsTest;
- public DreamManagerService(Context context, Handler mainHandler) {
+ public DreamManagerService(Context context) {
mContext = context;
- mHandler = new DreamHandler(mainHandler.getLooper());
+ mHandler = new DreamHandler(FgThread.get().getLooper());
mController = new DreamController(context, mHandler, mControllerListener);
mPowerManager = (PowerManager)context.getSystemService(Context.POWER_SERVICE);
diff --git a/services/java/com/android/server/firewall/AndFilter.java b/services/core/java/com/android/server/firewall/AndFilter.java
similarity index 100%
rename from services/java/com/android/server/firewall/AndFilter.java
rename to services/core/java/com/android/server/firewall/AndFilter.java
diff --git a/services/java/com/android/server/firewall/CategoryFilter.java b/services/core/java/com/android/server/firewall/CategoryFilter.java
similarity index 100%
rename from services/java/com/android/server/firewall/CategoryFilter.java
rename to services/core/java/com/android/server/firewall/CategoryFilter.java
diff --git a/services/java/com/android/server/firewall/Filter.java b/services/core/java/com/android/server/firewall/Filter.java
similarity index 100%
rename from services/java/com/android/server/firewall/Filter.java
rename to services/core/java/com/android/server/firewall/Filter.java
diff --git a/services/java/com/android/server/firewall/FilterFactory.java b/services/core/java/com/android/server/firewall/FilterFactory.java
similarity index 100%
rename from services/java/com/android/server/firewall/FilterFactory.java
rename to services/core/java/com/android/server/firewall/FilterFactory.java
diff --git a/services/java/com/android/server/firewall/FilterList.java b/services/core/java/com/android/server/firewall/FilterList.java
similarity index 100%
rename from services/java/com/android/server/firewall/FilterList.java
rename to services/core/java/com/android/server/firewall/FilterList.java
diff --git a/services/java/com/android/server/firewall/IntentFirewall.java b/services/core/java/com/android/server/firewall/IntentFirewall.java
similarity index 98%
rename from services/java/com/android/server/firewall/IntentFirewall.java
rename to services/core/java/com/android/server/firewall/IntentFirewall.java
index aaa0b58..88a2207 100644
--- a/services/java/com/android/server/firewall/IntentFirewall.java
+++ b/services/core/java/com/android/server/firewall/IntentFirewall.java
@@ -26,6 +26,7 @@
import android.os.Environment;
import android.os.FileObserver;
import android.os.Handler;
+import android.os.Looper;
import android.os.Message;
import android.os.RemoteException;
import android.util.ArrayMap;
@@ -106,8 +107,9 @@
}
}
- public IntentFirewall(AMSInterface ams) {
+ public IntentFirewall(AMSInterface ams, Handler handler) {
mAms = ams;
+ mHandler = new FirewallHandler(handler.getLooper());
File rulesDir = getRulesDir();
rulesDir.mkdirs();
@@ -531,7 +533,13 @@
new ArrayMap<ComponentName, Rule[]>(0);
}
- final Handler mHandler = new Handler() {
+ final FirewallHandler mHandler;
+
+ private final class FirewallHandler extends Handler {
+ public FirewallHandler(Looper looper) {
+ super(looper, null, true);
+ }
+
@Override
public void handleMessage(Message msg) {
readRulesDir(getRulesDir());
diff --git a/services/java/com/android/server/firewall/NotFilter.java b/services/core/java/com/android/server/firewall/NotFilter.java
similarity index 100%
rename from services/java/com/android/server/firewall/NotFilter.java
rename to services/core/java/com/android/server/firewall/NotFilter.java
diff --git a/services/java/com/android/server/firewall/OrFilter.java b/services/core/java/com/android/server/firewall/OrFilter.java
similarity index 100%
rename from services/java/com/android/server/firewall/OrFilter.java
rename to services/core/java/com/android/server/firewall/OrFilter.java
diff --git a/services/java/com/android/server/firewall/PortFilter.java b/services/core/java/com/android/server/firewall/PortFilter.java
similarity index 100%
rename from services/java/com/android/server/firewall/PortFilter.java
rename to services/core/java/com/android/server/firewall/PortFilter.java
diff --git a/services/java/com/android/server/firewall/SenderFilter.java b/services/core/java/com/android/server/firewall/SenderFilter.java
similarity index 100%
rename from services/java/com/android/server/firewall/SenderFilter.java
rename to services/core/java/com/android/server/firewall/SenderFilter.java
diff --git a/services/java/com/android/server/firewall/SenderPermissionFilter.java b/services/core/java/com/android/server/firewall/SenderPermissionFilter.java
similarity index 100%
rename from services/java/com/android/server/firewall/SenderPermissionFilter.java
rename to services/core/java/com/android/server/firewall/SenderPermissionFilter.java
diff --git a/services/java/com/android/server/firewall/StringFilter.java b/services/core/java/com/android/server/firewall/StringFilter.java
similarity index 100%
rename from services/java/com/android/server/firewall/StringFilter.java
rename to services/core/java/com/android/server/firewall/StringFilter.java
diff --git a/services/java/com/android/server/input/InputApplicationHandle.java b/services/core/java/com/android/server/input/InputApplicationHandle.java
similarity index 100%
rename from services/java/com/android/server/input/InputApplicationHandle.java
rename to services/core/java/com/android/server/input/InputApplicationHandle.java
diff --git a/services/java/com/android/server/input/InputManagerService.java b/services/core/java/com/android/server/input/InputManagerService.java
similarity index 98%
rename from services/java/com/android/server/input/InputManagerService.java
rename to services/core/java/com/android/server/input/InputManagerService.java
index 9178664..fa18149 100644
--- a/services/java/com/android/server/input/InputManagerService.java
+++ b/services/core/java/com/android/server/input/InputManagerService.java
@@ -18,9 +18,9 @@
import com.android.internal.R;
import com.android.internal.util.XmlUtils;
+import com.android.server.DisplayThread;
+import com.android.server.LocalServices;
import com.android.server.Watchdog;
-import com.android.server.display.DisplayManagerService;
-import com.android.server.display.DisplayViewport;
import org.xmlpull.v1.XmlPullParser;
@@ -44,9 +44,11 @@
import android.content.res.TypedArray;
import android.content.res.XmlResourceParser;
import android.database.ContentObserver;
+import android.hardware.display.DisplayViewport;
import android.hardware.input.IInputDevicesChangedListener;
import android.hardware.input.IInputManager;
import android.hardware.input.InputManager;
+import android.hardware.input.InputManagerInternal;
import android.hardware.input.KeyboardLayout;
import android.os.Binder;
import android.os.Bundle;
@@ -94,7 +96,7 @@
* Wraps the C++ InputManager and provides its callbacks.
*/
public class InputManagerService extends IInputManager.Stub
- implements Watchdog.Monitor, DisplayManagerService.InputManagerFuncs {
+ implements Watchdog.Monitor {
static final String TAG = "InputManager";
static final boolean DEBUG = false;
@@ -241,15 +243,17 @@
/** Whether to use the dev/input/event or uevent subsystem for the audio jack. */
final boolean mUseDevInputEventForAudioJack;
- public InputManagerService(Context context, Handler handler) {
+ public InputManagerService(Context context) {
this.mContext = context;
- this.mHandler = new InputManagerHandler(handler.getLooper());
+ this.mHandler = new InputManagerHandler(DisplayThread.get().getLooper());
mUseDevInputEventForAudioJack =
context.getResources().getBoolean(R.bool.config_useDevInputEventForAudioJack);
Slog.i(TAG, "Initializing input manager, mUseDevInputEventForAudioJack="
+ mUseDevInputEventForAudioJack);
mPtr = nativeInit(this, mContext, mHandler.getLooper().getQueue());
+
+ LocalServices.addService(InputManagerInternal.class, new LocalService());
}
public void setWindowManagerCallbacks(WindowManagerCallbacks callbacks) {
@@ -329,8 +333,7 @@
nativeReloadDeviceAliases(mPtr);
}
- @Override
- public void setDisplayViewports(DisplayViewport defaultViewport,
+ private void setDisplayViewportsInternal(DisplayViewport defaultViewport,
DisplayViewport externalTouchViewport) {
if (defaultViewport.valid) {
setDisplayViewport(false, defaultViewport);
@@ -1639,4 +1642,12 @@
onVibratorTokenDied(this);
}
}
+
+ private final class LocalService extends InputManagerInternal {
+ @Override
+ public void setDisplayViewports(
+ DisplayViewport defaultViewport, DisplayViewport externalTouchViewport) {
+ setDisplayViewportsInternal(defaultViewport, externalTouchViewport);
+ }
+ }
}
diff --git a/services/java/com/android/server/input/InputWindowHandle.java b/services/core/java/com/android/server/input/InputWindowHandle.java
similarity index 100%
rename from services/java/com/android/server/input/InputWindowHandle.java
rename to services/core/java/com/android/server/input/InputWindowHandle.java
diff --git a/services/java/com/android/server/input/PersistentDataStore.java b/services/core/java/com/android/server/input/PersistentDataStore.java
similarity index 100%
rename from services/java/com/android/server/input/PersistentDataStore.java
rename to services/core/java/com/android/server/input/PersistentDataStore.java
diff --git a/services/core/java/com/android/server/lights/Light.java b/services/core/java/com/android/server/lights/Light.java
new file mode 100644
index 0000000..b496b4c6
--- /dev/null
+++ b/services/core/java/com/android/server/lights/Light.java
@@ -0,0 +1,41 @@
+/*
+ * Copyright (C) 2013 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.server.lights;
+
+public abstract class Light {
+ public static final int LIGHT_FLASH_NONE = 0;
+ public static final int LIGHT_FLASH_TIMED = 1;
+ public static final int LIGHT_FLASH_HARDWARE = 2;
+
+ /**
+ * Light brightness is managed by a user setting.
+ */
+ public static final int BRIGHTNESS_MODE_USER = 0;
+
+ /**
+ * Light brightness is managed by a light sensor.
+ */
+ public static final int BRIGHTNESS_MODE_SENSOR = 1;
+
+ public abstract void setBrightness(int brightness);
+ public abstract void setBrightness(int brightness, int brightnessMode);
+ public abstract void setColor(int color);
+ public abstract void setFlashing(int color, int mode, int onMS, int offMS);
+ public abstract void pulse();
+ public abstract void pulse(int color, int onMS);
+ public abstract void turnOff();
+}
\ No newline at end of file
diff --git a/services/core/java/com/android/server/lights/LightsManager.java b/services/core/java/com/android/server/lights/LightsManager.java
new file mode 100644
index 0000000..2f20509
--- /dev/null
+++ b/services/core/java/com/android/server/lights/LightsManager.java
@@ -0,0 +1,31 @@
+/*
+ * Copyright (C) 2013 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.server.lights;
+
+public abstract class LightsManager {
+ public static final int LIGHT_ID_BACKLIGHT = 0;
+ public static final int LIGHT_ID_KEYBOARD = 1;
+ public static final int LIGHT_ID_BUTTONS = 2;
+ public static final int LIGHT_ID_BATTERY = 3;
+ public static final int LIGHT_ID_NOTIFICATIONS = 4;
+ public static final int LIGHT_ID_ATTENTION = 5;
+ public static final int LIGHT_ID_BLUETOOTH = 6;
+ public static final int LIGHT_ID_WIFI = 7;
+ public static final int LIGHT_ID_COUNT = 8;
+
+ public abstract Light getLight(int id);
+}
diff --git a/services/java/com/android/server/LightsService.java b/services/core/java/com/android/server/lights/LightsService.java
similarity index 74%
rename from services/java/com/android/server/LightsService.java
rename to services/core/java/com/android/server/lights/LightsService.java
index a1d655b..62dc090 100644
--- a/services/java/com/android/server/LightsService.java
+++ b/services/core/java/com/android/server/lights/LightsService.java
@@ -14,59 +14,38 @@
* limitations under the License.
*/
-package com.android.server;
+package com.android.server.lights;
+
+import com.android.server.SystemService;
import android.content.Context;
import android.content.pm.PackageManager;
import android.os.Handler;
import android.os.IHardwareService;
-import android.os.ServiceManager;
import android.os.Message;
import android.util.Slog;
import java.io.FileInputStream;
import java.io.FileOutputStream;
-public class LightsService {
- private static final String TAG = "LightsService";
- private static final boolean DEBUG = false;
+public class LightsService extends SystemService {
+ static final String TAG = "LightsService";
+ static final boolean DEBUG = false;
- public static final int LIGHT_ID_BACKLIGHT = 0;
- public static final int LIGHT_ID_KEYBOARD = 1;
- public static final int LIGHT_ID_BUTTONS = 2;
- public static final int LIGHT_ID_BATTERY = 3;
- public static final int LIGHT_ID_NOTIFICATIONS = 4;
- public static final int LIGHT_ID_ATTENTION = 5;
- public static final int LIGHT_ID_BLUETOOTH = 6;
- public static final int LIGHT_ID_WIFI = 7;
- public static final int LIGHT_ID_COUNT = 8;
+ final LightImpl mLights[] = new LightImpl[LightsManager.LIGHT_ID_COUNT];
- public static final int LIGHT_FLASH_NONE = 0;
- public static final int LIGHT_FLASH_TIMED = 1;
- public static final int LIGHT_FLASH_HARDWARE = 2;
+ private final class LightImpl extends Light {
- /**
- * Light brightness is managed by a user setting.
- */
- public static final int BRIGHTNESS_MODE_USER = 0;
-
- /**
- * Light brightness is managed by a light sensor.
- */
- public static final int BRIGHTNESS_MODE_SENSOR = 1;
-
- private final Light mLights[] = new Light[LIGHT_ID_COUNT];
-
- public final class Light {
-
- private Light(int id) {
+ private LightImpl(int id) {
mId = id;
}
+ @Override
public void setBrightness(int brightness) {
setBrightness(brightness, BRIGHTNESS_MODE_USER);
}
+ @Override
public void setBrightness(int brightness, int brightnessMode) {
synchronized (this) {
int color = brightness & 0x000000ff;
@@ -75,23 +54,26 @@
}
}
+ @Override
public void setColor(int color) {
synchronized (this) {
setLightLocked(color, LIGHT_FLASH_NONE, 0, 0, 0);
}
}
+ @Override
public void setFlashing(int color, int mode, int onMS, int offMS) {
synchronized (this) {
setLightLocked(color, mode, onMS, offMS, BRIGHTNESS_MODE_USER);
}
}
-
+ @Override
public void pulse() {
pulse(0x00ffffff, 7);
}
+ @Override
public void pulse(int color, int onMS) {
synchronized (this) {
if (mColor == 0 && !mFlashing) {
@@ -101,6 +83,7 @@
}
}
+ @Override
public void turnOff() {
synchronized (this) {
setLightLocked(0, LIGHT_FLASH_NONE, 0, 0, 0);
@@ -153,9 +136,10 @@
}
public void setFlashlightEnabled(boolean on) {
- if (mContext.checkCallingOrSelfPermission(android.Manifest.permission.FLASHLIGHT)
+ final Context context = getContext();
+ if (context.checkCallingOrSelfPermission(android.Manifest.permission.FLASHLIGHT)
!= PackageManager.PERMISSION_GRANTED &&
- mContext.checkCallingOrSelfPermission(android.Manifest.permission.HARDWARE_TEST)
+ context.checkCallingOrSelfPermission(android.Manifest.permission.HARDWARE_TEST)
!= PackageManager.PERMISSION_GRANTED) {
throw new SecurityException("Requires FLASHLIGHT or HARDWARE_TEST permission");
}
@@ -172,31 +156,41 @@
}
};
- LightsService(Context context) {
-
+ @Override
+ public void onCreate(Context context) {
mNativePointer = init_native();
- mContext = context;
- ServiceManager.addService("hardware", mLegacyFlashlightHack);
-
- for (int i = 0; i < LIGHT_ID_COUNT; i++) {
- mLights[i] = new Light(i);
+ for (int i = 0; i < LightsManager.LIGHT_ID_COUNT; i++) {
+ mLights[i] = new LightImpl(i);
}
}
+ @Override
+ public void onStart() {
+ publishBinderService("hardware", mLegacyFlashlightHack);
+ publishLocalService(LightsManager.class, mService);
+ }
+
+ private final LightsManager mService = new LightsManager() {
+ @Override
+ public com.android.server.lights.Light getLight(int id) {
+ if (id < LIGHT_ID_COUNT) {
+ return mLights[id];
+ } else {
+ return null;
+ }
+ }
+ };
+
protected void finalize() throws Throwable {
finalize_native(mNativePointer);
super.finalize();
}
- public Light getLight(int id) {
- return mLights[id];
- }
-
private Handler mH = new Handler() {
@Override
public void handleMessage(Message msg) {
- Light light = (Light)msg.obj;
+ LightImpl light = (LightImpl)msg.obj;
light.stopFlashing();
}
};
@@ -204,10 +198,8 @@
private static native long init_native();
private static native void finalize_native(long ptr);
- private static native void setLight_native(long ptr, int light, int color, int mode,
+ static native void setLight_native(long ptr, int light, int color, int mode,
int onMS, int offMS, int brightnessMode);
- private final Context mContext;
-
private long mNativePointer;
}
diff --git a/services/java/com/android/server/location/ComprehensiveCountryDetector.java b/services/core/java/com/android/server/location/ComprehensiveCountryDetector.java
similarity index 100%
rename from services/java/com/android/server/location/ComprehensiveCountryDetector.java
rename to services/core/java/com/android/server/location/ComprehensiveCountryDetector.java
diff --git a/services/java/com/android/server/location/CountryDetectorBase.java b/services/core/java/com/android/server/location/CountryDetectorBase.java
similarity index 100%
rename from services/java/com/android/server/location/CountryDetectorBase.java
rename to services/core/java/com/android/server/location/CountryDetectorBase.java
diff --git a/services/java/com/android/server/location/FlpHardwareProvider.java b/services/core/java/com/android/server/location/FlpHardwareProvider.java
similarity index 100%
rename from services/java/com/android/server/location/FlpHardwareProvider.java
rename to services/core/java/com/android/server/location/FlpHardwareProvider.java
diff --git a/services/java/com/android/server/location/FusedLocationHardwareSecure.java b/services/core/java/com/android/server/location/FusedLocationHardwareSecure.java
similarity index 100%
rename from services/java/com/android/server/location/FusedLocationHardwareSecure.java
rename to services/core/java/com/android/server/location/FusedLocationHardwareSecure.java
diff --git a/services/java/com/android/server/location/FusedProxy.java b/services/core/java/com/android/server/location/FusedProxy.java
similarity index 100%
rename from services/java/com/android/server/location/FusedProxy.java
rename to services/core/java/com/android/server/location/FusedProxy.java
diff --git a/services/java/com/android/server/location/GeocoderProxy.java b/services/core/java/com/android/server/location/GeocoderProxy.java
similarity index 100%
rename from services/java/com/android/server/location/GeocoderProxy.java
rename to services/core/java/com/android/server/location/GeocoderProxy.java
diff --git a/services/java/com/android/server/location/GeofenceManager.java b/services/core/java/com/android/server/location/GeofenceManager.java
similarity index 100%
rename from services/java/com/android/server/location/GeofenceManager.java
rename to services/core/java/com/android/server/location/GeofenceManager.java
diff --git a/services/java/com/android/server/location/GeofenceProxy.java b/services/core/java/com/android/server/location/GeofenceProxy.java
similarity index 100%
rename from services/java/com/android/server/location/GeofenceProxy.java
rename to services/core/java/com/android/server/location/GeofenceProxy.java
diff --git a/services/java/com/android/server/location/GeofenceState.java b/services/core/java/com/android/server/location/GeofenceState.java
similarity index 100%
rename from services/java/com/android/server/location/GeofenceState.java
rename to services/core/java/com/android/server/location/GeofenceState.java
diff --git a/services/java/com/android/server/location/GpsLocationProvider.java b/services/core/java/com/android/server/location/GpsLocationProvider.java
similarity index 100%
rename from services/java/com/android/server/location/GpsLocationProvider.java
rename to services/core/java/com/android/server/location/GpsLocationProvider.java
diff --git a/services/java/com/android/server/location/GpsXtraDownloader.java b/services/core/java/com/android/server/location/GpsXtraDownloader.java
similarity index 100%
rename from services/java/com/android/server/location/GpsXtraDownloader.java
rename to services/core/java/com/android/server/location/GpsXtraDownloader.java
diff --git a/services/java/com/android/server/location/LocationBasedCountryDetector.java b/services/core/java/com/android/server/location/LocationBasedCountryDetector.java
similarity index 100%
rename from services/java/com/android/server/location/LocationBasedCountryDetector.java
rename to services/core/java/com/android/server/location/LocationBasedCountryDetector.java
diff --git a/services/java/com/android/server/location/LocationBlacklist.java b/services/core/java/com/android/server/location/LocationBlacklist.java
similarity index 100%
rename from services/java/com/android/server/location/LocationBlacklist.java
rename to services/core/java/com/android/server/location/LocationBlacklist.java
diff --git a/services/java/com/android/server/location/LocationFudger.java b/services/core/java/com/android/server/location/LocationFudger.java
similarity index 100%
rename from services/java/com/android/server/location/LocationFudger.java
rename to services/core/java/com/android/server/location/LocationFudger.java
diff --git a/services/java/com/android/server/location/LocationProviderInterface.java b/services/core/java/com/android/server/location/LocationProviderInterface.java
similarity index 100%
rename from services/java/com/android/server/location/LocationProviderInterface.java
rename to services/core/java/com/android/server/location/LocationProviderInterface.java
diff --git a/services/java/com/android/server/location/LocationProviderProxy.java b/services/core/java/com/android/server/location/LocationProviderProxy.java
similarity index 100%
rename from services/java/com/android/server/location/LocationProviderProxy.java
rename to services/core/java/com/android/server/location/LocationProviderProxy.java
diff --git a/services/java/com/android/server/location/MockProvider.java b/services/core/java/com/android/server/location/MockProvider.java
similarity index 100%
rename from services/java/com/android/server/location/MockProvider.java
rename to services/core/java/com/android/server/location/MockProvider.java
diff --git a/services/java/com/android/server/location/PassiveProvider.java b/services/core/java/com/android/server/location/PassiveProvider.java
similarity index 100%
rename from services/java/com/android/server/location/PassiveProvider.java
rename to services/core/java/com/android/server/location/PassiveProvider.java
diff --git a/services/java/com/android/server/media/MediaRouterService.java b/services/core/java/com/android/server/media/MediaRouterService.java
similarity index 100%
rename from services/java/com/android/server/media/MediaRouterService.java
rename to services/core/java/com/android/server/media/MediaRouterService.java
diff --git a/services/java/com/android/server/media/RemoteDisplayProviderProxy.java b/services/core/java/com/android/server/media/RemoteDisplayProviderProxy.java
similarity index 100%
rename from services/java/com/android/server/media/RemoteDisplayProviderProxy.java
rename to services/core/java/com/android/server/media/RemoteDisplayProviderProxy.java
diff --git a/services/java/com/android/server/media/RemoteDisplayProviderWatcher.java b/services/core/java/com/android/server/media/RemoteDisplayProviderWatcher.java
similarity index 100%
rename from services/java/com/android/server/media/RemoteDisplayProviderWatcher.java
rename to services/core/java/com/android/server/media/RemoteDisplayProviderWatcher.java
diff --git a/services/java/com/android/server/net/LockdownVpnTracker.java b/services/core/java/com/android/server/net/LockdownVpnTracker.java
similarity index 100%
rename from services/java/com/android/server/net/LockdownVpnTracker.java
rename to services/core/java/com/android/server/net/LockdownVpnTracker.java
diff --git a/services/java/com/android/server/net/NetworkIdentitySet.java b/services/core/java/com/android/server/net/NetworkIdentitySet.java
similarity index 100%
rename from services/java/com/android/server/net/NetworkIdentitySet.java
rename to services/core/java/com/android/server/net/NetworkIdentitySet.java
diff --git a/services/java/com/android/server/net/NetworkPolicyManagerService.java b/services/core/java/com/android/server/net/NetworkPolicyManagerService.java
similarity index 100%
rename from services/java/com/android/server/net/NetworkPolicyManagerService.java
rename to services/core/java/com/android/server/net/NetworkPolicyManagerService.java
diff --git a/services/java/com/android/server/net/NetworkStatsCollection.java b/services/core/java/com/android/server/net/NetworkStatsCollection.java
similarity index 100%
rename from services/java/com/android/server/net/NetworkStatsCollection.java
rename to services/core/java/com/android/server/net/NetworkStatsCollection.java
diff --git a/services/java/com/android/server/net/NetworkStatsRecorder.java b/services/core/java/com/android/server/net/NetworkStatsRecorder.java
similarity index 100%
rename from services/java/com/android/server/net/NetworkStatsRecorder.java
rename to services/core/java/com/android/server/net/NetworkStatsRecorder.java
diff --git a/services/java/com/android/server/net/NetworkStatsService.java b/services/core/java/com/android/server/net/NetworkStatsService.java
similarity index 100%
rename from services/java/com/android/server/net/NetworkStatsService.java
rename to services/core/java/com/android/server/net/NetworkStatsService.java
diff --git a/services/core/java/com/android/server/notification/NotificationDelegate.java b/services/core/java/com/android/server/notification/NotificationDelegate.java
new file mode 100644
index 0000000..df2aaca
--- /dev/null
+++ b/services/core/java/com/android/server/notification/NotificationDelegate.java
@@ -0,0 +1,27 @@
+/**
+ * Copyright (c) 2013, 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.server.notification;
+
+public interface NotificationDelegate {
+ void onSetDisabled(int status);
+ void onClearAll();
+ void onNotificationClick(String pkg, String tag, int id);
+ void onNotificationClear(String pkg, String tag, int id);
+ void onNotificationError(String pkg, String tag, int id,
+ int uid, int initialPid, String message);
+ void onPanelRevealed();
+}
diff --git a/services/core/java/com/android/server/notification/NotificationManagerInternal.java b/services/core/java/com/android/server/notification/NotificationManagerInternal.java
new file mode 100644
index 0000000..92ffdcc
--- /dev/null
+++ b/services/core/java/com/android/server/notification/NotificationManagerInternal.java
@@ -0,0 +1,8 @@
+package com.android.server.notification;
+
+import android.app.Notification;
+
+public interface NotificationManagerInternal {
+ void enqueueNotification(String pkg, String basePkg, int callingUid, int callingPid,
+ String tag, int id, Notification notification, int[] idReceived, int userId);
+}
diff --git a/services/java/com/android/server/NotificationManagerService.java b/services/core/java/com/android/server/notification/NotificationManagerService.java
similarity index 78%
rename from services/java/com/android/server/NotificationManagerService.java
rename to services/core/java/com/android/server/notification/NotificationManagerService.java
index 0438675..db4cf31d 100644
--- a/services/java/com/android/server/NotificationManagerService.java
+++ b/services/core/java/com/android/server/notification/NotificationManagerService.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.server;
+package com.android.server.notification;
import static org.xmlpull.v1.XmlPullParser.END_DOCUMENT;
import static org.xmlpull.v1.XmlPullParser.END_TAG;
@@ -47,7 +47,6 @@
import android.database.ContentObserver;
import android.graphics.Bitmap;
import android.media.AudioManager;
-import android.media.IAudioService;
import android.media.IRingtonePlayer;
import android.net.Uri;
import android.os.Binder;
@@ -56,9 +55,7 @@
import android.os.Message;
import android.os.Process;
import android.os.RemoteException;
-import android.os.ServiceManager;
import android.os.UserHandle;
-import android.os.UserManager;
import android.os.Vibrator;
import android.provider.Settings;
import android.service.notification.INotificationListener;
@@ -78,6 +75,12 @@
import com.android.internal.R;
import com.android.internal.notification.NotificationScorer;
+import com.android.server.EventLogTags;
+import com.android.server.statusbar.StatusBarManagerInternal;
+import com.android.server.SystemService;
+import com.android.server.lights.Light;
+import com.android.server.lights.LightsManager;
+
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
@@ -99,66 +102,61 @@
import libcore.io.IoUtils;
-
/** {@hide} */
-public class NotificationManagerService extends INotificationManager.Stub
-{
- private static final String TAG = "NotificationService";
- private static final boolean DBG = false;
+public class NotificationManagerService extends SystemService {
+ static final String TAG = "NotificationService";
+ static final boolean DBG = false;
- private static final int MAX_PACKAGE_NOTIFICATIONS = 50;
+ static final int MAX_PACKAGE_NOTIFICATIONS = 50;
// message codes
- private static final int MESSAGE_TIMEOUT = 2;
+ static final int MESSAGE_TIMEOUT = 2;
- private static final int LONG_DELAY = 3500; // 3.5 seconds
- private static final int SHORT_DELAY = 2000; // 2 seconds
+ static final int LONG_DELAY = 3500; // 3.5 seconds
+ static final int SHORT_DELAY = 2000; // 2 seconds
- private static final long[] DEFAULT_VIBRATE_PATTERN = {0, 250, 250, 250};
- private static final int VIBRATE_PATTERN_MAXLEN = 8 * 2 + 1; // up to eight bumps
+ static final long[] DEFAULT_VIBRATE_PATTERN = {0, 250, 250, 250};
+ static final int VIBRATE_PATTERN_MAXLEN = 8 * 2 + 1; // up to eight bumps
- private static final int DEFAULT_STREAM_TYPE = AudioManager.STREAM_NOTIFICATION;
- private static final boolean SCORE_ONGOING_HIGHER = false;
+ static final int DEFAULT_STREAM_TYPE = AudioManager.STREAM_NOTIFICATION;
+ static final boolean SCORE_ONGOING_HIGHER = false;
- private static final int JUNK_SCORE = -1000;
- private static final int NOTIFICATION_PRIORITY_MULTIPLIER = 10;
- private static final int SCORE_DISPLAY_THRESHOLD = Notification.PRIORITY_MIN * NOTIFICATION_PRIORITY_MULTIPLIER;
+ static final int JUNK_SCORE = -1000;
+ static final int NOTIFICATION_PRIORITY_MULTIPLIER = 10;
+ static final int SCORE_DISPLAY_THRESHOLD = Notification.PRIORITY_MIN * NOTIFICATION_PRIORITY_MULTIPLIER;
// Notifications with scores below this will not interrupt the user, either via LED or
// sound or vibration
- private static final int SCORE_INTERRUPTION_THRESHOLD =
+ static final int SCORE_INTERRUPTION_THRESHOLD =
Notification.PRIORITY_LOW * NOTIFICATION_PRIORITY_MULTIPLIER;
- private static final boolean ENABLE_BLOCKED_NOTIFICATIONS = true;
- private static final boolean ENABLE_BLOCKED_TOASTS = true;
+ static final boolean ENABLE_BLOCKED_NOTIFICATIONS = true;
+ static final boolean ENABLE_BLOCKED_TOASTS = true;
- private static final String ENABLED_NOTIFICATION_LISTENERS_SEPARATOR = ":";
+ static final String ENABLED_NOTIFICATION_LISTENERS_SEPARATOR = ":";
- final Context mContext;
- final IActivityManager mAm;
- final UserManager mUserManager;
+ private IActivityManager mAm;
+ AudioManager mAudioManager;
+ StatusBarManagerInternal mStatusBar;
+ Vibrator mVibrator;
+
final IBinder mForegroundToken = new Binder();
-
private WorkerHandler mHandler;
- private StatusBarManagerService mStatusBar;
- private LightsService.Light mNotificationLight;
- private LightsService.Light mAttentionLight;
+ private Light mNotificationLight;
+ Light mAttentionLight;
private int mDefaultNotificationColor;
private int mDefaultNotificationLedOn;
+
private int mDefaultNotificationLedOff;
-
private long[] mDefaultVibrationPattern;
+
private long[] mFallbackVibrationPattern;
+ boolean mSystemReady;
- private boolean mSystemReady;
- private int mDisabledNotifications;
-
- private NotificationRecord mSoundNotification;
- private NotificationRecord mVibrateNotification;
-
- private IAudioService mAudioService;
- private Vibrator mVibrator;
+ int mDisabledNotifications;
+ NotificationRecord mSoundNotification;
+ NotificationRecord mVibrateNotification;
// for enabling and disabling notification pulse behavior
private boolean mScreenOn = true;
@@ -166,15 +164,15 @@
private boolean mNotificationPulseEnabled;
// used as a mutex for access to all active notifications & listeners
- private final ArrayList<NotificationRecord> mNotificationList =
+ final ArrayList<NotificationRecord> mNotificationList =
new ArrayList<NotificationRecord>();
- private ArrayList<ToastRecord> mToastQueue;
+ final ArrayList<ToastRecord> mToastQueue = new ArrayList<ToastRecord>();
- private ArrayList<NotificationRecord> mLights = new ArrayList<NotificationRecord>();
- private NotificationRecord mLedNotification;
+ ArrayList<NotificationRecord> mLights = new ArrayList<NotificationRecord>();
+ NotificationRecord mLedNotification;
- private final AppOpsManager mAppOps;
+ private AppOpsManager mAppOps;
// contains connections to all connected listeners, including app services
// and system listeners
@@ -202,9 +200,9 @@
private static final String TAG_PACKAGE = "package";
private static final String ATTR_NAME = "name";
- private final ArrayList<NotificationScorer> mScorers = new ArrayList<NotificationScorer>();
+ final ArrayList<NotificationScorer> mScorers = new ArrayList<NotificationScorer>();
- private class NotificationListenerInfo implements DeathRecipient {
+ private class NotificationListenerInfo implements IBinder.DeathRecipient {
INotificationListener listener;
ComponentName component;
int userid;
@@ -262,7 +260,7 @@
public void binderDied() {
if (connection == null) {
// This is not a service; it won't be recreated. We can give up this connection.
- unregisterListener(this.listener, this.userid);
+ unregisterListenerImpl(this.listener, this.userid);
}
}
@@ -400,12 +398,14 @@
tag = parser.getName();
if (type == START_TAG) {
if (TAG_BODY.equals(tag)) {
- version = Integer.parseInt(parser.getAttributeValue(null, ATTR_VERSION));
+ version = Integer.parseInt(
+ parser.getAttributeValue(null, ATTR_VERSION));
} else if (TAG_BLOCKED_PKGS.equals(tag)) {
while ((type = parser.next()) != END_DOCUMENT) {
tag = parser.getName();
if (TAG_PACKAGE.equals(tag)) {
- mBlockedPackages.add(parser.getAttributeValue(null, ATTR_NAME));
+ mBlockedPackages.add(
+ parser.getAttributeValue(null, ATTR_NAME));
} else if (TAG_BLOCKED_PKGS.equals(tag) && type == END_TAG) {
break;
}
@@ -428,15 +428,6 @@
}
}
- /**
- * Use this when you just want to know if notifications are OK for this package.
- */
- public boolean areNotificationsEnabledForPackage(String pkg, int uid) {
- checkCallerIsSystem();
- return (mAppOps.checkOpNoThrow(AppOpsManager.OP_POST_NOTIFICATION, uid, pkg)
- == AppOpsManager.MODE_ALLOWED);
- }
-
/** Use this when you actually want to post a notification or toast.
*
* Unchecked. Not exposed via Binder, but can be called in the course of enqueue*().
@@ -450,21 +441,6 @@
return true;
}
- public void setNotificationsEnabledForPackage(String pkg, int uid, boolean enabled) {
- checkCallerIsSystem();
-
- Slog.v(TAG, (enabled?"en":"dis") + "abling notifications for " + pkg);
-
- mAppOps.setMode(AppOpsManager.OP_POST_NOTIFICATION, uid, pkg,
- enabled ? AppOpsManager.MODE_ALLOWED : AppOpsManager.MODE_IGNORED);
-
- // Now, cancel any outstanding notifications that are part of a just-disabled app
- if (ENABLE_BLOCKED_NOTIFICATIONS && !enabled) {
- cancelAllNotificationsInt(pkg, 0, 0, true, UserHandle.getUserId(uid));
- }
- }
-
-
private static String idDebugString(Context baseContext, String packageName, int id) {
Context c = null;
@@ -490,57 +466,6 @@
}
}
- /**
- * System-only API for getting a list of current (i.e. not cleared) notifications.
- *
- * Requires ACCESS_NOTIFICATIONS which is signature|system.
- */
- @Override
- public StatusBarNotification[] getActiveNotifications(String callingPkg) {
- // enforce() will ensure the calling uid has the correct permission
- mContext.enforceCallingOrSelfPermission(android.Manifest.permission.ACCESS_NOTIFICATIONS,
- "NotificationManagerService.getActiveNotifications");
-
- StatusBarNotification[] tmp = null;
- int uid = Binder.getCallingUid();
-
- // noteOp will check to make sure the callingPkg matches the uid
- if (mAppOps.noteOpNoThrow(AppOpsManager.OP_ACCESS_NOTIFICATIONS, uid, callingPkg)
- == AppOpsManager.MODE_ALLOWED) {
- synchronized (mNotificationList) {
- tmp = new StatusBarNotification[mNotificationList.size()];
- final int N = mNotificationList.size();
- for (int i=0; i<N; i++) {
- tmp[i] = mNotificationList.get(i).sbn;
- }
- }
- }
- return tmp;
- }
-
- /**
- * System-only API for getting a list of recent (cleared, no longer shown) notifications.
- *
- * Requires ACCESS_NOTIFICATIONS which is signature|system.
- */
- @Override
- public StatusBarNotification[] getHistoricalNotifications(String callingPkg, int count) {
- // enforce() will ensure the calling uid has the correct permission
- mContext.enforceCallingOrSelfPermission(android.Manifest.permission.ACCESS_NOTIFICATIONS,
- "NotificationManagerService.getHistoricalNotifications");
-
- StatusBarNotification[] tmp = null;
- int uid = Binder.getCallingUid();
-
- // noteOp will check to make sure the callingPkg matches the uid
- if (mAppOps.noteOpNoThrow(AppOpsManager.OP_ACCESS_NOTIFICATIONS, uid, callingPkg)
- == AppOpsManager.MODE_ALLOWED) {
- synchronized (mArchive) {
- tmp = mArchive.getArray(count);
- }
- }
- return tmp;
- }
/**
* Remove notification access for any services that no longer exist.
@@ -548,12 +473,12 @@
void disableNonexistentListeners() {
int currentUser = ActivityManager.getCurrentUser();
String flatIn = Settings.Secure.getStringForUser(
- mContext.getContentResolver(),
+ getContext().getContentResolver(),
Settings.Secure.ENABLED_NOTIFICATION_LISTENERS,
currentUser);
if (!TextUtils.isEmpty(flatIn)) {
if (DBG) Slog.v(TAG, "flat before: " + flatIn);
- PackageManager pm = mContext.getPackageManager();
+ PackageManager pm = getContext().getPackageManager();
List<ResolveInfo> installedServices = pm.queryIntentServicesAsUser(
new Intent(NotificationListenerService.SERVICE_INTERFACE),
PackageManager.GET_SERVICES | PackageManager.GET_META_DATA,
@@ -589,7 +514,7 @@
}
if (DBG) Slog.v(TAG, "flat after: " + flatOut);
if (!flatIn.equals(flatOut)) {
- Settings.Secure.putStringForUser(mContext.getContentResolver(),
+ Settings.Secure.putStringForUser(getContext().getContentResolver(),
Settings.Secure.ENABLED_NOTIFICATION_LISTENERS,
flatOut, currentUser);
}
@@ -603,7 +528,7 @@
void rebindListenerServices() {
final int currentUser = ActivityManager.getCurrentUser();
String flat = Settings.Secure.getStringForUser(
- mContext.getContentResolver(),
+ getContext().getContentResolver(),
Settings.Secure.ENABLED_NOTIFICATION_LISTENERS,
currentUser);
@@ -652,28 +577,6 @@
}
}
- /**
- * Register a listener binder directly with the notification manager.
- *
- * Only works with system callers. Apps should extend
- * {@link android.service.notification.NotificationListenerService}.
- */
- @Override
- public void registerListener(final INotificationListener listener,
- final ComponentName component, final int userid) {
- checkCallerIsSystem();
-
- synchronized (mNotificationList) {
- try {
- NotificationListenerInfo info
- = new NotificationListenerInfo(listener, component, userid, true);
- listener.asBinder().linkToDeath(info, 0);
- mListeners.add(info);
- } catch (RemoteException e) {
- // already dead
- }
- }
- }
/**
* Version of registerListener that takes the name of a
@@ -703,7 +606,7 @@
if (DBG) Slog.v(TAG, " disconnecting old listener: " + info.listener);
mListeners.remove(i);
if (info.connection != null) {
- mContext.unbindService(info.connection);
+ getContext().unbindService(info.connection);
}
}
}
@@ -713,21 +616,25 @@
intent.putExtra(Intent.EXTRA_CLIENT_LABEL,
R.string.notification_listener_binding_label);
- intent.putExtra(Intent.EXTRA_CLIENT_INTENT, PendingIntent.getActivity(
- mContext, 0, new Intent(Settings.ACTION_NOTIFICATION_LISTENER_SETTINGS), 0));
+
+ final PendingIntent pendingIntent = PendingIntent.getActivity(
+ getContext(), 0, new Intent(Settings.ACTION_NOTIFICATION_LISTENER_SETTINGS), 0);
+ intent.putExtra(Intent.EXTRA_CLIENT_INTENT, pendingIntent);
try {
if (DBG) Slog.v(TAG, "binding: " + intent);
- if (!mContext.bindServiceAsUser(intent,
+ if (!getContext().bindServiceAsUser(intent,
new ServiceConnection() {
INotificationListener mListener;
+
@Override
public void onServiceConnected(ComponentName name, IBinder service) {
synchronized (mNotificationList) {
mServicesBinding.remove(servicesBindingTag);
try {
mListener = INotificationListener.Stub.asInterface(service);
- NotificationListenerInfo info = new NotificationListenerInfo(
+ NotificationListenerInfo info
+ = new NotificationListenerInfo(
mListener, name, userid, this);
service.linkToDeath(info, 0);
mListeners.add(info);
@@ -756,28 +663,6 @@
}
}
- /**
- * Remove a listener binder directly
- */
- @Override
- public void unregisterListener(INotificationListener listener, int userid) {
- // no need to check permissions; if your listener binder is in the list,
- // that's proof that you had permission to add it in the first place
-
- synchronized (mNotificationList) {
- final int N = mListeners.size();
- for (int i=N-1; i>=0; i--) {
- final NotificationListenerInfo info = mListeners.get(i);
- if (info.listener.asBinder() == listener.asBinder()
- && info.userid == userid) {
- mListeners.remove(i);
- if (info.connection != null) {
- mContext.unbindService(info.connection);
- }
- }
- }
- }
- }
/**
* Remove a listener service for the given user by ComponentName
@@ -794,7 +679,7 @@
mListeners.remove(i);
if (info.connection != null) {
try {
- mContext.unbindService(info.connection);
+ getContext().unbindService(info.connection);
} catch (IllegalArgumentException ex) {
// something happened to the service: we think we have a connection
// but it's bogus.
@@ -809,7 +694,7 @@
/**
* asynchronously notify all listeners about a new notification
*/
- private void notifyPostedLocked(NotificationRecord n) {
+ void notifyPostedLocked(NotificationRecord n) {
// make a copy in case changes are made to the underlying Notification object
final StatusBarNotification sbn = n.sbn.clone();
for (final NotificationListenerInfo info : mListeners) {
@@ -824,7 +709,7 @@
/**
* asynchronously notify all listeners about a removed notification
*/
- private void notifyRemovedLocked(NotificationRecord n) {
+ void notifyRemovedLocked(NotificationRecord n) {
// make a copy in case changes are made to the underlying Notification object
// NOTE: this copy is lightweight: it doesn't include heavyweight parts of the notification
final StatusBarNotification sbn_light = n.sbn.cloneLight();
@@ -850,66 +735,7 @@
throw new SecurityException("Disallowed call from unknown listener: " + listener);
}
- /**
- * Allow an INotificationListener to simulate a "clear all" operation.
- *
- * {@see com.android.server.StatusBarManagerService.NotificationCallbacks#onClearAllNotifications}
- *
- * @param token The binder for the listener, to check that the caller is allowed
- */
- public void cancelAllNotificationsFromListener(INotificationListener token) {
- NotificationListenerInfo info = checkListenerToken(token);
- long identity = Binder.clearCallingIdentity();
- try {
- cancelAll(info.userid);
- } finally {
- Binder.restoreCallingIdentity(identity);
- }
- }
- /**
- * Allow an INotificationListener to simulate clearing (dismissing) a single notification.
- *
- * {@see com.android.server.StatusBarManagerService.NotificationCallbacks#onNotificationClear}
- *
- * @param token The binder for the listener, to check that the caller is allowed
- */
- public void cancelNotificationFromListener(INotificationListener token, String pkg, String tag, int id) {
- NotificationListenerInfo info = checkListenerToken(token);
- long identity = Binder.clearCallingIdentity();
- try {
- cancelNotification(pkg, tag, id, 0,
- Notification.FLAG_ONGOING_EVENT | Notification.FLAG_FOREGROUND_SERVICE,
- true,
- info.userid);
- } finally {
- Binder.restoreCallingIdentity(identity);
- }
- }
-
- /**
- * Allow an INotificationListener to request the list of outstanding notifications seen by
- * the current user. Useful when starting up, after which point the listener callbacks should
- * be used.
- *
- * @param token The binder for the listener, to check that the caller is allowed
- */
- public StatusBarNotification[] getActiveNotificationsFromListener(INotificationListener token) {
- NotificationListenerInfo info = checkListenerToken(token);
-
- StatusBarNotification[] result = new StatusBarNotification[0];
- ArrayList<StatusBarNotification> list = new ArrayList<StatusBarNotification>();
- synchronized (mNotificationList) {
- final int N = mNotificationList.size();
- for (int i=0; i<N; i++) {
- StatusBarNotification sbn = mNotificationList.get(i).sbn;
- if (info.enabledAndUserMatches(sbn)) {
- list.add(sbn);
- }
- }
- }
- return list.toArray(result);
- }
// -- end of listener APIs --
@@ -992,8 +818,8 @@
return String.format(
"NotificationRecord(0x%08x: pkg=%s user=%s id=%d tag=%s score=%d: %s)",
System.identityHashCode(this),
- this.sbn.getPackageName(), this.sbn.getUser(), this.sbn.getId(), this.sbn.getTag(),
- this.sbn.getScore(), this.sbn.getNotification());
+ this.sbn.getPackageName(), this.sbn.getUser(), this.sbn.getId(),
+ this.sbn.getTag(), this.sbn.getScore(), this.sbn.getNotification());
}
}
@@ -1031,9 +857,9 @@
}
}
- private StatusBarManagerService.NotificationCallbacks mNotificationCallbacks
- = new StatusBarManagerService.NotificationCallbacks() {
+ private final NotificationDelegate mNotificationDelegate = new NotificationDelegate() {
+ @Override
public void onSetDisabled(int status) {
synchronized (mNotificationList) {
mDisabledNotifications = status;
@@ -1041,7 +867,7 @@
// cancel whatever's going on
long identity = Binder.clearCallingIdentity();
try {
- final IRingtonePlayer player = mAudioService.getRingtonePlayer();
+ final IRingtonePlayer player = mAudioManager.getRingtonePlayer();
if (player != null) {
player.stopAsync();
}
@@ -1060,12 +886,14 @@
}
}
+ @Override
public void onClearAll() {
// XXX to be totally correct, the caller should tell us which user
// this is for.
cancelAll(ActivityManager.getCurrentUser());
}
+ @Override
public void onNotificationClick(String pkg, String tag, int id) {
// XXX to be totally correct, the caller should tell us which user
// this is for.
@@ -1074,6 +902,7 @@
ActivityManager.getCurrentUser());
}
+ @Override
public void onNotificationClear(String pkg, String tag, int id) {
// XXX to be totally correct, the caller should tell us which user
// this is for.
@@ -1082,6 +911,7 @@
true, ActivityManager.getCurrentUser());
}
+ @Override
public void onPanelRevealed() {
synchronized (mNotificationList) {
// sound
@@ -1089,7 +919,7 @@
long identity = Binder.clearCallingIdentity();
try {
- final IRingtonePlayer player = mAudioService.getRingtonePlayer();
+ final IRingtonePlayer player = mAudioManager.getRingtonePlayer();
if (player != null) {
player.stopAsync();
}
@@ -1114,6 +944,7 @@
}
}
+ @Override
public void onNotificationError(String pkg, String tag, int id,
int uid, int initialPid, String message) {
Slog.d(TAG, "onNotification error pkg=" + pkg + " tag=" + tag + " id=" + id
@@ -1168,7 +999,7 @@
if (packageChanged) {
// We cancel notifications for packages which have just been disabled
try {
- final int enabled = mContext.getPackageManager()
+ final int enabled = getContext().getPackageManager()
.getApplicationEnabledSetting(pkgName);
if (enabled == PackageManager.COMPONENT_ENABLED_STATE_ENABLED
|| enabled == PackageManager.COMPONENT_ENABLED_STATE_DEFAULT) {
@@ -1244,7 +1075,7 @@
}
void observe() {
- ContentResolver resolver = mContext.getContentResolver();
+ ContentResolver resolver = getContext().getContentResolver();
resolver.registerContentObserver(NOTIFICATION_LIGHT_PULSE_URI,
false, this, UserHandle.USER_ALL);
resolver.registerContentObserver(ENABLED_NOTIFICATION_LISTENERS_URI,
@@ -1257,7 +1088,7 @@
}
public void update(Uri uri) {
- ContentResolver resolver = mContext.getContentResolver();
+ ContentResolver resolver = getContext().getContentResolver();
if (uri == null || NOTIFICATION_LIGHT_PULSE_URI.equals(uri)) {
boolean pulseEnabled = Settings.System.getInt(resolver,
Settings.System.NOTIFICATION_LIGHT_PULSE, 0) != 0;
@@ -1287,28 +1118,24 @@
return out;
}
- NotificationManagerService(Context context, StatusBarManagerService statusBar,
- LightsService lights)
- {
- super();
- mContext = context;
- mVibrator = (Vibrator)context.getSystemService(Context.VIBRATOR_SERVICE);
+ @Override
+ public void onStart() {
mAm = ActivityManagerNative.getDefault();
- mUserManager = (UserManager)context.getSystemService(Context.USER_SERVICE);
- mToastQueue = new ArrayList<ToastRecord>();
- mHandler = new WorkerHandler();
+ mAppOps = (AppOpsManager) getContext().getSystemService(Context.APP_OPS_SERVICE);
+ mVibrator = (Vibrator) getContext().getSystemService(Context.VIBRATOR_SERVICE);
- mAppOps = (AppOpsManager)context.getSystemService(Context.APP_OPS_SERVICE);
+ mHandler = new WorkerHandler();
importOldBlockDb();
- mStatusBar = statusBar;
- statusBar.setNotificationCallbacks(mNotificationCallbacks);
+ mStatusBar = getLocalService(StatusBarManagerInternal.class);
+ mStatusBar.setNotificationDelegate(mNotificationDelegate);
- mNotificationLight = lights.getLight(LightsService.LIGHT_ID_NOTIFICATIONS);
- mAttentionLight = lights.getLight(LightsService.LIGHT_ID_ATTENTION);
+ final LightsManager lights = getLocalService(LightsManager.class);
+ mNotificationLight = lights.getLight(LightsManager.LIGHT_ID_NOTIFICATIONS);
+ mAttentionLight = lights.getLight(LightsManager.LIGHT_ID_ATTENTION);
- Resources resources = mContext.getResources();
+ Resources resources = getContext().getResources();
mDefaultNotificationColor = resources.getColor(
R.color.config_defaultNotificationColor);
mDefaultNotificationLedOn = resources.getInteger(
@@ -1330,7 +1157,7 @@
// After that, including subsequent boots, init with notifications turned on.
// This works on the first boot because the setup wizard will toggle this
// flag at least once and we'll go back to 0 after that.
- if (0 == Settings.Global.getInt(mContext.getContentResolver(),
+ if (0 == Settings.Global.getInt(getContext().getContentResolver(),
Settings.Global.DEVICE_PROVISIONED, 0)) {
mDisabledNotifications = StatusBarManager.DISABLE_NOTIFICATION_ALERTS;
}
@@ -1343,7 +1170,7 @@
filter.addAction(Intent.ACTION_USER_PRESENT);
filter.addAction(Intent.ACTION_USER_STOPPED);
filter.addAction(Intent.ACTION_USER_SWITCHED);
- mContext.registerReceiver(mIntentReceiver, filter);
+ getContext().registerReceiver(mIntentReceiver, filter);
IntentFilter pkgFilter = new IntentFilter();
pkgFilter.addAction(Intent.ACTION_PACKAGE_ADDED);
pkgFilter.addAction(Intent.ACTION_PACKAGE_REMOVED);
@@ -1351,9 +1178,9 @@
pkgFilter.addAction(Intent.ACTION_PACKAGE_RESTARTED);
pkgFilter.addAction(Intent.ACTION_QUERY_PACKAGE_RESTART);
pkgFilter.addDataScheme("package");
- mContext.registerReceiver(mIntentReceiver, pkgFilter);
+ getContext().registerReceiver(mIntentReceiver, pkgFilter);
IntentFilter sdFilter = new IntentFilter(Intent.ACTION_EXTERNAL_APPLICATIONS_UNAVAILABLE);
- mContext.registerReceiver(mIntentReceiver, sdFilter);
+ getContext().registerReceiver(mIntentReceiver, sdFilter);
mSettingsObserver = new SettingsObserver(mHandler);
mSettingsObserver.observe();
@@ -1363,9 +1190,9 @@
R.array.config_notificationScorers);
for (String scorerName : notificationScorerNames) {
try {
- Class<?> scorerClass = mContext.getClassLoader().loadClass(scorerName);
+ Class<?> scorerClass = getContext().getClassLoader().loadClass(scorerName);
NotificationScorer scorer = (NotificationScorer) scorerClass.newInstance();
- scorer.initialize(mContext);
+ scorer.initialize(getContext());
mScorers.add(scorer);
} catch (ClassNotFoundException e) {
Slog.w(TAG, "Couldn't find scorer " + scorerName + ".", e);
@@ -1375,6 +1202,9 @@
Slog.w(TAG, "Problem accessing scorer " + scorerName + ".", e);
}
}
+
+ publishBinderService(Context.NOTIFICATION_SERVICE, mService);
+ publishLocalService(NotificationManagerInternal.class, mInternalService);
}
/**
@@ -1383,12 +1213,12 @@
private void importOldBlockDb() {
loadBlockDb();
- PackageManager pm = mContext.getPackageManager();
+ PackageManager pm = getContext().getPackageManager();
for (String pkg : mBlockedPackages) {
PackageInfo info = null;
try {
info = pm.getPackageInfo(pkg, 0);
- setNotificationsEnabledForPackage(pkg, info.applicationInfo.uid, false);
+ setNotificationsEnabledForPackageImpl(pkg, info.applicationInfo.uid, false);
} catch (NameNotFoundException e) {
// forget you
}
@@ -1399,244 +1229,421 @@
}
}
- void systemReady() {
- mAudioService = IAudioService.Stub.asInterface(
- ServiceManager.getService(Context.AUDIO_SERVICE));
+ @Override
+ public void onBootPhase(int phase) {
+ if (phase == SystemService.PHASE_SYSTEM_SERVICES_READY) {
+ // no beeping until we're basically done booting
+ mSystemReady = true;
- // no beeping until we're basically done booting
- mSystemReady = true;
+ // Grab our optional AudioService
+ mAudioManager = (AudioManager) getContext().getSystemService(Context.AUDIO_SERVICE);
- // make sure our listener services are properly bound
- rebindListenerServices();
- }
-
- // Toasts
- // ============================================================================
- public void enqueueToast(String pkg, ITransientNotification callback, int duration)
- {
- if (DBG) Slog.i(TAG, "enqueueToast pkg=" + pkg + " callback=" + callback + " duration=" + duration);
-
- if (pkg == null || callback == null) {
- Slog.e(TAG, "Not doing toast. pkg=" + pkg + " callback=" + callback);
- return ;
- }
-
- final boolean isSystemToast = isCallerSystem() || ("android".equals(pkg));
-
- if (ENABLE_BLOCKED_TOASTS && !noteNotificationOp(pkg, Binder.getCallingUid())) {
- if (!isSystemToast) {
- Slog.e(TAG, "Suppressing toast from package " + pkg + " by user request.");
- return;
- }
- }
-
- synchronized (mToastQueue) {
- int callingPid = Binder.getCallingPid();
- long callingId = Binder.clearCallingIdentity();
- try {
- ToastRecord record;
- int index = indexOfToastLocked(pkg, callback);
- // If it's already in the queue, we update it in place, we don't
- // move it to the end of the queue.
- if (index >= 0) {
- record = mToastQueue.get(index);
- record.update(duration);
- } else {
- // Limit the number of toasts that any given package except the android
- // package can enqueue. Prevents DOS attacks and deals with leaks.
- if (!isSystemToast) {
- int count = 0;
- final int N = mToastQueue.size();
- for (int i=0; i<N; i++) {
- final ToastRecord r = mToastQueue.get(i);
- if (r.pkg.equals(pkg)) {
- count++;
- if (count >= MAX_PACKAGE_NOTIFICATIONS) {
- Slog.e(TAG, "Package has already posted " + count
- + " toasts. Not showing more. Package=" + pkg);
- return;
- }
- }
- }
- }
-
- record = new ToastRecord(callingPid, pkg, callback, duration);
- mToastQueue.add(record);
- index = mToastQueue.size() - 1;
- keepProcessAliveLocked(callingPid);
- }
- // If it's at index 0, it's the current toast. It doesn't matter if it's
- // new or just been updated. Call back and tell it to show itself.
- // If the callback fails, this will remove it from the list, so don't
- // assume that it's valid after this.
- if (index == 0) {
- showNextToastLocked();
- }
- } finally {
- Binder.restoreCallingIdentity(callingId);
- }
+ // make sure our listener services are properly bound
+ rebindListenerServices();
}
}
- public void cancelToast(String pkg, ITransientNotification callback) {
- Slog.i(TAG, "cancelToast pkg=" + pkg + " callback=" + callback);
+ void setNotificationsEnabledForPackageImpl(String pkg, int uid, boolean enabled) {
+ Slog.v(TAG, (enabled?"en":"dis") + "abling notifications for " + pkg);
- if (pkg == null || callback == null) {
- Slog.e(TAG, "Not cancelling notification. pkg=" + pkg + " callback=" + callback);
- return ;
- }
+ mAppOps.setMode(AppOpsManager.OP_POST_NOTIFICATION, uid, pkg,
+ enabled ? AppOpsManager.MODE_ALLOWED : AppOpsManager.MODE_IGNORED);
- synchronized (mToastQueue) {
- long callingId = Binder.clearCallingIdentity();
- try {
- int index = indexOfToastLocked(pkg, callback);
- if (index >= 0) {
- cancelToastLocked(index);
- } else {
- Slog.w(TAG, "Toast already cancelled. pkg=" + pkg + " callback=" + callback);
- }
- } finally {
- Binder.restoreCallingIdentity(callingId);
- }
+ // Now, cancel any outstanding notifications that are part of a just-disabled app
+ if (ENABLE_BLOCKED_NOTIFICATIONS && !enabled) {
+ cancelAllNotificationsInt(pkg, 0, 0, true, UserHandle.getUserId(uid));
}
}
- private void showNextToastLocked() {
- ToastRecord record = mToastQueue.get(0);
- while (record != null) {
- if (DBG) Slog.d(TAG, "Show pkg=" + record.pkg + " callback=" + record.callback);
- try {
- record.callback.show();
- scheduleTimeoutLocked(record);
- return;
- } catch (RemoteException e) {
- Slog.w(TAG, "Object died trying to show notification " + record.callback
- + " in package " + record.pkg);
- // remove it from the list and let the process die
- int index = mToastQueue.indexOf(record);
- if (index >= 0) {
- mToastQueue.remove(index);
- }
- keepProcessAliveLocked(record.pid);
- if (mToastQueue.size() > 0) {
- record = mToastQueue.get(0);
- } else {
- record = null;
- }
- }
- }
- }
+ private final IBinder mService = new INotificationManager.Stub() {
+ // Toasts
+ // ============================================================================
- private void cancelToastLocked(int index) {
- ToastRecord record = mToastQueue.get(index);
- try {
- record.callback.hide();
- } catch (RemoteException e) {
- Slog.w(TAG, "Object died trying to hide notification " + record.callback
- + " in package " + record.pkg);
- // don't worry about this, we're about to remove it from
- // the list anyway
- }
- mToastQueue.remove(index);
- keepProcessAliveLocked(record.pid);
- if (mToastQueue.size() > 0) {
- // Show the next one. If the callback fails, this will remove
- // it from the list, so don't assume that the list hasn't changed
- // after this point.
- showNextToastLocked();
- }
- }
-
- private void scheduleTimeoutLocked(ToastRecord r)
- {
- mHandler.removeCallbacksAndMessages(r);
- Message m = Message.obtain(mHandler, MESSAGE_TIMEOUT, r);
- long delay = r.duration == Toast.LENGTH_LONG ? LONG_DELAY : SHORT_DELAY;
- mHandler.sendMessageDelayed(m, delay);
- }
-
- private void handleTimeout(ToastRecord record)
- {
- if (DBG) Slog.d(TAG, "Timeout pkg=" + record.pkg + " callback=" + record.callback);
- synchronized (mToastQueue) {
- int index = indexOfToastLocked(record.pkg, record.callback);
- if (index >= 0) {
- cancelToastLocked(index);
- }
- }
- }
-
- // lock on mToastQueue
- private int indexOfToastLocked(String pkg, ITransientNotification callback)
- {
- IBinder cbak = callback.asBinder();
- ArrayList<ToastRecord> list = mToastQueue;
- int len = list.size();
- for (int i=0; i<len; i++) {
- ToastRecord r = list.get(i);
- if (r.pkg.equals(pkg) && r.callback.asBinder() == cbak) {
- return i;
- }
- }
- return -1;
- }
-
- // lock on mToastQueue
- private void keepProcessAliveLocked(int pid)
- {
- int toastCount = 0; // toasts from this pid
- ArrayList<ToastRecord> list = mToastQueue;
- int N = list.size();
- for (int i=0; i<N; i++) {
- ToastRecord r = list.get(i);
- if (r.pid == pid) {
- toastCount++;
- }
- }
- try {
- mAm.setProcessForeground(mForegroundToken, pid, toastCount > 0);
- } catch (RemoteException e) {
- // Shouldn't happen.
- }
- }
-
- private final class WorkerHandler extends Handler
- {
@Override
- public void handleMessage(Message msg)
+ public void enqueueToast(String pkg, ITransientNotification callback, int duration)
{
- switch (msg.what)
- {
- case MESSAGE_TIMEOUT:
- handleTimeout((ToastRecord)msg.obj);
- break;
+ if (DBG) {
+ Slog.i(TAG, "enqueueToast pkg=" + pkg + " callback=" + callback
+ + " duration=" + duration);
}
+
+ if (pkg == null || callback == null) {
+ Slog.e(TAG, "Not doing toast. pkg=" + pkg + " callback=" + callback);
+ return ;
+ }
+
+ final boolean isSystemToast = isCallerSystem() || ("android".equals(pkg));
+
+ if (ENABLE_BLOCKED_TOASTS && !noteNotificationOp(pkg, Binder.getCallingUid())) {
+ if (!isSystemToast) {
+ Slog.e(TAG, "Suppressing toast from package " + pkg + " by user request.");
+ return;
+ }
+ }
+
+ synchronized (mToastQueue) {
+ int callingPid = Binder.getCallingPid();
+ long callingId = Binder.clearCallingIdentity();
+ try {
+ ToastRecord record;
+ int index = indexOfToastLocked(pkg, callback);
+ // If it's already in the queue, we update it in place, we don't
+ // move it to the end of the queue.
+ if (index >= 0) {
+ record = mToastQueue.get(index);
+ record.update(duration);
+ } else {
+ // Limit the number of toasts that any given package except the android
+ // package can enqueue. Prevents DOS attacks and deals with leaks.
+ if (!isSystemToast) {
+ int count = 0;
+ final int N = mToastQueue.size();
+ for (int i=0; i<N; i++) {
+ final ToastRecord r = mToastQueue.get(i);
+ if (r.pkg.equals(pkg)) {
+ count++;
+ if (count >= MAX_PACKAGE_NOTIFICATIONS) {
+ Slog.e(TAG, "Package has already posted " + count
+ + " toasts. Not showing more. Package=" + pkg);
+ return;
+ }
+ }
+ }
+ }
+
+ record = new ToastRecord(callingPid, pkg, callback, duration);
+ mToastQueue.add(record);
+ index = mToastQueue.size() - 1;
+ keepProcessAliveLocked(callingPid);
+ }
+ // If it's at index 0, it's the current toast. It doesn't matter if it's
+ // new or just been updated. Call back and tell it to show itself.
+ // If the callback fails, this will remove it from the list, so don't
+ // assume that it's valid after this.
+ if (index == 0) {
+ showNextToastLocked();
+ }
+ } finally {
+ Binder.restoreCallingIdentity(callingId);
+ }
+ }
+ }
+
+ @Override
+ public void cancelToast(String pkg, ITransientNotification callback) {
+ Slog.i(TAG, "cancelToast pkg=" + pkg + " callback=" + callback);
+
+ if (pkg == null || callback == null) {
+ Slog.e(TAG, "Not cancelling notification. pkg=" + pkg + " callback=" + callback);
+ return ;
+ }
+
+ synchronized (mToastQueue) {
+ long callingId = Binder.clearCallingIdentity();
+ try {
+ int index = indexOfToastLocked(pkg, callback);
+ if (index >= 0) {
+ cancelToastLocked(index);
+ } else {
+ Slog.w(TAG, "Toast already cancelled. pkg=" + pkg
+ + " callback=" + callback);
+ }
+ } finally {
+ Binder.restoreCallingIdentity(callingId);
+ }
+ }
+ }
+
+ @Override
+ public void enqueueNotificationWithTag(String pkg, String basePkg, String tag, int id,
+ Notification notification, int[] idOut, int userId) throws RemoteException {
+ enqueueNotificationInternal(pkg, basePkg, Binder.getCallingUid(),
+ Binder.getCallingPid(), tag, id, notification, idOut, userId);
+ }
+
+ @Override
+ public void cancelNotificationWithTag(String pkg, String tag, int id, int userId) {
+ checkCallerIsSystemOrSameApp(pkg);
+ userId = ActivityManager.handleIncomingUser(Binder.getCallingPid(),
+ Binder.getCallingUid(), userId, true, false, "cancelNotificationWithTag", pkg);
+ // Don't allow client applications to cancel foreground service notis.
+ cancelNotification(pkg, tag, id, 0,
+ Binder.getCallingUid() == Process.SYSTEM_UID
+ ? 0 : Notification.FLAG_FOREGROUND_SERVICE, false, userId);
+ }
+
+ @Override
+ public void cancelAllNotifications(String pkg, int userId) {
+ checkCallerIsSystemOrSameApp(pkg);
+
+ userId = ActivityManager.handleIncomingUser(Binder.getCallingPid(),
+ Binder.getCallingUid(), userId, true, false, "cancelAllNotifications", pkg);
+
+ // Calling from user space, don't allow the canceling of actively
+ // running foreground services.
+ cancelAllNotificationsInt(pkg, 0, Notification.FLAG_FOREGROUND_SERVICE, true, userId);
+ }
+
+ @Override
+ public void setNotificationsEnabledForPackage(String pkg, int uid, boolean enabled) {
+ checkCallerIsSystem();
+
+ setNotificationsEnabledForPackageImpl(pkg, uid, enabled);
+ }
+
+ /**
+ * Use this when you just want to know if notifications are OK for this package.
+ */
+ @Override
+ public boolean areNotificationsEnabledForPackage(String pkg, int uid) {
+ checkCallerIsSystem();
+ return (mAppOps.checkOpNoThrow(AppOpsManager.OP_POST_NOTIFICATION, uid, pkg)
+ == AppOpsManager.MODE_ALLOWED);
+ }
+
+ /**
+ * System-only API for getting a list of current (i.e. not cleared) notifications.
+ *
+ * Requires ACCESS_NOTIFICATIONS which is signature|system.
+ */
+ @Override
+ public StatusBarNotification[] getActiveNotifications(String callingPkg) {
+ // enforce() will ensure the calling uid has the correct permission
+ getContext().enforceCallingOrSelfPermission(
+ android.Manifest.permission.ACCESS_NOTIFICATIONS,
+ "NotificationManagerService.getActiveNotifications");
+
+ StatusBarNotification[] tmp = null;
+ int uid = Binder.getCallingUid();
+
+ // noteOp will check to make sure the callingPkg matches the uid
+ if (mAppOps.noteOpNoThrow(AppOpsManager.OP_ACCESS_NOTIFICATIONS, uid, callingPkg)
+ == AppOpsManager.MODE_ALLOWED) {
+ synchronized (mNotificationList) {
+ tmp = new StatusBarNotification[mNotificationList.size()];
+ final int N = mNotificationList.size();
+ for (int i=0; i<N; i++) {
+ tmp[i] = mNotificationList.get(i).sbn;
+ }
+ }
+ }
+ return tmp;
+ }
+
+ /**
+ * System-only API for getting a list of recent (cleared, no longer shown) notifications.
+ *
+ * Requires ACCESS_NOTIFICATIONS which is signature|system.
+ */
+ @Override
+ public StatusBarNotification[] getHistoricalNotifications(String callingPkg, int count) {
+ // enforce() will ensure the calling uid has the correct permission
+ getContext().enforceCallingOrSelfPermission(
+ android.Manifest.permission.ACCESS_NOTIFICATIONS,
+ "NotificationManagerService.getHistoricalNotifications");
+
+ StatusBarNotification[] tmp = null;
+ int uid = Binder.getCallingUid();
+
+ // noteOp will check to make sure the callingPkg matches the uid
+ if (mAppOps.noteOpNoThrow(AppOpsManager.OP_ACCESS_NOTIFICATIONS, uid, callingPkg)
+ == AppOpsManager.MODE_ALLOWED) {
+ synchronized (mArchive) {
+ tmp = mArchive.getArray(count);
+ }
+ }
+ return tmp;
+ }
+
+ /**
+ * Register a listener binder directly with the notification manager.
+ *
+ * Only works with system callers. Apps should extend
+ * {@link android.service.notification.NotificationListenerService}.
+ */
+ @Override
+ public void registerListener(final INotificationListener listener,
+ final ComponentName component, final int userid) {
+ checkCallerIsSystem();
+ registerListenerImpl(listener, component, userid);
+ }
+
+ /**
+ * Remove a listener binder directly
+ */
+ @Override
+ public void unregisterListener(INotificationListener listener, int userid) {
+ // no need to check permissions; if your listener binder is in the list,
+ // that's proof that you had permission to add it in the first place
+ unregisterListenerImpl(listener, userid);
+ }
+
+ /**
+ * Allow an INotificationListener to simulate a "clear all" operation.
+ *
+ * {@see com.android.server.StatusBarManagerService.NotificationCallbacks#onClearAllNotifications}
+ *
+ * @param token The binder for the listener, to check that the caller is allowed
+ */
+ @Override
+ public void cancelAllNotificationsFromListener(INotificationListener token) {
+ NotificationListenerInfo info = checkListenerToken(token);
+ long identity = Binder.clearCallingIdentity();
+ try {
+ cancelAll(info.userid);
+ } finally {
+ Binder.restoreCallingIdentity(identity);
+ }
+ }
+
+ /**
+ * Allow an INotificationListener to simulate clearing (dismissing) a single notification.
+ *
+ * {@see com.android.server.StatusBarManagerService.NotificationCallbacks#onNotificationClear}
+ *
+ * @param token The binder for the listener, to check that the caller is allowed
+ */
+ @Override
+ public void cancelNotificationFromListener(INotificationListener token, String pkg,
+ String tag, int id) {
+ NotificationListenerInfo info = checkListenerToken(token);
+ long identity = Binder.clearCallingIdentity();
+ try {
+ cancelNotification(pkg, tag, id, 0,
+ Notification.FLAG_ONGOING_EVENT | Notification.FLAG_FOREGROUND_SERVICE,
+ true,
+ info.userid);
+ } finally {
+ Binder.restoreCallingIdentity(identity);
+ }
+ }
+
+ /**
+ * Allow an INotificationListener to request the list of outstanding notifications seen by
+ * the current user. Useful when starting up, after which point the listener callbacks
+ * should be used.
+ *
+ * @param token The binder for the listener, to check that the caller is allowed
+ */
+ @Override
+ public StatusBarNotification[] getActiveNotificationsFromListener(
+ INotificationListener token) {
+ NotificationListenerInfo info = checkListenerToken(token);
+
+ StatusBarNotification[] result = new StatusBarNotification[0];
+ ArrayList<StatusBarNotification> list = new ArrayList<StatusBarNotification>();
+ synchronized (mNotificationList) {
+ final int N = mNotificationList.size();
+ for (int i=0; i<N; i++) {
+ StatusBarNotification sbn = mNotificationList.get(i).sbn;
+ if (info.enabledAndUserMatches(sbn)) {
+ list.add(sbn);
+ }
+ }
+ }
+ return list.toArray(result);
+ }
+
+ @Override
+ protected void dump(FileDescriptor fd, PrintWriter pw, String[] args) {
+ if (getContext().checkCallingOrSelfPermission(android.Manifest.permission.DUMP)
+ != PackageManager.PERMISSION_GRANTED) {
+ pw.println("Permission Denial: can't dump NotificationManager from from pid="
+ + Binder.getCallingPid()
+ + ", uid=" + Binder.getCallingUid());
+ return;
+ }
+
+ dumpImpl(pw);
+ }
+ };
+
+ void dumpImpl(PrintWriter pw) {
+ pw.println("Current Notification Manager state:");
+
+ pw.println(" Listeners (" + mEnabledListenersForCurrentUser.size()
+ + ") enabled for current user:");
+ for (ComponentName cmpt : mEnabledListenersForCurrentUser) {
+ pw.println(" " + cmpt);
+ }
+
+ pw.println(" Live listeners (" + mListeners.size() + "):");
+ for (NotificationListenerInfo info : mListeners) {
+ pw.println(" " + info.component
+ + " (user " + info.userid + "): " + info.listener
+ + (info.isSystem?" SYSTEM":""));
+ }
+
+ int N;
+
+ synchronized (mToastQueue) {
+ N = mToastQueue.size();
+ if (N > 0) {
+ pw.println(" Toast Queue:");
+ for (int i=0; i<N; i++) {
+ mToastQueue.get(i).dump(pw, " ");
+ }
+ pw.println(" ");
+ }
+
+ }
+
+ synchronized (mNotificationList) {
+ N = mNotificationList.size();
+ if (N > 0) {
+ pw.println(" Notification List:");
+ for (int i=0; i<N; i++) {
+ mNotificationList.get(i).dump(pw, " ", getContext());
+ }
+ pw.println(" ");
+ }
+
+ N = mLights.size();
+ if (N > 0) {
+ pw.println(" Lights List:");
+ for (int i=0; i<N; i++) {
+ pw.println(" " + mLights.get(i));
+ }
+ pw.println(" ");
+ }
+
+ pw.println(" mSoundNotification=" + mSoundNotification);
+ pw.println(" mVibrateNotification=" + mVibrateNotification);
+ pw.println(" mDisabledNotifications=0x"
+ + Integer.toHexString(mDisabledNotifications));
+ pw.println(" mSystemReady=" + mSystemReady);
+ pw.println(" mArchive=" + mArchive.toString());
+ Iterator<StatusBarNotification> iter = mArchive.descendingIterator();
+ int i=0;
+ while (iter.hasNext()) {
+ pw.println(" " + iter.next());
+ if (++i >= 5) {
+ if (iter.hasNext()) pw.println(" ...");
+ break;
+ }
+ }
+
}
}
+ /**
+ * The private API only accessible to the system process.
+ */
+ private final NotificationManagerInternal mInternalService = new NotificationManagerInternal() {
+ @Override
+ public void enqueueNotification(String pkg, String basePkg, int callingUid, int callingPid,
+ String tag, int id, Notification notification, int[] idReceived, int userId) {
+ enqueueNotificationInternal(pkg, basePkg, callingUid, callingPid, tag, id, notification,
+ idReceived, userId);
+ }
+ };
- // Notifications
- // ============================================================================
- public void enqueueNotificationWithTag(String pkg, String basePkg, String tag, int id,
- Notification notification, int[] idOut, int userId)
- {
- enqueueNotificationInternal(pkg, basePkg, Binder.getCallingUid(), Binder.getCallingPid(),
- tag, id, notification, idOut, userId);
- }
-
- private final static int clamp(int x, int low, int high) {
- return (x < low) ? low : ((x > high) ? high : x);
- }
-
- // Not exposed via Binder; for system use only (otherwise malicious apps could spoof the
- // uid/pid of another application)
-
- public void enqueueNotificationInternal(final String pkg, String basePkg, final int callingUid,
+ void enqueueNotificationInternal(final String pkg, String basePkg, final int callingUid,
final int callingPid, final String tag, final int id, final Notification notification,
- int[] idOut, int incomingUserId)
- {
+ int[] idOut, int incomingUserId) {
if (DBG) {
- Slog.v(TAG, "enqueueNotificationInternal: pkg=" + pkg + " id=" + id + " notification=" + notification);
+ Slog.v(TAG, "enqueueNotificationInternal: pkg=" + pkg + " id=" + id
+ + " notification=" + notification);
}
checkCallerIsSystemOrSameApp(pkg);
final boolean isSystemNotification = isUidSystem(callingUid) || ("android".equals(pkg));
@@ -1787,23 +1794,21 @@
if (notification.icon != 0) {
if (old != null && old.statusBarKey != null) {
r.statusBarKey = old.statusBarKey;
- long identity = Binder.clearCallingIdentity();
+ final long identity = Binder.clearCallingIdentity();
try {
mStatusBar.updateNotification(r.statusBarKey, n);
- }
- finally {
+ } finally {
Binder.restoreCallingIdentity(identity);
}
} else {
- long identity = Binder.clearCallingIdentity();
+ final long identity = Binder.clearCallingIdentity();
try {
r.statusBarKey = mStatusBar.addNotification(n);
if ((n.getNotification().flags & Notification.FLAG_SHOW_LIGHTS) != 0
&& canInterrupt) {
mAttentionLight.pulse();
}
- }
- finally {
+ } finally {
Binder.restoreCallingIdentity(identity);
}
}
@@ -1816,33 +1821,32 @@
} else {
Slog.e(TAG, "Not posting notification with icon==0: " + notification);
if (old != null && old.statusBarKey != null) {
- long identity = Binder.clearCallingIdentity();
+ final long identity = Binder.clearCallingIdentity();
try {
mStatusBar.removeNotification(old.statusBarKey);
- }
- finally {
+ } finally {
Binder.restoreCallingIdentity(identity);
}
notifyRemovedLocked(r);
}
// ATTENTION: in a future release we will bail out here
- // so that we do not play sounds, show lights, etc. for invalid notifications
+ // so that we do not play sounds, show lights, etc. for invalid
+ // notifications
Slog.e(TAG, "WARNING: In a future release this will crash the app: "
+ n.getPackageName());
}
// If we're not supposed to beep, vibrate, etc. then don't.
- if (((mDisabledNotifications & StatusBarManager.DISABLE_NOTIFICATION_ALERTS) == 0)
+ if (((mDisabledNotifications
+ & StatusBarManager.DISABLE_NOTIFICATION_ALERTS) == 0)
&& (!(old != null
&& (notification.flags & Notification.FLAG_ONLY_ALERT_ONCE) != 0 ))
&& (r.getUserId() == UserHandle.USER_ALL ||
(r.getUserId() == userId && r.getUserId() == currentUser))
&& canInterrupt
- && mSystemReady) {
-
- final AudioManager audioManager = (AudioManager) mContext
- .getSystemService(Context.AUDIO_SERVICE);
+ && mSystemReady
+ && mAudioManager != null) {
// sound
@@ -1861,7 +1865,7 @@
soundUri = Settings.System.DEFAULT_NOTIFICATION_URI;
// check to see if the default notification sound is silent
- ContentResolver resolver = mContext.getContentResolver();
+ ContentResolver resolver = getContext().getContentResolver();
hasValidSound = Settings.System.getString(resolver,
Settings.System.NOTIFICATION_SOUND) != null;
} else if (notification.sound != null) {
@@ -1870,7 +1874,8 @@
}
if (hasValidSound) {
- boolean looping = (notification.flags & Notification.FLAG_INSISTENT) != 0;
+ boolean looping =
+ (notification.flags & Notification.FLAG_INSISTENT) != 0;
int audioStreamType;
if (notification.audioStreamType >= 0) {
audioStreamType = notification.audioStreamType;
@@ -1880,11 +1885,12 @@
mSoundNotification = r;
// do not play notifications if stream volume is 0 (typically because
// ringer mode is silent) or if there is a user of exclusive audio focus
- if ((audioManager.getStreamVolume(audioStreamType) != 0)
- && !audioManager.isAudioFocusExclusive()) {
+ if ((mAudioManager.getStreamVolume(audioStreamType) != 0)
+ && !mAudioManager.isAudioFocusExclusive()) {
final long identity = Binder.clearCallingIdentity();
try {
- final IRingtonePlayer player = mAudioService.getRingtonePlayer();
+ final IRingtonePlayer player =
+ mAudioManager.getRingtonePlayer();
if (player != null) {
player.playAsync(soundUri, user, looping, audioStreamType);
}
@@ -1904,7 +1910,7 @@
final boolean convertSoundToVibration =
!hasCustomVibrate
&& hasValidSound
- && (audioManager.getRingerMode()
+ && (mAudioManager.getRingerMode()
== AudioManager.RINGER_MODE_VIBRATE);
// The DEFAULT_VIBRATE flag trumps any custom vibration AND the fallback.
@@ -1912,7 +1918,7 @@
(notification.defaults & Notification.DEFAULT_VIBRATE) != 0;
if ((useDefaultVibrate || convertSoundToVibration || hasCustomVibrate)
- && !(audioManager.getRingerMode()
+ && !(mAudioManager.getRingerMode()
== AudioManager.RINGER_MODE_SILENT)) {
mVibrateNotification = r;
@@ -1966,8 +1972,158 @@
idOut[0] = id;
}
- private void sendAccessibilityEvent(Notification notification, CharSequence packageName) {
- AccessibilityManager manager = AccessibilityManager.getInstance(mContext);
+ void registerListenerImpl(final INotificationListener listener,
+ final ComponentName component, final int userid) {
+ synchronized (mNotificationList) {
+ try {
+ NotificationListenerInfo info
+ = new NotificationListenerInfo(listener, component, userid, true);
+ listener.asBinder().linkToDeath(info, 0);
+ mListeners.add(info);
+ } catch (RemoteException e) {
+ // already dead
+ }
+ }
+ }
+
+ void unregisterListenerImpl(final INotificationListener listener, final int userid) {
+ synchronized (mNotificationList) {
+ final int N = mListeners.size();
+ for (int i=N-1; i>=0; i--) {
+ final NotificationListenerInfo info = mListeners.get(i);
+ if (info.listener.asBinder() == listener.asBinder()
+ && info.userid == userid) {
+ mListeners.remove(i);
+ if (info.connection != null) {
+ getContext().unbindService(info.connection);
+ }
+ }
+ }
+ }
+ }
+
+ void showNextToastLocked() {
+ ToastRecord record = mToastQueue.get(0);
+ while (record != null) {
+ if (DBG) Slog.d(TAG, "Show pkg=" + record.pkg + " callback=" + record.callback);
+ try {
+ record.callback.show();
+ scheduleTimeoutLocked(record);
+ return;
+ } catch (RemoteException e) {
+ Slog.w(TAG, "Object died trying to show notification " + record.callback
+ + " in package " + record.pkg);
+ // remove it from the list and let the process die
+ int index = mToastQueue.indexOf(record);
+ if (index >= 0) {
+ mToastQueue.remove(index);
+ }
+ keepProcessAliveLocked(record.pid);
+ if (mToastQueue.size() > 0) {
+ record = mToastQueue.get(0);
+ } else {
+ record = null;
+ }
+ }
+ }
+ }
+
+ void cancelToastLocked(int index) {
+ ToastRecord record = mToastQueue.get(index);
+ try {
+ record.callback.hide();
+ } catch (RemoteException e) {
+ Slog.w(TAG, "Object died trying to hide notification " + record.callback
+ + " in package " + record.pkg);
+ // don't worry about this, we're about to remove it from
+ // the list anyway
+ }
+ mToastQueue.remove(index);
+ keepProcessAliveLocked(record.pid);
+ if (mToastQueue.size() > 0) {
+ // Show the next one. If the callback fails, this will remove
+ // it from the list, so don't assume that the list hasn't changed
+ // after this point.
+ showNextToastLocked();
+ }
+ }
+
+ private void scheduleTimeoutLocked(ToastRecord r)
+ {
+ mHandler.removeCallbacksAndMessages(r);
+ Message m = Message.obtain(mHandler, MESSAGE_TIMEOUT, r);
+ long delay = r.duration == Toast.LENGTH_LONG ? LONG_DELAY : SHORT_DELAY;
+ mHandler.sendMessageDelayed(m, delay);
+ }
+
+ private void handleTimeout(ToastRecord record)
+ {
+ if (DBG) Slog.d(TAG, "Timeout pkg=" + record.pkg + " callback=" + record.callback);
+ synchronized (mToastQueue) {
+ int index = indexOfToastLocked(record.pkg, record.callback);
+ if (index >= 0) {
+ cancelToastLocked(index);
+ }
+ }
+ }
+
+ // lock on mToastQueue
+ int indexOfToastLocked(String pkg, ITransientNotification callback)
+ {
+ IBinder cbak = callback.asBinder();
+ ArrayList<ToastRecord> list = mToastQueue;
+ int len = list.size();
+ for (int i=0; i<len; i++) {
+ ToastRecord r = list.get(i);
+ if (r.pkg.equals(pkg) && r.callback.asBinder() == cbak) {
+ return i;
+ }
+ }
+ return -1;
+ }
+
+ // lock on mToastQueue
+ void keepProcessAliveLocked(int pid)
+ {
+ int toastCount = 0; // toasts from this pid
+ ArrayList<ToastRecord> list = mToastQueue;
+ int N = list.size();
+ for (int i=0; i<N; i++) {
+ ToastRecord r = list.get(i);
+ if (r.pid == pid) {
+ toastCount++;
+ }
+ }
+ try {
+ mAm.setProcessForeground(mForegroundToken, pid, toastCount > 0);
+ } catch (RemoteException e) {
+ // Shouldn't happen.
+ }
+ }
+
+ private final class WorkerHandler extends Handler
+ {
+ @Override
+ public void handleMessage(Message msg)
+ {
+ switch (msg.what)
+ {
+ case MESSAGE_TIMEOUT:
+ handleTimeout((ToastRecord)msg.obj);
+ break;
+ }
+ }
+ }
+
+
+ // Notifications
+ // ============================================================================
+ static int clamp(int x, int low, int high) {
+ return (x < low) ? low : ((x > high) ? high : x);
+ }
+
+ void sendAccessibilityEvent(Notification notification, CharSequence packageName) {
+ AccessibilityManager manager = AccessibilityManager.getInstance(getContext());
if (!manager.isEnabled()) {
return;
}
@@ -2001,11 +2157,10 @@
// status bar
if (r.getNotification().icon != 0) {
- long identity = Binder.clearCallingIdentity();
+ final long identity = Binder.clearCallingIdentity();
try {
mStatusBar.removeNotification(r.statusBarKey);
- }
- finally {
+ } finally {
Binder.restoreCallingIdentity(identity);
}
r.statusBarKey = null;
@@ -2017,7 +2172,7 @@
mSoundNotification = null;
final long identity = Binder.clearCallingIdentity();
try {
- final IRingtonePlayer player = mAudioService.getRingtonePlayer();
+ final IRingtonePlayer player = mAudioManager.getRingtonePlayer();
if (player != null) {
player.stopAsync();
}
@@ -2053,7 +2208,7 @@
* Cancels a notification ONLY if it has all of the {@code mustHaveFlags}
* and none of the {@code mustNotHaveFlags}.
*/
- private void cancelNotification(final String pkg, final String tag, final int id,
+ void cancelNotification(final String pkg, final String tag, final int id,
final int mustHaveFlags, final int mustNotHaveFlags, final boolean sendDelete,
final int userId) {
// In enqueueNotificationInternal notifications are added by scheduling the
@@ -2146,26 +2301,7 @@
}
}
- public void cancelNotificationWithTag(String pkg, String tag, int id, int userId) {
- checkCallerIsSystemOrSameApp(pkg);
- userId = ActivityManager.handleIncomingUser(Binder.getCallingPid(),
- Binder.getCallingUid(), userId, true, false, "cancelNotificationWithTag", pkg);
- // Don't allow client applications to cancel foreground service notis.
- cancelNotification(pkg, tag, id, 0,
- Binder.getCallingUid() == Process.SYSTEM_UID
- ? 0 : Notification.FLAG_FOREGROUND_SERVICE, false, userId);
- }
- public void cancelAllNotifications(String pkg, int userId) {
- checkCallerIsSystemOrSameApp(pkg);
-
- userId = ActivityManager.handleIncomingUser(Binder.getCallingPid(),
- Binder.getCallingUid(), userId, true, false, "cancelAllNotifications", pkg);
-
- // Calling from user space, don't allow the canceling of actively
- // running foreground services.
- cancelAllNotificationsInt(pkg, 0, Notification.FLAG_FOREGROUND_SERVICE, true, userId);
- }
// Return true if the UID is a system or phone UID and therefore should not have
// any notifications or toasts blocked.
@@ -2225,7 +2361,7 @@
}
// lock on mNotificationList
- private void updateLightsLocked()
+ void updateLightsLocked()
{
// handle notification lights
if (mLedNotification == null) {
@@ -2251,14 +2387,14 @@
}
if (mNotificationPulseEnabled) {
// pulse repeatedly
- mNotificationLight.setFlashing(ledARGB, LightsService.LIGHT_FLASH_TIMED,
+ mNotificationLight.setFlashing(ledARGB, Light.LIGHT_FLASH_TIMED,
ledOnMS, ledOffMS);
}
}
}
// lock on mNotificationList
- private int indexOfNotificationLocked(String pkg, String tag, int id, int userId)
+ int indexOfNotificationLocked(String pkg, String tag, int id, int userId)
{
ArrayList<NotificationRecord> list = mNotificationList;
final int len = list.size();
@@ -2288,81 +2424,4 @@
updateLightsLocked();
}
}
-
- // ======================================================================
- @Override
- protected void dump(FileDescriptor fd, PrintWriter pw, String[] args) {
- if (mContext.checkCallingOrSelfPermission(android.Manifest.permission.DUMP)
- != PackageManager.PERMISSION_GRANTED) {
- pw.println("Permission Denial: can't dump NotificationManager from from pid="
- + Binder.getCallingPid()
- + ", uid=" + Binder.getCallingUid());
- return;
- }
-
- pw.println("Current Notification Manager state:");
-
- pw.println(" Listeners (" + mEnabledListenersForCurrentUser.size()
- + ") enabled for current user:");
- for (ComponentName cmpt : mEnabledListenersForCurrentUser) {
- pw.println(" " + cmpt);
- }
-
- pw.println(" Live listeners (" + mListeners.size() + "):");
- for (NotificationListenerInfo info : mListeners) {
- pw.println(" " + info.component
- + " (user " + info.userid + "): " + info.listener
- + (info.isSystem?" SYSTEM":""));
- }
-
- int N;
-
- synchronized (mToastQueue) {
- N = mToastQueue.size();
- if (N > 0) {
- pw.println(" Toast Queue:");
- for (int i=0; i<N; i++) {
- mToastQueue.get(i).dump(pw, " ");
- }
- pw.println(" ");
- }
-
- }
-
- synchronized (mNotificationList) {
- N = mNotificationList.size();
- if (N > 0) {
- pw.println(" Notification List:");
- for (int i=0; i<N; i++) {
- mNotificationList.get(i).dump(pw, " ", mContext);
- }
- pw.println(" ");
- }
-
- N = mLights.size();
- if (N > 0) {
- pw.println(" Lights List:");
- for (int i=0; i<N; i++) {
- pw.println(" " + mLights.get(i));
- }
- pw.println(" ");
- }
-
- pw.println(" mSoundNotification=" + mSoundNotification);
- pw.println(" mVibrateNotification=" + mVibrateNotification);
- pw.println(" mDisabledNotifications=0x" + Integer.toHexString(mDisabledNotifications));
- pw.println(" mSystemReady=" + mSystemReady);
- pw.println(" mArchive=" + mArchive.toString());
- Iterator<StatusBarNotification> iter = mArchive.descendingIterator();
- int i=0;
- while (iter.hasNext()) {
- pw.println(" " + iter.next());
- if (++i >= 5) {
- if (iter.hasNext()) pw.println(" ...");
- break;
- }
- }
-
- }
- }
}
diff --git a/services/java/com/android/server/os/SchedulingPolicyService.java b/services/core/java/com/android/server/os/SchedulingPolicyService.java
similarity index 100%
rename from services/java/com/android/server/os/SchedulingPolicyService.java
rename to services/core/java/com/android/server/os/SchedulingPolicyService.java
diff --git a/services/java/com/android/server/pm/BasePermission.java b/services/core/java/com/android/server/pm/BasePermission.java
similarity index 100%
rename from services/java/com/android/server/pm/BasePermission.java
rename to services/core/java/com/android/server/pm/BasePermission.java
diff --git a/services/java/com/android/server/pm/GrantedPermissions.java b/services/core/java/com/android/server/pm/GrantedPermissions.java
similarity index 100%
rename from services/java/com/android/server/pm/GrantedPermissions.java
rename to services/core/java/com/android/server/pm/GrantedPermissions.java
diff --git a/services/java/com/android/server/pm/Installer.java b/services/core/java/com/android/server/pm/Installer.java
similarity index 97%
rename from services/java/com/android/server/pm/Installer.java
rename to services/core/java/com/android/server/pm/Installer.java
index 0d2b503..e2ff146 100644
--- a/services/java/com/android/server/pm/Installer.java
+++ b/services/core/java/com/android/server/pm/Installer.java
@@ -16,6 +16,8 @@
package com.android.server.pm;
+import com.android.server.SystemService;
+
import android.content.pm.PackageStats;
import android.net.LocalSocket;
import android.net.LocalSocketAddress;
@@ -25,21 +27,24 @@
import java.io.InputStream;
import java.io.OutputStream;
-public final class Installer {
+public final class Installer extends SystemService {
private static final String TAG = "Installer";
private static final boolean LOCAL_DEBUG = false;
InputStream mIn;
-
OutputStream mOut;
-
LocalSocket mSocket;
byte buf[] = new byte[1024];
-
int buflen = 0;
+ @Override
+ public void onStart() {
+ Slog.i(TAG, "Waiting for installd to be ready.");
+ ping();
+ }
+
private boolean connect() {
if (mSocket != null) {
return true;
diff --git a/services/java/com/android/server/pm/KeySetManager.java b/services/core/java/com/android/server/pm/KeySetManager.java
similarity index 100%
rename from services/java/com/android/server/pm/KeySetManager.java
rename to services/core/java/com/android/server/pm/KeySetManager.java
diff --git a/services/java/com/android/server/pm/PackageKeySetData.java b/services/core/java/com/android/server/pm/PackageKeySetData.java
similarity index 100%
rename from services/java/com/android/server/pm/PackageKeySetData.java
rename to services/core/java/com/android/server/pm/PackageKeySetData.java
diff --git a/services/java/com/android/server/pm/PackageManagerService.java b/services/core/java/com/android/server/pm/PackageManagerService.java
similarity index 99%
rename from services/java/com/android/server/pm/PackageManagerService.java
rename to services/core/java/com/android/server/pm/PackageManagerService.java
index 7e244b9..df83fd7 100755
--- a/services/java/com/android/server/pm/PackageManagerService.java
+++ b/services/core/java/com/android/server/pm/PackageManagerService.java
@@ -38,10 +38,11 @@
import com.android.internal.util.FastPrintWriter;
import com.android.internal.util.FastXmlSerializer;
import com.android.internal.util.XmlUtils;
-import com.android.server.DeviceStorageMonitorService;
import com.android.server.EventLogTags;
import com.android.server.IntentResolver;
+import com.android.server.ServiceThread;
+import com.android.server.LocalServices;
import com.android.server.Watchdog;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
@@ -92,6 +93,7 @@
import android.content.pm.VerifierDeviceIdentity;
import android.content.pm.VerifierInfo;
import android.content.res.Resources;
+import android.hardware.display.DisplayManager;
import android.net.Uri;
import android.os.Binder;
import android.os.Build;
@@ -127,7 +129,6 @@
import android.util.SparseArray;
import android.util.Xml;
import android.view.Display;
-import android.view.WindowManager;
import java.io.BufferedOutputStream;
import java.io.File;
@@ -162,6 +163,7 @@
import libcore.io.StructStat;
import com.android.internal.R;
+import com.android.server.storage.DeviceStorageMonitorInternal;
/**
* Keep track of all those .apks everywhere.
@@ -259,8 +261,7 @@
static final String mTempContainerPrefix = "smdl2tmp";
- final HandlerThread mHandlerThread = new HandlerThread("PackageManager",
- Process.THREAD_PRIORITY_BACKGROUND);
+ final ServiceThread mHandlerThread;
final PackageHandler mHandler;
final int mSdkVersion = Build.VERSION.SDK_INT;
@@ -1067,6 +1068,12 @@
return res;
}
+ private static void getDefaultDisplayMetrics(Context context, DisplayMetrics metrics) {
+ DisplayManager displayManager = (DisplayManager) context.getSystemService(
+ Context.DISPLAY_SERVICE);
+ displayManager.getDisplay(Display.DEFAULT_DISPLAY).getMetrics(metrics);
+ }
+
public PackageManagerService(Context context, Installer installer,
boolean factoryTest, boolean onlyCore) {
EventLog.writeEvent(EventLogTags.BOOT_PROGRESS_PMS_START,
@@ -1114,17 +1121,16 @@
mInstaller = installer;
- WindowManager wm = (WindowManager)context.getSystemService(Context.WINDOW_SERVICE);
- Display d = wm.getDefaultDisplay();
- d.getMetrics(mMetrics);
+ getDefaultDisplayMetrics(context, mMetrics);
synchronized (mInstallLock) {
// writer
synchronized (mPackages) {
+ mHandlerThread = new ServiceThread(TAG,
+ Process.THREAD_PRIORITY_BACKGROUND, true /*allowIo*/);
mHandlerThread.start();
mHandler = new PackageHandler(mHandlerThread.getLooper());
- Watchdog.getInstance().addThread(mHandler, mHandlerThread.getName(),
- WATCHDOG_TIMEOUT);
+ Watchdog.getInstance().addThread(mHandler, WATCHDOG_TIMEOUT);
File dataDir = Environment.getDataDirectory();
mAppDataDir = new File(dataDir, "data");
@@ -7345,6 +7351,15 @@
return pkgLite.recommendedInstallLocation;
}
+ private long getMemoryLowThreshold() {
+ final DeviceStorageMonitorInternal
+ dsm = LocalServices.getService(DeviceStorageMonitorInternal.class);
+ if (dsm == null) {
+ return 0L;
+ }
+ return dsm.getMemoryLowThreshold();
+ }
+
/*
* Invoke remote method to get package information and install
* location values. Override install location based on default
@@ -7362,15 +7377,9 @@
Slog.w(TAG, "Conflicting flags specified for installing on both internal and external");
ret = PackageManager.INSTALL_FAILED_INVALID_INSTALL_LOCATION;
} else {
- final long lowThreshold;
-
- final DeviceStorageMonitorService dsm = (DeviceStorageMonitorService) ServiceManager
- .getService(DeviceStorageMonitorService.SERVICE);
- if (dsm == null) {
+ final long lowThreshold = getMemoryLowThreshold();
+ if (lowThreshold == 0L) {
Log.w(TAG, "Couldn't get low memory threshold; no free limit imposed");
- lowThreshold = 0L;
- } else {
- lowThreshold = dsm.getMemoryLowThreshold();
}
try {
@@ -7928,8 +7937,8 @@
boolean checkFreeStorage(IMediaContainerService imcs) throws RemoteException {
final long lowThreshold;
- final DeviceStorageMonitorService dsm = (DeviceStorageMonitorService) ServiceManager
- .getService(DeviceStorageMonitorService.SERVICE);
+ final DeviceStorageMonitorInternal
+ dsm = LocalServices.getService(DeviceStorageMonitorInternal.class);
if (dsm == null) {
Log.w(TAG, "Couldn't get low memory threshold; no free limit imposed");
lowThreshold = 0L;
@@ -9744,10 +9753,10 @@
clearExternalStorageDataSync(packageName, userId, true);
if (succeeded) {
// invoke DeviceStorageMonitor's update method to clear any notifications
- DeviceStorageMonitorService dsm = (DeviceStorageMonitorService)
- ServiceManager.getService(DeviceStorageMonitorService.SERVICE);
+ DeviceStorageMonitorInternal
+ dsm = LocalServices.getService(DeviceStorageMonitorInternal.class);
if (dsm != null) {
- dsm.updateMemory();
+ dsm.checkMemory();
}
}
if(observer != null) {
@@ -11572,12 +11581,17 @@
return true;
}
+ @Override
public boolean isStorageLow() {
final long token = Binder.clearCallingIdentity();
try {
- final DeviceStorageMonitorService dsm = (DeviceStorageMonitorService) ServiceManager
- .getService(DeviceStorageMonitorService.SERVICE);
- return dsm.isMemoryLow();
+ final DeviceStorageMonitorInternal
+ dsm = LocalServices.getService(DeviceStorageMonitorInternal.class);
+ if (dsm != null) {
+ return dsm.isMemoryLow();
+ } else {
+ return false;
+ }
} finally {
Binder.restoreCallingIdentity(token);
}
diff --git a/services/java/com/android/server/pm/PackageSetting.java b/services/core/java/com/android/server/pm/PackageSetting.java
similarity index 100%
rename from services/java/com/android/server/pm/PackageSetting.java
rename to services/core/java/com/android/server/pm/PackageSetting.java
diff --git a/services/java/com/android/server/pm/PackageSettingBase.java b/services/core/java/com/android/server/pm/PackageSettingBase.java
similarity index 100%
rename from services/java/com/android/server/pm/PackageSettingBase.java
rename to services/core/java/com/android/server/pm/PackageSettingBase.java
diff --git a/services/java/com/android/server/pm/PackageSignatures.java b/services/core/java/com/android/server/pm/PackageSignatures.java
similarity index 100%
rename from services/java/com/android/server/pm/PackageSignatures.java
rename to services/core/java/com/android/server/pm/PackageSignatures.java
diff --git a/services/java/com/android/server/pm/PackageVerificationResponse.java b/services/core/java/com/android/server/pm/PackageVerificationResponse.java
similarity index 100%
rename from services/java/com/android/server/pm/PackageVerificationResponse.java
rename to services/core/java/com/android/server/pm/PackageVerificationResponse.java
diff --git a/services/java/com/android/server/pm/PackageVerificationState.java b/services/core/java/com/android/server/pm/PackageVerificationState.java
similarity index 100%
rename from services/java/com/android/server/pm/PackageVerificationState.java
rename to services/core/java/com/android/server/pm/PackageVerificationState.java
diff --git a/services/java/com/android/server/pm/PendingPackage.java b/services/core/java/com/android/server/pm/PendingPackage.java
similarity index 100%
rename from services/java/com/android/server/pm/PendingPackage.java
rename to services/core/java/com/android/server/pm/PendingPackage.java
diff --git a/services/java/com/android/server/pm/PreferredActivity.java b/services/core/java/com/android/server/pm/PreferredActivity.java
similarity index 98%
rename from services/java/com/android/server/pm/PreferredActivity.java
rename to services/core/java/com/android/server/pm/PreferredActivity.java
index f93ba2f..8916926 100644
--- a/services/java/com/android/server/pm/PreferredActivity.java
+++ b/services/core/java/com/android/server/pm/PreferredActivity.java
@@ -17,7 +17,6 @@
package com.android.server.pm;
import com.android.internal.util.XmlUtils;
-import com.android.server.PreferredComponent;
import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
diff --git a/services/java/com/android/server/PreferredComponent.java b/services/core/java/com/android/server/pm/PreferredComponent.java
similarity index 99%
rename from services/java/com/android/server/PreferredComponent.java
rename to services/core/java/com/android/server/pm/PreferredComponent.java
index a7af252..f437372 100644
--- a/services/java/com/android/server/PreferredComponent.java
+++ b/services/core/java/com/android/server/pm/PreferredComponent.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.server;
+package com.android.server.pm;
import com.android.internal.util.XmlUtils;
diff --git a/services/java/com/android/server/pm/PreferredIntentResolver.java b/services/core/java/com/android/server/pm/PreferredIntentResolver.java
similarity index 100%
rename from services/java/com/android/server/pm/PreferredIntentResolver.java
rename to services/core/java/com/android/server/pm/PreferredIntentResolver.java
diff --git a/services/java/com/android/server/pm/SELinuxMMAC.java b/services/core/java/com/android/server/pm/SELinuxMMAC.java
similarity index 100%
rename from services/java/com/android/server/pm/SELinuxMMAC.java
rename to services/core/java/com/android/server/pm/SELinuxMMAC.java
diff --git a/services/java/com/android/server/pm/Settings.java b/services/core/java/com/android/server/pm/Settings.java
similarity index 100%
rename from services/java/com/android/server/pm/Settings.java
rename to services/core/java/com/android/server/pm/Settings.java
diff --git a/services/java/com/android/server/pm/SharedUserSetting.java b/services/core/java/com/android/server/pm/SharedUserSetting.java
similarity index 100%
rename from services/java/com/android/server/pm/SharedUserSetting.java
rename to services/core/java/com/android/server/pm/SharedUserSetting.java
diff --git a/services/java/com/android/server/pm/UserManagerService.java b/services/core/java/com/android/server/pm/UserManagerService.java
similarity index 100%
rename from services/java/com/android/server/pm/UserManagerService.java
rename to services/core/java/com/android/server/pm/UserManagerService.java
diff --git a/services/java/com/android/server/power/DisplayBlanker.java b/services/core/java/com/android/server/power/DisplayBlanker.java
similarity index 100%
rename from services/java/com/android/server/power/DisplayBlanker.java
rename to services/core/java/com/android/server/power/DisplayBlanker.java
diff --git a/services/java/com/android/server/power/DisplayPowerController.java b/services/core/java/com/android/server/power/DisplayPowerController.java
similarity index 98%
rename from services/java/com/android/server/power/DisplayPowerController.java
rename to services/core/java/com/android/server/power/DisplayPowerController.java
index 60d44c7..f1be504 100644
--- a/services/java/com/android/server/power/DisplayPowerController.java
+++ b/services/core/java/com/android/server/power/DisplayPowerController.java
@@ -16,10 +16,10 @@
package com.android.server.power;
-import com.android.server.LightsService;
-import com.android.server.TwilightService;
-import com.android.server.TwilightService.TwilightState;
-import com.android.server.display.DisplayManagerService;
+import com.android.server.lights.LightsManager;
+import com.android.server.twilight.TwilightListener;
+import com.android.server.twilight.TwilightManager;
+import com.android.server.twilight.TwilightState;
import android.animation.Animator;
import android.animation.ObjectAnimator;
@@ -179,13 +179,10 @@
private Handler mCallbackHandler;
// The lights service.
- private final LightsService mLights;
+ private final LightsManager mLights;
// The twilight service.
- private final TwilightService mTwilight;
-
- // The display manager.
- private final DisplayManagerService mDisplayManager;
+ private final TwilightManager mTwilight;
// The sensor manager.
private final SensorManager mSensorManager;
@@ -351,8 +348,7 @@
* Creates the display power controller.
*/
public DisplayPowerController(Looper looper, Context context, Notifier notifier,
- LightsService lights, TwilightService twilight, SensorManager sensorManager,
- DisplayManagerService displayManager,
+ LightsManager lights, TwilightManager twilight, SensorManager sensorManager,
SuspendBlocker displaySuspendBlocker, DisplayBlanker displayBlanker,
Callbacks callbacks, Handler callbackHandler) {
mHandler = new DisplayControllerHandler(looper);
@@ -365,7 +361,6 @@
mLights = lights;
mTwilight = twilight;
mSensorManager = sensorManager;
- mDisplayManager = displayManager;
final Resources resources = context.getResources();
@@ -526,9 +521,8 @@
}
private void initialize() {
- mPowerState = new DisplayPowerState(
- new ElectronBeam(mDisplayManager), mDisplayBlanker,
- mLights.getLight(LightsService.LIGHT_ID_BACKLIGHT));
+ mPowerState = new DisplayPowerState(new ElectronBeam(), mDisplayBlanker,
+ mLights.getLight(LightsManager.LIGHT_ID_BACKLIGHT));
mElectronBeamOnAnimator = ObjectAnimator.ofFloat(
mPowerState, DisplayPowerState.ELECTRON_BEAM_LEVEL, 0.0f, 1.0f);
@@ -1368,8 +1362,7 @@
}
};
- private final TwilightService.TwilightListener mTwilightListener =
- new TwilightService.TwilightListener() {
+ private final TwilightListener mTwilightListener = new TwilightListener() {
@Override
public void onTwilightStateChanged() {
mTwilightChanged = true;
diff --git a/services/java/com/android/server/power/DisplayPowerRequest.java b/services/core/java/com/android/server/power/DisplayPowerRequest.java
similarity index 100%
rename from services/java/com/android/server/power/DisplayPowerRequest.java
rename to services/core/java/com/android/server/power/DisplayPowerRequest.java
diff --git a/services/java/com/android/server/power/DisplayPowerState.java b/services/core/java/com/android/server/power/DisplayPowerState.java
similarity index 98%
rename from services/java/com/android/server/power/DisplayPowerState.java
rename to services/core/java/com/android/server/power/DisplayPowerState.java
index fa318f8..42af4b4 100644
--- a/services/java/com/android/server/power/DisplayPowerState.java
+++ b/services/core/java/com/android/server/power/DisplayPowerState.java
@@ -16,7 +16,7 @@
package com.android.server.power;
-import com.android.server.LightsService;
+import com.android.server.lights.Light;
import android.os.AsyncTask;
import android.os.Handler;
@@ -56,7 +56,7 @@
private final Choreographer mChoreographer;
private final ElectronBeam mElectronBeam;
private final DisplayBlanker mDisplayBlanker;
- private final LightsService.Light mBacklight;
+ private final Light mBacklight;
private final PhotonicModulator mPhotonicModulator;
private boolean mScreenOn;
@@ -72,7 +72,7 @@
private Runnable mCleanListener;
public DisplayPowerState(ElectronBeam electronBean,
- DisplayBlanker displayBlanker, LightsService.Light backlight) {
+ DisplayBlanker displayBlanker, Light backlight) {
mHandler = new Handler(true /*async*/);
mChoreographer = Choreographer.getInstance();
mElectronBeam = electronBean;
diff --git a/services/java/com/android/server/power/ElectronBeam.java b/services/core/java/com/android/server/power/ElectronBeam.java
similarity index 95%
rename from services/java/com/android/server/power/ElectronBeam.java
rename to services/core/java/com/android/server/power/ElectronBeam.java
index 729bd16..64921d7 100644
--- a/services/java/com/android/server/power/ElectronBeam.java
+++ b/services/core/java/com/android/server/power/ElectronBeam.java
@@ -23,6 +23,8 @@
import android.graphics.PixelFormat;
import android.graphics.SurfaceTexture;
+import android.hardware.display.DisplayManagerInternal;
+import android.hardware.display.DisplayManagerInternal.DisplayTransactionListener;
import android.opengl.EGL14;
import android.opengl.EGLConfig;
import android.opengl.EGLContext;
@@ -40,8 +42,7 @@
import android.view.SurfaceControl;
import android.view.SurfaceSession;
-import com.android.server.display.DisplayManagerService;
-import com.android.server.display.DisplayTransactionListener;
+import com.android.server.LocalServices;
/**
* Bzzzoooop! *crackle*
@@ -77,7 +78,7 @@
private boolean mPrepared;
private int mMode;
- private final DisplayManagerService mDisplayManager;
+ private final DisplayManagerInternal mDisplayManagerInternal;
private int mDisplayLayerStack; // layer stack associated with primary display
private int mDisplayWidth; // real width, not rotated
private int mDisplayHeight; // real height, not rotated
@@ -118,8 +119,8 @@
public static final int MODE_FADE = 2;
- public ElectronBeam(DisplayManagerService displayManager) {
- mDisplayManager = displayManager;
+ public ElectronBeam() {
+ mDisplayManagerInternal = LocalServices.getService(DisplayManagerInternal.class);
}
/**
@@ -138,7 +139,7 @@
// Get the display size and layer stack.
// This is not expected to change while the electron beam surface is showing.
- DisplayInfo displayInfo = mDisplayManager.getDisplayInfo(Display.DEFAULT_DISPLAY);
+ DisplayInfo displayInfo = mDisplayManagerInternal.getDisplayInfo(Display.DEFAULT_DISPLAY);
mDisplayLayerStack = displayInfo.layerStack;
mDisplayWidth = displayInfo.getNaturalWidth();
mDisplayHeight = displayInfo.getNaturalHeight();
@@ -527,7 +528,7 @@
mSurface = new Surface();
mSurface.copyFrom(mSurfaceControl);
- mSurfaceLayout = new NaturalSurfaceLayout(mDisplayManager, mSurfaceControl);
+ mSurfaceLayout = new NaturalSurfaceLayout(mDisplayManagerInternal, mSurfaceControl);
mSurfaceLayout.onDisplayTransaction();
} finally {
SurfaceControl.closeTransaction();
@@ -685,20 +686,21 @@
* owns the electron beam.
*/
private static final class NaturalSurfaceLayout implements DisplayTransactionListener {
- private final DisplayManagerService mDisplayManager;
+ private final DisplayManagerInternal mDisplayManagerInternal;
private SurfaceControl mSurfaceControl;
- public NaturalSurfaceLayout(DisplayManagerService displayManager, SurfaceControl surfaceControl) {
- mDisplayManager = displayManager;
+ public NaturalSurfaceLayout(DisplayManagerInternal displayManagerInternal,
+ SurfaceControl surfaceControl) {
+ mDisplayManagerInternal = displayManagerInternal;
mSurfaceControl = surfaceControl;
- mDisplayManager.registerDisplayTransactionListener(this);
+ mDisplayManagerInternal.registerDisplayTransactionListener(this);
}
public void dispose() {
synchronized (this) {
mSurfaceControl = null;
}
- mDisplayManager.unregisterDisplayTransactionListener(this);
+ mDisplayManagerInternal.unregisterDisplayTransactionListener(this);
}
@Override
@@ -708,7 +710,8 @@
return;
}
- DisplayInfo displayInfo = mDisplayManager.getDisplayInfo(Display.DEFAULT_DISPLAY);
+ DisplayInfo displayInfo =
+ mDisplayManagerInternal.getDisplayInfo(Display.DEFAULT_DISPLAY);
switch (displayInfo.rotation) {
case Surface.ROTATION_0:
mSurfaceControl.setPosition(0, 0);
diff --git a/services/java/com/android/server/power/Notifier.java b/services/core/java/com/android/server/power/Notifier.java
similarity index 100%
rename from services/java/com/android/server/power/Notifier.java
rename to services/core/java/com/android/server/power/Notifier.java
diff --git a/services/java/com/android/server/power/PowerManagerService.java b/services/core/java/com/android/server/power/PowerManagerService.java
similarity index 83%
rename from services/java/com/android/server/power/PowerManagerService.java
rename to services/core/java/com/android/server/power/PowerManagerService.java
index da9548f..94876bb 100644
--- a/services/java/com/android/server/power/PowerManagerService.java
+++ b/services/core/java/com/android/server/power/PowerManagerService.java
@@ -20,11 +20,11 @@
import com.android.internal.app.IBatteryStats;
import com.android.server.BatteryService;
import com.android.server.EventLogTags;
-import com.android.server.LightsService;
-import com.android.server.TwilightService;
+import com.android.server.ServiceThread;
+import com.android.server.lights.Light;
+import com.android.server.lights.LightsManager;
+import com.android.server.twilight.TwilightManager;
import com.android.server.Watchdog;
-import com.android.server.am.ActivityManagerService;
-import com.android.server.display.DisplayManagerService;
import com.android.server.dreams.DreamManagerService;
import android.Manifest;
@@ -38,16 +38,17 @@
import android.database.ContentObserver;
import android.hardware.SensorManager;
import android.hardware.SystemSensorManager;
+import android.hardware.display.DisplayManagerInternal;
import android.net.Uri;
import android.os.BatteryManager;
import android.os.Binder;
import android.os.Handler;
-import android.os.HandlerThread;
import android.os.IBinder;
import android.os.IPowerManager;
import android.os.Looper;
import android.os.Message;
import android.os.PowerManager;
+import android.os.PowerManagerInternal;
import android.os.Process;
import android.os.RemoteException;
import android.os.SystemClock;
@@ -72,7 +73,7 @@
* The power manager service is responsible for coordinating power management
* functions on the device.
*/
-public final class PowerManagerService extends IPowerManager.Stub
+public final class PowerManagerService extends com.android.server.SystemService
implements Watchdog.Monitor {
private static final String TAG = "PowerManagerService";
@@ -168,12 +169,12 @@
private static final int DREAM_BATTERY_LEVEL_DRAIN_CUTOFF = 5;
private Context mContext;
- private LightsService mLightsService;
+ private LightsManager mLightsManager;
private BatteryService mBatteryService;
- private DisplayManagerService mDisplayManagerService;
+ private DisplayManagerInternal mDisplayManagerInternal;
private IBatteryStats mBatteryStats;
private IAppOpsService mAppOps;
- private HandlerThread mHandlerThread;
+ private ServiceThread mHandlerThread;
private PowerManagerHandler mHandler;
private WindowManagerPolicy mPolicy;
private Notifier mNotifier;
@@ -181,7 +182,7 @@
private WirelessChargerDetector mWirelessChargerDetector;
private SettingsObserver mSettingsObserver;
private DreamManagerService mDreamManager;
- private LightsService.Light mAttentionLight;
+ private Light mAttentionLight;
private final Object mLock = new Object();
@@ -231,9 +232,6 @@
// requested because it is updated asynchronously by the display power controller.
private final DisplayPowerRequest mDisplayPowerRequest = new DisplayPowerRequest();
- // The time the screen was last turned off, in elapsedRealtime() timebase.
- private long mLastScreenOffEventElapsedRealTime;
-
// True if the display power state has been fully applied, which means the display
// is actually on or actually off or whatever was requested.
private boolean mDisplayReady;
@@ -392,25 +390,36 @@
nativeSetPowerState(true, true);
}
+ @Override
+ public void onCreate(Context context) {
+ mContext = context;
+ }
+
+ @Override
+ public void onStart() {
+ publishBinderService(Context.POWER_SERVICE, new BinderService());
+ publishLocalService(PowerManagerInternal.class, new LocalService());
+ }
+
/**
* Initialize the power manager.
* Must be called before any other functions within the power manager are called.
*/
- public void init(Context context, LightsService ls,
- ActivityManagerService am, BatteryService bs, IBatteryStats bss,
- IAppOpsService appOps, DisplayManagerService dm) {
- mContext = context;
- mLightsService = ls;
+ public void init(LightsManager ls,
+ BatteryService bs, IBatteryStats bss,
+ IAppOpsService appOps) {
+ mLightsManager = ls;
mBatteryService = bs;
mBatteryStats = bss;
mAppOps = appOps;
- mDisplayManagerService = dm;
- mHandlerThread = new HandlerThread(TAG);
+ mDisplayManagerInternal = getLocalService(DisplayManagerInternal.class);
+ mHandlerThread = new ServiceThread(TAG,
+ Process.THREAD_PRIORITY_DISPLAY, false /*allowIo*/);
mHandlerThread.start();
mHandler = new PowerManagerHandler(mHandlerThread.getLooper());
Watchdog.getInstance().addMonitor(this);
- Watchdog.getInstance().addThread(mHandler, mHandlerThread.getName());
+ Watchdog.getInstance().addThread(mHandler);
// Forcibly turn the screen on at boot so that it is in a known power state.
// We do this in init() rather than in the constructor because setting the
@@ -421,18 +430,18 @@
mDisplayBlanker.unblankAllDisplays();
}
- public void setPolicy(WindowManagerPolicy policy) {
+ void setPolicy(WindowManagerPolicy policy) {
synchronized (mLock) {
mPolicy = policy;
}
}
- public void systemReady(TwilightService twilight, DreamManagerService dreamManager) {
+ public void systemReady(TwilightManager twilight, DreamManagerService dreamManager) {
synchronized (mLock) {
mSystemReady = true;
mDreamManager = dreamManager;
- PowerManager pm = (PowerManager)mContext.getSystemService(Context.POWER_SERVICE);
+ PowerManager pm = (PowerManager) mContext.getSystemService(Context.POWER_SERVICE);
mScreenBrightnessSettingMinimum = pm.getMinimumScreenBrightnessSetting();
mScreenBrightnessSettingMaximum = pm.getMaximumScreenBrightnessSetting();
mScreenBrightnessSettingDefault = pm.getDefaultScreenBrightnessSetting();
@@ -448,15 +457,15 @@
// The display power controller runs on the power manager service's
// own handler thread to ensure timely operation.
mDisplayPowerController = new DisplayPowerController(mHandler.getLooper(),
- mContext, mNotifier, mLightsService, twilight, sensorManager,
- mDisplayManagerService, mDisplaySuspendBlocker, mDisplayBlanker,
+ mContext, mNotifier, mLightsManager, twilight, sensorManager,
+ mDisplaySuspendBlocker, mDisplayBlanker,
mDisplayPowerControllerCallbacks, mHandler);
mWirelessChargerDetector = new WirelessChargerDetector(sensorManager,
createSuspendBlockerLocked("PowerManagerService.WirelessChargerDetector"),
mHandler);
mSettingsObserver = new SettingsObserver(mHandler);
- mAttentionLight = mLightsService.getLight(LightsService.LIGHT_ID_ATTENTION);
+ mAttentionLight = mLightsManager.getLight(LightsManager.LIGHT_ID_ATTENTION);
// Register for broadcasts from other components of the system.
IntentFilter filter = new IntentFilter();
@@ -579,41 +588,6 @@
updatePowerStateLocked();
}
- @Override // Binder call
- public void acquireWakeLockWithUid(IBinder lock, int flags, String tag, String packageName,
- int uid) {
- acquireWakeLock(lock, flags, tag, packageName, new WorkSource(uid));
- }
-
- @Override // Binder call
- public void acquireWakeLock(IBinder lock, int flags, String tag, String packageName,
- WorkSource ws) {
- if (lock == null) {
- throw new IllegalArgumentException("lock must not be null");
- }
- if (packageName == null) {
- throw new IllegalArgumentException("packageName must not be null");
- }
- PowerManager.validateWakeLockParameters(flags, tag);
-
- mContext.enforceCallingOrSelfPermission(android.Manifest.permission.WAKE_LOCK, null);
- if (ws != null && ws.size() != 0) {
- mContext.enforceCallingOrSelfPermission(
- android.Manifest.permission.UPDATE_DEVICE_STATS, null);
- } else {
- ws = null;
- }
-
- final int uid = Binder.getCallingUid();
- final int pid = Binder.getCallingPid();
- final long ident = Binder.clearCallingIdentity();
- try {
- acquireWakeLockInternal(lock, flags, tag, packageName, ws, uid, pid);
- } finally {
- Binder.restoreCallingIdentity(ident);
- }
- }
-
private void acquireWakeLockInternal(IBinder lock, int flags, String tag, String packageName,
WorkSource ws, int uid, int pid) {
synchronized (mLock) {
@@ -668,22 +642,6 @@
}
}
- @Override // Binder call
- public void releaseWakeLock(IBinder lock, int flags) {
- if (lock == null) {
- throw new IllegalArgumentException("lock must not be null");
- }
-
- mContext.enforceCallingOrSelfPermission(android.Manifest.permission.WAKE_LOCK, null);
-
- final long ident = Binder.clearCallingIdentity();
- try {
- releaseWakeLockInternal(lock, flags);
- } finally {
- Binder.restoreCallingIdentity(ident);
- }
- }
-
private void releaseWakeLockInternal(IBinder lock, int flags) {
synchronized (mLock) {
int index = findWakeLockIndexLocked(lock);
@@ -746,43 +704,6 @@
}
}
- @Override // Binder call
- public void updateWakeLockUids(IBinder lock, int[] uids) {
- WorkSource ws = null;
-
- if (uids != null) {
- ws = new WorkSource();
- // XXX should WorkSource have a way to set uids as an int[] instead of adding them
- // one at a time?
- for (int i = 0; i < uids.length; i++) {
- ws.add(uids[i]);
- }
- }
- updateWakeLockWorkSource(lock, ws);
- }
-
- @Override // Binder call
- public void updateWakeLockWorkSource(IBinder lock, WorkSource ws) {
- if (lock == null) {
- throw new IllegalArgumentException("lock must not be null");
- }
-
- mContext.enforceCallingOrSelfPermission(android.Manifest.permission.WAKE_LOCK, null);
- if (ws != null && ws.size() != 0) {
- mContext.enforceCallingOrSelfPermission(
- android.Manifest.permission.UPDATE_DEVICE_STATS, null);
- } else {
- ws = null;
- }
-
- final long ident = Binder.clearCallingIdentity();
- try {
- updateWakeLockWorkSourceInternal(lock, ws);
- } finally {
- Binder.restoreCallingIdentity(ident);
- }
- }
-
private void updateWakeLockWorkSourceInternal(IBinder lock, WorkSource ws) {
synchronized (mLock) {
int index = findWakeLockIndexLocked(lock);
@@ -834,16 +755,6 @@
}
}
- @Override // Binder call
- public boolean isWakeLockLevelSupported(int level) {
- final long ident = Binder.clearCallingIdentity();
- try {
- return isWakeLockLevelSupportedInternal(level);
- } finally {
- Binder.restoreCallingIdentity(ident);
- }
- }
-
@SuppressWarnings("deprecation")
private boolean isWakeLockLevelSupportedInternal(int level) {
synchronized (mLock) {
@@ -863,40 +774,6 @@
}
}
- @Override // Binder call
- public void userActivity(long eventTime, int event, int flags) {
- final long now = SystemClock.uptimeMillis();
- if (mContext.checkCallingOrSelfPermission(android.Manifest.permission.DEVICE_POWER)
- != PackageManager.PERMISSION_GRANTED) {
- // Once upon a time applications could call userActivity().
- // Now we require the DEVICE_POWER permission. Log a warning and ignore the
- // request instead of throwing a SecurityException so we don't break old apps.
- synchronized (mLock) {
- if (now >= mLastWarningAboutUserActivityPermission + (5 * 60 * 1000)) {
- mLastWarningAboutUserActivityPermission = now;
- Slog.w(TAG, "Ignoring call to PowerManager.userActivity() because the "
- + "caller does not have DEVICE_POWER permission. "
- + "Please fix your app! "
- + " pid=" + Binder.getCallingPid()
- + " uid=" + Binder.getCallingUid());
- }
- }
- return;
- }
-
- if (eventTime > SystemClock.uptimeMillis()) {
- throw new IllegalArgumentException("event time must not be in the future");
- }
-
- final int uid = Binder.getCallingUid();
- final long ident = Binder.clearCallingIdentity();
- try {
- userActivityInternal(eventTime, event, flags, uid);
- } finally {
- Binder.restoreCallingIdentity(ident);
- }
- }
-
// Called from native code.
private void userActivityFromNative(long eventTime, int event, int flags) {
userActivityInternal(eventTime, event, flags, Process.SYSTEM_UID);
@@ -941,22 +818,6 @@
return false;
}
- @Override // Binder call
- public void wakeUp(long eventTime) {
- if (eventTime > SystemClock.uptimeMillis()) {
- throw new IllegalArgumentException("event time must not be in the future");
- }
-
- mContext.enforceCallingOrSelfPermission(android.Manifest.permission.DEVICE_POWER, null);
-
- final long ident = Binder.clearCallingIdentity();
- try {
- wakeUpInternal(eventTime);
- } finally {
- Binder.restoreCallingIdentity(ident);
- }
- }
-
// Called from native code.
private void wakeUpFromNative(long eventTime) {
wakeUpInternal(eventTime);
@@ -1004,22 +865,6 @@
return true;
}
- @Override // Binder call
- public void goToSleep(long eventTime, int reason) {
- if (eventTime > SystemClock.uptimeMillis()) {
- throw new IllegalArgumentException("event time must not be in the future");
- }
-
- mContext.enforceCallingOrSelfPermission(android.Manifest.permission.DEVICE_POWER, null);
-
- final long ident = Binder.clearCallingIdentity();
- try {
- goToSleepInternal(eventTime, reason);
- } finally {
- Binder.restoreCallingIdentity(ident);
- }
- }
-
// Called from native code.
private void goToSleepFromNative(long eventTime, int reason) {
goToSleepInternal(eventTime, reason);
@@ -1082,22 +927,6 @@
return true;
}
- @Override // Binder call
- public void nap(long eventTime) {
- if (eventTime > SystemClock.uptimeMillis()) {
- throw new IllegalArgumentException("event time must not be in the future");
- }
-
- mContext.enforceCallingOrSelfPermission(android.Manifest.permission.DEVICE_POWER, null);
-
- final long ident = Binder.clearCallingIdentity();
- try {
- napInternal(eventTime);
- } finally {
- Binder.restoreCallingIdentity(ident);
- }
- }
-
private void napInternal(long eventTime) {
synchronized (mLock) {
if (napNoUpdateLocked(eventTime)) {
@@ -1656,12 +1485,6 @@
| DIRTY_SETTINGS | DIRTY_SCREEN_ON_BLOCKER_RELEASED)) != 0) {
int newScreenState = getDesiredScreenPowerStateLocked();
if (newScreenState != mDisplayPowerRequest.screenState) {
- if (newScreenState == DisplayPowerRequest.SCREEN_STATE_OFF
- && mDisplayPowerRequest.screenState
- != DisplayPowerRequest.SCREEN_STATE_OFF) {
- mLastScreenOffEventElapsedRealTime = SystemClock.elapsedRealtime();
- }
-
mDisplayPowerRequest.screenState = newScreenState;
nativeSetPowerState(
newScreenState != DisplayPowerRequest.SCREEN_STATE_OFF,
@@ -1828,16 +1651,6 @@
return false;
}
- @Override // Binder call
- public boolean isScreenOn() {
- final long ident = Binder.clearCallingIdentity();
- try {
- return isScreenOnInternal();
- } finally {
- Binder.restoreCallingIdentity(ident);
- }
- }
-
private boolean isScreenOnInternal() {
synchronized (mLock) {
return !mSystemReady
@@ -1882,43 +1695,6 @@
updatePowerStateLocked();
}
- /**
- * Reboots the device.
- *
- * @param confirm If true, shows a reboot confirmation dialog.
- * @param reason The reason for the reboot, or null if none.
- * @param wait If true, this call waits for the reboot to complete and does not return.
- */
- @Override // Binder call
- public void reboot(boolean confirm, String reason, boolean wait) {
- mContext.enforceCallingOrSelfPermission(android.Manifest.permission.REBOOT, null);
-
- final long ident = Binder.clearCallingIdentity();
- try {
- shutdownOrRebootInternal(false, confirm, reason, wait);
- } finally {
- Binder.restoreCallingIdentity(ident);
- }
- }
-
- /**
- * Shuts down the device.
- *
- * @param confirm If true, shows a shutdown confirmation dialog.
- * @param wait If true, this call waits for the shutdown to complete and does not return.
- */
- @Override // Binder call
- public void shutdown(boolean confirm, boolean wait) {
- mContext.enforceCallingOrSelfPermission(android.Manifest.permission.REBOOT, null);
-
- final long ident = Binder.clearCallingIdentity();
- try {
- shutdownOrRebootInternal(true, confirm, null, wait);
- } finally {
- Binder.restoreCallingIdentity(ident);
- }
- }
-
private void shutdownOrRebootInternal(final boolean shutdown, final boolean confirm,
final String reason, boolean wait) {
if (mHandler == null || !mSystemReady) {
@@ -1956,22 +1732,6 @@
}
}
- /**
- * Crash the runtime (causing a complete restart of the Android framework).
- * Requires REBOOT permission. Mostly for testing. Should not return.
- */
- @Override // Binder call
- public void crash(String message) {
- mContext.enforceCallingOrSelfPermission(android.Manifest.permission.REBOOT, null);
-
- final long ident = Binder.clearCallingIdentity();
- try {
- crashInternal(message);
- } finally {
- Binder.restoreCallingIdentity(ident);
- }
- }
-
private void crashInternal(final String message) {
Thread t = new Thread("PowerManagerService.crash()") {
@Override
@@ -1987,51 +1747,11 @@
}
}
- /**
- * Set the setting that determines whether the device stays on when plugged in.
- * The argument is a bit string, with each bit specifying a power source that,
- * when the device is connected to that source, causes the device to stay on.
- * See {@link android.os.BatteryManager} for the list of power sources that
- * can be specified. Current values include {@link android.os.BatteryManager#BATTERY_PLUGGED_AC}
- * and {@link android.os.BatteryManager#BATTERY_PLUGGED_USB}
- *
- * Used by "adb shell svc power stayon ..."
- *
- * @param val an {@code int} containing the bits that specify which power sources
- * should cause the device to stay on.
- */
- @Override // Binder call
- public void setStayOnSetting(int val) {
- mContext.enforceCallingOrSelfPermission(android.Manifest.permission.WRITE_SETTINGS, null);
-
- final long ident = Binder.clearCallingIdentity();
- try {
- setStayOnSettingInternal(val);
- } finally {
- Binder.restoreCallingIdentity(ident);
- }
- }
-
private void setStayOnSettingInternal(int val) {
Settings.Global.putInt(mContext.getContentResolver(),
Settings.Global.STAY_ON_WHILE_PLUGGED_IN, val);
}
- /**
- * Used by device administration to set the maximum screen off timeout.
- *
- * This method must only be called by the device administration policy manager.
- */
- @Override // Binder call
- public void setMaximumScreenOffTimeoutFromDeviceAdmin(int timeMs) {
- final long ident = Binder.clearCallingIdentity();
- try {
- setMaximumScreenOffTimeoutFromDeviceAdminInternal(timeMs);
- } finally {
- Binder.restoreCallingIdentity(ident);
- }
- }
-
private void setMaximumScreenOffTimeoutFromDeviceAdminInternal(int timeMs) {
synchronized (mLock) {
mMaximumScreenOffTimeoutFromDeviceAdmin = timeMs;
@@ -2045,23 +1765,8 @@
&& mMaximumScreenOffTimeoutFromDeviceAdmin < Integer.MAX_VALUE;
}
- /**
- * Used by the phone application to make the attention LED flash when ringing.
- */
- @Override // Binder call
- public void setAttentionLight(boolean on, int color) {
- mContext.enforceCallingOrSelfPermission(android.Manifest.permission.DEVICE_POWER, null);
-
- final long ident = Binder.clearCallingIdentity();
- try {
- setAttentionLightInternal(on, color);
- } finally {
- Binder.restoreCallingIdentity(ident);
- }
- }
-
private void setAttentionLightInternal(boolean on, int color) {
- LightsService.Light light;
+ Light light;
synchronized (mLock) {
if (!mSystemReady) {
return;
@@ -2070,38 +1775,7 @@
}
// Control light outside of lock.
- light.setFlashing(color, LightsService.LIGHT_FLASH_HARDWARE, (on ? 3 : 0), 0);
- }
-
- /**
- * Used by the Watchdog.
- */
- public long timeSinceScreenWasLastOn() {
- synchronized (mLock) {
- if (mDisplayPowerRequest.screenState != DisplayPowerRequest.SCREEN_STATE_OFF) {
- return 0;
- }
- return SystemClock.elapsedRealtime() - mLastScreenOffEventElapsedRealTime;
- }
- }
-
- /**
- * Used by the window manager to override the screen brightness based on the
- * current foreground activity.
- *
- * This method must only be called by the window manager.
- *
- * @param brightness The overridden brightness, or -1 to disable the override.
- */
- public void setScreenBrightnessOverrideFromWindowManager(int brightness) {
- mContext.enforceCallingOrSelfPermission(android.Manifest.permission.DEVICE_POWER, null);
-
- final long ident = Binder.clearCallingIdentity();
- try {
- setScreenBrightnessOverrideFromWindowManagerInternal(brightness);
- } finally {
- Binder.restoreCallingIdentity(ident);
- }
+ light.setFlashing(color, Light.LIGHT_FLASH_HARDWARE, (on ? 3 : 0), 0);
}
private void setScreenBrightnessOverrideFromWindowManagerInternal(int brightness) {
@@ -2114,40 +1788,6 @@
}
}
- /**
- * Used by the window manager to override the button brightness based on the
- * current foreground activity.
- *
- * This method must only be called by the window manager.
- *
- * @param brightness The overridden brightness, or -1 to disable the override.
- */
- public void setButtonBrightnessOverrideFromWindowManager(int brightness) {
- // Do nothing.
- // Button lights are not currently supported in the new implementation.
- mContext.enforceCallingOrSelfPermission(android.Manifest.permission.DEVICE_POWER, null);
- }
-
- /**
- * Used by the window manager to override the user activity timeout based on the
- * current foreground activity. It can only be used to make the timeout shorter
- * than usual, not longer.
- *
- * This method must only be called by the window manager.
- *
- * @param timeoutMillis The overridden timeout, or -1 to disable the override.
- */
- public void setUserActivityTimeoutOverrideFromWindowManager(long timeoutMillis) {
- mContext.enforceCallingOrSelfPermission(android.Manifest.permission.DEVICE_POWER, null);
-
- final long ident = Binder.clearCallingIdentity();
- try {
- setUserActivityTimeoutOverrideFromWindowManagerInternal(timeoutMillis);
- } finally {
- Binder.restoreCallingIdentity(ident);
- }
- }
-
private void setUserActivityTimeoutOverrideFromWindowManagerInternal(long timeoutMillis) {
synchronized (mLock) {
if (mUserActivityTimeoutOverrideFromWindowManager != timeoutMillis) {
@@ -2158,30 +1798,6 @@
}
}
- /**
- * Used by the settings application and brightness control widgets to
- * temporarily override the current screen brightness setting so that the
- * user can observe the effect of an intended settings change without applying
- * it immediately.
- *
- * The override will be canceled when the setting value is next updated.
- *
- * @param brightness The overridden brightness.
- *
- * @see android.provider.Settings.System#SCREEN_BRIGHTNESS
- */
- @Override // Binder call
- public void setTemporaryScreenBrightnessSettingOverride(int brightness) {
- mContext.enforceCallingOrSelfPermission(android.Manifest.permission.DEVICE_POWER, null);
-
- final long ident = Binder.clearCallingIdentity();
- try {
- setTemporaryScreenBrightnessSettingOverrideInternal(brightness);
- } finally {
- Binder.restoreCallingIdentity(ident);
- }
- }
-
private void setTemporaryScreenBrightnessSettingOverrideInternal(int brightness) {
synchronized (mLock) {
if (mTemporaryScreenBrightnessSettingOverride != brightness) {
@@ -2192,30 +1808,6 @@
}
}
- /**
- * Used by the settings application and brightness control widgets to
- * temporarily override the current screen auto-brightness adjustment setting so that the
- * user can observe the effect of an intended settings change without applying
- * it immediately.
- *
- * The override will be canceled when the setting value is next updated.
- *
- * @param adj The overridden brightness, or Float.NaN to disable the override.
- *
- * @see Settings.System#SCREEN_AUTO_BRIGHTNESS_ADJ
- */
- @Override // Binder call
- public void setTemporaryScreenAutoBrightnessAdjustmentSettingOverride(float adj) {
- mContext.enforceCallingOrSelfPermission(android.Manifest.permission.DEVICE_POWER, null);
-
- final long ident = Binder.clearCallingIdentity();
- try {
- setTemporaryScreenAutoBrightnessAdjustmentSettingOverrideInternal(adj);
- } finally {
- Binder.restoreCallingIdentity(ident);
- }
- }
-
private void setTemporaryScreenAutoBrightnessAdjustmentSettingOverrideInternal(float adj) {
synchronized (mLock) {
// Note: This condition handles NaN because NaN is not equal to any other
@@ -2262,16 +1854,7 @@
}
}
- @Override // Binder call
- protected void dump(FileDescriptor fd, PrintWriter pw, String[] args) {
- if (mContext.checkCallingOrSelfPermission(Manifest.permission.DUMP)
- != PackageManager.PERMISSION_GRANTED) {
- pw.println("Permission Denial: can't dump PowerManager from from pid="
- + Binder.getCallingPid()
- + ", uid=" + Binder.getCallingUid());
- return;
- }
-
+ private void dumpInternal(PrintWriter pw) {
pw.println("POWER MANAGER (dumpsys power)\n");
final DisplayPowerController dpc;
@@ -2712,7 +2295,7 @@
public void blankAllDisplays() {
synchronized (this) {
mBlanked = true;
- mDisplayManagerService.blankAllDisplaysFromPowerManager();
+ mDisplayManagerInternal.blankAllDisplaysFromPowerManager();
nativeSetInteractive(false);
nativeSetAutoSuspend(true);
}
@@ -2723,7 +2306,7 @@
synchronized (this) {
nativeSetAutoSuspend(false);
nativeSetInteractive(true);
- mDisplayManagerService.unblankAllDisplaysFromPowerManager();
+ mDisplayManagerInternal.unblankAllDisplaysFromPowerManager();
mBlanked = false;
}
}
@@ -2735,4 +2318,444 @@
}
}
}
+
+ private final class BinderService extends IPowerManager.Stub {
+ @Override // Binder call
+ public void acquireWakeLockWithUid(IBinder lock, int flags, String tag,
+ String packageName, int uid) {
+ acquireWakeLock(lock, flags, tag, packageName, new WorkSource(uid));
+ }
+
+ @Override // Binder call
+ public void acquireWakeLock(IBinder lock, int flags, String tag, String packageName,
+ WorkSource ws) {
+ if (lock == null) {
+ throw new IllegalArgumentException("lock must not be null");
+ }
+ if (packageName == null) {
+ throw new IllegalArgumentException("packageName must not be null");
+ }
+ PowerManager.validateWakeLockParameters(flags, tag);
+
+ mContext.enforceCallingOrSelfPermission(android.Manifest.permission.WAKE_LOCK, null);
+ if (ws != null && ws.size() != 0) {
+ mContext.enforceCallingOrSelfPermission(
+ android.Manifest.permission.UPDATE_DEVICE_STATS, null);
+ } else {
+ ws = null;
+ }
+
+ final int uid = Binder.getCallingUid();
+ final int pid = Binder.getCallingPid();
+ final long ident = Binder.clearCallingIdentity();
+ try {
+ acquireWakeLockInternal(lock, flags, tag, packageName, ws, uid, pid);
+ } finally {
+ Binder.restoreCallingIdentity(ident);
+ }
+ }
+
+ @Override // Binder call
+ public void releaseWakeLock(IBinder lock, int flags) {
+ if (lock == null) {
+ throw new IllegalArgumentException("lock must not be null");
+ }
+
+ mContext.enforceCallingOrSelfPermission(android.Manifest.permission.WAKE_LOCK, null);
+
+ final long ident = Binder.clearCallingIdentity();
+ try {
+ releaseWakeLockInternal(lock, flags);
+ } finally {
+ Binder.restoreCallingIdentity(ident);
+ }
+ }
+
+ @Override // Binder call
+ public void updateWakeLockUids(IBinder lock, int[] uids) {
+ WorkSource ws = null;
+
+ if (uids != null) {
+ ws = new WorkSource();
+ // XXX should WorkSource have a way to set uids as an int[] instead of adding them
+ // one at a time?
+ for (int i = 0; i < uids.length; i++) {
+ ws.add(uids[i]);
+ }
+ }
+ updateWakeLockWorkSource(lock, ws);
+ }
+
+ @Override // Binder call
+ public void updateWakeLockWorkSource(IBinder lock, WorkSource ws) {
+ if (lock == null) {
+ throw new IllegalArgumentException("lock must not be null");
+ }
+
+ mContext.enforceCallingOrSelfPermission(android.Manifest.permission.WAKE_LOCK, null);
+ if (ws != null && ws.size() != 0) {
+ mContext.enforceCallingOrSelfPermission(
+ android.Manifest.permission.UPDATE_DEVICE_STATS, null);
+ } else {
+ ws = null;
+ }
+
+ final long ident = Binder.clearCallingIdentity();
+ try {
+ updateWakeLockWorkSourceInternal(lock, ws);
+ } finally {
+ Binder.restoreCallingIdentity(ident);
+ }
+ }
+
+ @Override // Binder call
+ public boolean isWakeLockLevelSupported(int level) {
+ final long ident = Binder.clearCallingIdentity();
+ try {
+ return isWakeLockLevelSupportedInternal(level);
+ } finally {
+ Binder.restoreCallingIdentity(ident);
+ }
+ }
+
+ @Override // Binder call
+ public void userActivity(long eventTime, int event, int flags) {
+ final long now = SystemClock.uptimeMillis();
+ if (mContext.checkCallingOrSelfPermission(android.Manifest.permission.DEVICE_POWER)
+ != PackageManager.PERMISSION_GRANTED) {
+ // Once upon a time applications could call userActivity().
+ // Now we require the DEVICE_POWER permission. Log a warning and ignore the
+ // request instead of throwing a SecurityException so we don't break old apps.
+ synchronized (mLock) {
+ if (now >= mLastWarningAboutUserActivityPermission + (5 * 60 * 1000)) {
+ mLastWarningAboutUserActivityPermission = now;
+ Slog.w(TAG, "Ignoring call to PowerManager.userActivity() because the "
+ + "caller does not have DEVICE_POWER permission. "
+ + "Please fix your app! "
+ + " pid=" + Binder.getCallingPid()
+ + " uid=" + Binder.getCallingUid());
+ }
+ }
+ return;
+ }
+
+ if (eventTime > SystemClock.uptimeMillis()) {
+ throw new IllegalArgumentException("event time must not be in the future");
+ }
+
+ final int uid = Binder.getCallingUid();
+ final long ident = Binder.clearCallingIdentity();
+ try {
+ userActivityInternal(eventTime, event, flags, uid);
+ } finally {
+ Binder.restoreCallingIdentity(ident);
+ }
+ }
+
+ @Override // Binder call
+ public void wakeUp(long eventTime) {
+ if (eventTime > SystemClock.uptimeMillis()) {
+ throw new IllegalArgumentException("event time must not be in the future");
+ }
+
+ mContext.enforceCallingOrSelfPermission(
+ android.Manifest.permission.DEVICE_POWER, null);
+
+ final long ident = Binder.clearCallingIdentity();
+ try {
+ wakeUpInternal(eventTime);
+ } finally {
+ Binder.restoreCallingIdentity(ident);
+ }
+ }
+
+ @Override // Binder call
+ public void goToSleep(long eventTime, int reason) {
+ if (eventTime > SystemClock.uptimeMillis()) {
+ throw new IllegalArgumentException("event time must not be in the future");
+ }
+
+ mContext.enforceCallingOrSelfPermission(
+ android.Manifest.permission.DEVICE_POWER, null);
+
+ final long ident = Binder.clearCallingIdentity();
+ try {
+ goToSleepInternal(eventTime, reason);
+ } finally {
+ Binder.restoreCallingIdentity(ident);
+ }
+ }
+
+ @Override // Binder call
+ public void nap(long eventTime) {
+ if (eventTime > SystemClock.uptimeMillis()) {
+ throw new IllegalArgumentException("event time must not be in the future");
+ }
+
+ mContext.enforceCallingOrSelfPermission(
+ android.Manifest.permission.DEVICE_POWER, null);
+
+ final long ident = Binder.clearCallingIdentity();
+ try {
+ napInternal(eventTime);
+ } finally {
+ Binder.restoreCallingIdentity(ident);
+ }
+ }
+
+ @Override // Binder call
+ public boolean isScreenOn() {
+ final long ident = Binder.clearCallingIdentity();
+ try {
+ return isScreenOnInternal();
+ } finally {
+ Binder.restoreCallingIdentity(ident);
+ }
+ }
+
+ /**
+ * Reboots the device.
+ *
+ * @param confirm If true, shows a reboot confirmation dialog.
+ * @param reason The reason for the reboot, or null if none.
+ * @param wait If true, this call waits for the reboot to complete and does not return.
+ */
+ @Override // Binder call
+ public void reboot(boolean confirm, String reason, boolean wait) {
+ mContext.enforceCallingOrSelfPermission(android.Manifest.permission.REBOOT, null);
+
+ final long ident = Binder.clearCallingIdentity();
+ try {
+ shutdownOrRebootInternal(false, confirm, reason, wait);
+ } finally {
+ Binder.restoreCallingIdentity(ident);
+ }
+ }
+
+ /**
+ * Shuts down the device.
+ *
+ * @param confirm If true, shows a shutdown confirmation dialog.
+ * @param wait If true, this call waits for the shutdown to complete and does not return.
+ */
+ @Override // Binder call
+ public void shutdown(boolean confirm, boolean wait) {
+ mContext.enforceCallingOrSelfPermission(android.Manifest.permission.REBOOT, null);
+
+ final long ident = Binder.clearCallingIdentity();
+ try {
+ shutdownOrRebootInternal(true, confirm, null, wait);
+ } finally {
+ Binder.restoreCallingIdentity(ident);
+ }
+ }
+
+ /**
+ * Crash the runtime (causing a complete restart of the Android framework).
+ * Requires REBOOT permission. Mostly for testing. Should not return.
+ */
+ @Override // Binder call
+ public void crash(String message) {
+ mContext.enforceCallingOrSelfPermission(android.Manifest.permission.REBOOT, null);
+
+ final long ident = Binder.clearCallingIdentity();
+ try {
+ crashInternal(message);
+ } finally {
+ Binder.restoreCallingIdentity(ident);
+ }
+ }
+
+ /**
+ * Set the setting that determines whether the device stays on when plugged in.
+ * The argument is a bit string, with each bit specifying a power source that,
+ * when the device is connected to that source, causes the device to stay on.
+ * See {@link android.os.BatteryManager} for the list of power sources that
+ * can be specified. Current values include
+ * {@link android.os.BatteryManager#BATTERY_PLUGGED_AC}
+ * and {@link android.os.BatteryManager#BATTERY_PLUGGED_USB}
+ *
+ * Used by "adb shell svc power stayon ..."
+ *
+ * @param val an {@code int} containing the bits that specify which power sources
+ * should cause the device to stay on.
+ */
+ @Override // Binder call
+ public void setStayOnSetting(int val) {
+ mContext.enforceCallingOrSelfPermission(
+ android.Manifest.permission.WRITE_SETTINGS, null);
+
+ final long ident = Binder.clearCallingIdentity();
+ try {
+ setStayOnSettingInternal(val);
+ } finally {
+ Binder.restoreCallingIdentity(ident);
+ }
+ }
+
+ /**
+ * Used by device administration to set the maximum screen off timeout.
+ *
+ * This method must only be called by the device administration policy manager.
+ */
+ @Override // Binder call
+ public void setMaximumScreenOffTimeoutFromDeviceAdmin(int timeMs) {
+ final long ident = Binder.clearCallingIdentity();
+ try {
+ setMaximumScreenOffTimeoutFromDeviceAdminInternal(timeMs);
+ } finally {
+ Binder.restoreCallingIdentity(ident);
+ }
+ }
+
+ /**
+ * Used by the settings application and brightness control widgets to
+ * temporarily override the current screen brightness setting so that the
+ * user can observe the effect of an intended settings change without applying
+ * it immediately.
+ *
+ * The override will be canceled when the setting value is next updated.
+ *
+ * @param brightness The overridden brightness.
+ *
+ * @see android.provider.Settings.System#SCREEN_BRIGHTNESS
+ */
+ @Override // Binder call
+ public void setTemporaryScreenBrightnessSettingOverride(int brightness) {
+ mContext.enforceCallingOrSelfPermission(
+ android.Manifest.permission.DEVICE_POWER, null);
+
+ final long ident = Binder.clearCallingIdentity();
+ try {
+ setTemporaryScreenBrightnessSettingOverrideInternal(brightness);
+ } finally {
+ Binder.restoreCallingIdentity(ident);
+ }
+ }
+
+ /**
+ * Used by the settings application and brightness control widgets to
+ * temporarily override the current screen auto-brightness adjustment setting so that the
+ * user can observe the effect of an intended settings change without applying
+ * it immediately.
+ *
+ * The override will be canceled when the setting value is next updated.
+ *
+ * @param adj The overridden brightness, or Float.NaN to disable the override.
+ *
+ * @see Settings.System#SCREEN_AUTO_BRIGHTNESS_ADJ
+ */
+ @Override // Binder call
+ public void setTemporaryScreenAutoBrightnessAdjustmentSettingOverride(float adj) {
+ mContext.enforceCallingOrSelfPermission(
+ android.Manifest.permission.DEVICE_POWER, null);
+
+ final long ident = Binder.clearCallingIdentity();
+ try {
+ setTemporaryScreenAutoBrightnessAdjustmentSettingOverrideInternal(adj);
+ } finally {
+ Binder.restoreCallingIdentity(ident);
+ }
+ }
+
+ /**
+ * Used by the phone application to make the attention LED flash when ringing.
+ */
+ @Override // Binder call
+ public void setAttentionLight(boolean on, int color) {
+ mContext.enforceCallingOrSelfPermission(
+ android.Manifest.permission.DEVICE_POWER, null);
+
+ final long ident = Binder.clearCallingIdentity();
+ try {
+ setAttentionLightInternal(on, color);
+ } finally {
+ Binder.restoreCallingIdentity(ident);
+ }
+ }
+
+ @Override // Binder call
+ protected void dump(FileDescriptor fd, PrintWriter pw, String[] args) {
+ if (mContext.checkCallingOrSelfPermission(Manifest.permission.DUMP)
+ != PackageManager.PERMISSION_GRANTED) {
+ pw.println("Permission Denial: can't dump PowerManager from from pid="
+ + Binder.getCallingPid()
+ + ", uid=" + Binder.getCallingUid());
+ return;
+ }
+
+ final long ident = Binder.clearCallingIdentity();
+ try {
+ dumpInternal(pw);
+ } finally {
+ Binder.restoreCallingIdentity(ident);
+ }
+ }
+ }
+
+ private final class LocalService extends PowerManagerInternal {
+ /**
+ * Used by the window manager to override the screen brightness based on the
+ * current foreground activity.
+ *
+ * This method must only be called by the window manager.
+ *
+ * @param brightness The overridden brightness, or -1 to disable the override.
+ */
+ @Override
+ public void setScreenBrightnessOverrideFromWindowManager(int brightness) {
+ mContext.enforceCallingOrSelfPermission(
+ android.Manifest.permission.DEVICE_POWER, null);
+
+ final long ident = Binder.clearCallingIdentity();
+ try {
+ setScreenBrightnessOverrideFromWindowManagerInternal(brightness);
+ } finally {
+ Binder.restoreCallingIdentity(ident);
+ }
+ }
+
+ /**
+ * Used by the window manager to override the button brightness based on the
+ * current foreground activity.
+ *
+ * This method must only be called by the window manager.
+ *
+ * @param brightness The overridden brightness, or -1 to disable the override.
+ */
+ @Override
+ public void setButtonBrightnessOverrideFromWindowManager(int brightness) {
+ // Do nothing.
+ // Button lights are not currently supported in the new implementation.
+ mContext.enforceCallingOrSelfPermission(
+ android.Manifest.permission.DEVICE_POWER, null);
+ }
+
+ /**
+ * Used by the window manager to override the user activity timeout based on the
+ * current foreground activity. It can only be used to make the timeout shorter
+ * than usual, not longer.
+ *
+ * This method must only be called by the window manager.
+ *
+ * @param timeoutMillis The overridden timeout, or -1 to disable the override.
+ */
+ @Override
+ public void setUserActivityTimeoutOverrideFromWindowManager(long timeoutMillis) {
+ mContext.enforceCallingOrSelfPermission(
+ android.Manifest.permission.DEVICE_POWER, null);
+
+ final long ident = Binder.clearCallingIdentity();
+ try {
+ setUserActivityTimeoutOverrideFromWindowManagerInternal(timeoutMillis);
+ } finally {
+ Binder.restoreCallingIdentity(ident);
+ }
+ }
+
+ @Override
+ public void setPolicy(WindowManagerPolicy policy) {
+ PowerManagerService.this.setPolicy(policy);
+ }
+ }
}
diff --git a/services/java/com/android/server/power/RampAnimator.java b/services/core/java/com/android/server/power/RampAnimator.java
similarity index 100%
rename from services/java/com/android/server/power/RampAnimator.java
rename to services/core/java/com/android/server/power/RampAnimator.java
diff --git a/services/java/com/android/server/power/ScreenOnBlocker.java b/services/core/java/com/android/server/power/ScreenOnBlocker.java
similarity index 100%
rename from services/java/com/android/server/power/ScreenOnBlocker.java
rename to services/core/java/com/android/server/power/ScreenOnBlocker.java
diff --git a/services/java/com/android/server/power/ShutdownThread.java b/services/core/java/com/android/server/power/ShutdownThread.java
similarity index 100%
rename from services/java/com/android/server/power/ShutdownThread.java
rename to services/core/java/com/android/server/power/ShutdownThread.java
diff --git a/services/java/com/android/server/power/SuspendBlocker.java b/services/core/java/com/android/server/power/SuspendBlocker.java
similarity index 100%
rename from services/java/com/android/server/power/SuspendBlocker.java
rename to services/core/java/com/android/server/power/SuspendBlocker.java
diff --git a/services/java/com/android/server/power/WirelessChargerDetector.java b/services/core/java/com/android/server/power/WirelessChargerDetector.java
similarity index 100%
rename from services/java/com/android/server/power/WirelessChargerDetector.java
rename to services/core/java/com/android/server/power/WirelessChargerDetector.java
diff --git a/services/java/com/android/server/search/SearchManagerService.java b/services/core/java/com/android/server/search/SearchManagerService.java
similarity index 100%
rename from services/java/com/android/server/search/SearchManagerService.java
rename to services/core/java/com/android/server/search/SearchManagerService.java
diff --git a/services/java/com/android/server/search/Searchables.java b/services/core/java/com/android/server/search/Searchables.java
similarity index 100%
rename from services/java/com/android/server/search/Searchables.java
rename to services/core/java/com/android/server/search/Searchables.java
diff --git a/services/core/java/com/android/server/statusbar/StatusBarManagerInternal.java b/services/core/java/com/android/server/statusbar/StatusBarManagerInternal.java
new file mode 100644
index 0000000..4f75189
--- /dev/null
+++ b/services/core/java/com/android/server/statusbar/StatusBarManagerInternal.java
@@ -0,0 +1,29 @@
+/**
+ * Copyright (c) 2013, 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.server.statusbar;
+
+import com.android.server.notification.NotificationDelegate;
+
+import android.os.IBinder;
+import android.service.notification.StatusBarNotification;
+
+public interface StatusBarManagerInternal {
+ void setNotificationDelegate(NotificationDelegate delegate);
+ IBinder addNotification(StatusBarNotification notification);
+ void updateNotification(IBinder key, StatusBarNotification notification);
+ void removeNotification(IBinder key);
+}
diff --git a/services/java/com/android/server/StatusBarManagerService.java b/services/core/java/com/android/server/statusbar/StatusBarManagerService.java
similarity index 80%
rename from services/java/com/android/server/StatusBarManagerService.java
rename to services/core/java/com/android/server/statusbar/StatusBarManagerService.java
index f207c08..2ae467e 100644
--- a/services/java/com/android/server/StatusBarManagerService.java
+++ b/services/core/java/com/android/server/statusbar/StatusBarManagerService.java
@@ -14,26 +14,28 @@
* limitations under the License.
*/
-package com.android.server;
+package com.android.server.statusbar;
import android.app.StatusBarManager;
+import android.os.Binder;
+import android.os.Handler;
+import android.os.IBinder;
+import android.os.RemoteException;
+import android.os.UserHandle;
import android.service.notification.StatusBarNotification;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.content.res.Resources;
-import android.os.Binder;
-import android.os.Handler;
-import android.os.IBinder;
-import android.os.RemoteException;
-import android.os.UserHandle;
import android.util.Slog;
import com.android.internal.statusbar.IStatusBar;
import com.android.internal.statusbar.IStatusBarService;
import com.android.internal.statusbar.StatusBarIcon;
import com.android.internal.statusbar.StatusBarIconList;
+import com.android.server.LocalServices;
+import com.android.server.notification.NotificationDelegate;
import com.android.server.wm.WindowManagerService;
import java.io.FileDescriptor;
@@ -51,31 +53,31 @@
public class StatusBarManagerService extends IStatusBarService.Stub
implements WindowManagerService.OnHardKeyboardStatusChangeListener
{
- static final String TAG = "StatusBarManagerService";
- static final boolean SPEW = false;
+ private static final String TAG = "StatusBarManagerService";
+ private static final boolean SPEW = false;
- final Context mContext;
- final WindowManagerService mWindowManager;
- Handler mHandler = new Handler();
- NotificationCallbacks mNotificationCallbacks;
- volatile IStatusBar mBar;
- StatusBarIconList mIcons = new StatusBarIconList();
- HashMap<IBinder,StatusBarNotification> mNotifications
+ private final Context mContext;
+ private final WindowManagerService mWindowManager;
+ private Handler mHandler = new Handler();
+ private NotificationDelegate mNotificationDelegate;
+ private volatile IStatusBar mBar;
+ private StatusBarIconList mIcons = new StatusBarIconList();
+ private HashMap<IBinder,StatusBarNotification> mNotifications
= new HashMap<IBinder,StatusBarNotification>();
// for disabling the status bar
- final ArrayList<DisableRecord> mDisableRecords = new ArrayList<DisableRecord>();
- IBinder mSysUiVisToken = new Binder();
- int mDisabled = 0;
+ private final ArrayList<DisableRecord> mDisableRecords = new ArrayList<DisableRecord>();
+ private IBinder mSysUiVisToken = new Binder();
+ private int mDisabled = 0;
- Object mLock = new Object();
+ private Object mLock = new Object();
// encompasses lights-out mode and other flags defined on View
- int mSystemUiVisibility = 0;
- boolean mMenuVisible = false;
- int mImeWindowVis = 0;
- int mImeBackDisposition;
- IBinder mImeToken = null;
- int mCurrentUserId;
+ private int mSystemUiVisibility = 0;
+ private boolean mMenuVisible = false;
+ private int mImeWindowVis = 0;
+ private int mImeBackDisposition;
+ private IBinder mImeToken = null;
+ private int mCurrentUserId;
private class DisableRecord implements IBinder.DeathRecipient {
int userId;
@@ -90,16 +92,6 @@
}
}
- public interface NotificationCallbacks {
- void onSetDisabled(int status);
- void onClearAll();
- void onNotificationClick(String pkg, String tag, int id);
- void onNotificationClear(String pkg, String tag, int id);
- void onPanelRevealed();
- void onNotificationError(String pkg, String tag, int id,
- int uid, int initialPid, String message);
- }
-
/**
* Construct the service, add the status bar view to the window manager
*/
@@ -110,15 +102,74 @@
final Resources res = context.getResources();
mIcons.defineSlots(res.getStringArray(com.android.internal.R.array.config_statusBarIcons));
+
+ LocalServices.addService(StatusBarManagerInternal.class, mInternalService);
}
- public void setNotificationCallbacks(NotificationCallbacks listener) {
- mNotificationCallbacks = listener;
- }
+ /**
+ * Private API used by NotificationManagerService.
+ */
+ private final StatusBarManagerInternal mInternalService = new StatusBarManagerInternal() {
+ @Override
+ public void setNotificationDelegate(NotificationDelegate delegate) {
+ synchronized (mNotifications) {
+ mNotificationDelegate = delegate;
+ }
+ }
+
+ @Override
+ public IBinder addNotification(StatusBarNotification notification) {
+ synchronized (mNotifications) {
+ IBinder key = new Binder();
+ mNotifications.put(key, notification);
+ if (mBar != null) {
+ try {
+ mBar.addNotification(key, notification);
+ } catch (RemoteException ex) {
+ }
+ }
+ return key;
+ }
+ }
+
+ @Override
+ public void updateNotification(IBinder key, StatusBarNotification notification) {
+ synchronized (mNotifications) {
+ if (!mNotifications.containsKey(key)) {
+ throw new IllegalArgumentException("updateNotification key not found: " + key);
+ }
+ mNotifications.put(key, notification);
+ if (mBar != null) {
+ try {
+ mBar.updateNotification(key, notification);
+ } catch (RemoteException ex) {
+ }
+ }
+ }
+ }
+
+ @Override
+ public void removeNotification(IBinder key) {
+ synchronized (mNotifications) {
+ final StatusBarNotification n = mNotifications.remove(key);
+ if (n == null) {
+ Slog.e(TAG, "removeNotification key not found: " + key);
+ return;
+ }
+ if (mBar != null) {
+ try {
+ mBar.removeNotification(key);
+ } catch (RemoteException ex) {
+ }
+ }
+ }
+ }
+ };
// ================================================================================
// From IStatusBarService
// ================================================================================
+ @Override
public void expandNotificationsPanel() {
enforceExpandStatusBar();
@@ -130,6 +181,7 @@
}
}
+ @Override
public void collapsePanels() {
enforceExpandStatusBar();
@@ -141,6 +193,7 @@
}
}
+ @Override
public void expandSettingsPanel() {
enforceExpandStatusBar();
@@ -152,6 +205,7 @@
}
}
+ @Override
public void disable(int what, IBinder token, String pkg) {
disableInternal(mCurrentUserId, what, token, pkg);
}
@@ -177,7 +231,7 @@
mDisabled = net;
mHandler.post(new Runnable() {
public void run() {
- mNotificationCallbacks.onSetDisabled(net);
+ mNotificationDelegate.onSetDisabled(net);
}
});
if (mBar != null) {
@@ -189,6 +243,7 @@
}
}
+ @Override
public void setIcon(String slot, String iconPackage, int iconId, int iconLevel,
String contentDescription) {
enforceStatusBar();
@@ -214,6 +269,7 @@
}
}
+ @Override
public void setIconVisibility(String slot, boolean visible) {
enforceStatusBar();
@@ -241,6 +297,7 @@
}
}
+ @Override
public void removeIcon(String slot) {
enforceStatusBar();
@@ -265,6 +322,7 @@
* Hide or show the on-screen Menu key. Only call this from the window manager, typically in
* response to a window with FLAG_NEEDS_MENU_KEY set.
*/
+ @Override
public void topAppWindowChanged(final boolean menuVisible) {
enforceStatusBar();
@@ -285,6 +343,7 @@
}
}
+ @Override
public void setImeWindowStatus(final IBinder token, final int vis, final int backDisposition) {
enforceStatusBar();
@@ -312,6 +371,7 @@
}
}
+ @Override
public void setSystemUiVisibility(int vis, int mask) {
// also allows calls from window manager which is in this process.
enforceStatusBarService();
@@ -344,6 +404,7 @@
}
}
+ @Override
public void setHardKeyboardEnabled(final boolean enabled) {
mHandler.post(new Runnable() {
public void run() {
@@ -426,6 +487,7 @@
// ================================================================================
// Callbacks from the status bar service.
// ================================================================================
+ @Override
public void registerStatusBar(IStatusBar bar, StatusBarIconList iconList,
List<IBinder> notificationKeys, List<StatusBarNotification> notifications,
int switches[], List<IBinder> binders) {
@@ -458,86 +520,64 @@
* The status bar service should call this each time the user brings the panel from
* invisible to visible in order to clear the notification light.
*/
+ @Override
public void onPanelRevealed() {
enforceStatusBarService();
-
- // tell the notification manager to turn off the lights.
- mNotificationCallbacks.onPanelRevealed();
+ long identity = Binder.clearCallingIdentity();
+ try {
+ // tell the notification manager to turn off the lights.
+ mNotificationDelegate.onPanelRevealed();
+ } finally {
+ Binder.restoreCallingIdentity(identity);
+ }
}
+ @Override
public void onNotificationClick(String pkg, String tag, int id) {
enforceStatusBarService();
-
- mNotificationCallbacks.onNotificationClick(pkg, tag, id);
+ long identity = Binder.clearCallingIdentity();
+ try {
+ mNotificationDelegate.onNotificationClick(pkg, tag, id);
+ } finally {
+ Binder.restoreCallingIdentity(identity);
+ }
}
+ @Override
public void onNotificationError(String pkg, String tag, int id,
int uid, int initialPid, String message) {
enforceStatusBarService();
-
- // WARNING: this will call back into us to do the remove. Don't hold any locks.
- mNotificationCallbacks.onNotificationError(pkg, tag, id, uid, initialPid, message);
+ long identity = Binder.clearCallingIdentity();
+ try {
+ // WARNING: this will call back into us to do the remove. Don't hold any locks.
+ mNotificationDelegate.onNotificationError(pkg, tag, id, uid, initialPid, message);
+ } finally {
+ Binder.restoreCallingIdentity(identity);
+ }
}
+ @Override
public void onNotificationClear(String pkg, String tag, int id) {
enforceStatusBarService();
-
- mNotificationCallbacks.onNotificationClear(pkg, tag, id);
+ long identity = Binder.clearCallingIdentity();
+ try {
+ mNotificationDelegate.onNotificationClear(pkg, tag, id);
+ } finally {
+ Binder.restoreCallingIdentity(identity);
+ }
}
+ @Override
public void onClearAllNotifications() {
enforceStatusBarService();
-
- mNotificationCallbacks.onClearAll();
- }
-
- // ================================================================================
- // Callbacks for NotificationManagerService.
- // ================================================================================
- public IBinder addNotification(StatusBarNotification notification) {
- synchronized (mNotifications) {
- IBinder key = new Binder();
- mNotifications.put(key, notification);
- if (mBar != null) {
- try {
- mBar.addNotification(key, notification);
- } catch (RemoteException ex) {
- }
- }
- return key;
+ long identity = Binder.clearCallingIdentity();
+ try {
+ mNotificationDelegate.onClearAll();
+ } finally {
+ Binder.restoreCallingIdentity(identity);
}
}
- public void updateNotification(IBinder key, StatusBarNotification notification) {
- synchronized (mNotifications) {
- if (!mNotifications.containsKey(key)) {
- throw new IllegalArgumentException("updateNotification key not found: " + key);
- }
- mNotifications.put(key, notification);
- if (mBar != null) {
- try {
- mBar.updateNotification(key, notification);
- } catch (RemoteException ex) {
- }
- }
- }
- }
-
- public void removeNotification(IBinder key) {
- synchronized (mNotifications) {
- final StatusBarNotification n = mNotifications.remove(key);
- if (n == null) {
- Slog.e(TAG, "removeNotification key not found: " + key);
- return;
- }
- if (mBar != null) {
- try {
- mBar.removeNotification(key);
- } catch (RemoteException ex) {
- }
- }
- }
- }
// ================================================================================
// Can be called from any thread
diff --git a/services/core/java/com/android/server/storage/DeviceStorageMonitorInternal.java b/services/core/java/com/android/server/storage/DeviceStorageMonitorInternal.java
new file mode 100644
index 0000000..a91a81b
--- /dev/null
+++ b/services/core/java/com/android/server/storage/DeviceStorageMonitorInternal.java
@@ -0,0 +1,24 @@
+/**
+ * Copyright (c) 2013, 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.server.storage;
+
+public interface DeviceStorageMonitorInternal {
+ boolean isMemoryLow();
+ long getMemoryLowThreshold();
+ void checkMemory();
+}
+
diff --git a/services/java/com/android/server/DeviceStorageMonitorService.java b/services/core/java/com/android/server/storage/DeviceStorageMonitorService.java
similarity index 79%
rename from services/java/com/android/server/DeviceStorageMonitorService.java
rename to services/core/java/com/android/server/storage/DeviceStorageMonitorService.java
index 016c561..8805084 100644
--- a/services/java/com/android/server/DeviceStorageMonitorService.java
+++ b/services/core/java/com/android/server/storage/DeviceStorageMonitorService.java
@@ -14,7 +14,10 @@
* limitations under the License.
*/
-package com.android.server;
+package com.android.server.storage;
+
+import com.android.server.EventLogTags;
+import com.android.server.SystemService;
import android.app.Notification;
import android.app.NotificationManager;
@@ -29,8 +32,8 @@
import android.os.Environment;
import android.os.FileObserver;
import android.os.Handler;
+import android.os.IBinder;
import android.os.Message;
-import android.os.Process;
import android.os.RemoteException;
import android.os.ServiceManager;
import android.os.StatFs;
@@ -66,13 +69,13 @@
* settings parameter with a default value of 2MB), the free memory is
* logged to the event log.
*/
-public class DeviceStorageMonitorService extends Binder {
- private static final String TAG = "DeviceStorageMonitorService";
+public class DeviceStorageMonitorService extends SystemService {
+ static final String TAG = "DeviceStorageMonitorService";
- private static final boolean DEBUG = false;
- private static final boolean localLOGV = false;
+ static final boolean DEBUG = false;
+ static final boolean localLOGV = false;
- private static final int DEVICE_MEMORY_WHAT = 1;
+ static final int DEVICE_MEMORY_WHAT = 1;
private static final int MONITOR_INTERVAL = 1; //in minutes
private static final int LOW_MEMORY_NOTIFICATION_ID = 1;
@@ -84,9 +87,8 @@
private long mFreeMemAfterLastCacheClear; // on /data
private long mLastReportedFreeMem;
private long mLastReportedFreeMemTime;
- private boolean mLowMemFlag=false;
+ boolean mLowMemFlag=false;
private boolean mMemFullFlag=false;
- private Context mContext;
private ContentResolver mResolver;
private long mTotalMemory; // on /data
private StatFs mDataFileStats;
@@ -98,19 +100,19 @@
private static final File CACHE_PATH = Environment.getDownloadCacheDirectory();
private long mThreadStartTime = -1;
- private boolean mClearSucceeded = false;
- private boolean mClearingCache;
+ boolean mClearSucceeded = false;
+ boolean mClearingCache;
private Intent mStorageLowIntent;
private Intent mStorageOkIntent;
private Intent mStorageFullIntent;
private Intent mStorageNotFullIntent;
private CachePackageDataObserver mClearCacheObserver;
- private final CacheFileDeletedObserver mCacheFileDeletedObserver;
+ private CacheFileDeletedObserver mCacheFileDeletedObserver;
private static final int _TRUE = 1;
private static final int _FALSE = 0;
// This is the raw threshold that has been set at which we consider
// storage to be low.
- private long mMemLowThreshold;
+ long mMemLowThreshold;
// This is the threshold at which we start trying to flush caches
// to get below the low threshold limit. It is less than the low
// threshold; we will allow storage to get a bit beyond the limit
@@ -126,13 +128,13 @@
/**
* This string is used for ServiceManager access to this class.
*/
- public static final String SERVICE = "devicestoragemonitor";
+ static final String SERVICE = "devicestoragemonitor";
/**
* Handler that checks the amount of disk space on the device and sends a
* notification if the device runs low on disk space
*/
- Handler mHandler = new Handler() {
+ private Handler mHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
//don't handle an invalid message
@@ -144,7 +146,7 @@
}
};
- class CachePackageDataObserver extends IPackageDataObserver.Stub {
+ private class CachePackageDataObserver extends IPackageDataObserver.Stub {
public void onRemoveCompleted(String packageName, boolean succeeded) {
mClearSucceeded = succeeded;
mClearingCache = false;
@@ -154,7 +156,7 @@
}
}
- private final void restatDataDir() {
+ private void restatDataDir() {
try {
mDataFileStats.restat(DATA_PATH.getAbsolutePath());
mFreeMem = (long) mDataFileStats.getAvailableBlocks() *
@@ -206,7 +208,7 @@
}
}
- private final void clearCache() {
+ private void clearCache() {
if (mClearCacheObserver == null) {
// Lazy instantiation
mClearCacheObserver = new CachePackageDataObserver();
@@ -223,7 +225,7 @@
}
}
- private final void checkMemory(boolean checkCache) {
+ void checkMemory(boolean checkCache) {
//if the thread that was started to clear cache is still running do nothing till its
//finished clearing cache. Ideally this flag could be modified by clearCache
// and should be accessed via a lock but even if it does this test will fail now and
@@ -300,7 +302,7 @@
postCheckMemoryMsg(true, DEFAULT_CHECK_INTERVAL);
}
- private void postCheckMemoryMsg(boolean clearCache, long delay) {
+ void postCheckMemoryMsg(boolean clearCache, long delay) {
// Remove queued messages
mHandler.removeMessages(DEVICE_MEMORY_WHAT);
mHandler.sendMessageDelayed(mHandler.obtainMessage(DEVICE_MEMORY_WHAT,
@@ -312,10 +314,10 @@
* Constructor to run service. initializes the disk space threshold value
* and posts an empty message to kickstart the process.
*/
- public DeviceStorageMonitorService(Context context) {
+ @Override
+ public void onCreate(Context context) {
mLastReportedFreeMemTime = 0;
- mContext = context;
- mResolver = mContext.getContentResolver();
+ mResolver = context.getContentResolver();
//create StatFs object
mDataFileStats = new StatFs(DATA_PATH.getAbsolutePath());
mSystemFileStats = new StatFs(SYSTEM_PATH.getAbsolutePath());
@@ -331,9 +333,12 @@
mStorageFullIntent.addFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY_BEFORE_BOOT);
mStorageNotFullIntent = new Intent(Intent.ACTION_DEVICE_STORAGE_NOT_FULL);
mStorageNotFullIntent.addFlags(Intent.FLAG_RECEIVER_REGISTERED_ONLY_BEFORE_BOOT);
+ }
+ @Override
+ public void onStart() {
// cache storage thresholds
- final StorageManager sm = StorageManager.from(context);
+ final StorageManager sm = StorageManager.from(getContext());
mMemLowThreshold = sm.getStorageLowBytes(DATA_PATH);
mMemFullThreshold = sm.getStorageFullBytes(DATA_PATH);
@@ -345,6 +350,78 @@
mCacheFileDeletedObserver = new CacheFileDeletedObserver();
mCacheFileDeletedObserver.startWatching();
+
+ publishBinderService(SERVICE, mRemoteService);
+ publishLocalService(DeviceStorageMonitorInternal.class, mLocalService);
+ }
+
+ private final DeviceStorageMonitorInternal mLocalService = new DeviceStorageMonitorInternal() {
+ @Override
+ public void checkMemory() {
+ // force an early check
+ postCheckMemoryMsg(true, 0);
+ }
+
+ @Override
+ public boolean isMemoryLow() {
+ return mLowMemFlag;
+ }
+
+ @Override
+ public long getMemoryLowThreshold() {
+ return mMemLowThreshold;
+ }
+ };
+
+ private final IBinder mRemoteService = new Binder() {
+ @Override
+ protected void dump(FileDescriptor fd, PrintWriter pw, String[] args) {
+ if (getContext().checkCallingOrSelfPermission(android.Manifest.permission.DUMP)
+ != PackageManager.PERMISSION_GRANTED) {
+
+ pw.println("Permission Denial: can't dump " + SERVICE + " from from pid="
+ + Binder.getCallingPid()
+ + ", uid=" + Binder.getCallingUid());
+ return;
+ }
+
+ dumpImpl(pw);
+ }
+ };
+
+ void dumpImpl(PrintWriter pw) {
+ final Context context = getContext();
+
+ pw.println("Current DeviceStorageMonitor state:");
+
+ pw.print(" mFreeMem="); pw.print(Formatter.formatFileSize(context, mFreeMem));
+ pw.print(" mTotalMemory=");
+ pw.println(Formatter.formatFileSize(context, mTotalMemory));
+
+ pw.print(" mFreeMemAfterLastCacheClear=");
+ pw.println(Formatter.formatFileSize(context, mFreeMemAfterLastCacheClear));
+
+ pw.print(" mLastReportedFreeMem=");
+ pw.print(Formatter.formatFileSize(context, mLastReportedFreeMem));
+ pw.print(" mLastReportedFreeMemTime=");
+ TimeUtils.formatDuration(mLastReportedFreeMemTime, SystemClock.elapsedRealtime(), pw);
+ pw.println();
+
+ pw.print(" mLowMemFlag="); pw.print(mLowMemFlag);
+ pw.print(" mMemFullFlag="); pw.println(mMemFullFlag);
+
+ pw.print(" mClearSucceeded="); pw.print(mClearSucceeded);
+ pw.print(" mClearingCache="); pw.println(mClearingCache);
+
+ pw.print(" mMemLowThreshold=");
+ pw.print(Formatter.formatFileSize(context, mMemLowThreshold));
+ pw.print(" mMemFullThreshold=");
+ pw.println(Formatter.formatFileSize(context, mMemFullThreshold));
+
+ pw.print(" mMemCacheStartTrimThreshold=");
+ pw.print(Formatter.formatFileSize(context, mMemCacheStartTrimThreshold));
+ pw.print(" mMemCacheTrimToThreshold=");
+ pw.println(Formatter.formatFileSize(context, mMemCacheTrimToThreshold));
}
/**
@@ -352,7 +429,8 @@
* an error dialog indicating low disk space and launch the Installer
* application
*/
- private final void sendNotification() {
+ private void sendNotification() {
+ final Context context = getContext();
if(localLOGV) Slog.i(TAG, "Sending low memory notification");
//log the event to event log with the amount of free storage(in bytes) left on the device
EventLog.writeEvent(EventLogTags.LOW_STORAGE, mFreeMem);
@@ -363,86 +441,58 @@
lowMemIntent.putExtra("memory", mFreeMem);
lowMemIntent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
NotificationManager mNotificationMgr =
- (NotificationManager)mContext.getSystemService(
+ (NotificationManager)context.getSystemService(
Context.NOTIFICATION_SERVICE);
- CharSequence title = mContext.getText(
+ CharSequence title = context.getText(
com.android.internal.R.string.low_internal_storage_view_title);
- CharSequence details = mContext.getText(
+ CharSequence details = context.getText(
com.android.internal.R.string.low_internal_storage_view_text);
- PendingIntent intent = PendingIntent.getActivityAsUser(mContext, 0, lowMemIntent, 0,
+ PendingIntent intent = PendingIntent.getActivityAsUser(context, 0, lowMemIntent, 0,
null, UserHandle.CURRENT);
Notification notification = new Notification();
notification.icon = com.android.internal.R.drawable.stat_notify_disk_full;
notification.tickerText = title;
notification.flags |= Notification.FLAG_NO_CLEAR;
- notification.setLatestEventInfo(mContext, title, details, intent);
+ notification.setLatestEventInfo(context, title, details, intent);
mNotificationMgr.notifyAsUser(null, LOW_MEMORY_NOTIFICATION_ID, notification,
UserHandle.ALL);
- mContext.sendStickyBroadcastAsUser(mStorageLowIntent, UserHandle.ALL);
+ context.sendStickyBroadcastAsUser(mStorageLowIntent, UserHandle.ALL);
}
/**
* Cancels low storage notification and sends OK intent.
*/
- private final void cancelNotification() {
+ private void cancelNotification() {
+ final Context context = getContext();
if(localLOGV) Slog.i(TAG, "Canceling low memory notification");
NotificationManager mNotificationMgr =
- (NotificationManager)mContext.getSystemService(
+ (NotificationManager)context.getSystemService(
Context.NOTIFICATION_SERVICE);
//cancel notification since memory has been freed
mNotificationMgr.cancelAsUser(null, LOW_MEMORY_NOTIFICATION_ID, UserHandle.ALL);
- mContext.removeStickyBroadcastAsUser(mStorageLowIntent, UserHandle.ALL);
- mContext.sendBroadcastAsUser(mStorageOkIntent, UserHandle.ALL);
+ context.removeStickyBroadcastAsUser(mStorageLowIntent, UserHandle.ALL);
+ context.sendBroadcastAsUser(mStorageOkIntent, UserHandle.ALL);
}
/**
* Send a notification when storage is full.
*/
- private final void sendFullNotification() {
+ private void sendFullNotification() {
if(localLOGV) Slog.i(TAG, "Sending memory full notification");
- mContext.sendStickyBroadcastAsUser(mStorageFullIntent, UserHandle.ALL);
+ getContext().sendStickyBroadcastAsUser(mStorageFullIntent, UserHandle.ALL);
}
/**
* Cancels memory full notification and sends "not full" intent.
*/
- private final void cancelFullNotification() {
+ private void cancelFullNotification() {
if(localLOGV) Slog.i(TAG, "Canceling memory full notification");
- mContext.removeStickyBroadcastAsUser(mStorageFullIntent, UserHandle.ALL);
- mContext.sendBroadcastAsUser(mStorageNotFullIntent, UserHandle.ALL);
+ getContext().removeStickyBroadcastAsUser(mStorageFullIntent, UserHandle.ALL);
+ getContext().sendBroadcastAsUser(mStorageNotFullIntent, UserHandle.ALL);
}
- public void updateMemory() {
- int callingUid = getCallingUid();
- if(callingUid != Process.SYSTEM_UID) {
- return;
- }
- // force an early check
- postCheckMemoryMsg(true, 0);
- }
-
- /**
- * Callable from other things in the system service to obtain the low memory
- * threshold.
- *
- * @return low memory threshold in bytes
- */
- public long getMemoryLowThreshold() {
- return mMemLowThreshold;
- }
-
- /**
- * Callable from other things in the system process to check whether memory
- * is low.
- *
- * @return true is memory is low
- */
- public boolean isMemoryLow() {
- return mLowMemFlag;
- }
-
- public static class CacheFileDeletedObserver extends FileObserver {
+ private static class CacheFileDeletedObserver extends FileObserver {
public CacheFileDeletedObserver() {
super(Environment.getDownloadCacheDirectory().getAbsolutePath(), FileObserver.DELETE);
}
@@ -452,40 +502,4 @@
EventLogTags.writeCacheFileDeleted(path);
}
}
-
- @Override
- protected void dump(FileDescriptor fd, PrintWriter pw, String[] args) {
- if (mContext.checkCallingOrSelfPermission(android.Manifest.permission.DUMP)
- != PackageManager.PERMISSION_GRANTED) {
-
- pw.println("Permission Denial: can't dump " + SERVICE + " from from pid="
- + Binder.getCallingPid()
- + ", uid=" + Binder.getCallingUid());
- return;
- }
-
- pw.println("Current DeviceStorageMonitor state:");
- pw.print(" mFreeMem="); pw.print(Formatter.formatFileSize(mContext, mFreeMem));
- pw.print(" mTotalMemory=");
- pw.println(Formatter.formatFileSize(mContext, mTotalMemory));
- pw.print(" mFreeMemAfterLastCacheClear=");
- pw.println(Formatter.formatFileSize(mContext, mFreeMemAfterLastCacheClear));
- pw.print(" mLastReportedFreeMem=");
- pw.print(Formatter.formatFileSize(mContext, mLastReportedFreeMem));
- pw.print(" mLastReportedFreeMemTime=");
- TimeUtils.formatDuration(mLastReportedFreeMemTime, SystemClock.elapsedRealtime(), pw);
- pw.println();
- pw.print(" mLowMemFlag="); pw.print(mLowMemFlag);
- pw.print(" mMemFullFlag="); pw.println(mMemFullFlag);
- pw.print(" mClearSucceeded="); pw.print(mClearSucceeded);
- pw.print(" mClearingCache="); pw.println(mClearingCache);
- pw.print(" mMemLowThreshold=");
- pw.print(Formatter.formatFileSize(mContext, mMemLowThreshold));
- pw.print(" mMemFullThreshold=");
- pw.println(Formatter.formatFileSize(mContext, mMemFullThreshold));
- pw.print(" mMemCacheStartTrimThreshold=");
- pw.print(Formatter.formatFileSize(mContext, mMemCacheStartTrimThreshold));
- pw.print(" mMemCacheTrimToThreshold=");
- pw.println(Formatter.formatFileSize(mContext, mMemCacheTrimToThreshold));
- }
}
diff --git a/services/core/java/com/android/server/twilight/TwilightListener.java b/services/core/java/com/android/server/twilight/TwilightListener.java
new file mode 100644
index 0000000..29ead44
--- /dev/null
+++ b/services/core/java/com/android/server/twilight/TwilightListener.java
@@ -0,0 +1,21 @@
+/*
+ * Copyright (C) 2013 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.server.twilight;
+
+public interface TwilightListener {
+ void onTwilightStateChanged();
+}
\ No newline at end of file
diff --git a/services/core/java/com/android/server/twilight/TwilightManager.java b/services/core/java/com/android/server/twilight/TwilightManager.java
new file mode 100644
index 0000000..b3de58b
--- /dev/null
+++ b/services/core/java/com/android/server/twilight/TwilightManager.java
@@ -0,0 +1,24 @@
+/*
+ * Copyright (C) 2013 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.server.twilight;
+
+import android.os.Handler;
+
+public interface TwilightManager {
+ void registerListener(TwilightListener listener, Handler handler);
+ TwilightState getCurrentState();
+}
diff --git a/services/java/com/android/server/TwilightService.java b/services/core/java/com/android/server/twilight/TwilightService.java
similarity index 74%
rename from services/java/com/android/server/TwilightService.java
rename to services/core/java/com/android/server/twilight/TwilightService.java
index 0356faa..8feb97b 100644
--- a/services/java/com/android/server/TwilightService.java
+++ b/services/core/java/com/android/server/twilight/TwilightService.java
@@ -14,7 +14,10 @@
* limitations under the License.
*/
-package com.android.server;
+package com.android.server.twilight;
+
+import com.android.server.SystemService;
+import com.android.server.TwilightCalculator;
import android.app.AlarmManager;
import android.app.PendingIntent;
@@ -34,9 +37,7 @@
import android.text.format.Time;
import android.util.Slog;
-import java.text.DateFormat;
import java.util.ArrayList;
-import java.util.Date;
import java.util.Iterator;
import libcore.util.Objects;
@@ -47,78 +48,88 @@
* Used by the UI mode manager and other components to adjust night mode
* effects based on sunrise and sunset.
*/
-public final class TwilightService {
- private static final String TAG = "TwilightService";
-
- private static final boolean DEBUG = false;
-
- private static final String ACTION_UPDATE_TWILIGHT_STATE =
+public final class TwilightService extends SystemService {
+ static final String TAG = "TwilightService";
+ static final boolean DEBUG = false;
+ static final String ACTION_UPDATE_TWILIGHT_STATE =
"com.android.server.action.UPDATE_TWILIGHT_STATE";
- private final Context mContext;
- private final AlarmManager mAlarmManager;
- private final LocationManager mLocationManager;
- private final LocationHandler mLocationHandler;
+ final Object mLock = new Object();
- private final Object mLock = new Object();
+ AlarmManager mAlarmManager;
+ LocationManager mLocationManager;
+ LocationHandler mLocationHandler;
- private final ArrayList<TwilightListenerRecord> mListeners =
+ final ArrayList<TwilightListenerRecord> mListeners =
new ArrayList<TwilightListenerRecord>();
- private boolean mSystemReady;
+ TwilightState mTwilightState;
- private TwilightState mTwilightState;
-
- public TwilightService(Context context) {
- mContext = context;
-
- mAlarmManager = (AlarmManager)mContext.getSystemService(Context.ALARM_SERVICE);
- mLocationManager = (LocationManager)mContext.getSystemService(Context.LOCATION_SERVICE);
+ @Override
+ public void onStart() {
+ mAlarmManager = (AlarmManager) getContext().getSystemService(Context.ALARM_SERVICE);
+ mLocationManager = (LocationManager) getContext().getSystemService(
+ Context.LOCATION_SERVICE);
mLocationHandler = new LocationHandler();
+
+ IntentFilter filter = new IntentFilter(Intent.ACTION_AIRPLANE_MODE_CHANGED);
+ filter.addAction(Intent.ACTION_TIME_CHANGED);
+ filter.addAction(Intent.ACTION_TIMEZONE_CHANGED);
+ filter.addAction(ACTION_UPDATE_TWILIGHT_STATE);
+ getContext().registerReceiver(mUpdateLocationReceiver, filter);
+
+ publishLocalService(TwilightManager.class, mService);
}
- void systemReady() {
- synchronized (mLock) {
- mSystemReady = true;
+ private static class TwilightListenerRecord implements Runnable {
+ private final TwilightListener mListener;
+ private final Handler mHandler;
- IntentFilter filter = new IntentFilter(Intent.ACTION_AIRPLANE_MODE_CHANGED);
- filter.addAction(Intent.ACTION_TIME_CHANGED);
- filter.addAction(Intent.ACTION_TIMEZONE_CHANGED);
- filter.addAction(ACTION_UPDATE_TWILIGHT_STATE);
- mContext.registerReceiver(mUpdateLocationReceiver, filter);
+ public TwilightListenerRecord(TwilightListener listener, Handler handler) {
+ mListener = listener;
+ mHandler = handler;
+ }
- if (!mListeners.isEmpty()) {
- mLocationHandler.enableLocationUpdates();
+ public void postUpdate() {
+ mHandler.post(this);
+ }
+
+ @Override
+ public void run() {
+ mListener.onTwilightStateChanged();
+ }
+
+ }
+
+ private final TwilightManager mService = new TwilightManager() {
+ /**
+ * Gets the current twilight state.
+ *
+ * @return The current twilight state, or null if no information is available.
+ */
+ @Override
+ public TwilightState getCurrentState() {
+ synchronized (mLock) {
+ return mTwilightState;
}
}
- }
- /**
- * Gets the current twilight state.
- *
- * @return The current twilight state, or null if no information is available.
- */
- public TwilightState getCurrentState() {
- synchronized (mLock) {
- return mTwilightState;
- }
- }
+ /**
+ * Listens for twilight time.
+ *
+ * @param listener The listener.
+ */
+ @Override
+ public void registerListener(TwilightListener listener, Handler handler) {
+ synchronized (mLock) {
+ mListeners.add(new TwilightListenerRecord(listener, handler));
- /**
- * Listens for twilight time.
- *
- * @param listener The listener.
- * @param handler The handler on which to post calls into the listener.
- */
- public void registerListener(TwilightListener listener, Handler handler) {
- synchronized (mLock) {
- mListeners.add(new TwilightListenerRecord(listener, handler));
-
- if (mSystemReady && mListeners.size() == 1) {
- mLocationHandler.enableLocationUpdates();
+ if (mListeners.size() == 1) {
+ mLocationHandler.enableLocationUpdates();
+ }
}
}
- }
+ };
private void setTwilightState(TwilightState state) {
synchronized (mLock) {
@@ -128,9 +139,10 @@
}
mTwilightState = state;
- int count = mListeners.size();
- for (int i = 0; i < count; i++) {
- mListeners.get(i).post();
+
+ final int listenerLen = mListeners.size();
+ for (int i = 0; i < listenerLen; i++) {
+ mListeners.get(i).postUpdate();
}
}
}
@@ -162,124 +174,6 @@
return distance >= totalAccuracy;
}
- /**
- * Describes whether it is day or night.
- * This object is immutable.
- */
- public static final class TwilightState {
- private final boolean mIsNight;
- private final long mYesterdaySunset;
- private final long mTodaySunrise;
- private final long mTodaySunset;
- private final long mTomorrowSunrise;
-
- TwilightState(boolean isNight,
- long yesterdaySunset,
- long todaySunrise, long todaySunset,
- long tomorrowSunrise) {
- mIsNight = isNight;
- mYesterdaySunset = yesterdaySunset;
- mTodaySunrise = todaySunrise;
- mTodaySunset = todaySunset;
- mTomorrowSunrise = tomorrowSunrise;
- }
-
- /**
- * Returns true if it is currently night time.
- */
- public boolean isNight() {
- return mIsNight;
- }
-
- /**
- * Returns the time of yesterday's sunset in the System.currentTimeMillis() timebase,
- * or -1 if the sun never sets.
- */
- public long getYesterdaySunset() {
- return mYesterdaySunset;
- }
-
- /**
- * Returns the time of today's sunrise in the System.currentTimeMillis() timebase,
- * or -1 if the sun never rises.
- */
- public long getTodaySunrise() {
- return mTodaySunrise;
- }
-
- /**
- * Returns the time of today's sunset in the System.currentTimeMillis() timebase,
- * or -1 if the sun never sets.
- */
- public long getTodaySunset() {
- return mTodaySunset;
- }
-
- /**
- * Returns the time of tomorrow's sunrise in the System.currentTimeMillis() timebase,
- * or -1 if the sun never rises.
- */
- public long getTomorrowSunrise() {
- return mTomorrowSunrise;
- }
-
- @Override
- public boolean equals(Object o) {
- return o instanceof TwilightState && equals((TwilightState)o);
- }
-
- public boolean equals(TwilightState other) {
- return other != null
- && mIsNight == other.mIsNight
- && mYesterdaySunset == other.mYesterdaySunset
- && mTodaySunrise == other.mTodaySunrise
- && mTodaySunset == other.mTodaySunset
- && mTomorrowSunrise == other.mTomorrowSunrise;
- }
-
- @Override
- public int hashCode() {
- return 0; // don't care
- }
-
- @Override
- public String toString() {
- DateFormat f = DateFormat.getDateTimeInstance();
- return "{TwilightState: isNight=" + mIsNight
- + ", mYesterdaySunset=" + f.format(new Date(mYesterdaySunset))
- + ", mTodaySunrise=" + f.format(new Date(mTodaySunrise))
- + ", mTodaySunset=" + f.format(new Date(mTodaySunset))
- + ", mTomorrowSunrise=" + f.format(new Date(mTomorrowSunrise))
- + "}";
- }
- }
-
- /**
- * Listener for changes in twilight state.
- */
- public interface TwilightListener {
- public void onTwilightStateChanged();
- }
-
- private static final class TwilightListenerRecord implements Runnable {
- private final TwilightListener mListener;
- private final Handler mHandler;
-
- public TwilightListenerRecord(TwilightListener listener, Handler handler) {
- mListener = listener;
- mHandler = handler;
- }
-
- public void post() {
- mHandler.post(this);
- }
-
- @Override
- public void run() {
- mListener.onTwilightStateChanged();
- }
- }
-
private final class LocationHandler extends Handler {
private static final int MSG_ENABLE_LOCATION_UPDATES = 1;
private static final int MSG_GET_NEW_LOCATION_UPDATE = 2;
@@ -518,11 +412,12 @@
}
Intent updateIntent = new Intent(ACTION_UPDATE_TWILIGHT_STATE);
- PendingIntent pendingIntent = PendingIntent.getBroadcast(mContext, 0, updateIntent, 0);
+ PendingIntent pendingIntent = PendingIntent.getBroadcast(
+ getContext(), 0, updateIntent, 0);
mAlarmManager.cancel(pendingIntent);
mAlarmManager.setExact(AlarmManager.RTC, nextUpdate, pendingIntent);
}
- };
+ }
private final BroadcastReceiver mUpdateLocationReceiver = new BroadcastReceiver() {
@Override
diff --git a/services/core/java/com/android/server/twilight/TwilightState.java b/services/core/java/com/android/server/twilight/TwilightState.java
new file mode 100644
index 0000000..91e24d7
--- /dev/null
+++ b/services/core/java/com/android/server/twilight/TwilightState.java
@@ -0,0 +1,112 @@
+/*
+ * Copyright (C) 2013 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.server.twilight;
+
+import java.text.DateFormat;
+import java.util.Date;
+
+/**
+ * Describes whether it is day or night.
+ * This object is immutable.
+ */
+public class TwilightState {
+ private final boolean mIsNight;
+ private final long mYesterdaySunset;
+ private final long mTodaySunrise;
+ private final long mTodaySunset;
+ private final long mTomorrowSunrise;
+
+ TwilightState(boolean isNight,
+ long yesterdaySunset,
+ long todaySunrise, long todaySunset,
+ long tomorrowSunrise) {
+ mIsNight = isNight;
+ mYesterdaySunset = yesterdaySunset;
+ mTodaySunrise = todaySunrise;
+ mTodaySunset = todaySunset;
+ mTomorrowSunrise = tomorrowSunrise;
+ }
+
+ /**
+ * Returns true if it is currently night time.
+ */
+ public boolean isNight() {
+ return mIsNight;
+ }
+
+ /**
+ * Returns the time of yesterday's sunset in the System.currentTimeMillis() timebase,
+ * or -1 if the sun never sets.
+ */
+ public long getYesterdaySunset() {
+ return mYesterdaySunset;
+ }
+
+ /**
+ * Returns the time of today's sunrise in the System.currentTimeMillis() timebase,
+ * or -1 if the sun never rises.
+ */
+ public long getTodaySunrise() {
+ return mTodaySunrise;
+ }
+
+ /**
+ * Returns the time of today's sunset in the System.currentTimeMillis() timebase,
+ * or -1 if the sun never sets.
+ */
+ public long getTodaySunset() {
+ return mTodaySunset;
+ }
+
+ /**
+ * Returns the time of tomorrow's sunrise in the System.currentTimeMillis() timebase,
+ * or -1 if the sun never rises.
+ */
+ public long getTomorrowSunrise() {
+ return mTomorrowSunrise;
+ }
+
+ @Override
+ public boolean equals(Object o) {
+ return o instanceof TwilightState && equals((TwilightState)o);
+ }
+
+ public boolean equals(TwilightState other) {
+ return other != null
+ && mIsNight == other.mIsNight
+ && mYesterdaySunset == other.mYesterdaySunset
+ && mTodaySunrise == other.mTodaySunrise
+ && mTodaySunset == other.mTodaySunset
+ && mTomorrowSunrise == other.mTomorrowSunrise;
+ }
+
+ @Override
+ public int hashCode() {
+ return 0; // don't care
+ }
+
+ @Override
+ public String toString() {
+ DateFormat f = DateFormat.getDateTimeInstance();
+ return "{TwilightState: isNight=" + mIsNight
+ + ", mYesterdaySunset=" + f.format(new Date(mYesterdaySunset))
+ + ", mTodaySunrise=" + f.format(new Date(mTodaySunrise))
+ + ", mTodaySunset=" + f.format(new Date(mTodaySunset))
+ + ", mTomorrowSunrise=" + f.format(new Date(mTomorrowSunrise))
+ + "}";
+ }
+}
diff --git a/services/java/com/android/server/updates/CarrierProvisioningUrlsInstallReceiver.java b/services/core/java/com/android/server/updates/CarrierProvisioningUrlsInstallReceiver.java
similarity index 100%
rename from services/java/com/android/server/updates/CarrierProvisioningUrlsInstallReceiver.java
rename to services/core/java/com/android/server/updates/CarrierProvisioningUrlsInstallReceiver.java
diff --git a/services/java/com/android/server/updates/CertPinInstallReceiver.java b/services/core/java/com/android/server/updates/CertPinInstallReceiver.java
similarity index 100%
rename from services/java/com/android/server/updates/CertPinInstallReceiver.java
rename to services/core/java/com/android/server/updates/CertPinInstallReceiver.java
diff --git a/services/java/com/android/server/updates/ConfigUpdateInstallReceiver.java b/services/core/java/com/android/server/updates/ConfigUpdateInstallReceiver.java
similarity index 100%
rename from services/java/com/android/server/updates/ConfigUpdateInstallReceiver.java
rename to services/core/java/com/android/server/updates/ConfigUpdateInstallReceiver.java
diff --git a/services/java/com/android/server/updates/IntentFirewallInstallReceiver.java b/services/core/java/com/android/server/updates/IntentFirewallInstallReceiver.java
similarity index 100%
rename from services/java/com/android/server/updates/IntentFirewallInstallReceiver.java
rename to services/core/java/com/android/server/updates/IntentFirewallInstallReceiver.java
diff --git a/services/java/com/android/server/updates/SELinuxPolicyInstallReceiver.java b/services/core/java/com/android/server/updates/SELinuxPolicyInstallReceiver.java
similarity index 100%
rename from services/java/com/android/server/updates/SELinuxPolicyInstallReceiver.java
rename to services/core/java/com/android/server/updates/SELinuxPolicyInstallReceiver.java
diff --git a/services/java/com/android/server/updates/SmsShortCodesInstallReceiver.java b/services/core/java/com/android/server/updates/SmsShortCodesInstallReceiver.java
similarity index 100%
rename from services/java/com/android/server/updates/SmsShortCodesInstallReceiver.java
rename to services/core/java/com/android/server/updates/SmsShortCodesInstallReceiver.java
diff --git a/services/java/com/android/server/updates/TZInfoInstallReceiver.java b/services/core/java/com/android/server/updates/TZInfoInstallReceiver.java
similarity index 100%
rename from services/java/com/android/server/updates/TZInfoInstallReceiver.java
rename to services/core/java/com/android/server/updates/TZInfoInstallReceiver.java
diff --git a/services/java/com/android/server/usb/UsbDebuggingManager.java b/services/core/java/com/android/server/usb/UsbDebuggingManager.java
similarity index 100%
rename from services/java/com/android/server/usb/UsbDebuggingManager.java
rename to services/core/java/com/android/server/usb/UsbDebuggingManager.java
diff --git a/services/java/com/android/server/usb/UsbDeviceManager.java b/services/core/java/com/android/server/usb/UsbDeviceManager.java
similarity index 100%
rename from services/java/com/android/server/usb/UsbDeviceManager.java
rename to services/core/java/com/android/server/usb/UsbDeviceManager.java
diff --git a/services/java/com/android/server/usb/UsbHostManager.java b/services/core/java/com/android/server/usb/UsbHostManager.java
similarity index 100%
rename from services/java/com/android/server/usb/UsbHostManager.java
rename to services/core/java/com/android/server/usb/UsbHostManager.java
diff --git a/services/java/com/android/server/usb/UsbService.java b/services/core/java/com/android/server/usb/UsbService.java
similarity index 100%
rename from services/java/com/android/server/usb/UsbService.java
rename to services/core/java/com/android/server/usb/UsbService.java
diff --git a/services/java/com/android/server/usb/UsbSettingsManager.java b/services/core/java/com/android/server/usb/UsbSettingsManager.java
similarity index 100%
rename from services/java/com/android/server/usb/UsbSettingsManager.java
rename to services/core/java/com/android/server/usb/UsbSettingsManager.java
diff --git a/services/java/com/android/server/WallpaperManagerService.java b/services/core/java/com/android/server/wallpaper/WallpaperManagerService.java
similarity index 98%
rename from services/java/com/android/server/WallpaperManagerService.java
rename to services/core/java/com/android/server/wallpaper/WallpaperManagerService.java
index e6b6b93..97ea52c 100644
--- a/services/java/com/android/server/WallpaperManagerService.java
+++ b/services/core/java/com/android/server/wallpaper/WallpaperManagerService.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.server;
+package com.android.server.wallpaper;
import static android.os.ParcelFileDescriptor.*;
@@ -85,8 +85,8 @@
import com.android.internal.util.FastXmlSerializer;
import com.android.internal.util.JournaledFile;
-class WallpaperManagerService extends IWallpaperManager.Stub {
- static final String TAG = "WallpaperService";
+public class WallpaperManagerService extends IWallpaperManager.Stub {
+ static final String TAG = "WallpaperManagerService";
static final boolean DEBUG = false;
final Object mLock = new Object[0];
@@ -98,7 +98,6 @@
static final long MIN_WALLPAPER_CRASH_TIME = 10000;
static final String WALLPAPER = "wallpaper";
static final String WALLPAPER_INFO = "wallpaper_info.xml";
-
/**
* Name of the component used to display bitmap wallpapers from either the gallery or
* built-in wallpapers.
@@ -505,7 +504,12 @@
}
}
- String getName() {
+ /** Called by SystemBackupAgent */
+ public String getName() {
+ // Verify caller is the system
+ if (Binder.getCallingUid() != android.os.Process.SYSTEM_UID) {
+ throw new RuntimeException("getName() can only be called from the system process");
+ }
synchronized (mLock) {
return mWallpaperMap.get(0).name;
}
@@ -1175,7 +1179,11 @@
}
// Called by SystemBackupAgent after files are restored to disk.
- void settingsRestored() {
+ public void settingsRestored() {
+ // Verify caller is the system
+ if (Binder.getCallingUid() != android.os.Process.SYSTEM_UID) {
+ throw new RuntimeException("settingsRestored() can only be called from the system process");
+ }
// TODO: If necessary, make it work for secondary users as well. This currently assumes
// restores only to the primary user
if (DEBUG) Slog.v(TAG, "settingsRestored");
diff --git a/services/java/com/android/server/wifi/README.txt b/services/core/java/com/android/server/wifi/README.txt
similarity index 100%
rename from services/java/com/android/server/wifi/README.txt
rename to services/core/java/com/android/server/wifi/README.txt
diff --git a/services/java/com/android/server/wifi/WifiController.java b/services/core/java/com/android/server/wifi/WifiController.java
similarity index 100%
rename from services/java/com/android/server/wifi/WifiController.java
rename to services/core/java/com/android/server/wifi/WifiController.java
diff --git a/services/java/com/android/server/wifi/WifiNotificationController.java b/services/core/java/com/android/server/wifi/WifiNotificationController.java
similarity index 100%
rename from services/java/com/android/server/wifi/WifiNotificationController.java
rename to services/core/java/com/android/server/wifi/WifiNotificationController.java
diff --git a/services/java/com/android/server/wifi/WifiService.java b/services/core/java/com/android/server/wifi/WifiService.java
similarity index 100%
rename from services/java/com/android/server/wifi/WifiService.java
rename to services/core/java/com/android/server/wifi/WifiService.java
diff --git a/services/java/com/android/server/wifi/WifiSettingsStore.java b/services/core/java/com/android/server/wifi/WifiSettingsStore.java
similarity index 100%
rename from services/java/com/android/server/wifi/WifiSettingsStore.java
rename to services/core/java/com/android/server/wifi/WifiSettingsStore.java
diff --git a/services/java/com/android/server/wifi/WifiTrafficPoller.java b/services/core/java/com/android/server/wifi/WifiTrafficPoller.java
similarity index 100%
rename from services/java/com/android/server/wifi/WifiTrafficPoller.java
rename to services/core/java/com/android/server/wifi/WifiTrafficPoller.java
diff --git a/services/java/com/android/server/wm/AppTransition.java b/services/core/java/com/android/server/wm/AppTransition.java
similarity index 100%
rename from services/java/com/android/server/wm/AppTransition.java
rename to services/core/java/com/android/server/wm/AppTransition.java
diff --git a/services/java/com/android/server/wm/AppWindowAnimator.java b/services/core/java/com/android/server/wm/AppWindowAnimator.java
similarity index 100%
rename from services/java/com/android/server/wm/AppWindowAnimator.java
rename to services/core/java/com/android/server/wm/AppWindowAnimator.java
diff --git a/services/java/com/android/server/wm/AppWindowToken.java b/services/core/java/com/android/server/wm/AppWindowToken.java
similarity index 99%
rename from services/java/com/android/server/wm/AppWindowToken.java
rename to services/core/java/com/android/server/wm/AppWindowToken.java
index b1d67de..e98014b 100644
--- a/services/java/com/android/server/wm/AppWindowToken.java
+++ b/services/core/java/com/android/server/wm/AppWindowToken.java
@@ -53,7 +53,7 @@
int groupId = -1;
boolean appFullscreen;
int requestedOrientation = ActivityInfo.SCREEN_ORIENTATION_UNSPECIFIED;
- int configChanges;
+ boolean layoutConfigChanges;
boolean showWhenLocked;
// The input dispatching timeout for this application token in nanoseconds.
diff --git a/services/java/com/android/server/wm/BlackFrame.java b/services/core/java/com/android/server/wm/BlackFrame.java
similarity index 100%
rename from services/java/com/android/server/wm/BlackFrame.java
rename to services/core/java/com/android/server/wm/BlackFrame.java
diff --git a/services/java/com/android/server/wm/DimLayer.java b/services/core/java/com/android/server/wm/DimLayer.java
similarity index 98%
rename from services/java/com/android/server/wm/DimLayer.java
rename to services/core/java/com/android/server/wm/DimLayer.java
index c189ddd..30eaf45 100644
--- a/services/java/com/android/server/wm/DimLayer.java
+++ b/services/core/java/com/android/server/wm/DimLayer.java
@@ -51,9 +51,9 @@
/** Owning stack */
final TaskStack mStack;
- DimLayer(WindowManagerService service, TaskStack stack) {
+ DimLayer(WindowManagerService service, TaskStack stack, DisplayContent displayContent) {
mStack = stack;
- mDisplayContent = stack.getDisplayContent();
+ mDisplayContent = displayContent;
final int displayId = mDisplayContent.getDisplayId();
if (DEBUG) Slog.v(TAG, "Ctor: displayId=" + displayId);
SurfaceControl.openTransaction();
@@ -166,7 +166,7 @@
final int dw, dh;
final float xPos, yPos;
- if (mStack.hasSibling()) {
+ if (!mStack.isFullscreen()) {
dw = mBounds.width();
dh = mBounds.height();
xPos = mBounds.left;
diff --git a/services/core/java/com/android/server/wm/DisplayContent.java b/services/core/java/com/android/server/wm/DisplayContent.java
new file mode 100644
index 0000000..9f45e88
--- /dev/null
+++ b/services/core/java/com/android/server/wm/DisplayContent.java
@@ -0,0 +1,440 @@
+/*
+ * Copyright (C) 2012 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.server.wm;
+
+import static com.android.server.am.ActivityStackSupervisor.HOME_STACK_ID;
+import static com.android.server.wm.WindowManagerService.DEBUG_VISIBILITY;
+import static com.android.server.wm.WindowManagerService.TAG;
+
+import android.graphics.Rect;
+import android.graphics.Region;
+import android.util.EventLog;
+import android.util.Slog;
+import android.view.Display;
+import android.view.DisplayInfo;
+import android.view.Surface;
+import com.android.server.EventLogTags;
+
+import java.io.PrintWriter;
+import java.util.ArrayList;
+
+class DisplayContentList extends ArrayList<DisplayContent> {
+}
+
+/**
+ * Utility class for keeping track of the WindowStates and other pertinent contents of a
+ * particular Display.
+ *
+ * IMPORTANT: No method from this class should ever be used without holding
+ * WindowManagerService.mWindowMap.
+ */
+class DisplayContent {
+
+ /** Unique identifier of this stack. */
+ private final int mDisplayId;
+
+ /** Z-ordered (bottom-most first) list of all Window objects. Assigned to an element
+ * from mDisplayWindows; */
+ private WindowList mWindows = new WindowList();
+
+ // This protects the following display size properties, so that
+ // getDisplaySize() doesn't need to acquire the global lock. This is
+ // needed because the window manager sometimes needs to use ActivityThread
+ // while it has its global state locked (for example to load animation
+ // resources), but the ActivityThread also needs get the current display
+ // size sometimes when it has its package lock held.
+ //
+ // These will only be modified with both mWindowMap and mDisplaySizeLock
+ // held (in that order) so the window manager doesn't need to acquire this
+ // lock when needing these values in its normal operation.
+ final Object mDisplaySizeLock = new Object();
+ int mInitialDisplayWidth = 0;
+ int mInitialDisplayHeight = 0;
+ int mInitialDisplayDensity = 0;
+ int mBaseDisplayWidth = 0;
+ int mBaseDisplayHeight = 0;
+ int mBaseDisplayDensity = 0;
+ private final DisplayInfo mDisplayInfo = new DisplayInfo();
+ private final Display mDisplay;
+
+ Rect mBaseDisplayRect = new Rect();
+ Rect mContentRect = new Rect();
+
+ // Accessed directly by all users.
+ boolean layoutNeeded;
+ int pendingLayoutChanges;
+ final boolean isDefaultDisplay;
+
+ /**
+ * Window tokens that are in the process of exiting, but still
+ * on screen for animations.
+ */
+ final ArrayList<WindowToken> mExitingTokens = new ArrayList<WindowToken>();
+
+ /**
+ * Application tokens that are in the process of exiting, but still
+ * on screen for animations.
+ */
+ final AppTokenList mExitingAppTokens = new AppTokenList();
+
+ /** Array containing all TaskStacks on this display. Array
+ * is stored in display order with the current bottom stack at 0. */
+ private ArrayList<TaskStack> mStacks = new ArrayList<TaskStack>();
+
+ /** A special TaskStack with id==HOME_STACK_ID that moves to the bottom whenever any TaskStack
+ * (except a future lockscreen TaskStack) moves to the top. */
+ private TaskStack mHomeStack = null;
+
+ /** Detect user tapping outside of current focused stack bounds .*/
+ StackTapPointerEventListener mTapDetector;
+
+ /** Detect user tapping outside of current focused stack bounds .*/
+ Region mTouchExcludeRegion = new Region();
+
+ /** Save allocating when retrieving tasks */
+ private ArrayList<Task> mTaskHistory = new ArrayList<Task>();
+
+ /** Save allocating when calculating rects */
+ Rect mTmpRect = new Rect();
+
+ final WindowManagerService mService;
+
+ /**
+ * @param display May not be null.
+ * @param service You know.
+ */
+ DisplayContent(Display display, WindowManagerService service) {
+ mDisplay = display;
+ mDisplayId = display.getDisplayId();
+ display.getDisplayInfo(mDisplayInfo);
+ isDefaultDisplay = mDisplayId == Display.DEFAULT_DISPLAY;
+ mService = service;
+ }
+
+ int getDisplayId() {
+ return mDisplayId;
+ }
+
+ WindowList getWindowList() {
+ return mWindows;
+ }
+
+ Display getDisplay() {
+ return mDisplay;
+ }
+
+ DisplayInfo getDisplayInfo() {
+ return mDisplayInfo;
+ }
+
+ /**
+ * Returns true if the specified UID has access to this display.
+ */
+ public boolean hasAccess(int uid) {
+ return mDisplay.hasAccess(uid);
+ }
+
+ public boolean isPrivate() {
+ return (mDisplay.getFlags() & Display.FLAG_PRIVATE) != 0;
+ }
+
+ /**
+ * Retrieve the tasks on this display in stack order from the bottommost TaskStack up.
+ * @return All the Tasks, in order, on this display.
+ */
+ ArrayList<Task> getTasks() {
+ return mTaskHistory;
+ }
+
+ void addTask(Task task, boolean toTop) {
+ mTaskHistory.remove(task);
+
+ final int userId = task.mUserId;
+ int taskNdx;
+ final int numTasks = mTaskHistory.size();
+ if (toTop) {
+ for (taskNdx = numTasks - 1; taskNdx >= 0; --taskNdx) {
+ if (mTaskHistory.get(taskNdx).mUserId == userId) {
+ break;
+ }
+ }
+ ++taskNdx;
+ } else {
+ for (taskNdx = 0; taskNdx < numTasks; ++taskNdx) {
+ if (mTaskHistory.get(taskNdx).mUserId == userId) {
+ break;
+ }
+ }
+ }
+
+ mTaskHistory.add(taskNdx, task);
+ EventLog.writeEvent(EventLogTags.WM_TASK_MOVED, task.taskId, toTop ? 1 : 0, taskNdx);
+ }
+
+ void removeTask(Task task) {
+ mTaskHistory.remove(task);
+ }
+
+ TaskStack getHomeStack() {
+ if (mHomeStack == null) {
+ Slog.e(TAG, "getHomeStack: Returning null from this=" + this);
+ }
+ return mHomeStack;
+ }
+
+ void updateDisplayInfo() {
+ // Save old size.
+ int oldWidth = mDisplayInfo.logicalWidth;
+ int oldHeight = mDisplayInfo.logicalHeight;
+ mDisplay.getDisplayInfo(mDisplayInfo);
+
+ for (int i = mStacks.size() - 1; i >= 0; --i) {
+ final TaskStack stack = mStacks.get(i);
+ if (!stack.isFullscreen()) {
+ stack.resizeBounds(oldWidth, oldHeight, mDisplayInfo.logicalWidth,
+ mDisplayInfo.logicalHeight);
+ }
+ }
+ }
+
+ void getLogicalDisplayRect(Rect out) {
+ updateDisplayInfo();
+ // Uses same calculation as in LogicalDisplay#configureDisplayInTransactionLocked.
+ final int orientation = mDisplayInfo.rotation;
+ boolean rotated = (orientation == Surface.ROTATION_90
+ || orientation == Surface.ROTATION_270);
+ final int physWidth = rotated ? mBaseDisplayHeight : mBaseDisplayWidth;
+ final int physHeight = rotated ? mBaseDisplayWidth : mBaseDisplayHeight;
+ int width = mDisplayInfo.logicalWidth;
+ int left = (physWidth - width) / 2;
+ int height = mDisplayInfo.logicalHeight;
+ int top = (physHeight - height) / 2;
+ out.set(left, top, left + width, top + height);
+ }
+
+ /** @return The number of tokens in all of the Tasks on this display. */
+ int numTokens() {
+ int count = 0;
+ for (int taskNdx = mTaskHistory.size() - 1; taskNdx >= 0; --taskNdx) {
+ count += mTaskHistory.get(taskNdx).mAppTokens.size();
+ }
+ return count;
+ }
+
+ /** Refer to {@link WindowManagerService#attachStack(int, int)} */
+ void attachStack(TaskStack stack) {
+ if (stack.mStackId == HOME_STACK_ID) {
+ if (mHomeStack != null) {
+ throw new IllegalArgumentException("attachStack: HOME_STACK_ID (0) not first.");
+ }
+ mHomeStack = stack;
+ }
+ mStacks.add(stack);
+ layoutNeeded = true;
+ }
+
+ void moveStack(TaskStack stack, boolean toTop) {
+ mStacks.remove(stack);
+ mStacks.add(toTop ? mStacks.size() : 0, stack);
+ }
+
+ void detachStack(TaskStack stack) {
+ for (int taskNdx = mTaskHistory.size() - 1; taskNdx >= 0; --taskNdx) {
+ final Task task = mTaskHistory.get(taskNdx);
+ if (task.mStack == stack) {
+ mService.tmpRemoveTaskWindowsLocked(task);
+ mTaskHistory.remove(taskNdx);
+ }
+ }
+ mStacks.remove(stack);
+ }
+
+ /**
+ * Propagate the new bounds to all child stacks.
+ * @param contentRect The bounds to apply at the top level.
+ */
+ void resize(Rect contentRect) {
+ mContentRect.set(contentRect);
+ }
+
+ boolean getStackBounds(int stackId, Rect bounds) {
+ for (int stackNdx = mStacks.size() - 1; stackNdx >= 0; --stackNdx) {
+ final TaskStack stack = mStacks.get(stackNdx);
+ if (stackId == stack.mStackId) {
+ bounds.set(stack.mBounds);
+ return true;
+ }
+ }
+ return false;
+ }
+
+ int stackIdFromPoint(int x, int y) {
+ for (int stackNdx = mStacks.size() - 1; stackNdx >= 0; --stackNdx) {
+ final TaskStack stack = mStacks.get(stackNdx);
+ stack.getBounds(mTmpRect);
+ if (mTmpRect.contains(x, y)) {
+ return stack.mStackId;
+ }
+ }
+ return -1;
+ }
+
+ void setTouchExcludeRegion(TaskStack focusedStack) {
+ mTouchExcludeRegion.set(mBaseDisplayRect);
+ WindowList windows = getWindowList();
+ for (int i = windows.size() - 1; i >= 0; --i) {
+ final WindowState win = windows.get(i);
+ final TaskStack stack = win.getStack();
+ if (win.isVisibleLw() && stack != null && stack != focusedStack) {
+ mTmpRect.set(win.mVisibleFrame);
+ mTmpRect.intersect(win.mVisibleInsets);
+ mTouchExcludeRegion.op(mTmpRect, Region.Op.DIFFERENCE);
+ }
+ }
+ }
+
+ void switchUserStacks(int oldUserId, int newUserId) {
+ final WindowList windows = getWindowList();
+ for (int i = 0; i < windows.size(); i++) {
+ final WindowState win = windows.get(i);
+ if (win.isHiddenFromUserLocked()) {
+ if (DEBUG_VISIBILITY) Slog.w(TAG, "user changing " + newUserId + " hiding "
+ + win + ", attrs=" + win.mAttrs.type + ", belonging to "
+ + win.mOwnerUid);
+ win.hideLw(false);
+ }
+ }
+
+ for (int stackNdx = mStacks.size() - 1; stackNdx >= 0; --stackNdx) {
+ mStacks.get(stackNdx).switchUser(newUserId);
+ }
+ }
+
+ void resetAnimationBackgroundAnimator() {
+ for (int stackNdx = mStacks.size() - 1; stackNdx >= 0; --stackNdx) {
+ mStacks.get(stackNdx).resetAnimationBackgroundAnimator();
+ }
+ }
+
+ boolean animateDimLayers() {
+ boolean result = false;
+ for (int stackNdx = mStacks.size() - 1; stackNdx >= 0; --stackNdx) {
+ result |= mStacks.get(stackNdx).animateDimLayers();
+ }
+ return result;
+ }
+
+ void resetDimming() {
+ for (int stackNdx = mStacks.size() - 1; stackNdx >= 0; --stackNdx) {
+ mStacks.get(stackNdx).resetDimmingTag();
+ }
+ }
+
+ boolean isDimming() {
+ boolean result = false;
+ for (int stackNdx = mStacks.size() - 1; stackNdx >= 0; --stackNdx) {
+ result |= mStacks.get(stackNdx).isDimming();
+ }
+ return result;
+ }
+
+ void stopDimmingIfNeeded() {
+ for (int stackNdx = mStacks.size() - 1; stackNdx >= 0; --stackNdx) {
+ mStacks.get(stackNdx).stopDimmingIfNeeded();
+ }
+ }
+
+ void close() {
+ for (int stackNdx = mStacks.size() - 1; stackNdx >= 0; --stackNdx) {
+ mStacks.get(stackNdx).close();
+ }
+ }
+
+ public void dump(String prefix, PrintWriter pw) {
+ pw.print(prefix); pw.print("Display: mDisplayId="); pw.println(mDisplayId);
+ final String subPrefix = " " + prefix;
+ pw.print(subPrefix); pw.print("init="); pw.print(mInitialDisplayWidth); pw.print("x");
+ pw.print(mInitialDisplayHeight); pw.print(" "); pw.print(mInitialDisplayDensity);
+ pw.print("dpi");
+ if (mInitialDisplayWidth != mBaseDisplayWidth
+ || mInitialDisplayHeight != mBaseDisplayHeight
+ || mInitialDisplayDensity != mBaseDisplayDensity) {
+ pw.print(" base=");
+ pw.print(mBaseDisplayWidth); pw.print("x"); pw.print(mBaseDisplayHeight);
+ pw.print(" "); pw.print(mBaseDisplayDensity); pw.print("dpi");
+ }
+ pw.print(" cur=");
+ pw.print(mDisplayInfo.logicalWidth);
+ pw.print("x"); pw.print(mDisplayInfo.logicalHeight);
+ pw.print(" app=");
+ pw.print(mDisplayInfo.appWidth);
+ pw.print("x"); pw.print(mDisplayInfo.appHeight);
+ pw.print(" rng="); pw.print(mDisplayInfo.smallestNominalAppWidth);
+ pw.print("x"); pw.print(mDisplayInfo.smallestNominalAppHeight);
+ pw.print("-"); pw.print(mDisplayInfo.largestNominalAppWidth);
+ pw.print("x"); pw.println(mDisplayInfo.largestNominalAppHeight);
+ pw.print(subPrefix); pw.print("layoutNeeded="); pw.println(layoutNeeded);
+ for (int stackNdx = mStacks.size() - 1; stackNdx >= 0; --stackNdx) {
+ final TaskStack stack = mStacks.get(stackNdx);
+ pw.print(prefix); pw.print("mStacks[" + stackNdx + "]"); pw.println(stack.mStackId);
+ stack.dump(prefix + " ", pw);
+ }
+ int ndx = numTokens();
+ if (ndx > 0) {
+ pw.println();
+ pw.println(" Application tokens in Z order:");
+ getTasks();
+ for (int taskNdx = mTaskHistory.size() - 1; taskNdx >= 0; --taskNdx) {
+ AppTokenList tokens = mTaskHistory.get(taskNdx).mAppTokens;
+ for (int tokenNdx = tokens.size() - 1; tokenNdx >= 0; --tokenNdx) {
+ final AppWindowToken wtoken = tokens.get(tokenNdx);
+ pw.print(" App #"); pw.print(ndx--);
+ pw.print(' '); pw.print(wtoken); pw.println(":");
+ wtoken.dump(pw, " ");
+ }
+ }
+ }
+ if (mExitingTokens.size() > 0) {
+ pw.println();
+ pw.println(" Exiting tokens:");
+ for (int i=mExitingTokens.size()-1; i>=0; i--) {
+ WindowToken token = mExitingTokens.get(i);
+ pw.print(" Exiting #"); pw.print(i);
+ pw.print(' '); pw.print(token);
+ pw.println(':');
+ token.dump(pw, " ");
+ }
+ }
+ if (mExitingAppTokens.size() > 0) {
+ pw.println();
+ pw.println(" Exiting application tokens:");
+ for (int i=mExitingAppTokens.size()-1; i>=0; i--) {
+ WindowToken token = mExitingAppTokens.get(i);
+ pw.print(" Exiting App #"); pw.print(i);
+ pw.print(' '); pw.print(token);
+ pw.println(':');
+ token.dump(pw, " ");
+ }
+ }
+ pw.println();
+ }
+
+ @Override
+ public String toString() {
+ return "Display " + mDisplayId + " info=" + mDisplayInfo + " stacks=" + mStacks;
+ }
+}
diff --git a/services/java/com/android/server/wm/DisplayMagnifier.java b/services/core/java/com/android/server/wm/DisplayMagnifier.java
similarity index 100%
rename from services/java/com/android/server/wm/DisplayMagnifier.java
rename to services/core/java/com/android/server/wm/DisplayMagnifier.java
diff --git a/services/java/com/android/server/wm/DisplaySettings.java b/services/core/java/com/android/server/wm/DisplaySettings.java
similarity index 100%
rename from services/java/com/android/server/wm/DisplaySettings.java
rename to services/core/java/com/android/server/wm/DisplaySettings.java
diff --git a/services/java/com/android/server/wm/DragState.java b/services/core/java/com/android/server/wm/DragState.java
similarity index 100%
rename from services/java/com/android/server/wm/DragState.java
rename to services/core/java/com/android/server/wm/DragState.java
diff --git a/services/java/com/android/server/wm/FakeWindowImpl.java b/services/core/java/com/android/server/wm/FakeWindowImpl.java
similarity index 100%
rename from services/java/com/android/server/wm/FakeWindowImpl.java
rename to services/core/java/com/android/server/wm/FakeWindowImpl.java
diff --git a/services/java/com/android/server/wm/FocusedStackFrame.java b/services/core/java/com/android/server/wm/FocusedStackFrame.java
similarity index 97%
rename from services/java/com/android/server/wm/FocusedStackFrame.java
rename to services/core/java/com/android/server/wm/FocusedStackFrame.java
index cc48b86..f1f5fe8 100644
--- a/services/java/com/android/server/wm/FocusedStackFrame.java
+++ b/services/core/java/com/android/server/wm/FocusedStackFrame.java
@@ -41,7 +41,7 @@
private final SurfaceControl mSurfaceControl;
private final Surface mSurface = new Surface();
private final Rect mLastBounds = new Rect();
- private final Rect mBounds = new Rect();
+ final Rect mBounds = new Rect();
private final Rect mTmpDrawRect = new Rect();
public FocusedStackFrame(Display display, SurfaceSession session) {
@@ -131,9 +131,9 @@
}
}
- public void setBounds(Rect bounds) {
- if (false && DEBUG_STACK) Slog.i(TAG, "setBounds: bounds=" + bounds);
- mBounds.set(bounds);
+ public void setBounds(TaskStack stack) {
+ stack.getBounds(mBounds);
+ if (false && DEBUG_STACK) Slog.i(TAG, "setBounds: bounds=" + mBounds);
}
public void setLayer(int layer) {
diff --git a/services/java/com/android/server/wm/InputMonitor.java b/services/core/java/com/android/server/wm/InputMonitor.java
similarity index 99%
rename from services/java/com/android/server/wm/InputMonitor.java
rename to services/core/java/com/android/server/wm/InputMonitor.java
index 3d2ec45..803b9ac 100644
--- a/services/java/com/android/server/wm/InputMonitor.java
+++ b/services/core/java/com/android/server/wm/InputMonitor.java
@@ -58,6 +58,8 @@
private final Object mInputDevicesReadyMonitor = new Object();
private boolean mInputDevicesReady;
+ Rect mTmpRect = new Rect();
+
public InputMonitor(WindowManagerService service) {
mService = service;
}
@@ -175,7 +177,8 @@
if (modal && child.mAppToken != null) {
// Limit the outer touch to the activity stack region.
flags |= WindowManager.LayoutParams.FLAG_NOT_TOUCH_MODAL;
- inputWindowHandle.touchableRegion.set(child.getStackBounds());
+ child.getStackBounds(mTmpRect);
+ inputWindowHandle.touchableRegion.set(mTmpRect);
} else {
// Not modal or full screen modal
child.getTouchableRegion(inputWindowHandle.touchableRegion);
diff --git a/services/java/com/android/server/wm/KeyguardDisableHandler.java b/services/core/java/com/android/server/wm/KeyguardDisableHandler.java
similarity index 100%
rename from services/java/com/android/server/wm/KeyguardDisableHandler.java
rename to services/core/java/com/android/server/wm/KeyguardDisableHandler.java
diff --git a/services/java/com/android/server/wm/PointerEventDispatcher.java b/services/core/java/com/android/server/wm/PointerEventDispatcher.java
similarity index 100%
rename from services/java/com/android/server/wm/PointerEventDispatcher.java
rename to services/core/java/com/android/server/wm/PointerEventDispatcher.java
diff --git a/services/java/com/android/server/wm/ScreenRotationAnimation.java b/services/core/java/com/android/server/wm/ScreenRotationAnimation.java
similarity index 100%
rename from services/java/com/android/server/wm/ScreenRotationAnimation.java
rename to services/core/java/com/android/server/wm/ScreenRotationAnimation.java
diff --git a/services/java/com/android/server/wm/Session.java b/services/core/java/com/android/server/wm/Session.java
similarity index 98%
rename from services/java/com/android/server/wm/Session.java
rename to services/core/java/com/android/server/wm/Session.java
index 87cabc9..ca9076f 100644
--- a/services/java/com/android/server/wm/Session.java
+++ b/services/core/java/com/android/server/wm/Session.java
@@ -293,7 +293,11 @@
// !!! FIXME: put all this heavy stuff onto the mH looper, as well as
// the actual drag event dispatch stuff in the dragstate
- Display display = callingWin.mDisplayContent.getDisplay();
+ final DisplayContent displayContent = callingWin.getDisplayContent();
+ if (displayContent == null) {
+ return false;
+ }
+ Display display = displayContent.getDisplay();
mService.mDragState.register(display);
mService.mInputMonitor.updateInputWindowsLw(true /*force*/);
if (!mService.mInputManager.transferTouchFocus(callingWin.mInputChannel,
diff --git a/services/java/com/android/server/wm/StackTapPointerEventListener.java b/services/core/java/com/android/server/wm/StackTapPointerEventListener.java
similarity index 100%
rename from services/java/com/android/server/wm/StackTapPointerEventListener.java
rename to services/core/java/com/android/server/wm/StackTapPointerEventListener.java
diff --git a/services/java/com/android/server/wm/StartingData.java b/services/core/java/com/android/server/wm/StartingData.java
similarity index 100%
rename from services/java/com/android/server/wm/StartingData.java
rename to services/core/java/com/android/server/wm/StartingData.java
diff --git a/services/java/com/android/server/wm/StrictModeFlash.java b/services/core/java/com/android/server/wm/StrictModeFlash.java
similarity index 100%
rename from services/java/com/android/server/wm/StrictModeFlash.java
rename to services/core/java/com/android/server/wm/StrictModeFlash.java
diff --git a/services/java/com/android/server/wm/Task.java b/services/core/java/com/android/server/wm/Task.java
similarity index 97%
rename from services/java/com/android/server/wm/Task.java
rename to services/core/java/com/android/server/wm/Task.java
index 13fdbc8..9f72663 100644
--- a/services/java/com/android/server/wm/Task.java
+++ b/services/core/java/com/android/server/wm/Task.java
@@ -46,7 +46,6 @@
if (mAppTokens.size() == 0) {
EventLog.writeEvent(com.android.server.EventLogTags.WM_TASK_REMOVED, taskId,
"removeAppToken: last token");
- mStack.removeTask(this);
return true;
}
return false;
diff --git a/services/java/com/android/server/wm/TaskGroup.java b/services/core/java/com/android/server/wm/TaskGroup.java
similarity index 100%
rename from services/java/com/android/server/wm/TaskGroup.java
rename to services/core/java/com/android/server/wm/TaskGroup.java
diff --git a/services/java/com/android/server/wm/TaskStack.java b/services/core/java/com/android/server/wm/TaskStack.java
similarity index 75%
rename from services/java/com/android/server/wm/TaskStack.java
rename to services/core/java/com/android/server/wm/TaskStack.java
index e65aecb..1ada6c2 100644
--- a/services/java/com/android/server/wm/TaskStack.java
+++ b/services/core/java/com/android/server/wm/TaskStack.java
@@ -26,8 +26,6 @@
import android.util.TypedValue;
import com.android.server.EventLogTags;
-import static com.android.server.am.ActivityStackSupervisor.HOME_STACK_ID;
-
import java.io.PrintWriter;
import java.util.ArrayList;
@@ -43,23 +41,24 @@
private final WindowManagerService mService;
/** The display this stack sits under. */
- private final DisplayContent mDisplayContent;
+ private DisplayContent mDisplayContent;
/** The Tasks that define this stack. Oldest Tasks are at the bottom. The ordering must match
* mTaskHistory in the ActivityStack with the same mStackId */
private final ArrayList<Task> mTasks = new ArrayList<Task>();
- /** The StackBox this sits in. */
- StackBox mStackBox;
+ /** Content limits relative to the DisplayContent this sits in. Empty indicates fullscreen,
+ * Nonempty is size of this TaskStack but is also used to scale if DisplayContent changes. */
+ Rect mBounds = new Rect();
/** Used to support {@link android.view.WindowManager.LayoutParams#FLAG_DIM_BEHIND} */
- final DimLayer mDimLayer;
+ DimLayer mDimLayer;
/** The particular window with FLAG_DIM_BEHIND set. If null, hide mDimLayer. */
WindowStateAnimator mDimWinAnimator;
/** Support for non-zero {@link android.view.animation.Animation#getBackgroundColor()} */
- final DimLayer mAnimationBackgroundSurface;
+ DimLayer mAnimationBackgroundSurface;
/** The particular window with an Animation with non-zero background color. */
WindowStateAnimator mAnimationBackgroundAnimator;
@@ -68,12 +67,12 @@
* then stop any dimming. */
boolean mDimmingTag;
- TaskStack(WindowManagerService service, int stackId, DisplayContent displayContent) {
+ TaskStack(WindowManagerService service, int stackId) {
mService = service;
mStackId = stackId;
- mDisplayContent = displayContent;
- mDimLayer = new DimLayer(service, this);
- mAnimationBackgroundSurface = new DimLayer(service, this);
+ // TODO: remove bounds from log, they are always 0.
+ EventLog.writeEvent(EventLogTags.WM_STACK_CREATED, stackId, mBounds.left, mBounds.top,
+ mBounds.right, mBounds.bottom);
}
DisplayContent getDisplayContent() {
@@ -84,12 +83,68 @@
return mTasks;
}
- boolean isHomeStack() {
- return mStackId == HOME_STACK_ID;
+ private void resizeWindows() {
+ final boolean underStatusBar = mBounds.top == 0;
+
+ final ArrayList<WindowState> resizingWindows = mService.mResizingWindows;
+ for (int taskNdx = mTasks.size() - 1; taskNdx >= 0; --taskNdx) {
+ final ArrayList<AppWindowToken> activities = mTasks.get(taskNdx).mAppTokens;
+ for (int activityNdx = activities.size() - 1; activityNdx >= 0; --activityNdx) {
+ final ArrayList<WindowState> windows = activities.get(activityNdx).allAppWindows;
+ for (int winNdx = windows.size() - 1; winNdx >= 0; --winNdx) {
+ final WindowState win = windows.get(winNdx);
+ if (!resizingWindows.contains(win)) {
+ if (WindowManagerService.DEBUG_RESIZE) Slog.d(TAG,
+ "setBounds: Resizing " + win);
+ resizingWindows.add(win);
+ }
+ win.mUnderStatusBar = underStatusBar;
+ }
+ }
+ }
}
- boolean hasSibling() {
- return mStackBox.mParent != null;
+ boolean setBounds(Rect bounds) {
+ if (mBounds.equals(bounds)) {
+ return false;
+ }
+
+ mDimLayer.setBounds(bounds);
+ mAnimationBackgroundSurface.setBounds(bounds);
+ mBounds.set(bounds);
+
+ resizeWindows();
+ return true;
+ }
+
+ void getBounds(Rect out) {
+ if (mDisplayContent != null) {
+ if (mBounds.isEmpty()) {
+ mDisplayContent.getLogicalDisplayRect(out);
+ } else {
+ out.set(mBounds);
+ }
+ out.intersect(mDisplayContent.mContentRect);
+ } else {
+ out.set(mBounds);
+ }
+ }
+
+ boolean isFullscreen() {
+ return mBounds.isEmpty();
+ }
+
+ void resizeBounds(float oldWidth, float oldHeight, float newWidth, float newHeight) {
+ if (oldWidth == newWidth && oldHeight == newHeight) {
+ return;
+ }
+ float widthScale = newWidth / oldWidth;
+ float heightScale = newHeight / oldHeight;
+ mBounds.left = (int)(mBounds.left * widthScale + 0.5);
+ mBounds.top = (int)(mBounds.top * heightScale + 0.5);
+ mBounds.right = (int)(mBounds.right * widthScale + 0.5);
+ mBounds.bottom = (int)(mBounds.bottom * heightScale + 0.5);
+ resizeWindows();
}
/**
@@ -97,9 +152,7 @@
* @param task The task to add.
* @param toTop Whether to add it to the top or bottom.
*/
- boolean addTask(Task task, boolean toTop) {
- mStackBox.makeDirty();
-
+ void addTask(Task task, boolean toTop) {
int stackNdx;
if (!toTop) {
stackNdx = 0;
@@ -122,39 +175,61 @@
task.mStack = this;
mDisplayContent.addTask(task, toTop);
- return mDisplayContent.moveHomeStackBox(mStackId == HOME_STACK_ID);
+ mDisplayContent.moveStack(this, true);
}
- boolean moveTaskToTop(Task task) {
+ void moveTaskToTop(Task task) {
if (DEBUG_TASK_MOVEMENT) Slog.d(TAG, "moveTaskToTop: task=" + task + " Callers="
+ Debug.getCallers(6));
mTasks.remove(task);
- return addTask(task, true);
+ addTask(task, true);
}
- boolean moveTaskToBottom(Task task) {
+ void moveTaskToBottom(Task task) {
if (DEBUG_TASK_MOVEMENT) Slog.d(TAG, "moveTaskToBottom: task=" + task);
mTasks.remove(task);
- return addTask(task, false);
+ addTask(task, false);
}
/**
- * Delete a Task from this stack. If it is the last Task in the stack, remove this stack from
- * its parent StackBox and merge the parent.
+ * Delete a Task from this stack. If it is the last Task in the stack, move this stack to the
+ * back.
* @param task The Task to delete.
*/
void removeTask(Task task) {
if (DEBUG_TASK_MOVEMENT) Slog.d(TAG, "removeTask: task=" + task);
- mStackBox.makeDirty();
mTasks.remove(task);
- mDisplayContent.removeTask(task);
+ if (mDisplayContent != null) {
+ mDisplayContent.removeTask(task);
+ if (mTasks.isEmpty()) {
+ mDisplayContent.moveStack(this, false);
+ }
+ mDisplayContent.layoutNeeded = true;
+ }
}
- int remove() {
- mAnimationBackgroundSurface.destroySurface();
- mDimLayer.destroySurface();
+ void attachDisplayContent(DisplayContent displayContent) {
+ if (mDisplayContent != null) {
+ throw new IllegalStateException("attachDisplayContent: Already attached");
+ }
+
+ mDisplayContent = displayContent;
+ mDimLayer = new DimLayer(mService, this, displayContent);
+ mAnimationBackgroundSurface = new DimLayer(mService, this, displayContent);
+
+ for (int taskNdx = 0; taskNdx < mTasks.size(); ++taskNdx) {
+ Task task = mTasks.get(taskNdx);
+ displayContent.addTask(task, true);
+ }
+ }
+
+ void detach() {
EventLog.writeEvent(EventLogTags.WM_STACK_REMOVED, mStackId);
- return mStackBox.remove();
+ mAnimationBackgroundSurface.destroySurface();
+ mAnimationBackgroundSurface = null;
+ mDimLayer.destroySurface();
+ mDimLayer = null;
+ mDisplayContent = null;
}
void resetAnimationBackgroundAnimator() {
@@ -259,26 +334,6 @@
}
}
- void setBounds(Rect bounds, boolean underStatusBar) {
- mDimLayer.setBounds(bounds);
- mAnimationBackgroundSurface.setBounds(bounds);
-
- final ArrayList<WindowState> resizingWindows = mService.mResizingWindows;
- for (int taskNdx = mTasks.size() - 1; taskNdx >= 0; --taskNdx) {
- final ArrayList<AppWindowToken> activities = mTasks.get(taskNdx).mAppTokens;
- for (int activityNdx = activities.size() - 1; activityNdx >= 0; --activityNdx) {
- final ArrayList<WindowState> windows = activities.get(activityNdx).allAppWindows;
- for (int winNdx = windows.size() - 1; winNdx >= 0; --winNdx) {
- final WindowState win = windows.get(winNdx);
- if (!resizingWindows.contains(win)) {
- resizingWindows.add(win);
- }
- win.mUnderStatusBar = underStatusBar;
- }
- }
- }
- }
-
void switchUser(int userId) {
int top = mTasks.size();
for (int taskNdx = 0; taskNdx < top; ++taskNdx) {
@@ -291,6 +346,11 @@
}
}
+ void close() {
+ mDimLayer.mDimSurface.destroy();
+ mAnimationBackgroundSurface.mDimSurface.destroy();
+ }
+
public void dump(String prefix, PrintWriter pw) {
pw.print(prefix); pw.print("mStackId="); pw.println(mStackId);
for (int taskNdx = 0; taskNdx < mTasks.size(); ++taskNdx) {
diff --git a/services/java/com/android/server/wm/ViewServer.java b/services/core/java/com/android/server/wm/ViewServer.java
similarity index 100%
rename from services/java/com/android/server/wm/ViewServer.java
rename to services/core/java/com/android/server/wm/ViewServer.java
diff --git a/services/java/com/android/server/wm/Watermark.java b/services/core/java/com/android/server/wm/Watermark.java
similarity index 100%
rename from services/java/com/android/server/wm/Watermark.java
rename to services/core/java/com/android/server/wm/Watermark.java
diff --git a/services/java/com/android/server/wm/WindowAnimator.java b/services/core/java/com/android/server/wm/WindowAnimator.java
similarity index 98%
rename from services/java/com/android/server/wm/WindowAnimator.java
rename to services/core/java/com/android/server/wm/WindowAnimator.java
index 91f15f3..b4285c6 100644
--- a/services/java/com/android/server/wm/WindowAnimator.java
+++ b/services/core/java/com/android/server/wm/WindowAnimator.java
@@ -642,11 +642,16 @@
}
int getPendingLayoutChanges(final int displayId) {
+ if (displayId < 0) {
+ return 0;
+ }
return mService.getDisplayContentLocked(displayId).pendingLayoutChanges;
}
void setPendingLayoutChanges(final int displayId, final int changes) {
- mService.getDisplayContentLocked(displayId).pendingLayoutChanges |= changes;
+ if (displayId >= 0) {
+ mService.getDisplayContentLocked(displayId).pendingLayoutChanges |= changes;
+ }
}
void setAppLayoutChanges(final AppWindowAnimator appAnimator, final int changes, String s) {
@@ -655,7 +660,7 @@
WindowList windows = appAnimator.mAppToken.allAppWindows;
for (int i = windows.size() - 1; i >= 0; i--) {
final int displayId = windows.get(i).getDisplayId();
- if (displays.indexOfKey(displayId) < 0) {
+ if (displayId >= 0 && displays.indexOfKey(displayId) < 0) {
setPendingLayoutChanges(displayId, changes);
if (WindowManagerService.DEBUG_LAYOUT_REPEATS) {
mService.debugLayoutRepeats(s, getPendingLayoutChanges(displayId));
@@ -676,10 +681,15 @@
}
void setScreenRotationAnimationLocked(int displayId, ScreenRotationAnimation animation) {
- getDisplayContentsAnimatorLocked(displayId).mScreenRotationAnimation = animation;
+ if (displayId >= 0) {
+ getDisplayContentsAnimatorLocked(displayId).mScreenRotationAnimation = animation;
+ }
}
ScreenRotationAnimation getScreenRotationAnimationLocked(int displayId) {
+ if (displayId < 0) {
+ return null;
+ }
return getDisplayContentsAnimatorLocked(displayId).mScreenRotationAnimation;
}
diff --git a/services/java/com/android/server/wm/WindowManagerService.java b/services/core/java/com/android/server/wm/WindowManagerService.java
similarity index 96%
rename from services/java/com/android/server/wm/WindowManagerService.java
rename to services/core/java/com/android/server/wm/WindowManagerService.java
index 6d47fcf..2cd8bb1 100644
--- a/services/java/com/android/server/wm/WindowManagerService.java
+++ b/services/core/java/com/android/server/wm/WindowManagerService.java
@@ -18,8 +18,6 @@
import static android.view.WindowManager.LayoutParams.*;
-import static com.android.server.am.ActivityStackSupervisor.HOME_STACK_ID;
-
import static android.view.WindowManagerPolicy.FINISH_LAYOUT_REDO_WALLPAPER;
import android.app.AppOpsManager;
@@ -35,17 +33,16 @@
import com.android.internal.view.IInputMethodManager;
import com.android.internal.view.WindowManagerPolicyThread;
import com.android.server.AttributeCache;
+import com.android.server.DisplayThread;
import com.android.server.EventLogTags;
+import com.android.server.LocalServices;
import com.android.server.UiThread;
import com.android.server.Watchdog;
import com.android.server.am.BatteryStatsService;
-import com.android.server.display.DisplayManagerService;
import com.android.server.input.InputManagerService;
-import com.android.server.power.PowerManagerService;
import com.android.server.power.ShutdownThread;
import android.Manifest;
-import android.app.ActivityManager.StackBoxInfo;
import android.app.ActivityManagerNative;
import android.app.IActivityManager;
import android.app.StatusBarManager;
@@ -69,6 +66,7 @@
import android.graphics.RectF;
import android.graphics.Region;
import android.hardware.display.DisplayManager;
+import android.hardware.display.DisplayManagerInternal;
import android.os.Binder;
import android.os.Bundle;
import android.os.Debug;
@@ -80,6 +78,7 @@
import android.os.Parcel;
import android.os.ParcelFileDescriptor;
import android.os.PowerManager;
+import android.os.PowerManagerInternal;
import android.os.Process;
import android.os.RemoteException;
import android.os.ServiceManager;
@@ -117,6 +116,7 @@
import android.view.KeyEvent;
import android.view.MagnificationSpec;
import android.view.MotionEvent;
+import android.view.WindowManagerInternal;
import android.view.Surface.OutOfResourcesException;
import android.view.Surface;
import android.view.SurfaceControl;
@@ -155,8 +155,7 @@
/** {@hide} */
public class WindowManagerService extends IWindowManager.Stub
- implements Watchdog.Monitor, WindowManagerPolicy.WindowManagerFuncs,
- DisplayManagerService.WindowManagerFuncs, DisplayManager.DisplayListener {
+ implements Watchdog.Monitor, WindowManagerPolicy.WindowManagerFuncs {
static final String TAG = "WindowManager";
static final boolean DEBUG = false;
static final boolean DEBUG_ADD_REMOVE = false;
@@ -272,10 +271,10 @@
// Default input dispatching timeout in nanoseconds.
static final long DEFAULT_INPUT_DISPATCHING_TIMEOUT_NANOS = 5000 * 1000000L;
- /** Minimum value for createStack and resizeStack weight value */
+ /** Minimum value for attachStack and resizeStack weight value */
public static final float STACK_WEIGHT_MIN = 0.2f;
- /** Maximum value for createStack and resizeStack weight value */
+ /** Maximum value for attachStack and resizeStack weight value */
public static final float STACK_WEIGHT_MAX = 0.8f;
static final int UPDATE_FOCUS_NORMAL = 0;
@@ -293,8 +292,6 @@
final private KeyguardDisableHandler mKeyguardDisableHandler;
- private final boolean mHeadless;
-
final BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
@@ -534,14 +531,15 @@
AppWindowToken mFocusedApp = null;
- PowerManagerService mPowerManager;
+ PowerManager mPowerManager;
+ PowerManagerInternal mPowerManagerInternal;
float mWindowAnimationScale = 1.0f;
float mTransitionAnimationScale = 1.0f;
float mAnimatorDurationScale = 1.0f;
final InputManagerService mInputManager;
- final DisplayManagerService mDisplayManagerService;
+ final DisplayManagerInternal mDisplayManagerInternal;
final DisplayManager mDisplayManager;
// Who is holding the screen on.
@@ -694,23 +692,22 @@
final boolean mOnlyCore;
public static WindowManagerService main(final Context context,
- final PowerManagerService pm, final DisplayManagerService dm,
- final InputManagerService im, final Handler wmHandler,
+ final InputManagerService im,
final boolean haveInputMethods, final boolean showBootMsgs,
final boolean onlyCore) {
final WindowManagerService[] holder = new WindowManagerService[1];
- wmHandler.runWithScissors(new Runnable() {
+ DisplayThread.getHandler().runWithScissors(new Runnable() {
@Override
public void run() {
- holder[0] = new WindowManagerService(context, pm, dm, im,
+ holder[0] = new WindowManagerService(context, im,
haveInputMethods, showBootMsgs, onlyCore);
}
}, 0);
return holder[0];
}
- private void initPolicy(Handler uiHandler) {
- uiHandler.runWithScissors(new Runnable() {
+ private void initPolicy() {
+ UiThread.getHandler().runWithScissors(new Runnable() {
@Override
public void run() {
WindowManagerPolicyThread.set(Thread.currentThread(), Looper.myLooper());
@@ -723,8 +720,7 @@
}, 0);
}
- private WindowManagerService(Context context, PowerManagerService pm,
- DisplayManagerService displayManager, InputManagerService inputManager,
+ private WindowManagerService(Context context, InputManagerService inputManager,
boolean haveInputMethods, boolean showBootMsgs, boolean onlyCore) {
mContext = context;
mHaveInputMethods = haveInputMethods;
@@ -733,8 +729,7 @@
mLimitedAlphaCompositing = context.getResources().getBoolean(
com.android.internal.R.bool.config_sf_limitedAlpha);
mInputManager = inputManager; // Must be before createDisplayContentLocked.
- mDisplayManagerService = displayManager;
- mHeadless = displayManager.isHeadless();
+ mDisplayManagerInternal = LocalServices.getService(DisplayManagerInternal.class);
mDisplaySettings = new DisplaySettings(context);
mDisplaySettings.readSettingsLocked();
@@ -742,7 +737,6 @@
mFxSession = new SurfaceSession();
mDisplayManager = (DisplayManager)context.getSystemService(Context.DISPLAY_SERVICE);
- mDisplayManager.registerDisplayListener(this, null);
Display[] displays = mDisplayManager.getDisplays();
for (Display display : displays) {
createDisplayContentLocked(display);
@@ -750,10 +744,11 @@
mKeyguardDisableHandler = new KeyguardDisableHandler(mContext, mPolicy);
- mPowerManager = pm;
- mPowerManager.setPolicy(mPolicy);
- PowerManager pmc = (PowerManager)context.getSystemService(Context.POWER_SERVICE);
- mScreenFrozenLock = pmc.newWakeLock(PowerManager.PARTIAL_WAKE_LOCK, "SCREEN_FROZEN");
+ mPowerManager = (PowerManager)context.getSystemService(Context.POWER_SERVICE);
+ mPowerManagerInternal = LocalServices.getService(PowerManagerInternal.class);
+ mPowerManagerInternal.setPolicy(mPolicy); // TODO: register as local service instead
+ mScreenFrozenLock = mPowerManager.newWakeLock(
+ PowerManager.PARTIAL_WAKE_LOCK, "SCREEN_FROZEN");
mScreenFrozenLock.setReferenceCounted(false);
mAppTransition = new AppTransition(context, mH);
@@ -783,13 +778,13 @@
filter.addAction(DevicePolicyManager.ACTION_DEVICE_POLICY_MANAGER_STATE_CHANGED);
mContext.registerReceiver(mBroadcastReceiver, filter);
- mHoldingScreenWakeLock = pmc.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK
- | PowerManager.ON_AFTER_RELEASE, TAG);
+ mHoldingScreenWakeLock = mPowerManager.newWakeLock(
+ PowerManager.SCREEN_BRIGHT_WAKE_LOCK | PowerManager.ON_AFTER_RELEASE, TAG);
mHoldingScreenWakeLock.setReferenceCounted(false);
mAnimator = new WindowAnimator(this);
- initPolicy(UiThread.getHandler());
+ initPolicy();
// Add ourself to the Watchdog monitors.
Watchdog.getInstance().addMonitor(this);
@@ -802,6 +797,8 @@
} finally {
SurfaceControl.closeTransaction();
}
+
+ LocalServices.addService(WindowManagerInternal.class, new LocalService());
}
public InputMonitor getInputMonitor() {
@@ -871,7 +868,7 @@
final int count = token.windows.size();
for (int i = 0; i < count; i++) {
final WindowState win = token.windows.get(i);
- if (win.mDisplayContent == displayContent) {
+ if (win.getDisplayContent() == displayContent) {
windowList.add(win);
}
}
@@ -902,7 +899,7 @@
private int addAppWindowToListLocked(final WindowState win) {
final IWindow client = win.mClient;
final WindowToken token = win.mToken;
- final DisplayContent displayContent = win.mDisplayContent;
+ final DisplayContent displayContent = win.getDisplayContent();
final WindowList windows = win.getWindowList();
final int N = windows.size();
@@ -1079,7 +1076,7 @@
private void addAttachedWindowToListLocked(final WindowState win, boolean addToToken) {
final WindowToken token = win.mToken;
- final DisplayContent displayContent = win.mDisplayContent;
+ final DisplayContent displayContent = win.getDisplayContent();
final WindowState attached = win.mAttachedWindow;
WindowList tokenWindowList = getTokenWindowsOnDisplay(token, displayContent);
@@ -2013,7 +2010,10 @@
}
void updateWallpaperOffsetLocked(WindowState changingTarget, boolean sync) {
- final DisplayContent displayContent = changingTarget.mDisplayContent;
+ final DisplayContent displayContent = changingTarget.getDisplayContent();
+ if (displayContent == null) {
+ return;
+ }
final DisplayInfo displayInfo = displayContent.getDisplayInfo();
final int dw = displayInfo.logicalWidth;
final int dh = displayInfo.logicalHeight;
@@ -2073,7 +2073,10 @@
void updateWallpaperVisibilityLocked() {
final boolean visible = isWallpaperVisible(mWallpaperTarget);
- final DisplayContent displayContent = mWallpaperTarget.mDisplayContent;
+ final DisplayContent displayContent = mWallpaperTarget.getDisplayContent();
+ if (displayContent == null) {
+ return;
+ }
final DisplayInfo displayInfo = displayContent.getDisplayInfo();
final int dw = displayInfo.logicalWidth;
final int dh = displayInfo.logicalHeight;
@@ -2428,7 +2431,10 @@
//Slog.i(TAG, "*** Running exit animation...");
win.mExiting = true;
win.mRemoveOnExit = true;
- win.mDisplayContent.layoutNeeded = true;
+ final DisplayContent displayContent = win.getDisplayContent();
+ if (displayContent != null) {
+ displayContent.layoutNeeded = true;
+ }
updateFocusedWindowLocked(UPDATE_FOCUS_WILL_PLACE_SURFACES,
false /*updateInputWindows*/);
performLayoutAndPlaceSurfacesLocked();
@@ -2485,8 +2491,6 @@
mAppOps.finishOp(win.mAppOp, win.getOwningUid(), win.getOwningPackage());
}
- final WindowList windows = win.getWindowList();
- windows.remove(win);
mPendingRemove.remove(win);
mResizingWindows.remove(win);
mWindowsChanged = true;
@@ -2542,12 +2546,19 @@
WindowManagerPolicy.FINISH_LAYOUT_REDO_WALLPAPER;
}
- if (!mInLayout) {
- assignLayersLocked(windows);
- win.mDisplayContent.layoutNeeded = true;
- performLayoutAndPlaceSurfacesLocked();
- if (win.mAppToken != null) {
- win.mAppToken.updateReportedVisibilityLocked();
+ final WindowList windows = win.getWindowList();
+ if (windows != null) {
+ windows.remove(win);
+ if (!mInLayout) {
+ assignLayersLocked(windows);
+ final DisplayContent displayContent = win.getDisplayContent();
+ if (displayContent != null) {
+ displayContent.layoutNeeded = true;
+ }
+ performLayoutAndPlaceSurfacesLocked();
+ if (win.mAppToken != null) {
+ win.mAppToken.updateReportedVisibilityLocked();
+ }
}
}
@@ -2622,7 +2633,10 @@
w.mGivenVisibleInsets.scale(w.mGlobalScale);
w.mGivenTouchableRegion.scale(w.mGlobalScale);
}
- w.mDisplayContent.layoutNeeded = true;
+ final DisplayContent displayContent = w.getDisplayContent();
+ if (displayContent != null) {
+ displayContent.layoutNeeded = true;
+ }
performLayoutAndPlaceSurfacesLocked();
}
}
@@ -2708,7 +2722,12 @@
mTmpFloats[Matrix.MSKEW_X] = dsdy;
mTmpFloats[Matrix.MSCALE_Y] = dtdy;
matrix.setValues(mTmpFloats);
- final DisplayInfo displayInfo = window.mDisplayContent.getDisplayInfo();
+ final DisplayContent displayContent = window.getDisplayContent();
+ if (displayContent == null) {
+ return;
+ }
+
+ final DisplayInfo displayInfo = window.getDisplayContent().getDisplayInfo();
final RectF dispRect = new RectF(0, 0,
displayInfo.logicalWidth, displayInfo.logicalHeight);
matrix.mapRect(dispRect);
@@ -2717,7 +2736,7 @@
window.mGivenTouchableRegion.op((int)dispRect.left, (int)dispRect.top,
(int)dispRect.right, (int)dispRect.bottom, Region.Op.DIFFERENCE);
window.mTouchableInsets = ViewTreeObserver.InternalInsetsInfo.TOUCHABLE_INSETS_REGION;
- window.mDisplayContent.layoutNeeded = true;
+ displayContent.layoutNeeded = true;
performLayoutAndPlaceSurfacesLocked();
}
@@ -2998,7 +3017,10 @@
WindowManagerPolicy.FINISH_LAYOUT_REDO_WALLPAPER;
}
- win.mDisplayContent.layoutNeeded = true;
+ final DisplayContent displayContent = win.getDisplayContent();
+ if (displayContent != null) {
+ displayContent.layoutNeeded = true;
+ }
win.mGivenInsetsPending = (flags&WindowManagerGlobal.RELAYOUT_INSETS_PENDING) != 0;
configChanged = updateOrientationFromAppTokensLocked(false);
performLayoutAndPlaceSurfacesLocked();
@@ -3092,7 +3114,10 @@
getDefaultDisplayContentLocked().pendingLayoutChanges |=
WindowManagerPolicy.FINISH_LAYOUT_REDO_WALLPAPER;
}
- win.mDisplayContent.layoutNeeded = true;
+ final DisplayContent displayContent = win.getDisplayContent();
+ if (displayContent != null) {
+ displayContent.layoutNeeded = true;
+ }
requestTraversalLocked();
}
}
@@ -3350,7 +3375,7 @@
for (int i=0; i<N; i++) {
WindowState win = wtoken.windows.get(i);
- displayContent = win.mDisplayContent;
+ displayContent = win.getDisplayContent();
if (win.mWinAnimator.isAnimating()) {
delayed = true;
@@ -3365,7 +3390,9 @@
WindowManagerPolicy.TRANSIT_EXIT);
}
changed = true;
- displayContent.layoutNeeded = true;
+ if (displayContent != null) {
+ displayContent.layoutNeeded = true;
+ }
}
}
@@ -3378,7 +3405,9 @@
}
if (delayed) {
- displayContent.mExitingTokens.add(wtoken);
+ if (displayContent != null) {
+ displayContent.mExitingTokens.add(wtoken);
+ }
} else if (wtoken.windowType == TYPE_WALLPAPER) {
mWallpaperTokens.remove(wtoken);
}
@@ -3439,7 +3468,8 @@
atoken.appFullscreen = fullscreen;
atoken.showWhenLocked = showWhenLocked;
atoken.requestedOrientation = requestedOrientation;
- atoken.configChanges = configChanges;
+ atoken.layoutConfigChanges = (configChanges &
+ (ActivityInfo.CONFIG_SCREEN_SIZE | ActivityInfo.CONFIG_ORIENTATION)) != 0;
if (DEBUG_TOKEN_MOVEMENT || DEBUG_ADD_REMOVE) Slog.v(TAG, "addAppToken: " + atoken
+ " to stack=" + stackId + " task=" + taskId + " at " + addPos);
@@ -3473,8 +3503,8 @@
Slog.w(TAG, "Attempted to set group id of non-existing app token: " + token);
return;
}
- Task oldTask = mTaskIdToTask.get(atoken.groupId);
- oldTask.removeAppToken(atoken);
+ final Task oldTask = mTaskIdToTask.get(atoken.groupId);
+ removeAppFromTask(atoken);
atoken.groupId = groupId;
Task newTask = mTaskIdToTask.get(groupId);
@@ -3625,7 +3655,7 @@
if (freezeThisOneIfNeeded != null) {
AppWindowToken atoken = findAppWindowToken(freezeThisOneIfNeeded);
if (atoken != null) {
- startAppFreezingScreenLocked(atoken, ActivityInfo.CONFIG_ORIENTATION);
+ startAppFreezingScreenLocked(atoken);
}
}
config = computeNewConfigurationLocked();
@@ -3767,7 +3797,10 @@
if (mFocusedApp != null) {
Task task = mTaskIdToTask.get(mFocusedApp.groupId);
stack = task.mStack;
- task.getDisplayContent().setTouchExcludeRegion(stack);
+ final DisplayContent displayContent = task.getDisplayContent();
+ if (displayContent != null) {
+ displayContent.setTouchExcludeRegion(stack);
+ }
} else {
stack = null;
}
@@ -3777,10 +3810,8 @@
if (stack == null) {
mFocusedStackFrame.setVisibility(false);
} else {
- final StackBox box = stack.mStackBox;
- final Rect bounds = box.mBounds;
- final boolean multipleStacks = box.mParent != null;
- mFocusedStackFrame.setBounds(bounds);
+ mFocusedStackFrame.setBounds(stack);
+ final boolean multipleStacks = !stack.isFullscreen();
mFocusedStackFrame.setVisibility(multipleStacks);
}
} finally {
@@ -4218,7 +4249,10 @@
}
}
changed = true;
- win.mDisplayContent.layoutNeeded = true;
+ final DisplayContent displayContent = win.getDisplayContent();
+ if (displayContent != null) {
+ displayContent.layoutNeeded = true;
+ }
}
} else if (win.isVisibleNow()) {
if (!runningAppAnimation) {
@@ -4232,7 +4266,10 @@
}
}
changed = true;
- win.mDisplayContent.layoutNeeded = true;
+ final DisplayContent displayContent = win.getDisplayContent();
+ if (displayContent != null) {
+ displayContent.layoutNeeded = true;
+ }
}
}
@@ -4380,7 +4417,10 @@
}
w.mLastFreezeDuration = 0;
unfrozeWindows = true;
- w.mDisplayContent.layoutNeeded = true;
+ final DisplayContent displayContent = w.getDisplayContent();
+ if (displayContent != null) {
+ displayContent.layoutNeeded = true;
+ }
}
}
if (force || unfrozeWindows) {
@@ -4400,8 +4440,7 @@
}
}
- public void startAppFreezingScreenLocked(AppWindowToken wtoken,
- int configChanges) {
+ private void startAppFreezingScreenLocked(AppWindowToken wtoken) {
if (DEBUG_ORIENTATION) {
RuntimeException e = null;
if (!HIDE_STACK_CRAWLS) {
@@ -4450,7 +4489,7 @@
return;
}
final long origId = Binder.clearCallingIdentity();
- startAppFreezingScreenLocked(wtoken, configChanges);
+ startAppFreezingScreenLocked(wtoken);
Binder.restoreCallingIdentity(origId);
}
}
@@ -4475,6 +4514,14 @@
}
}
+ void removeAppFromTask(AppWindowToken wtoken) {
+ final Task task = mTaskIdToTask.get(wtoken.groupId);
+ if (task != null && task.removeAppToken(wtoken)) {
+ task.mStack.removeTask(task);
+ mTaskIdToTask.delete(wtoken.groupId);
+ }
+ }
+
@Override
public void removeAppToken(IBinder token) {
if (!checkCallingPermission(android.Manifest.permission.MANAGE_APP_TOKENS,
@@ -4509,7 +4556,7 @@
+ " animating=" + wtoken.mAppAnimator.animating);
final Task task = mTaskIdToTask.get(wtoken.groupId);
DisplayContent displayContent = task.getDisplayContent();
- if (delayed) {
+ if (displayContent != null && delayed) {
// set the token aside because it has an active animation to be finished
if (DEBUG_ADD_REMOVE || DEBUG_TOKEN_MOVEMENT) Slog.v(TAG,
"removeAppToken make exiting: " + wtoken);
@@ -4524,9 +4571,8 @@
if (DEBUG_ADD_REMOVE || DEBUG_TOKEN_MOVEMENT) Slog.v(TAG,
"removeAppToken: " + wtoken);
- if (task.removeAppToken(wtoken)) {
- mTaskIdToTask.delete(wtoken.groupId);
- }
+ removeAppFromTask(wtoken);
+
wtoken.removed = true;
if (wtoken.startingData != null) {
startingToken = wtoken;
@@ -4571,13 +4617,15 @@
mH.sendMessage(m);
}
}
+
private boolean tmpRemoveAppWindowsLocked(WindowToken token) {
- final int NW = token.windows.size();
+ WindowList windows = token.windows;
+ final int NW = windows.size();
if (NW > 0) {
mWindowsChanged = true;
}
- for (int i=0; i<NW; i++) {
- WindowState win = token.windows.get(i);
+ for (int i = 0; i < NW; i++) {
+ WindowState win = windows.get(i);
if (DEBUG_WINDOW_MOVEMENT) Slog.v(TAG, "Tmp removing app window " + win);
win.getWindowList().remove(win);
int j = win.mChildWindows.size();
@@ -4610,12 +4658,13 @@
}
void dumpWindowsLocked() {
- int i = 0;
final int numDisplays = mDisplayContents.size();
for (int displayNdx = 0; displayNdx < numDisplays; ++displayNdx) {
- final WindowList windows = mDisplayContents.valueAt(displayNdx).getWindowList();
+ final DisplayContent displayContent = mDisplayContents.valueAt(displayNdx);
+ Slog.v(TAG, " Display #" + displayContent.getDisplayId());
+ final WindowList windows = displayContent.getWindowList();
for (int winNdx = windows.size() - 1; winNdx >= 0; --winNdx) {
- Slog.v(TAG, " #" + i++ + ": " + windows.get(winNdx));
+ Slog.v(TAG, " #" + winNdx + ": " + windows.get(winNdx));
}
}
}
@@ -4727,23 +4776,28 @@
final int NW = token.windows.size();
for (int i=0; i<NW; i++) {
final WindowState win = token.windows.get(i);
- if (win.mDisplayContent == displayContent) {
+ final DisplayContent winDisplayContent = win.getDisplayContent();
+ if (winDisplayContent == displayContent || winDisplayContent == null) {
+ win.mDisplayContent = displayContent;
index = reAddWindowLocked(index, win);
}
}
return index;
}
+ void tmpRemoveTaskWindowsLocked(Task task) {
+ AppTokenList tokens = task.mAppTokens;
+ for (int tokenNdx = tokens.size() - 1; tokenNdx >= 0; --tokenNdx) {
+ tmpRemoveAppWindowsLocked(tokens.get(tokenNdx));
+ }
+ }
+
void moveStackWindowsLocked(DisplayContent displayContent) {
// First remove all of the windows from the list.
final ArrayList<Task> tasks = displayContent.getTasks();
final int numTasks = tasks.size();
for (int taskNdx = 0; taskNdx < numTasks; ++taskNdx) {
- AppTokenList tokens = tasks.get(taskNdx).mAppTokens;
- final int numTokens = tokens.size();
- for (int tokenNdx = numTokens - 1; tokenNdx >= 0; --tokenNdx) {
- tmpRemoveAppWindowsLocked(tokens.get(tokenNdx));
- }
+ tmpRemoveTaskWindowsLocked(tasks.get(taskNdx));
}
// And now add them back at the correct place.
@@ -4787,10 +4841,14 @@
}
final TaskStack stack = task.mStack;
final DisplayContent displayContent = task.getDisplayContent();
- final boolean isHomeStackTask = stack.isHomeStack();
- if (isHomeStackTask != displayContent.homeOnTop()) {
- // First move the stack itself.
- displayContent.moveHomeStackBox(isHomeStackTask);
+ displayContent.moveStack(stack, true);
+ if (displayContent.isDefaultDisplay) {
+ final TaskStack homeStack = displayContent.getHomeStack();
+ if (homeStack != stack) {
+ // When a non-home stack moves to the top, the home stack moves to the
+ // bottom.
+ displayContent.moveStack(homeStack, false);
+ }
}
stack.moveTaskToTop(task);
}
@@ -4819,54 +4877,47 @@
}
/**
- * Create a new TaskStack and place it next to an existing stack.
+ * Create a new TaskStack and place it on a DisplayContent.
* @param stackId The unique identifier of the new stack.
- * @param relativeStackBoxId The existing stack that this stack goes before or after.
- * @param position One of:
- * {@link StackBox#TASK_STACK_GOES_BEFORE}
- * {@link StackBox#TASK_STACK_GOES_AFTER}
- * {@link StackBox#TASK_STACK_GOES_ABOVE}
- * {@link StackBox#TASK_STACK_GOES_BELOW}
- * {@link StackBox#TASK_STACK_GOES_UNDER}
- * {@link StackBox#TASK_STACK_GOES_OVER}
- * @param weight Relative weight for determining how big to make the new TaskStack.
+ * @param displayId The unique identifier of the DisplayContent.
*/
- public void createStack(int stackId, int relativeStackBoxId, int position, float weight) {
- synchronized (mWindowMap) {
- if (position <= StackBox.TASK_STACK_GOES_BELOW &&
- (weight < STACK_WEIGHT_MIN || weight > STACK_WEIGHT_MAX)) {
- throw new IllegalArgumentException(
- "createStack: weight must be between " + STACK_WEIGHT_MIN + " and " +
- STACK_WEIGHT_MAX + ", weight=" + weight);
- }
- final int numDisplays = mDisplayContents.size();
- for (int displayNdx = 0; displayNdx < numDisplays; ++displayNdx) {
- final DisplayContent displayContent = mDisplayContents.valueAt(displayNdx);
- TaskStack stack = displayContent.createStack(stackId, relativeStackBoxId, position,
- weight);
- if (stack != null) {
- mStackIdToStack.put(stackId, stack);
- performLayoutAndPlaceSurfacesLocked();
- return;
+ public void attachStack(int stackId, int displayId) {
+ final long origId = Binder.clearCallingIdentity();
+ try {
+ synchronized (mWindowMap) {
+ final DisplayContent displayContent = mDisplayContents.get(displayId);
+ if (displayContent != null) {
+ TaskStack stack = mStackIdToStack.get(stackId);
+ if (stack == null) {
+ if (DEBUG_STACK) Slog.d(TAG, "attachStack: stackId=" + stackId);
+ stack = new TaskStack(this, stackId);
+ mStackIdToStack.put(stackId, stack);
+ }
+ stack.attachDisplayContent(displayContent);
+ displayContent.attachStack(stack);
+ moveStackWindowsLocked(displayContent);
+ final WindowList windows = displayContent.getWindowList();
+ for (int winNdx = windows.size() - 1; winNdx >= 0; --winNdx) {
+ windows.get(winNdx).reportResized();
+ }
}
}
- Slog.e(TAG, "createStack: Unable to find relativeStackBoxId=" + relativeStackBoxId);
+ } finally {
+ Binder.restoreCallingIdentity(origId);
}
}
- public int removeStack(int stackId) {
+ public void detachStack(int stackId) {
synchronized (mWindowMap) {
- final TaskStack stack = mStackIdToStack.get(stackId);
+ TaskStack stack = mStackIdToStack.get(stackId);
if (stack != null) {
- mStackIdToStack.delete(stackId);
- int nextStackId = stack.remove();
- stack.getDisplayContent().layoutNeeded = true;
- requestTraversalLocked();
- return nextStackId;
+ final DisplayContent displayContent = stack.getDisplayContent();
+ if (displayContent != null) {
+ displayContent.detachStack(stack);
+ stack.detach();
+ }
}
- if (DEBUG_STACK) Slog.i(TAG, "removeStack: could not find stackId=" + stackId);
}
- return HOME_STACK_ID;
}
public void removeTask(int taskId) {
@@ -4879,7 +4930,6 @@
final TaskStack stack = task.mStack;
EventLog.writeEvent(EventLogTags.WM_TASK_REMOVED, taskId, "removeTask");
stack.removeTask(task);
- stack.getDisplayContent().layoutNeeded = true;
}
}
@@ -4897,40 +4947,27 @@
}
}
- public void resizeStackBox(int stackBoxId, float weight) {
- if (weight < STACK_WEIGHT_MIN || weight > STACK_WEIGHT_MAX) {
- throw new IllegalArgumentException(
- "resizeStack: weight must be between " + STACK_WEIGHT_MIN + " and " +
- STACK_WEIGHT_MAX + ", weight=" + weight);
- }
+ public void resizeStack(int stackId, Rect bounds) {
synchronized (mWindowMap) {
- final int numDisplays = mDisplayContents.size();
- for (int displayNdx = 0; displayNdx < numDisplays; ++displayNdx) {
- if (mDisplayContents.valueAt(displayNdx).resizeStack(stackBoxId, weight)) {
- performLayoutAndPlaceSurfacesLocked();
- return;
- }
+ final TaskStack stack = mStackIdToStack.get(stackId);
+ if (stack == null) {
+ throw new IllegalArgumentException("resizeStack: stackId " + stackId
+ + " not found.");
}
- }
- throw new IllegalArgumentException("resizeStack: stackBoxId " + stackBoxId
- + " not found.");
- }
-
- public ArrayList<StackBoxInfo> getStackBoxInfos() {
- synchronized(mWindowMap) {
- return getDefaultDisplayContentLocked().getStackBoxInfos();
+ if (stack.setBounds(bounds)) {
+ stack.getDisplayContent().layoutNeeded = true;
+ performLayoutAndPlaceSurfacesLocked();
+ }
}
}
- public Rect getStackBounds(int stackId) {
- final int numDisplays = mDisplayContents.size();
- for (int displayNdx = 0; displayNdx < numDisplays; ++displayNdx) {
- Rect bounds = mDisplayContents.valueAt(displayNdx).getStackBounds(stackId);
- if (bounds != null) {
- return bounds;
- }
+ public void getStackBounds(int stackId, Rect bounds) {
+ final TaskStack stack = mStackIdToStack.get(stackId);
+ if (stack != null) {
+ stack.getBounds(bounds);
+ return;
}
- return null;
+ bounds.setEmpty();
}
// -------------------------------------------------------------
@@ -5258,7 +5295,7 @@
public void performBootTimeout() {
synchronized(mWindowMap) {
- if (mDisplayEnabled || mHeadless) {
+ if (mDisplayEnabled) {
return;
}
Slog.w(TAG, "***** BOOT TIMEOUT: forcing display enabled");
@@ -5442,7 +5479,6 @@
// only allow disables from pids which have count on, etc.
@Override
public void showStrictModeViolation(boolean on) {
- if (mHeadless) return;
int pid = Binder.getCallingPid();
mH.sendMessage(mH.obtainMessage(H.SHOW_STRICT_MODE_VIOLATION, on ? 1 : 0, pid));
}
@@ -5588,7 +5624,7 @@
continue;
}
appWin = ws;
- stackBounds.set(ws.getStackBounds());
+ ws.getStackBounds(stackBounds);
}
}
@@ -5963,7 +5999,7 @@
}
}
- mDisplayManagerService.performTraversalInTransactionFromWindowManager();
+ mDisplayManagerInternal.performTraversalInTransactionFromWindowManager();
} finally {
if (!inTransaction) {
SurfaceControl.closeTransaction();
@@ -6657,7 +6693,7 @@
displayInfo.getLogicalMetrics(mRealDisplayMetrics,
CompatibilityInfo.DEFAULT_COMPATIBILITY_INFO, null);
displayInfo.getAppMetrics(mDisplayMetrics);
- mDisplayManagerService.setDisplayInfoOverrideFromWindowManager(
+ mDisplayManagerInternal.setDisplayInfoOverrideFromWindowManager(
displayContent.getDisplayId(), displayInfo);
}
if (false) {
@@ -6990,7 +7026,7 @@
synchronized(displayContent.mDisplaySizeLock) {
// Bootstrap the default logical display from the display manager.
final DisplayInfo displayInfo = displayContent.getDisplayInfo();
- DisplayInfo newDisplayInfo = mDisplayManagerService.getDisplayInfo(displayId);
+ DisplayInfo newDisplayInfo = mDisplayManagerInternal.getDisplayInfo(displayId);
if (newDisplayInfo != null) {
displayInfo.copyFrom(newDisplayInfo);
}
@@ -7475,9 +7511,7 @@
}
case DO_DISPLAY_ADDED:
- synchronized (mWindowMap) {
- handleDisplayAddedLocked(msg.arg1);
- }
+ handleDisplayAdded(msg.arg1);
break;
case DO_DISPLAY_REMOVED:
@@ -7936,7 +7970,6 @@
}
final void rebuildAppWindowListLocked() {
- // TODO: Multidisplay, when ActivityStacks and tasks exist on more than one display.
rebuildAppWindowListLocked(getDefaultDisplayContentLocked());
}
@@ -8001,7 +8034,8 @@
i -= lastBelow;
if (i != numRemoved) {
- Slog.w(TAG, "Rebuild removed " + numRemoved + " windows but added " + i,
+ Slog.w(TAG, "On display=" + displayContent.getDisplayId() + " Rebuild removed " +
+ numRemoved + " windows but added " + i,
new RuntimeException("here").fillInStackTrace());
for (i=0; i<numRemoved; i++) {
WindowState ws = mRebuildTmp[i];
@@ -8217,7 +8251,7 @@
}
mPolicy.getContentRectLw(mTmpContentRect);
- displayContent.setStackBoxSize(mTmpContentRect);
+ displayContent.resize(mTmpContentRect);
int seq = mLayoutSeq+1;
if (seq < 0) seq = 0;
@@ -8263,10 +8297,9 @@
// windows, since that means "perform layout as normal,
// just don't display").
if (!gone || !win.mHaveFrame || win.mLayoutNeeded
- || win.isConfigChanged() && (win.mAttrs.type == TYPE_KEYGUARD ||
- (win.mAppToken != null && (win.mAppToken.configChanges &
- (ActivityInfo.CONFIG_SCREEN_SIZE | ActivityInfo.CONFIG_ORIENTATION))
- != 0))
+ || ((win.isConfigChanged() || win.setInsetsChanged()) &&
+ (win.mAttrs.type == TYPE_KEYGUARD ||
+ win.mAppToken != null && win.mAppToken.layoutConfigChanges))
|| win.mAttrs.type == TYPE_UNIVERSE_BACKGROUND) {
if (!win.mLayoutAttached) {
if (initial) {
@@ -8362,8 +8395,7 @@
// it frozen/off until this window draws at its new
// orientation.
if (!okToDisplay()) {
- if (DEBUG_ORIENTATION) Slog.v(TAG,
- "Changing surface while display frozen: " + w);
+ if (DEBUG_ORIENTATION) Slog.v(TAG, "Changing surface while display frozen: " + w);
w.mOrientationChanging = true;
w.mLastFreezeDuration = 0;
mInnerFields.mOrientationChangeComplete = false;
@@ -8700,12 +8732,7 @@
private void updateResizingWindows(final WindowState w) {
final WindowStateAnimator winAnimator = w.mWinAnimator;
if (w.mHasSurface && w.mLayoutSeq == mLayoutSeq) {
- w.mOverscanInsetsChanged |=
- !w.mLastOverscanInsets.equals(w.mOverscanInsets);
- w.mContentInsetsChanged |=
- !w.mLastContentInsets.equals(w.mContentInsets);
- w.mVisibleInsetsChanged |=
- !w.mLastVisibleInsets.equals(w.mVisibleInsets);
+ w.setInsetsChanged();
boolean configChanged = w.isConfigChanged();
if (DEBUG_CONFIGURATION && configChanged) {
Slog.v(TAG, "Win " + w + " config changed: "
@@ -8818,7 +8845,8 @@
if (canBeSeen) {
// This function assumes that the contents of the default display are
// processed first before secondary displays.
- if (w.mDisplayContent.isDefaultDisplay) {
+ final DisplayContent displayContent = w.getDisplayContent();
+ if (displayContent != null && displayContent.isDefaultDisplay) {
// While a dream or keyguard is showing, obscure ordinary application
// content on secondary displays (by forcibly enabling mirroring unless
// there is other content we want to show) but still allow opaque
@@ -8827,8 +8855,9 @@
mInnerFields.mObscureApplicationContentOnSecondaryDisplays = true;
}
mInnerFields.mDisplayHasContent = true;
- } else if (!mInnerFields.mObscureApplicationContentOnSecondaryDisplays
- || (mInnerFields.mObscured && type == TYPE_KEYGUARD_DIALOG)) {
+ } else if (displayContent != null &&
+ (!mInnerFields.mObscureApplicationContentOnSecondaryDisplays
+ || (mInnerFields.mObscured && type == TYPE_KEYGUARD_DIALOG))) {
// Allow full screen keyguard presentation dialogs to be seen.
mInnerFields.mDisplayHasContent = true;
}
@@ -9022,6 +9051,10 @@
final int N = windows.size();
for (i=N-1; i>=0; i--) {
WindowState w = windows.get(i);
+ final TaskStack stack = w.getStack();
+ if (stack == null) {
+ continue;
+ }
final boolean obscuredChanged = w.mObscured != mInnerFields.mObscured;
@@ -9031,7 +9064,7 @@
handleNotObscuredLocked(w, currentTime, innerDw, innerDh);
}
- if (!w.getStack().testDimmingTag()) {
+ if (!stack.testDimmingTag()) {
handleFlagDimBehind(w, innerDw, innerDh);
}
@@ -9156,7 +9189,7 @@
updateResizingWindows(w);
}
- mDisplayManagerService.setDisplayHasContent(displayId,
+ mDisplayManagerInternal.setDisplayHasContent(displayId,
mInnerFields.mDisplayHasContent,
true /* inTraversal, must call performTraversalInTrans... below */);
@@ -9173,7 +9206,7 @@
// Give the display manager a chance to adjust properties
// like display rotation if it needs to.
- mDisplayManagerService.performTraversalInTransactionFromWindowManager();
+ mDisplayManagerInternal.performTraversalInTransactionFromWindowManager();
} catch (RuntimeException e) {
Log.wtf(TAG, "Unhandled exception in Window Manager", e);
@@ -9249,56 +9282,22 @@
continue;
}
final WindowStateAnimator winAnimator = win.mWinAnimator;
- try {
- if (DEBUG_RESIZE || DEBUG_ORIENTATION) Slog.v(TAG,
- "Reporting new frame to " + win + ": " + win.mCompatFrame);
- int diff = 0;
- boolean configChanged = win.isConfigChanged();
- if ((DEBUG_RESIZE || DEBUG_ORIENTATION || DEBUG_CONFIGURATION)
- && configChanged) {
- Slog.i(TAG, "Sending new config to window " + win + ": "
- + winAnimator.mSurfaceW + "x" + winAnimator.mSurfaceH
- + " / " + mCurConfiguration + " / 0x"
- + Integer.toHexString(diff));
- }
- win.setConfiguration(mCurConfiguration);
- if (DEBUG_ORIENTATION &&
- winAnimator.mDrawState == WindowStateAnimator.DRAW_PENDING) Slog.i(
- TAG, "Resizing " + win + " WITH DRAW PENDING");
- final IWindow client = win.mClient;
- final Rect frame = win.mFrame;
- final Rect overscanInsets = win.mLastOverscanInsets;
- final Rect contentInsets = win.mLastContentInsets;
- final Rect visibleInsets = win.mLastVisibleInsets;
- final boolean reportDraw
- = winAnimator.mDrawState == WindowStateAnimator.DRAW_PENDING;
- final Configuration newConfig = configChanged ? win.mConfiguration : null;
- if (win.mClient instanceof IWindow.Stub) {
- // To prevent deadlock simulate one-way call if win.mClient is a local object.
- mH.post(new Runnable() {
- @Override
- public void run() {
- try {
- client.resized(frame, overscanInsets, contentInsets,
- visibleInsets, reportDraw, newConfig);
- } catch (RemoteException e) {
- // Not a remote call, RemoteException won't be raised.
- }
- }
- });
- } else {
- client.resized(frame, overscanInsets, contentInsets, visibleInsets, reportDraw,
- newConfig);
- }
- win.mOverscanInsetsChanged = false;
- win.mContentInsetsChanged = false;
- win.mVisibleInsetsChanged = false;
- winAnimator.mSurfaceResized = false;
- } catch (RemoteException e) {
- win.mOrientationChanging = false;
- win.mLastFreezeDuration = (int)(SystemClock.elapsedRealtime()
- - mDisplayFreezeTime);
+ if (DEBUG_RESIZE || DEBUG_ORIENTATION) Slog.v(TAG,
+ "Reporting new frame to " + win + ": " + win.mCompatFrame);
+ int diff = 0;
+ boolean configChanged = win.isConfigChanged();
+ if ((DEBUG_RESIZE || DEBUG_ORIENTATION || DEBUG_CONFIGURATION)
+ && configChanged) {
+ Slog.i(TAG, "Sending new config to window " + win + ": "
+ + winAnimator.mSurfaceW + "x" + winAnimator.mSurfaceH
+ + " / " + mCurConfiguration + " / 0x"
+ + Integer.toHexString(diff));
}
+ win.setConfiguration(mCurConfiguration);
+ if (DEBUG_ORIENTATION &&
+ winAnimator.mDrawState == WindowStateAnimator.DRAW_PENDING) Slog.i(
+ TAG, "Resizing " + win + " WITH DRAW PENDING");
+ win.reportResized();
mResizingWindows.remove(i);
}
@@ -9359,10 +9358,7 @@
token.mAppAnimator.animating = false;
if (DEBUG_ADD_REMOVE || DEBUG_TOKEN_MOVEMENT) Slog.v(TAG,
"performLayout: App token exiting now removed" + token);
- final Task task = mTaskIdToTask.get(token.groupId);
- if (task != null && task.removeAppToken(token)) {
- mTaskIdToTask.delete(token.groupId);
- }
+ removeAppFromTask(token);
exitingAppTokens.remove(i);
}
}
@@ -9397,18 +9393,18 @@
setHoldScreenLocked(mInnerFields.mHoldScreen);
if (!mDisplayFrozen) {
if (mInnerFields.mScreenBrightness < 0 || mInnerFields.mScreenBrightness > 1.0f) {
- mPowerManager.setScreenBrightnessOverrideFromWindowManager(-1);
+ mPowerManagerInternal.setScreenBrightnessOverrideFromWindowManager(-1);
} else {
- mPowerManager.setScreenBrightnessOverrideFromWindowManager(
+ mPowerManagerInternal.setScreenBrightnessOverrideFromWindowManager(
toBrightnessOverride(mInnerFields.mScreenBrightness));
}
if (mInnerFields.mButtonBrightness < 0 || mInnerFields.mButtonBrightness > 1.0f) {
- mPowerManager.setButtonBrightnessOverrideFromWindowManager(-1);
+ mPowerManagerInternal.setButtonBrightnessOverrideFromWindowManager(-1);
} else {
- mPowerManager.setButtonBrightnessOverrideFromWindowManager(
+ mPowerManagerInternal.setButtonBrightnessOverrideFromWindowManager(
toBrightnessOverride(mInnerFields.mButtonBrightness));
}
- mPowerManager.setUserActivityTimeoutOverrideFromWindowManager(
+ mPowerManagerInternal.setUserActivityTimeoutOverrideFromWindowManager(
mInnerFields.mUserActivityTimeout);
}
@@ -9443,8 +9439,9 @@
for (i = 0; i < N; i++) {
WindowState w = mPendingRemoveTmp[i];
removeWindowInnerLocked(w.mSession, w);
- if (!displayList.contains(w.mDisplayContent)) {
- displayList.add(w.mDisplayContent);
+ final DisplayContent displayContent = w.getDisplayContent();
+ if (displayContent != null && !displayList.contains(displayContent)) {
+ displayList.add(displayContent);
}
}
@@ -9542,8 +9539,7 @@
}
}
- @Override
- public void requestTraversal() {
+ void requestTraversal() {
synchronized (mWindowMap) {
requestTraversalLocked();
}
@@ -10740,7 +10736,7 @@
displayInfo.overscanTop = rect.top;
displayInfo.overscanRight = rect.right;
displayInfo.overscanBottom = rect.bottom;
- mDisplayManagerService.setDisplayInfoOverrideFromWindowManager(
+ mDisplayManagerInternal.setDisplayInfoOverrideFromWindowManager(
displayId, displayInfo);
}
configureDisplayPolicyLocked(displayContent);
@@ -10810,20 +10806,20 @@
return displayContent != null ? displayContent.getWindowList() : null;
}
- @Override
public void onDisplayAdded(int displayId) {
mH.sendMessage(mH.obtainMessage(H.DO_DISPLAY_ADDED, displayId, 0));
}
- private void handleDisplayAddedLocked(int displayId) {
- final Display display = mDisplayManager.getDisplay(displayId);
- if (display != null) {
- createDisplayContentLocked(display);
- displayReady(displayId);
+ public void handleDisplayAdded(int displayId) {
+ synchronized (mWindowMap) {
+ final Display display = mDisplayManager.getDisplay(displayId);
+ if (display != null) {
+ createDisplayContentLocked(display);
+ displayReady(displayId);
+ }
}
}
- @Override
public void onDisplayRemoved(int displayId) {
mH.sendMessage(mH.obtainMessage(H.DO_DISPLAY_REMOVED, displayId, 0));
}
@@ -10836,16 +10832,10 @@
if (displayId == Display.DEFAULT_DISPLAY) {
unregisterPointerEventListener(displayContent.mTapDetector);
}
- WindowList windows = displayContent.getWindowList();
- while (!windows.isEmpty()) {
- final WindowState win = windows.get(windows.size() - 1);
- removeWindowLocked(win.mSession, win);
- }
}
mAnimator.removeDisplayLocked(displayId);
}
- @Override
public void onDisplayChanged(int displayId) {
mH.sendMessage(mH.obtainMessage(H.DO_DISPLAY_CHANGED, displayId, 0));
}
@@ -10861,4 +10851,11 @@
public Object getWindowManagerLock() {
return mWindowMap;
}
+
+ private final class LocalService extends WindowManagerInternal {
+ @Override
+ public void requestTraversalFromDisplayManager() {
+ requestTraversal();
+ }
+ }
}
diff --git a/services/java/com/android/server/wm/WindowState.java b/services/core/java/com/android/server/wm/WindowState.java
similarity index 92%
rename from services/java/com/android/server/wm/WindowState.java
rename to services/core/java/com/android/server/wm/WindowState.java
index 2d08792..2f778b1 100644
--- a/services/java/com/android/server/wm/WindowState.java
+++ b/services/core/java/com/android/server/wm/WindowState.java
@@ -29,7 +29,9 @@
import static android.view.WindowManager.LayoutParams.TYPE_WALLPAPER;
import android.app.AppOpsManager;
+import android.os.Debug;
import android.os.RemoteCallbackList;
+import android.os.SystemClock;
import android.util.TimeUtils;
import android.view.IWindowFocusObserver;
import android.view.IWindowId;
@@ -463,8 +465,8 @@
mHaveFrame = true;
TaskStack stack = mAppToken != null ? getStack() : null;
- if (stack != null && stack.hasSibling()) {
- mContainingFrame.set(getStackBounds(stack));
+ if (stack != null && !stack.isFullscreen()) {
+ getStackBounds(stack, mContainingFrame);
if (mUnderStatusBar) {
mContainingFrame.top = pf.top;
}
@@ -593,9 +595,12 @@
}
if (mIsWallpaper && (fw != mFrame.width() || fh != mFrame.height())) {
- final DisplayInfo displayInfo = mDisplayContent.getDisplayInfo();
- mService.updateWallpaperOffsetLocked(this,
- displayInfo.logicalWidth, displayInfo.logicalHeight, false);
+ final DisplayContent displayContent = getDisplayContent();
+ if (displayContent != null) {
+ final DisplayInfo displayInfo = displayContent.getDisplayInfo();
+ mService.updateWallpaperOffsetLocked(this,
+ displayInfo.logicalWidth, displayInfo.logicalHeight, false);
+ }
}
if (DEBUG_LAYOUT || WindowManagerService.localLOGV) Slog.v(TAG,
@@ -701,8 +706,23 @@
return mAppToken != null ? mAppToken.appToken : null;
}
+ boolean setInsetsChanged() {
+ mOverscanInsetsChanged |= !mLastOverscanInsets.equals(mOverscanInsets);
+ mContentInsetsChanged |= !mLastContentInsets.equals(mContentInsets);
+ mVisibleInsetsChanged |= !mLastVisibleInsets.equals(mVisibleInsets);
+ return mOverscanInsetsChanged || mContentInsetsChanged || mVisibleInsetsChanged;
+ }
+
+ public DisplayContent getDisplayContent() {
+ return mAppToken == null ? mDisplayContent : getStack().getDisplayContent();
+ }
+
public int getDisplayId() {
- return mDisplayContent.getDisplayId();
+ final DisplayContent displayContent = getDisplayContent();
+ if (displayContent == null) {
+ return -1;
+ }
+ return displayContent.getDisplayId();
}
TaskStack getStack() {
@@ -710,21 +730,28 @@
if (wtoken != null) {
Task task = mService.mTaskIdToTask.get(wtoken.groupId);
if (task != null) {
- return task.mStack;
+ if (task.mStack != null) {
+ return task.mStack;
+ }
+ Slog.e(TAG, "getStack: mStack null for task=" + task);
+ } else {
+ Slog.e(TAG, "getStack: " + this + " couldn't find taskId=" + wtoken.groupId
+ + " Callers=" + Debug.getCallers(4));
}
}
return mDisplayContent.getHomeStack();
}
- Rect getStackBounds() {
- return getStackBounds(getStack());
+ void getStackBounds(Rect bounds) {
+ getStackBounds(getStack(), bounds);
}
- private Rect getStackBounds(TaskStack stack) {
+ private void getStackBounds(TaskStack stack, Rect bounds) {
if (stack != null) {
- return stack.mStackBox.mBounds;
+ stack.getBounds(bounds);
+ return;
}
- return mFrame;
+ bounds.set(mFrame);
}
public long getInputDispatchingTimeoutNanos() {
@@ -1183,7 +1210,12 @@
@Override
public boolean isDefaultDisplay() {
- return mDisplayContent.isDefaultDisplay;
+ final DisplayContent displayContent = getDisplayContent();
+ if (displayContent == null) {
+ // Only a window that was on a non-default display can be detached from it.
+ return false;
+ }
+ return getDisplayContent().isDefaultDisplay;
}
public void setShowToOwnerOnlyLocked(boolean showToOwnerOnly) {
@@ -1200,7 +1232,11 @@
&& win.mAppToken != null && win.mAppToken.showWhenLocked) {
// Save some cycles by not calling getDisplayInfo unless it is an application
// window intended for all users.
- final DisplayInfo displayInfo = win.mDisplayContent.getDisplayInfo();
+ final DisplayContent displayContent = win.getDisplayContent();
+ if (displayContent == null) {
+ return true;
+ }
+ final DisplayInfo displayInfo = displayContent.getDisplayInfo();
if (win.mFrame.left <= 0 && win.mFrame.top <= 0
&& win.mFrame.right >= displayInfo.appWidth
&& win.mFrame.bottom >= displayInfo.appHeight) {
@@ -1242,7 +1278,8 @@
}
WindowList getWindowList() {
- return mDisplayContent.getWindowList();
+ final DisplayContent displayContent = getDisplayContent();
+ return displayContent == null ? null : displayContent.getWindowList();
}
/**
@@ -1271,6 +1308,43 @@
}
}
+ void reportResized() {
+ try {
+ final Rect frame = mFrame;
+ final Rect overscanInsets = mLastOverscanInsets;
+ final Rect contentInsets = mLastContentInsets;
+ final Rect visibleInsets = mLastVisibleInsets;
+ final boolean reportDraw
+ = mWinAnimator.mDrawState == WindowStateAnimator.DRAW_PENDING;
+ final Configuration newConfig = isConfigChanged() ? mConfiguration : null;
+ if (mClient instanceof IWindow.Stub) {
+ // To prevent deadlock simulate one-way call if win.mClient is a local object.
+ mService.mH.post(new Runnable() {
+ @Override
+ public void run() {
+ try {
+ mClient.resized(frame, overscanInsets, contentInsets,
+ visibleInsets, reportDraw, newConfig);
+ } catch (RemoteException e) {
+ // Not a remote call, RemoteException won't be raised.
+ }
+ }
+ });
+ } else {
+ mClient.resized(frame, overscanInsets, contentInsets, visibleInsets, reportDraw,
+ newConfig);
+ }
+ mOverscanInsetsChanged = false;
+ mContentInsetsChanged = false;
+ mVisibleInsetsChanged = false;
+ mWinAnimator.mSurfaceResized = false;
+ } catch (RemoteException e) {
+ mOrientationChanging = false;
+ mLastFreezeDuration = (int)(SystemClock.elapsedRealtime()
+ - mService.mDisplayFreezeTime);
+ }
+ }
+
public void registerFocusObserver(IWindowFocusObserver observer) {
synchronized(mService.mWindowMap) {
if (mFocusCallbacks == null) {
@@ -1295,7 +1369,7 @@
}
void dump(PrintWriter pw, String prefix, boolean dumpAll) {
- pw.print(prefix); pw.print("mDisplayId="); pw.print(mDisplayContent.getDisplayId());
+ pw.print(prefix); pw.print("mDisplayId="); pw.print(getDisplayId());
pw.print(" mSession="); pw.print(mSession);
pw.print(" mClient="); pw.println(mClient.asBinder());
pw.print(prefix); pw.print("mOwnerUid="); pw.print(mOwnerUid);
diff --git a/services/java/com/android/server/wm/WindowStateAnimator.java b/services/core/java/com/android/server/wm/WindowStateAnimator.java
similarity index 97%
rename from services/java/com/android/server/wm/WindowStateAnimator.java
rename to services/core/java/com/android/server/wm/WindowStateAnimator.java
index c405170..76e885f 100644
--- a/services/java/com/android/server/wm/WindowStateAnimator.java
+++ b/services/core/java/com/android/server/wm/WindowStateAnimator.java
@@ -150,8 +150,6 @@
int mAttrFlags;
int mAttrType;
- final int mLayerStack;
-
public WindowStateAnimator(final WindowState win) {
final WindowManagerService service = win.mService;
@@ -159,7 +157,7 @@
mAnimator = service.mAnimator;
mPolicy = service.mPolicy;
mContext = service.mContext;
- final DisplayInfo displayInfo = win.mDisplayContent.getDisplayInfo();
+ final DisplayInfo displayInfo = win.getDisplayContent().getDisplayInfo();
mAnimDw = displayInfo.appWidth;
mAnimDh = displayInfo.appHeight;
@@ -171,7 +169,6 @@
mAttrFlags = win.mAttrs.flags;
mAttrType = win.mAttrs.type;
mIsWallpaper = win.mIsWallpaper;
- mLayerStack = win.mDisplayContent.getDisplay().getLayerStack();
}
public void setAnimation(Animation anim) {
@@ -243,7 +240,8 @@
// Save the animation state as it was before this step so WindowManagerService can tell if
// we just started or just stopped animating by comparing mWasAnimating with isAnimating().
mWasAnimating = mAnimating;
- if (mService.okToDisplay()) {
+ final DisplayContent displayContent = mWin.getDisplayContent();
+ if (displayContent != null && mService.okToDisplay()) {
// We will run animations as long as the display isn't frozen.
if (mWin.isDrawnLw() && mAnimation != null) {
@@ -258,7 +256,7 @@
" scale=" + mService.mWindowAnimationScale);
mAnimation.initialize(mWin.mFrame.width(), mWin.mFrame.height(),
mAnimDw, mAnimDh);
- final DisplayInfo displayInfo = mWin.mDisplayContent.getDisplayInfo();
+ final DisplayInfo displayInfo = displayContent.getDisplayInfo();
mAnimDw = displayInfo.appWidth;
mAnimDh = displayInfo.appHeight;
mAnimation.setStartTime(currentTime);
@@ -337,7 +335,9 @@
+ mWin.mPolicyVisibilityAfterAnim);
}
mWin.mPolicyVisibility = mWin.mPolicyVisibilityAfterAnim;
- mWin.mDisplayContent.layoutNeeded = true;
+ if (displayContent != null) {
+ displayContent.layoutNeeded = true;
+ }
if (!mWin.mPolicyVisibility) {
if (mService.mCurrentFocus == mWin) {
if (WindowManagerService.DEBUG_FOCUS_LIGHT) Slog.i(TAG,
@@ -363,11 +363,13 @@
} else if (mAttrType == LayoutParams.TYPE_STATUS_BAR && mWin.mPolicyVisibility) {
// Upon completion of a not-visible to visible status bar animation a relayout is
// required.
- mWin.mDisplayContent.layoutNeeded = true;
+ if (displayContent != null) {
+ displayContent.layoutNeeded = true;
+ }
}
finishExit();
- final int displayId = mWin.mDisplayContent.getDisplayId();
+ final int displayId = mWin.getDisplayId();
mAnimator.setPendingLayoutChanges(displayId, WindowManagerPolicy.FINISH_LAYOUT_REDO_ANIM);
if (WindowManagerService.DEBUG_LAYOUT_REPEATS) mService.debugLayoutRepeats(
"WindowStateAnimator", mAnimator.getPendingLayoutChanges(displayId));
@@ -732,7 +734,10 @@
mSurfaceY = mWin.mFrame.top + mWin.mYOffset;
mSurfaceControl.setPosition(mSurfaceX, mSurfaceY);
mSurfaceLayer = mAnimLayer;
- mSurfaceControl.setLayerStack(mLayerStack);
+ final DisplayContent displayContent = mWin.getDisplayContent();
+ if (displayContent != null) {
+ mSurfaceControl.setLayerStack(displayContent.getDisplay().getLayerStack());
+ }
mSurfaceControl.setLayer(mAnimLayer);
mSurfaceControl.setAlpha(0);
mSurfaceShown = false;
@@ -921,8 +926,7 @@
tmpMatrix.postConcat(screenRotationAnimation.getEnterTransformation().getMatrix());
}
//TODO (multidisplay): Magnification is supported only for the default display.
- if (mService.mDisplayMagnifier != null
- && mWin.getDisplayId() == Display.DEFAULT_DISPLAY) {
+ if (mService.mDisplayMagnifier != null && displayId == Display.DEFAULT_DISPLAY) {
MagnificationSpec spec = mService.mDisplayMagnifier
.getMagnificationSpecForWindowLocked(mWin);
if (spec != null && !spec.isNop()) {
@@ -1002,7 +1006,7 @@
&& mWin.mBaseLayer < mAnimator.mAboveUniverseLayer);
MagnificationSpec spec = null;
//TODO (multidisplay): Magnification is supported only for the default display.
- if (mService.mDisplayMagnifier != null && mWin.getDisplayId() == Display.DEFAULT_DISPLAY) {
+ if (mService.mDisplayMagnifier != null && displayId == Display.DEFAULT_DISPLAY) {
spec = mService.mDisplayMagnifier.getMagnificationSpecForWindowLocked(mWin);
}
if (applyUniverseTransformation || spec != null) {
@@ -1080,7 +1084,11 @@
void updateSurfaceWindowCrop(final boolean recoveringMemory) {
final WindowState w = mWin;
- DisplayInfo displayInfo = w.mDisplayContent.getDisplayInfo();
+ final DisplayContent displayContent = w.getDisplayContent();
+ if (displayContent == null) {
+ return;
+ }
+ DisplayInfo displayInfo = displayContent.getDisplayInfo();
// Need to recompute a new system decor rect each time.
if ((w.mAttrs.flags & LayoutParams.FLAG_SCALED) != 0) {
@@ -1181,8 +1189,7 @@
"SIZE " + width + "x" + height, null);
mSurfaceResized = true;
mSurfaceControl.setSize(width, height);
- final int displayId = w.mDisplayContent.getDisplayId();
- mAnimator.setPendingLayoutChanges(displayId,
+ mAnimator.setPendingLayoutChanges(w.getDisplayId(),
WindowManagerPolicy.FINISH_LAYOUT_REDO_WALLPAPER);
if ((w.mAttrs.flags & LayoutParams.FLAG_DIM_BEHIND) != 0) {
w.getStack().startDimmingIfNeeded(this);
@@ -1444,7 +1451,10 @@
// do a layout. If called from within the transaction
// loop, this will cause it to restart with a new
// layout.
- c.mDisplayContent.layoutNeeded = true;
+ final DisplayContent displayContent = c.getDisplayContent();
+ if (displayContent != null) {
+ displayContent.layoutNeeded = true;
+ }
}
}
}
diff --git a/services/java/com/android/server/wm/WindowToken.java b/services/core/java/com/android/server/wm/WindowToken.java
similarity index 100%
rename from services/java/com/android/server/wm/WindowToken.java
rename to services/core/java/com/android/server/wm/WindowToken.java
diff --git a/services/core/java/service.mk b/services/core/java/service.mk
new file mode 100644
index 0000000..4cb411b
--- /dev/null
+++ b/services/core/java/service.mk
@@ -0,0 +1,6 @@
+SUB_DIR := core/java
+
+LOCAL_SRC_FILES += \
+ $(call all-java-files-under,$(SUB_DIR)) \
+ $(SUB_DIR)/com/android/server/EventLogTags.logtags \
+ $(SUB_DIR)/com/android/server/am/EventLogTags.logtags
diff --git a/services/core/jni/Android.mk b/services/core/jni/Android.mk
new file mode 100644
index 0000000..1a3ce63
--- /dev/null
+++ b/services/core/jni/Android.mk
@@ -0,0 +1,56 @@
+# This file is included by the top level services directory to collect source
+# files
+LOCAL_REL_DIR := core/jni
+
+LOCAL_SRC_FILES += \
+ $(LOCAL_REL_DIR)/com_android_server_AlarmManagerService.cpp \
+ $(LOCAL_REL_DIR)/com_android_server_AssetAtlasService.cpp \
+ $(LOCAL_REL_DIR)/com_android_server_ConsumerIrService.cpp \
+ $(LOCAL_REL_DIR)/com_android_server_input_InputApplicationHandle.cpp \
+ $(LOCAL_REL_DIR)/com_android_server_input_InputManagerService.cpp \
+ $(LOCAL_REL_DIR)/com_android_server_input_InputWindowHandle.cpp \
+ $(LOCAL_REL_DIR)/com_android_server_lights_LightsService.cpp \
+ $(LOCAL_REL_DIR)/com_android_server_power_PowerManagerService.cpp \
+ $(LOCAL_REL_DIR)/com_android_server_SerialService.cpp \
+ $(LOCAL_REL_DIR)/com_android_server_SystemServer.cpp \
+ $(LOCAL_REL_DIR)/com_android_server_UsbDeviceManager.cpp \
+ $(LOCAL_REL_DIR)/com_android_server_UsbHostManager.cpp \
+ $(LOCAL_REL_DIR)/com_android_server_VibratorService.cpp \
+ $(LOCAL_REL_DIR)/com_android_server_location_GpsLocationProvider.cpp \
+ $(LOCAL_REL_DIR)/com_android_server_location_FlpHardwareProvider.cpp \
+ $(LOCAL_REL_DIR)/com_android_server_connectivity_Vpn.cpp \
+ $(LOCAL_REL_DIR)/onload.cpp
+
+LOCAL_C_INCLUDES += \
+ $(JNI_H_INCLUDE) \
+ frameworks/base/services \
+ frameworks/base/libs \
+ frameworks/base/core/jni \
+ frameworks/native/services \
+ external/skia/include/core \
+ libcore/include \
+ libcore/include/libsuspend \
+ $(call include-path-for, libhardware)/hardware \
+ $(call include-path-for, libhardware_legacy)/hardware_legacy \
+
+LOCAL_SHARED_LIBRARIES += \
+ libandroid_runtime \
+ libandroidfw \
+ libbinder \
+ libcutils \
+ liblog \
+ libhardware \
+ libhardware_legacy \
+ libnativehelper \
+ libutils \
+ libui \
+ libinput \
+ libinputservice \
+ libsensorservice \
+ libskia \
+ libgui \
+ libusbhost \
+ libsuspend \
+ libEGL \
+ libGLESv2
+
diff --git a/services/jni/com_android_server_AlarmManagerService.cpp b/services/core/jni/com_android_server_AlarmManagerService.cpp
similarity index 100%
rename from services/jni/com_android_server_AlarmManagerService.cpp
rename to services/core/jni/com_android_server_AlarmManagerService.cpp
diff --git a/services/jni/com_android_server_AssetAtlasService.cpp b/services/core/jni/com_android_server_AssetAtlasService.cpp
similarity index 100%
rename from services/jni/com_android_server_AssetAtlasService.cpp
rename to services/core/jni/com_android_server_AssetAtlasService.cpp
diff --git a/services/jni/com_android_server_ConsumerIrService.cpp b/services/core/jni/com_android_server_ConsumerIrService.cpp
similarity index 100%
rename from services/jni/com_android_server_ConsumerIrService.cpp
rename to services/core/jni/com_android_server_ConsumerIrService.cpp
diff --git a/services/jni/com_android_server_SerialService.cpp b/services/core/jni/com_android_server_SerialService.cpp
similarity index 100%
rename from services/jni/com_android_server_SerialService.cpp
rename to services/core/jni/com_android_server_SerialService.cpp
diff --git a/services/jni/com_android_server_SystemServer.cpp b/services/core/jni/com_android_server_SystemServer.cpp
similarity index 100%
rename from services/jni/com_android_server_SystemServer.cpp
rename to services/core/jni/com_android_server_SystemServer.cpp
diff --git a/services/jni/com_android_server_UsbDeviceManager.cpp b/services/core/jni/com_android_server_UsbDeviceManager.cpp
similarity index 100%
rename from services/jni/com_android_server_UsbDeviceManager.cpp
rename to services/core/jni/com_android_server_UsbDeviceManager.cpp
diff --git a/services/jni/com_android_server_UsbHostManager.cpp b/services/core/jni/com_android_server_UsbHostManager.cpp
similarity index 100%
rename from services/jni/com_android_server_UsbHostManager.cpp
rename to services/core/jni/com_android_server_UsbHostManager.cpp
diff --git a/services/jni/com_android_server_VibratorService.cpp b/services/core/jni/com_android_server_VibratorService.cpp
similarity index 100%
rename from services/jni/com_android_server_VibratorService.cpp
rename to services/core/jni/com_android_server_VibratorService.cpp
diff --git a/services/jni/com_android_server_connectivity_Vpn.cpp b/services/core/jni/com_android_server_connectivity_Vpn.cpp
similarity index 100%
rename from services/jni/com_android_server_connectivity_Vpn.cpp
rename to services/core/jni/com_android_server_connectivity_Vpn.cpp
diff --git a/services/jni/com_android_server_input_InputApplicationHandle.cpp b/services/core/jni/com_android_server_input_InputApplicationHandle.cpp
similarity index 100%
rename from services/jni/com_android_server_input_InputApplicationHandle.cpp
rename to services/core/jni/com_android_server_input_InputApplicationHandle.cpp
diff --git a/services/jni/com_android_server_input_InputApplicationHandle.h b/services/core/jni/com_android_server_input_InputApplicationHandle.h
similarity index 100%
rename from services/jni/com_android_server_input_InputApplicationHandle.h
rename to services/core/jni/com_android_server_input_InputApplicationHandle.h
diff --git a/services/jni/com_android_server_input_InputManagerService.cpp b/services/core/jni/com_android_server_input_InputManagerService.cpp
similarity index 100%
rename from services/jni/com_android_server_input_InputManagerService.cpp
rename to services/core/jni/com_android_server_input_InputManagerService.cpp
diff --git a/services/jni/com_android_server_input_InputWindowHandle.cpp b/services/core/jni/com_android_server_input_InputWindowHandle.cpp
similarity index 100%
rename from services/jni/com_android_server_input_InputWindowHandle.cpp
rename to services/core/jni/com_android_server_input_InputWindowHandle.cpp
diff --git a/services/jni/com_android_server_input_InputWindowHandle.h b/services/core/jni/com_android_server_input_InputWindowHandle.h
similarity index 100%
rename from services/jni/com_android_server_input_InputWindowHandle.h
rename to services/core/jni/com_android_server_input_InputWindowHandle.h
diff --git a/services/jni/com_android_server_LightsService.cpp b/services/core/jni/com_android_server_lights_LightsService.cpp
similarity index 97%
rename from services/jni/com_android_server_LightsService.cpp
rename to services/core/jni/com_android_server_lights_LightsService.cpp
index 69793f7..d51e044 100644
--- a/services/jni/com_android_server_LightsService.cpp
+++ b/services/core/jni/com_android_server_lights_LightsService.cpp
@@ -134,7 +134,7 @@
int register_android_server_LightsService(JNIEnv *env)
{
- return jniRegisterNativeMethods(env, "com/android/server/LightsService",
+ return jniRegisterNativeMethods(env, "com/android/server/lights/LightsService",
method_table, NELEM(method_table));
}
diff --git a/services/jni/com_android_server_location_FlpHardwareProvider.cpp b/services/core/jni/com_android_server_location_FlpHardwareProvider.cpp
similarity index 100%
rename from services/jni/com_android_server_location_FlpHardwareProvider.cpp
rename to services/core/jni/com_android_server_location_FlpHardwareProvider.cpp
diff --git a/services/jni/com_android_server_location_GpsLocationProvider.cpp b/services/core/jni/com_android_server_location_GpsLocationProvider.cpp
similarity index 100%
rename from services/jni/com_android_server_location_GpsLocationProvider.cpp
rename to services/core/jni/com_android_server_location_GpsLocationProvider.cpp
diff --git a/services/jni/com_android_server_power_PowerManagerService.cpp b/services/core/jni/com_android_server_power_PowerManagerService.cpp
similarity index 100%
rename from services/jni/com_android_server_power_PowerManagerService.cpp
rename to services/core/jni/com_android_server_power_PowerManagerService.cpp
diff --git a/services/jni/com_android_server_power_PowerManagerService.h b/services/core/jni/com_android_server_power_PowerManagerService.h
similarity index 100%
rename from services/jni/com_android_server_power_PowerManagerService.h
rename to services/core/jni/com_android_server_power_PowerManagerService.h
diff --git a/services/jni/onload.cpp b/services/core/jni/onload.cpp
similarity index 100%
rename from services/jni/onload.cpp
rename to services/core/jni/onload.cpp
diff --git a/services/java/com/android/server/DevicePolicyManagerService.java b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java
similarity index 89%
rename from services/java/com/android/server/DevicePolicyManagerService.java
rename to services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java
index 2bb99d6..af36246 100644
--- a/services/java/com/android/server/DevicePolicyManagerService.java
+++ b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerService.java
@@ -14,7 +14,7 @@
* limitations under the License.
*/
-package com.android.server;
+package com.android.server.devicepolicy;
import static android.Manifest.permission.MANAGE_CA_CERTIFICATES;
@@ -117,7 +117,7 @@
*/
public class DevicePolicyManagerService extends IDevicePolicyManager.Stub {
- private static final String TAG = "DevicePolicyManagerService";
+ private static final String LOG_TAG = "DevicePolicyManagerService";
private static final String DEVICE_POLICIES_XML = "device_policies.xml";
@@ -186,7 +186,7 @@
getSendingUserId());
if (Intent.ACTION_BOOT_COMPLETED.equals(action)
|| ACTION_EXPIRED_PASSWORD_NOTIFICATION.equals(action)) {
- if (DBG) Slog.v(TAG, "Sending password expiration notifications for action "
+ if (DBG) Slog.v(LOG_TAG, "Sending password expiration notifications for action "
+ action + " for user " + userHandle);
mHandler.post(new Runnable() {
public void run() {
@@ -218,6 +218,28 @@
};
static class ActiveAdmin {
+ private static final String TAG_DISABLE_KEYGUARD_FEATURES = "disable-keyguard-features";
+ private static final String TAG_DISABLE_CAMERA = "disable-camera";
+ private static final String TAG_ENCRYPTION_REQUESTED = "encryption-requested";
+ private static final String TAG_PASSWORD_EXPIRATION_DATE = "password-expiration-date";
+ private static final String TAG_PASSWORD_EXPIRATION_TIMEOUT = "password-expiration-timeout";
+ private static final String TAG_GLOBAL_PROXY_EXCLUSION_LIST = "global-proxy-exclusion-list";
+ private static final String TAG_GLOBAL_PROXY_SPEC = "global-proxy-spec";
+ private static final String TAG_SPECIFIES_GLOBAL_PROXY = "specifies-global-proxy";
+ private static final String TAG_MAX_FAILED_PASSWORD_WIPE = "max-failed-password-wipe";
+ private static final String TAG_MAX_TIME_TO_UNLOCK = "max-time-to-unlock";
+ private static final String TAG_MIN_PASSWORD_NONLETTER = "min-password-nonletter";
+ private static final String TAG_MIN_PASSWORD_SYMBOLS = "min-password-symbols";
+ private static final String TAG_MIN_PASSWORD_NUMERIC = "min-password-numeric";
+ private static final String TAG_MIN_PASSWORD_LETTERS = "min-password-letters";
+ private static final String TAG_MIN_PASSWORD_LOWERCASE = "min-password-lowercase";
+ private static final String TAG_MIN_PASSWORD_UPPERCASE = "min-password-uppercase";
+ private static final String TAG_PASSWORD_HISTORY_LENGTH = "password-history-length";
+ private static final String TAG_MIN_PASSWORD_LENGTH = "min-password-length";
+ private static final String ATTR_VALUE = "value";
+ private static final String TAG_PASSWORD_QUALITY = "password-quality";
+ private static final String TAG_POLICIES = "policies";
+
final DeviceAdminInfo info;
int passwordQuality = DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED;
@@ -281,103 +303,103 @@
void writeToXml(XmlSerializer out)
throws IllegalArgumentException, IllegalStateException, IOException {
- out.startTag(null, "policies");
+ out.startTag(null, TAG_POLICIES);
info.writePoliciesToXml(out);
- out.endTag(null, "policies");
+ out.endTag(null, TAG_POLICIES);
if (passwordQuality != DevicePolicyManager.PASSWORD_QUALITY_UNSPECIFIED) {
- out.startTag(null, "password-quality");
- out.attribute(null, "value", Integer.toString(passwordQuality));
- out.endTag(null, "password-quality");
+ out.startTag(null, TAG_PASSWORD_QUALITY);
+ out.attribute(null, ATTR_VALUE, Integer.toString(passwordQuality));
+ out.endTag(null, TAG_PASSWORD_QUALITY);
if (minimumPasswordLength != DEF_MINIMUM_PASSWORD_LENGTH) {
- out.startTag(null, "min-password-length");
- out.attribute(null, "value", Integer.toString(minimumPasswordLength));
- out.endTag(null, "min-password-length");
+ out.startTag(null, TAG_MIN_PASSWORD_LENGTH);
+ out.attribute(null, ATTR_VALUE, Integer.toString(minimumPasswordLength));
+ out.endTag(null, TAG_MIN_PASSWORD_LENGTH);
}
if(passwordHistoryLength != DEF_PASSWORD_HISTORY_LENGTH) {
- out.startTag(null, "password-history-length");
- out.attribute(null, "value", Integer.toString(passwordHistoryLength));
- out.endTag(null, "password-history-length");
+ out.startTag(null, TAG_PASSWORD_HISTORY_LENGTH);
+ out.attribute(null, ATTR_VALUE, Integer.toString(passwordHistoryLength));
+ out.endTag(null, TAG_PASSWORD_HISTORY_LENGTH);
}
if (minimumPasswordUpperCase != DEF_MINIMUM_PASSWORD_UPPER_CASE) {
- out.startTag(null, "min-password-uppercase");
- out.attribute(null, "value", Integer.toString(minimumPasswordUpperCase));
- out.endTag(null, "min-password-uppercase");
+ out.startTag(null, TAG_MIN_PASSWORD_UPPERCASE);
+ out.attribute(null, ATTR_VALUE, Integer.toString(minimumPasswordUpperCase));
+ out.endTag(null, TAG_MIN_PASSWORD_UPPERCASE);
}
if (minimumPasswordLowerCase != DEF_MINIMUM_PASSWORD_LOWER_CASE) {
- out.startTag(null, "min-password-lowercase");
- out.attribute(null, "value", Integer.toString(minimumPasswordLowerCase));
- out.endTag(null, "min-password-lowercase");
+ out.startTag(null, TAG_MIN_PASSWORD_LOWERCASE);
+ out.attribute(null, ATTR_VALUE, Integer.toString(minimumPasswordLowerCase));
+ out.endTag(null, TAG_MIN_PASSWORD_LOWERCASE);
}
if (minimumPasswordLetters != DEF_MINIMUM_PASSWORD_LETTERS) {
- out.startTag(null, "min-password-letters");
- out.attribute(null, "value", Integer.toString(minimumPasswordLetters));
- out.endTag(null, "min-password-letters");
+ out.startTag(null, TAG_MIN_PASSWORD_LETTERS);
+ out.attribute(null, ATTR_VALUE, Integer.toString(minimumPasswordLetters));
+ out.endTag(null, TAG_MIN_PASSWORD_LETTERS);
}
if (minimumPasswordNumeric != DEF_MINIMUM_PASSWORD_NUMERIC) {
- out.startTag(null, "min-password-numeric");
- out.attribute(null, "value", Integer.toString(minimumPasswordNumeric));
- out.endTag(null, "min-password-numeric");
+ out.startTag(null, TAG_MIN_PASSWORD_NUMERIC);
+ out.attribute(null, ATTR_VALUE, Integer.toString(minimumPasswordNumeric));
+ out.endTag(null, TAG_MIN_PASSWORD_NUMERIC);
}
if (minimumPasswordSymbols != DEF_MINIMUM_PASSWORD_SYMBOLS) {
- out.startTag(null, "min-password-symbols");
- out.attribute(null, "value", Integer.toString(minimumPasswordSymbols));
- out.endTag(null, "min-password-symbols");
+ out.startTag(null, TAG_MIN_PASSWORD_SYMBOLS);
+ out.attribute(null, ATTR_VALUE, Integer.toString(minimumPasswordSymbols));
+ out.endTag(null, TAG_MIN_PASSWORD_SYMBOLS);
}
if (minimumPasswordNonLetter > DEF_MINIMUM_PASSWORD_NON_LETTER) {
- out.startTag(null, "min-password-nonletter");
- out.attribute(null, "value", Integer.toString(minimumPasswordNonLetter));
- out.endTag(null, "min-password-nonletter");
+ out.startTag(null, TAG_MIN_PASSWORD_NONLETTER);
+ out.attribute(null, ATTR_VALUE, Integer.toString(minimumPasswordNonLetter));
+ out.endTag(null, TAG_MIN_PASSWORD_NONLETTER);
}
}
if (maximumTimeToUnlock != DEF_MAXIMUM_TIME_TO_UNLOCK) {
- out.startTag(null, "max-time-to-unlock");
- out.attribute(null, "value", Long.toString(maximumTimeToUnlock));
- out.endTag(null, "max-time-to-unlock");
+ out.startTag(null, TAG_MAX_TIME_TO_UNLOCK);
+ out.attribute(null, ATTR_VALUE, Long.toString(maximumTimeToUnlock));
+ out.endTag(null, TAG_MAX_TIME_TO_UNLOCK);
}
if (maximumFailedPasswordsForWipe != DEF_MAXIMUM_FAILED_PASSWORDS_FOR_WIPE) {
- out.startTag(null, "max-failed-password-wipe");
- out.attribute(null, "value", Integer.toString(maximumFailedPasswordsForWipe));
- out.endTag(null, "max-failed-password-wipe");
+ out.startTag(null, TAG_MAX_FAILED_PASSWORD_WIPE);
+ out.attribute(null, ATTR_VALUE, Integer.toString(maximumFailedPasswordsForWipe));
+ out.endTag(null, TAG_MAX_FAILED_PASSWORD_WIPE);
}
if (specifiesGlobalProxy) {
- out.startTag(null, "specifies-global-proxy");
- out.attribute(null, "value", Boolean.toString(specifiesGlobalProxy));
- out.endTag(null, "specifies_global_proxy");
+ out.startTag(null, TAG_SPECIFIES_GLOBAL_PROXY);
+ out.attribute(null, ATTR_VALUE, Boolean.toString(specifiesGlobalProxy));
+ out.endTag(null, TAG_SPECIFIES_GLOBAL_PROXY);
if (globalProxySpec != null) {
- out.startTag(null, "global-proxy-spec");
- out.attribute(null, "value", globalProxySpec);
- out.endTag(null, "global-proxy-spec");
+ out.startTag(null, TAG_GLOBAL_PROXY_SPEC);
+ out.attribute(null, ATTR_VALUE, globalProxySpec);
+ out.endTag(null, TAG_GLOBAL_PROXY_SPEC);
}
if (globalProxyExclusionList != null) {
- out.startTag(null, "global-proxy-exclusion-list");
- out.attribute(null, "value", globalProxyExclusionList);
- out.endTag(null, "global-proxy-exclusion-list");
+ out.startTag(null, TAG_GLOBAL_PROXY_EXCLUSION_LIST);
+ out.attribute(null, ATTR_VALUE, globalProxyExclusionList);
+ out.endTag(null, TAG_GLOBAL_PROXY_EXCLUSION_LIST);
}
}
if (passwordExpirationTimeout != DEF_PASSWORD_EXPIRATION_TIMEOUT) {
- out.startTag(null, "password-expiration-timeout");
- out.attribute(null, "value", Long.toString(passwordExpirationTimeout));
- out.endTag(null, "password-expiration-timeout");
+ out.startTag(null, TAG_PASSWORD_EXPIRATION_TIMEOUT);
+ out.attribute(null, ATTR_VALUE, Long.toString(passwordExpirationTimeout));
+ out.endTag(null, TAG_PASSWORD_EXPIRATION_TIMEOUT);
}
if (passwordExpirationDate != DEF_PASSWORD_EXPIRATION_DATE) {
- out.startTag(null, "password-expiration-date");
- out.attribute(null, "value", Long.toString(passwordExpirationDate));
- out.endTag(null, "password-expiration-date");
+ out.startTag(null, TAG_PASSWORD_EXPIRATION_DATE);
+ out.attribute(null, ATTR_VALUE, Long.toString(passwordExpirationDate));
+ out.endTag(null, TAG_PASSWORD_EXPIRATION_DATE);
}
if (encryptionRequested) {
- out.startTag(null, "encryption-requested");
- out.attribute(null, "value", Boolean.toString(encryptionRequested));
- out.endTag(null, "encryption-requested");
+ out.startTag(null, TAG_ENCRYPTION_REQUESTED);
+ out.attribute(null, ATTR_VALUE, Boolean.toString(encryptionRequested));
+ out.endTag(null, TAG_ENCRYPTION_REQUESTED);
}
if (disableCamera) {
- out.startTag(null, "disable-camera");
- out.attribute(null, "value", Boolean.toString(disableCamera));
- out.endTag(null, "disable-camera");
+ out.startTag(null, TAG_DISABLE_CAMERA);
+ out.attribute(null, ATTR_VALUE, Boolean.toString(disableCamera));
+ out.endTag(null, TAG_DISABLE_CAMERA);
}
if (disabledKeyguardFeatures != DEF_KEYGUARD_FEATURES_DISABLED) {
- out.startTag(null, "disable-keyguard-features");
- out.attribute(null, "value", Integer.toString(disabledKeyguardFeatures));
- out.endTag(null, "disable-keyguard-features");
+ out.startTag(null, TAG_DISABLE_KEYGUARD_FEATURES);
+ out.attribute(null, ATTR_VALUE, Integer.toString(disabledKeyguardFeatures));
+ out.endTag(null, TAG_DISABLE_KEYGUARD_FEATURES);
}
}
@@ -391,67 +413,67 @@
continue;
}
String tag = parser.getName();
- if ("policies".equals(tag)) {
+ if (TAG_POLICIES.equals(tag)) {
info.readPoliciesFromXml(parser);
- } else if ("password-quality".equals(tag)) {
+ } else if (TAG_PASSWORD_QUALITY.equals(tag)) {
passwordQuality = Integer.parseInt(
- parser.getAttributeValue(null, "value"));
- } else if ("min-password-length".equals(tag)) {
+ parser.getAttributeValue(null, ATTR_VALUE));
+ } else if (TAG_MIN_PASSWORD_LENGTH.equals(tag)) {
minimumPasswordLength = Integer.parseInt(
- parser.getAttributeValue(null, "value"));
- } else if ("password-history-length".equals(tag)) {
+ parser.getAttributeValue(null, ATTR_VALUE));
+ } else if (TAG_PASSWORD_HISTORY_LENGTH.equals(tag)) {
passwordHistoryLength = Integer.parseInt(
- parser.getAttributeValue(null, "value"));
- } else if ("min-password-uppercase".equals(tag)) {
+ parser.getAttributeValue(null, ATTR_VALUE));
+ } else if (TAG_MIN_PASSWORD_UPPERCASE.equals(tag)) {
minimumPasswordUpperCase = Integer.parseInt(
- parser.getAttributeValue(null, "value"));
- } else if ("min-password-lowercase".equals(tag)) {
+ parser.getAttributeValue(null, ATTR_VALUE));
+ } else if (TAG_MIN_PASSWORD_LOWERCASE.equals(tag)) {
minimumPasswordLowerCase = Integer.parseInt(
- parser.getAttributeValue(null, "value"));
- } else if ("min-password-letters".equals(tag)) {
+ parser.getAttributeValue(null, ATTR_VALUE));
+ } else if (TAG_MIN_PASSWORD_LETTERS.equals(tag)) {
minimumPasswordLetters = Integer.parseInt(
- parser.getAttributeValue(null, "value"));
- } else if ("min-password-numeric".equals(tag)) {
+ parser.getAttributeValue(null, ATTR_VALUE));
+ } else if (TAG_MIN_PASSWORD_NUMERIC.equals(tag)) {
minimumPasswordNumeric = Integer.parseInt(
- parser.getAttributeValue(null, "value"));
- } else if ("min-password-symbols".equals(tag)) {
+ parser.getAttributeValue(null, ATTR_VALUE));
+ } else if (TAG_MIN_PASSWORD_SYMBOLS.equals(tag)) {
minimumPasswordSymbols = Integer.parseInt(
- parser.getAttributeValue(null, "value"));
- } else if ("min-password-nonletter".equals(tag)) {
+ parser.getAttributeValue(null, ATTR_VALUE));
+ } else if (TAG_MIN_PASSWORD_NONLETTER.equals(tag)) {
minimumPasswordNonLetter = Integer.parseInt(
- parser.getAttributeValue(null, "value"));
- } else if ("max-time-to-unlock".equals(tag)) {
+ parser.getAttributeValue(null, ATTR_VALUE));
+ } else if (TAG_MAX_TIME_TO_UNLOCK.equals(tag)) {
maximumTimeToUnlock = Long.parseLong(
- parser.getAttributeValue(null, "value"));
- } else if ("max-failed-password-wipe".equals(tag)) {
+ parser.getAttributeValue(null, ATTR_VALUE));
+ } else if (TAG_MAX_FAILED_PASSWORD_WIPE.equals(tag)) {
maximumFailedPasswordsForWipe = Integer.parseInt(
- parser.getAttributeValue(null, "value"));
- } else if ("specifies-global-proxy".equals(tag)) {
+ parser.getAttributeValue(null, ATTR_VALUE));
+ } else if (TAG_SPECIFIES_GLOBAL_PROXY.equals(tag)) {
specifiesGlobalProxy = Boolean.parseBoolean(
- parser.getAttributeValue(null, "value"));
- } else if ("global-proxy-spec".equals(tag)) {
+ parser.getAttributeValue(null, ATTR_VALUE));
+ } else if (TAG_GLOBAL_PROXY_SPEC.equals(tag)) {
globalProxySpec =
- parser.getAttributeValue(null, "value");
- } else if ("global-proxy-exclusion-list".equals(tag)) {
+ parser.getAttributeValue(null, ATTR_VALUE);
+ } else if (TAG_GLOBAL_PROXY_EXCLUSION_LIST.equals(tag)) {
globalProxyExclusionList =
- parser.getAttributeValue(null, "value");
- } else if ("password-expiration-timeout".equals(tag)) {
+ parser.getAttributeValue(null, ATTR_VALUE);
+ } else if (TAG_PASSWORD_EXPIRATION_TIMEOUT.equals(tag)) {
passwordExpirationTimeout = Long.parseLong(
- parser.getAttributeValue(null, "value"));
- } else if ("password-expiration-date".equals(tag)) {
+ parser.getAttributeValue(null, ATTR_VALUE));
+ } else if (TAG_PASSWORD_EXPIRATION_DATE.equals(tag)) {
passwordExpirationDate = Long.parseLong(
- parser.getAttributeValue(null, "value"));
- } else if ("encryption-requested".equals(tag)) {
+ parser.getAttributeValue(null, ATTR_VALUE));
+ } else if (TAG_ENCRYPTION_REQUESTED.equals(tag)) {
encryptionRequested = Boolean.parseBoolean(
- parser.getAttributeValue(null, "value"));
- } else if ("disable-camera".equals(tag)) {
+ parser.getAttributeValue(null, ATTR_VALUE));
+ } else if (TAG_DISABLE_CAMERA.equals(tag)) {
disableCamera = Boolean.parseBoolean(
- parser.getAttributeValue(null, "value"));
- } else if ("disable-keyguard-features".equals(tag)) {
+ parser.getAttributeValue(null, ATTR_VALUE));
+ } else if (TAG_DISABLE_KEYGUARD_FEATURES.equals(tag)) {
disabledKeyguardFeatures = Integer.parseInt(
- parser.getAttributeValue(null, "value"));
+ parser.getAttributeValue(null, ATTR_VALUE));
} else {
- Slog.w(TAG, "Unknown admin tag: " + tag);
+ Slog.w(LOG_TAG, "Unknown admin tag: " + tag);
}
XmlUtils.skipCurrentTag(parser);
}
@@ -513,7 +535,7 @@
private void handlePackagesChanged(int userHandle) {
boolean removed = false;
- if (DBG) Slog.d(TAG, "Handling package changes for user " + userHandle);
+ if (DBG) Slog.d(LOG_TAG, "Handling package changes for user " + userHandle);
DevicePolicyData policy = getUserData(userHandle);
IPackageManager pm = AppGlobals.getPackageManager();
for (int i = policy.mAdminList.size() - 1; i >= 0; i--) {
@@ -585,7 +607,7 @@
void removeUserData(int userHandle) {
synchronized (this) {
if (userHandle == UserHandle.USER_OWNER) {
- Slog.w(TAG, "Tried to remove device policy file for user 0! Ignoring.");
+ Slog.w(LOG_TAG, "Tried to remove device policy file for user 0! Ignoring.");
return;
}
DevicePolicyData policy = mUserData.get(userHandle);
@@ -595,7 +617,7 @@
File policyFile = new File(Environment.getUserSystemDirectory(userHandle),
DEVICE_POLICIES_XML);
policyFile.delete();
- Slog.i(TAG, "Removed device policy file " + policyFile.getAbsolutePath());
+ Slog.i(LOG_TAG, "Removed device policy file " + policyFile.getAbsolutePath());
}
}
@@ -792,10 +814,12 @@
try {
return new DeviceAdminInfo(mContext, infos.get(0));
} catch (XmlPullParserException e) {
- Slog.w(TAG, "Bad device admin requested for user=" + userHandle + ": " + adminName, e);
+ Slog.w(LOG_TAG, "Bad device admin requested for user=" + userHandle + ": " + adminName,
+ e);
return null;
} catch (IOException e) {
- Slog.w(TAG, "Bad device admin requested for user=" + userHandle + ": " + adminName, e);
+ Slog.w(LOG_TAG, "Bad device admin requested for user=" + userHandle + ": " + adminName,
+ e);
return null;
}
}
@@ -922,7 +946,7 @@
ComponentName.unflattenFromString(name), userHandle);
if (DBG && (UserHandle.getUserId(dai.getActivityInfo().applicationInfo.uid)
!= userHandle)) {
- Slog.w(TAG, "findAdmin returned an incorrect uid "
+ Slog.w(LOG_TAG, "findAdmin returned an incorrect uid "
+ dai.getActivityInfo().applicationInfo.uid + " for user "
+ userHandle);
}
@@ -933,7 +957,7 @@
policy.mAdminList.add(ap);
}
} catch (RuntimeException e) {
- Slog.w(TAG, "Failed loading admin " + name, e);
+ Slog.w(LOG_TAG, "Failed loading admin " + name, e);
}
} else if ("failed-password-attempts".equals(tag)) {
policy.mFailedPasswordAttempts = Integer.parseInt(
@@ -962,22 +986,22 @@
parser.getAttributeValue(null, "nonletter"));
XmlUtils.skipCurrentTag(parser);
} else {
- Slog.w(TAG, "Unknown tag: " + tag);
+ Slog.w(LOG_TAG, "Unknown tag: " + tag);
XmlUtils.skipCurrentTag(parser);
}
}
} catch (NullPointerException e) {
- Slog.w(TAG, "failed parsing " + file + " " + e);
+ Slog.w(LOG_TAG, "failed parsing " + file + " " + e);
} catch (NumberFormatException e) {
- Slog.w(TAG, "failed parsing " + file + " " + e);
+ Slog.w(LOG_TAG, "failed parsing " + file + " " + e);
} catch (XmlPullParserException e) {
- Slog.w(TAG, "failed parsing " + file + " " + e);
+ Slog.w(LOG_TAG, "failed parsing " + file + " " + e);
} catch (FileNotFoundException e) {
// Don't be noisy, this is normal if we haven't defined any policies.
} catch (IOException e) {
- Slog.w(TAG, "failed parsing " + file + " " + e);
+ Slog.w(LOG_TAG, "failed parsing " + file + " " + e);
} catch (IndexOutOfBoundsException e) {
- Slog.w(TAG, "failed parsing " + file + " " + e);
+ Slog.w(LOG_TAG, "failed parsing " + file + " " + e);
}
try {
if (stream != null) {
@@ -993,7 +1017,7 @@
// never normally happen.
LockPatternUtils utils = new LockPatternUtils(mContext);
if (utils.getActivePasswordQuality() < policy.mActivePasswordQuality) {
- Slog.w(TAG, "Active password quality 0x"
+ Slog.w(LOG_TAG, "Active password quality 0x"
+ Integer.toHexString(policy.mActivePasswordQuality)
+ " does not match actual quality 0x"
+ Integer.toHexString(utils.getActivePasswordQuality()));
@@ -1037,7 +1061,7 @@
}
}
if (!haveOwner) {
- Slog.w(TAG, "Previous password owner " + policy.mPasswordOwner
+ Slog.w(LOG_TAG, "Previous password owner " + policy.mPasswordOwner
+ " no longer active; disabling");
policy.mPasswordOwner = -1;
}
@@ -1057,7 +1081,7 @@
long token = Binder.clearCallingIdentity();
try {
String value = cameraDisabled ? "1" : "0";
- if (DBG) Slog.v(TAG, "Change in camera state ["
+ if (DBG) Slog.v(LOG_TAG, "Change in camera state ["
+ SYSTEM_PROP_DISABLE_CAMERA + "] = " + value);
SystemProperties.set(SYSTEM_PROP_DISABLE_CAMERA, value);
} finally {
@@ -1173,7 +1197,8 @@
synchronized (this) {
long ident = Binder.clearCallingIdentity();
try {
- if (!refreshing && getActiveAdminUncheckedLocked(adminReceiver, userHandle) != null) {
+ if (!refreshing
+ && getActiveAdminUncheckedLocked(adminReceiver, userHandle) != null) {
throw new IllegalArgumentException("Admin is already added");
}
ActiveAdmin newAdmin = new ActiveAdmin(info);
@@ -1443,7 +1468,7 @@
ap.passwordExpirationDate = expiration;
ap.passwordExpirationTimeout = timeout;
if (timeout > 0L) {
- Slog.w(TAG, "setPasswordExpiration(): password will expire on "
+ Slog.w(LOG_TAG, "setPasswordExpiration(): password will expire on "
+ DateFormat.getDateTimeInstance(DateFormat.DEFAULT, DateFormat.DEFAULT)
.format(new Date(expiration)));
}
@@ -1789,11 +1814,11 @@
return true;
}
return policy.mActivePasswordUpperCase >= getPasswordMinimumUpperCase(null, userHandle)
- && policy.mActivePasswordLowerCase >= getPasswordMinimumLowerCase(null, userHandle)
- && policy.mActivePasswordLetters >= getPasswordMinimumLetters(null, userHandle)
- && policy.mActivePasswordNumeric >= getPasswordMinimumNumeric(null, userHandle)
- && policy.mActivePasswordSymbols >= getPasswordMinimumSymbols(null, userHandle)
- && policy.mActivePasswordNonLetter >= getPasswordMinimumNonLetter(null, userHandle);
+ && policy.mActivePasswordLowerCase >= getPasswordMinimumLowerCase(null, userHandle)
+ && policy.mActivePasswordLetters >= getPasswordMinimumLetters(null, userHandle)
+ && policy.mActivePasswordNumeric >= getPasswordMinimumNumeric(null, userHandle)
+ && policy.mActivePasswordSymbols >= getPasswordMinimumSymbols(null, userHandle)
+ && policy.mActivePasswordNonLetter >= getPasswordMinimumNonLetter(null, userHandle);
}
}
@@ -1871,7 +1896,7 @@
int realQuality = LockPatternUtils.computePasswordQuality(password);
if (realQuality < quality
&& quality != DevicePolicyManager.PASSWORD_QUALITY_COMPLEX) {
- Slog.w(TAG, "resetPassword: password quality 0x"
+ Slog.w(LOG_TAG, "resetPassword: password quality 0x"
+ Integer.toHexString(realQuality)
+ " does not meet required quality 0x"
+ Integer.toHexString(quality));
@@ -1881,7 +1906,7 @@
}
int length = getPasswordMinimumLength(null, userHandle);
if (password.length() < length) {
- Slog.w(TAG, "resetPassword: password length " + password.length()
+ Slog.w(LOG_TAG, "resetPassword: password length " + password.length()
+ " does not meet required length " + length);
return false;
}
@@ -1910,40 +1935,40 @@
}
int neededLetters = getPasswordMinimumLetters(null, userHandle);
if(letters < neededLetters) {
- Slog.w(TAG, "resetPassword: number of letters " + letters
+ Slog.w(LOG_TAG, "resetPassword: number of letters " + letters
+ " does not meet required number of letters " + neededLetters);
return false;
}
int neededNumbers = getPasswordMinimumNumeric(null, userHandle);
if (numbers < neededNumbers) {
- Slog.w(TAG, "resetPassword: number of numerical digits " + numbers
+ Slog.w(LOG_TAG, "resetPassword: number of numerical digits " + numbers
+ " does not meet required number of numerical digits "
+ neededNumbers);
return false;
}
int neededLowerCase = getPasswordMinimumLowerCase(null, userHandle);
if (lowercase < neededLowerCase) {
- Slog.w(TAG, "resetPassword: number of lowercase letters " + lowercase
+ Slog.w(LOG_TAG, "resetPassword: number of lowercase letters " + lowercase
+ " does not meet required number of lowercase letters "
+ neededLowerCase);
return false;
}
int neededUpperCase = getPasswordMinimumUpperCase(null, userHandle);
if (uppercase < neededUpperCase) {
- Slog.w(TAG, "resetPassword: number of uppercase letters " + uppercase
+ Slog.w(LOG_TAG, "resetPassword: number of uppercase letters " + uppercase
+ " does not meet required number of uppercase letters "
+ neededUpperCase);
return false;
}
int neededSymbols = getPasswordMinimumSymbols(null, userHandle);
if (symbols < neededSymbols) {
- Slog.w(TAG, "resetPassword: number of special symbols " + symbols
+ Slog.w(LOG_TAG, "resetPassword: number of special symbols " + symbols
+ " does not meet required number of special symbols " + neededSymbols);
return false;
}
int neededNonLetter = getPasswordMinimumNonLetter(null, userHandle);
if (nonletter < neededNonLetter) {
- Slog.w(TAG, "resetPassword: number of non-letter characters " + nonletter
+ Slog.w(LOG_TAG, "resetPassword: number of non-letter characters " + nonletter
+ " does not meet required number of non-letter characters "
+ neededNonLetter);
return false;
@@ -1954,7 +1979,7 @@
int callingUid = Binder.getCallingUid();
DevicePolicyData policy = getUserData(userHandle);
if (policy.mPasswordOwner >= 0 && policy.mPasswordOwner != callingUid) {
- Slog.w(TAG, "resetPassword: already set by another uid and not entered by user");
+ Slog.w(LOG_TAG, "resetPassword: already set by another uid and not entered by user");
return false;
}
@@ -2020,7 +2045,7 @@
try {
getIPowerManager().setMaximumScreenOffTimeoutFromDeviceAdmin((int)timeMs);
} catch (RemoteException e) {
- Slog.w(TAG, "Failure talking with power manager", e);
+ Slog.w(LOG_TAG, "Failure talking with power manager", e);
}
} finally {
Binder.restoreCallingIdentity(ident);
@@ -2095,10 +2120,10 @@
X509Certificate cert = parseCert(certBuffer);
pemCert = Credentials.convertToPem(cert);
} catch (CertificateException ce) {
- Log.e(TAG, "Problem converting cert", ce);
+ Log.e(LOG_TAG, "Problem converting cert", ce);
return false;
} catch (IOException ioe) {
- Log.e(TAG, "Problem reading cert", ioe);
+ Log.e(LOG_TAG, "Problem reading cert", ioe);
return false;
}
try {
@@ -2113,7 +2138,7 @@
}
}
} catch (InterruptedException e1) {
- Log.w(TAG, "installCaCertsToKeyChain(): ", e1);
+ Log.w(LOG_TAG, "installCaCertsToKeyChain(): ", e1);
Thread.currentThread().interrupt();
}
return false;
@@ -2134,10 +2159,10 @@
X509Certificate cert = parseCert(certBuffer);
alias = certStore.getCertificateAlias(cert);
} catch (CertificateException ce) {
- Log.e(TAG, "Problem creating X509Certificate", ce);
+ Log.e(LOG_TAG, "Problem creating X509Certificate", ce);
return;
} catch (IOException ioe) {
- Log.e(TAG, "Problem reading certificate", ioe);
+ Log.e(LOG_TAG, "Problem reading certificate", ioe);
return;
}
try {
@@ -2146,13 +2171,13 @@
try {
service.deleteCaCertificate(alias);
} catch (RemoteException e) {
- Log.e(TAG, "from CaCertUninstaller: ", e);
+ Log.e(LOG_TAG, "from CaCertUninstaller: ", e);
} finally {
keyChainConnection.close();
keyChainConnection = null;
}
} catch (InterruptedException ie) {
- Log.w(TAG, "CaCertUninstaller: ", ie);
+ Log.w(LOG_TAG, "CaCertUninstaller: ", ie);
Thread.currentThread().interrupt();
}
}
@@ -2173,7 +2198,7 @@
try {
RecoverySystem.rebootWipeUserData(mContext);
} catch (IOException e) {
- Slog.w(TAG, "Failed requesting data wipe", e);
+ Slog.w(LOG_TAG, "Failed requesting data wipe", e);
}
}
}
@@ -2264,8 +2289,10 @@
if (p.mActivePasswordQuality != quality || p.mActivePasswordLength != length
|| p.mFailedPasswordAttempts != 0 || p.mActivePasswordLetters != letters
|| p.mActivePasswordUpperCase != uppercase
- || p.mActivePasswordLowerCase != lowercase || p.mActivePasswordNumeric != numbers
- || p.mActivePasswordSymbols != symbols || p.mActivePasswordNonLetter != nonletter) {
+ || p.mActivePasswordLowerCase != lowercase
+ || p.mActivePasswordNumeric != numbers
+ || p.mActivePasswordSymbols != symbols
+ || p.mActivePasswordNonLetter != nonletter) {
long ident = Binder.clearCallingIdentity();
try {
p.mActivePasswordQuality = quality;
@@ -2387,7 +2414,7 @@
// If the user is not the owner, don't set the global proxy. Fail silently.
if (UserHandle.getCallingUserId() != UserHandle.USER_OWNER) {
- Slog.w(TAG, "Only the owner is allowed to set the global proxy. User "
+ Slog.w(LOG_TAG, "Only the owner is allowed to set the global proxy. User "
+ userHandle + " is not permitted.");
return null;
}
@@ -2468,7 +2495,7 @@
ProxyProperties proxyProperties = new ProxyProperties(data[0], proxyPort, exclusionList);
if (!proxyProperties.isValid()) {
- Slog.e(TAG, "Invalid proxy properties, ignoring: " + proxyProperties.toString());
+ Slog.e(LOG_TAG, "Invalid proxy properties, ignoring: " + proxyProperties.toString());
return;
}
Settings.Global.putString(res, Settings.Global.GLOBAL_HTTP_PROXY_HOST, data[0]);
@@ -2494,7 +2521,7 @@
// Only owner can set storage encryption
if (userHandle != UserHandle.USER_OWNER
|| UserHandle.getCallingUserId() != UserHandle.USER_OWNER) {
- Slog.w(TAG, "Only owner is allowed to set storage encryption. User "
+ Slog.w(LOG_TAG, "Only owner is allowed to set storage encryption. User "
+ UserHandle.getCallingUserId() + " is not permitted.");
return 0;
}
@@ -2880,7 +2907,7 @@
}
}
} catch (NameNotFoundException nnfe) {
- Slog.w(TAG, "Device Owner package " + packageName + " not installed.");
+ Slog.w(LOG_TAG, "Device Owner package " + packageName + " not installed.");
}
return false;
}
@@ -2905,9 +2932,9 @@
mOwnerName = parser.getAttributeValue(null, ATTR_NAME);
input.close();
} catch (XmlPullParserException xppe) {
- Slog.e(TAG, "Error parsing device-owner file\n" + xppe);
+ Slog.e(LOG_TAG, "Error parsing device-owner file\n" + xppe);
} catch (IOException ioe) {
- Slog.e(TAG, "IO Exception when reading device-owner file\n" + ioe);
+ Slog.e(LOG_TAG, "IO Exception when reading device-owner file\n" + ioe);
}
}
@@ -2935,7 +2962,7 @@
out.flush();
file.finishWrite(output);
} catch (IOException ioe) {
- Slog.e(TAG, "IO Exception when writing device-owner file\n" + ioe);
+ Slog.e(LOG_TAG, "IO Exception when writing device-owner file\n" + ioe);
}
}
}
diff --git a/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerSystemService.java b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerSystemService.java
new file mode 100644
index 0000000..160aa39
--- /dev/null
+++ b/services/devicepolicy/java/com/android/server/devicepolicy/DevicePolicyManagerSystemService.java
@@ -0,0 +1,46 @@
+/*
+ * Copyright (C) 2013 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.server.devicepolicy;
+
+import android.content.Context;
+
+import com.android.server.SystemService;
+
+/**
+ * SystemService wrapper for the DevicePolicyManager implementation. Publishes
+ * Context.DEVICE_POLICY_SERVICE.
+ */
+public final class DevicePolicyManagerSystemService extends SystemService {
+ private DevicePolicyManagerService mDevicePolicyManagerImpl;
+
+ @Override
+ public void onCreate(Context context) {
+ mDevicePolicyManagerImpl = new DevicePolicyManagerService(context);
+ }
+
+ @Override
+ public void onStart() {
+ publishBinderService(Context.DEVICE_POLICY_SERVICE, mDevicePolicyManagerImpl);
+ }
+
+ @Override
+ public void onBootPhase(int phase) {
+ if (phase == PHASE_LOCK_SETTINGS_READY) {
+ mDevicePolicyManagerImpl.systemReady();
+ }
+ }
+}
\ No newline at end of file
diff --git a/services/devicepolicy/java/service.mk b/services/devicepolicy/java/service.mk
new file mode 100644
index 0000000..e64cc96
--- /dev/null
+++ b/services/devicepolicy/java/service.mk
@@ -0,0 +1,11 @@
+# Include only if the service is required
+ifneq ($(findstring devicepolicy,$(REQUIRED_SERVICES)),)
+
+SUB_DIR := devicepolicy/java
+
+LOCAL_SRC_FILES += \
+ $(call all-java-files-under,$(SUB_DIR))
+
+#DEFINED_SERVICES += com.android.server.devicepolicy.DevicePolicyManagerService
+
+endif
diff --git a/services/java/Android.mk b/services/java/Android.mk
deleted file mode 100644
index 8c3d0f0..0000000
--- a/services/java/Android.mk
+++ /dev/null
@@ -1,18 +0,0 @@
-LOCAL_PATH:= $(call my-dir)
-
-# the library
-# ============================================================
-include $(CLEAR_VARS)
-
-LOCAL_SRC_FILES := \
- $(call all-subdir-java-files) \
- com/android/server/EventLogTags.logtags \
- com/android/server/am/EventLogTags.logtags
-
-LOCAL_MODULE:= services
-
-LOCAL_JAVA_LIBRARIES := android.policy conscrypt telephony-common
-
-include $(BUILD_JAVA_LIBRARY)
-
-include $(BUILD_DROIDDOC)
diff --git a/services/java/com/android/server/AppWidgetService.java b/services/java/com/android/server/AppWidgetService.java
deleted file mode 100644
index 203cca6..0000000
--- a/services/java/com/android/server/AppWidgetService.java
+++ /dev/null
@@ -1,363 +0,0 @@
-/*
- * 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.
- */
-
-package com.android.server;
-
-import android.app.ActivityManager;
-import android.appwidget.AppWidgetProviderInfo;
-import android.content.BroadcastReceiver;
-import android.content.ComponentName;
-import android.content.Context;
-import android.content.Intent;
-import android.content.IntentFilter;
-import android.content.pm.PackageManager;
-import android.os.Binder;
-import android.os.Bundle;
-import android.os.Handler;
-import android.os.IBinder;
-import android.os.RemoteException;
-import android.os.UserHandle;
-import android.util.Slog;
-import android.util.SparseArray;
-import android.widget.RemoteViews;
-
-import com.android.internal.appwidget.IAppWidgetHost;
-import com.android.internal.appwidget.IAppWidgetService;
-import com.android.internal.os.BackgroundThread;
-import com.android.internal.util.IndentingPrintWriter;
-
-import java.io.FileDescriptor;
-import java.io.PrintWriter;
-import java.util.List;
-import java.util.Locale;
-
-
-/**
- * Redirects calls to this service to the instance of the service for the appropriate user.
- */
-class AppWidgetService extends IAppWidgetService.Stub
-{
- private static final String TAG = "AppWidgetService";
-
- Context mContext;
- Locale mLocale;
- PackageManager mPackageManager;
- boolean mSafeMode;
- private final Handler mSaveStateHandler;
-
- private final SparseArray<AppWidgetServiceImpl> mAppWidgetServices;
-
- AppWidgetService(Context context) {
- mContext = context;
-
- mSaveStateHandler = BackgroundThread.getHandler();
-
- mAppWidgetServices = new SparseArray<AppWidgetServiceImpl>(5);
- AppWidgetServiceImpl primary = new AppWidgetServiceImpl(context, 0, mSaveStateHandler);
- mAppWidgetServices.append(0, primary);
- }
-
- public void systemRunning(boolean safeMode) {
- mSafeMode = safeMode;
-
- mAppWidgetServices.get(0).systemReady(safeMode);
-
- // Register for the boot completed broadcast, so we can send the
- // ENABLE broacasts. If we try to send them now, they time out,
- // because the system isn't ready to handle them yet.
- mContext.registerReceiverAsUser(mBroadcastReceiver, UserHandle.ALL,
- new IntentFilter(Intent.ACTION_BOOT_COMPLETED), null, null);
-
- // Register for configuration changes so we can update the names
- // of the widgets when the locale changes.
- mContext.registerReceiverAsUser(mBroadcastReceiver, UserHandle.ALL,
- new IntentFilter(Intent.ACTION_CONFIGURATION_CHANGED), null, null);
-
- // Register for broadcasts about package install, etc., so we can
- // update the provider list.
- IntentFilter filter = new IntentFilter();
- filter.addAction(Intent.ACTION_PACKAGE_ADDED);
- filter.addAction(Intent.ACTION_PACKAGE_CHANGED);
- filter.addAction(Intent.ACTION_PACKAGE_REMOVED);
- filter.addDataScheme("package");
- mContext.registerReceiverAsUser(mBroadcastReceiver, UserHandle.ALL,
- filter, null, null);
- // Register for events related to sdcard installation.
- IntentFilter sdFilter = new IntentFilter();
- sdFilter.addAction(Intent.ACTION_EXTERNAL_APPLICATIONS_AVAILABLE);
- sdFilter.addAction(Intent.ACTION_EXTERNAL_APPLICATIONS_UNAVAILABLE);
- mContext.registerReceiverAsUser(mBroadcastReceiver, UserHandle.ALL,
- sdFilter, null, null);
-
- IntentFilter userFilter = new IntentFilter();
- userFilter.addAction(Intent.ACTION_USER_REMOVED);
- userFilter.addAction(Intent.ACTION_USER_STOPPING);
- mContext.registerReceiver(new BroadcastReceiver() {
- @Override
- public void onReceive(Context context, Intent intent) {
- if (Intent.ACTION_USER_REMOVED.equals(intent.getAction())) {
- onUserRemoved(intent.getIntExtra(Intent.EXTRA_USER_HANDLE,
- UserHandle.USER_NULL));
- } else if (Intent.ACTION_USER_STOPPING.equals(intent.getAction())) {
- onUserStopping(intent.getIntExtra(Intent.EXTRA_USER_HANDLE,
- UserHandle.USER_NULL));
- }
- }
- }, userFilter);
- }
-
- @Override
- public int allocateAppWidgetId(String packageName, int hostId, int userId)
- throws RemoteException {
- return getImplForUser(userId).allocateAppWidgetId(packageName, hostId);
- }
-
- @Override
- public int[] getAppWidgetIdsForHost(int hostId, int userId) throws RemoteException {
- return getImplForUser(userId).getAppWidgetIdsForHost(hostId);
- }
-
- @Override
- public void deleteAppWidgetId(int appWidgetId, int userId) throws RemoteException {
- getImplForUser(userId).deleteAppWidgetId(appWidgetId);
- }
-
- @Override
- public void deleteHost(int hostId, int userId) throws RemoteException {
- getImplForUser(userId).deleteHost(hostId);
- }
-
- @Override
- public void deleteAllHosts(int userId) throws RemoteException {
- getImplForUser(userId).deleteAllHosts();
- }
-
- @Override
- public void bindAppWidgetId(int appWidgetId, ComponentName provider, Bundle options, int userId)
- throws RemoteException {
- getImplForUser(userId).bindAppWidgetId(appWidgetId, provider, options);
- }
-
- @Override
- public boolean bindAppWidgetIdIfAllowed(
- String packageName, int appWidgetId, ComponentName provider, Bundle options, int userId)
- throws RemoteException {
- return getImplForUser(userId).bindAppWidgetIdIfAllowed(
- packageName, appWidgetId, provider, options);
- }
-
- @Override
- public boolean hasBindAppWidgetPermission(String packageName, int userId)
- throws RemoteException {
- return getImplForUser(userId).hasBindAppWidgetPermission(packageName);
- }
-
- @Override
- public void setBindAppWidgetPermission(String packageName, boolean permission, int userId)
- throws RemoteException {
- getImplForUser(userId).setBindAppWidgetPermission(packageName, permission);
- }
-
- @Override
- public void bindRemoteViewsService(int appWidgetId, Intent intent, IBinder connection,
- int userId) throws RemoteException {
- getImplForUser(userId).bindRemoteViewsService(appWidgetId, intent, connection);
- }
-
- @Override
- public int[] startListening(IAppWidgetHost host, String packageName, int hostId,
- List<RemoteViews> updatedViews, int userId) throws RemoteException {
- return getImplForUser(userId).startListening(host, packageName, hostId, updatedViews);
- }
-
- public void onUserRemoved(int userId) {
- if (userId < 1) return;
- synchronized (mAppWidgetServices) {
- AppWidgetServiceImpl impl = mAppWidgetServices.get(userId);
- mAppWidgetServices.remove(userId);
-
- if (impl == null) {
- AppWidgetServiceImpl.getSettingsFile(userId).delete();
- } else {
- impl.onUserRemoved();
- }
- }
- }
-
- public void onUserStopping(int userId) {
- if (userId < 1) return;
- synchronized (mAppWidgetServices) {
- AppWidgetServiceImpl impl = mAppWidgetServices.get(userId);
- if (impl != null) {
- mAppWidgetServices.remove(userId);
- impl.onUserStopping();
- }
- }
- }
-
- private void checkPermission(int userId) {
- int realUserId = ActivityManager.handleIncomingUser(
- Binder.getCallingPid(),
- Binder.getCallingUid(),
- userId,
- false, /* allowAll */
- true, /* requireFull */
- this.getClass().getSimpleName(),
- this.getClass().getPackage().getName());
- }
-
- private AppWidgetServiceImpl getImplForUser(int userId) {
- checkPermission(userId);
- boolean sendInitial = false;
- AppWidgetServiceImpl service;
- synchronized (mAppWidgetServices) {
- service = mAppWidgetServices.get(userId);
- if (service == null) {
- Slog.i(TAG, "Unable to find AppWidgetServiceImpl for user " + userId + ", adding");
- // TODO: Verify that it's a valid user
- service = new AppWidgetServiceImpl(mContext, userId, mSaveStateHandler);
- service.systemReady(mSafeMode);
- // Assume that BOOT_COMPLETED was received, as this is a non-primary user.
- mAppWidgetServices.append(userId, service);
- sendInitial = true;
- }
- }
- if (sendInitial) {
- service.sendInitialBroadcasts();
- }
- return service;
- }
-
- @Override
- public int[] getAppWidgetIds(ComponentName provider, int userId) throws RemoteException {
- return getImplForUser(userId).getAppWidgetIds(provider);
- }
-
- @Override
- public AppWidgetProviderInfo getAppWidgetInfo(int appWidgetId, int userId)
- throws RemoteException {
- return getImplForUser(userId).getAppWidgetInfo(appWidgetId);
- }
-
- @Override
- public RemoteViews getAppWidgetViews(int appWidgetId, int userId) throws RemoteException {
- return getImplForUser(userId).getAppWidgetViews(appWidgetId);
- }
-
- @Override
- public void updateAppWidgetOptions(int appWidgetId, Bundle options, int userId) {
- getImplForUser(userId).updateAppWidgetOptions(appWidgetId, options);
- }
-
- @Override
- public Bundle getAppWidgetOptions(int appWidgetId, int userId) {
- return getImplForUser(userId).getAppWidgetOptions(appWidgetId);
- }
-
- @Override
- public List<AppWidgetProviderInfo> getInstalledProviders(int categoryFilter, int userId)
- throws RemoteException {
- return getImplForUser(userId).getInstalledProviders(categoryFilter);
- }
-
- @Override
- public void notifyAppWidgetViewDataChanged(int[] appWidgetIds, int viewId, int userId)
- throws RemoteException {
- getImplForUser(userId).notifyAppWidgetViewDataChanged(
- appWidgetIds, viewId);
- }
-
- @Override
- public void partiallyUpdateAppWidgetIds(int[] appWidgetIds, RemoteViews views, int userId)
- throws RemoteException {
- getImplForUser(userId).partiallyUpdateAppWidgetIds(
- appWidgetIds, views);
- }
-
- @Override
- public void stopListening(int hostId, int userId) throws RemoteException {
- getImplForUser(userId).stopListening(hostId);
- }
-
- @Override
- public void unbindRemoteViewsService(int appWidgetId, Intent intent, int userId)
- throws RemoteException {
- getImplForUser(userId).unbindRemoteViewsService(
- appWidgetId, intent);
- }
-
- @Override
- public void updateAppWidgetIds(int[] appWidgetIds, RemoteViews views, int userId)
- throws RemoteException {
- getImplForUser(userId).updateAppWidgetIds(appWidgetIds, views);
- }
-
- @Override
- public void updateAppWidgetProvider(ComponentName provider, RemoteViews views, int userId)
- throws RemoteException {
- getImplForUser(userId).updateAppWidgetProvider(provider, views);
- }
-
- @Override
- public void dump(FileDescriptor fd, PrintWriter pw, String[] args) {
- mContext.enforceCallingOrSelfPermission(android.Manifest.permission.DUMP, TAG);
-
- // Dump the state of all the app widget providers
- synchronized (mAppWidgetServices) {
- IndentingPrintWriter ipw = new IndentingPrintWriter(pw, " ");
- for (int i = 0; i < mAppWidgetServices.size(); i++) {
- pw.println("User: " + mAppWidgetServices.keyAt(i));
- ipw.increaseIndent();
- AppWidgetServiceImpl service = mAppWidgetServices.valueAt(i);
- service.dump(fd, ipw, args);
- ipw.decreaseIndent();
- }
- }
- }
-
- BroadcastReceiver mBroadcastReceiver = new BroadcastReceiver() {
- public void onReceive(Context context, Intent intent) {
- String action = intent.getAction();
- // Slog.d(TAG, "received " + action);
- if (Intent.ACTION_BOOT_COMPLETED.equals(action)) {
- int userId = intent.getIntExtra(Intent.EXTRA_USER_HANDLE, UserHandle.USER_NULL);
- if (userId >= 0) {
- getImplForUser(userId).sendInitialBroadcasts();
- } else {
- Slog.w(TAG, "Incorrect user handle supplied in " + intent);
- }
- } else if (Intent.ACTION_CONFIGURATION_CHANGED.equals(action)) {
- for (int i = 0; i < mAppWidgetServices.size(); i++) {
- AppWidgetServiceImpl service = mAppWidgetServices.valueAt(i);
- service.onConfigurationChanged();
- }
- } else {
- int sendingUser = getSendingUserId();
- if (sendingUser == UserHandle.USER_ALL) {
- for (int i = 0; i < mAppWidgetServices.size(); i++) {
- AppWidgetServiceImpl service = mAppWidgetServices.valueAt(i);
- service.onBroadcastReceived(intent);
- }
- } else {
- AppWidgetServiceImpl service = mAppWidgetServices.get(sendingUser);
- if (service != null) {
- service.onBroadcastReceived(intent);
- }
- }
- }
- }
- };
-}
diff --git a/services/java/com/android/server/display/DisplayManagerService.java b/services/java/com/android/server/display/DisplayManagerService.java
deleted file mode 100644
index 02f26b3..0000000
--- a/services/java/com/android/server/display/DisplayManagerService.java
+++ /dev/null
@@ -1,1263 +0,0 @@
-/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.server.display;
-
-import com.android.internal.util.IndentingPrintWriter;
-
-import android.Manifest;
-import android.content.Context;
-import android.content.pm.PackageManager;
-import android.hardware.display.DisplayManager;
-import android.hardware.display.DisplayManagerGlobal;
-import android.hardware.display.IDisplayManager;
-import android.hardware.display.IDisplayManagerCallback;
-import android.hardware.display.WifiDisplayStatus;
-import android.os.Binder;
-import android.os.Handler;
-import android.os.IBinder;
-import android.os.Looper;
-import android.os.Message;
-import android.os.RemoteException;
-import android.os.SystemClock;
-import android.os.SystemProperties;
-import android.text.TextUtils;
-import android.util.Slog;
-import android.util.SparseArray;
-import android.view.Display;
-import android.view.DisplayInfo;
-import android.view.Surface;
-
-import com.android.server.UiThread;
-
-import java.io.FileDescriptor;
-import java.io.PrintWriter;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.concurrent.CopyOnWriteArrayList;
-
-/**
- * Manages attached displays.
- * <p>
- * The {@link DisplayManagerService} manages the global lifecycle of displays,
- * decides how to configure logical displays based on the physical display devices currently
- * attached, sends notifications to the system and to applications when the state
- * changes, and so on.
- * </p><p>
- * The display manager service relies on a collection of {@link DisplayAdapter} components,
- * for discovering and configuring physical display devices attached to the system.
- * There are separate display adapters for each manner that devices are attached:
- * one display adapter for built-in local displays, one for simulated non-functional
- * displays when the system is headless, one for simulated overlay displays used for
- * development, one for wifi displays, etc.
- * </p><p>
- * Display adapters are only weakly coupled to the display manager service.
- * Display adapters communicate changes in display device state to the display manager
- * service asynchronously via a {@link DisplayAdapter.Listener} registered
- * by the display manager service. This separation of concerns is important for
- * two main reasons. First, it neatly encapsulates the responsibilities of these
- * two classes: display adapters handle individual display devices whereas
- * the display manager service handles the global state. Second, it eliminates
- * the potential for deadlocks resulting from asynchronous display device discovery.
- * </p>
- *
- * <h3>Synchronization</h3>
- * <p>
- * Because the display manager may be accessed by multiple threads, the synchronization
- * story gets a little complicated. In particular, the window manager may call into
- * the display manager while holding a surface transaction with the expectation that
- * it can apply changes immediately. Unfortunately, that means we can't just do
- * everything asynchronously (*grump*).
- * </p><p>
- * To make this work, all of the objects that belong to the display manager must
- * use the same lock. We call this lock the synchronization root and it has a unique
- * type {@link DisplayManagerService.SyncRoot}. Methods that require this lock are
- * named with the "Locked" suffix.
- * </p><p>
- * Where things get tricky is that the display manager is not allowed to make
- * any potentially reentrant calls, especially into the window manager. We generally
- * avoid this by making all potentially reentrant out-calls asynchronous.
- * </p>
- */
-public final class DisplayManagerService extends IDisplayManager.Stub {
- private static final String TAG = "DisplayManagerService";
- private static final boolean DEBUG = false;
-
- // When this system property is set to 0, WFD is forcibly disabled on boot.
- // When this system property is set to 1, WFD is forcibly enabled on boot.
- // Otherwise WFD is enabled according to the value of config_enableWifiDisplay.
- private static final String FORCE_WIFI_DISPLAY_ENABLE = "persist.debug.wfd.enable";
-
- private static final String SYSTEM_HEADLESS = "ro.config.headless";
- private static final long WAIT_FOR_DEFAULT_DISPLAY_TIMEOUT = 10000;
-
- private static final int MSG_REGISTER_DEFAULT_DISPLAY_ADAPTER = 1;
- private static final int MSG_REGISTER_ADDITIONAL_DISPLAY_ADAPTERS = 2;
- private static final int MSG_DELIVER_DISPLAY_EVENT = 3;
- private static final int MSG_REQUEST_TRAVERSAL = 4;
- private static final int MSG_UPDATE_VIEWPORT = 5;
-
- private static final int DISPLAY_BLANK_STATE_UNKNOWN = 0;
- private static final int DISPLAY_BLANK_STATE_BLANKED = 1;
- private static final int DISPLAY_BLANK_STATE_UNBLANKED = 2;
-
- private final Context mContext;
- private final boolean mHeadless;
- private final DisplayManagerHandler mHandler;
- private final Handler mUiHandler;
- private final DisplayAdapterListener mDisplayAdapterListener;
- private WindowManagerFuncs mWindowManagerFuncs;
- private InputManagerFuncs mInputManagerFuncs;
-
- // The synchronization root for the display manager.
- // This lock guards most of the display manager's state.
- // NOTE: This is synchronized on while holding WindowManagerService.mWindowMap so never call
- // into WindowManagerService methods that require mWindowMap while holding this unless you are
- // very very sure that no deadlock can occur.
- private final SyncRoot mSyncRoot = new SyncRoot();
-
- // True if in safe mode.
- // This option may disable certain display adapters.
- public boolean mSafeMode;
-
- // True if we are in a special boot mode where only core applications and
- // services should be started. This option may disable certain display adapters.
- public boolean mOnlyCore;
-
- // True if the display manager service should pretend there is only one display
- // and only tell applications about the existence of the default logical display.
- // The display manager can still mirror content to secondary displays but applications
- // cannot present unique content on those displays.
- // Used for demonstration purposes only.
- private final boolean mSingleDisplayDemoMode;
-
- // All callback records indexed by calling process id.
- public final SparseArray<CallbackRecord> mCallbacks =
- new SparseArray<CallbackRecord>();
-
- // List of all currently registered display adapters.
- private final ArrayList<DisplayAdapter> mDisplayAdapters = new ArrayList<DisplayAdapter>();
-
- // List of all currently connected display devices.
- private final ArrayList<DisplayDevice> mDisplayDevices = new ArrayList<DisplayDevice>();
-
- // List of all logical displays indexed by logical display id.
- private final SparseArray<LogicalDisplay> mLogicalDisplays =
- new SparseArray<LogicalDisplay>();
- private int mNextNonDefaultDisplayId = Display.DEFAULT_DISPLAY + 1;
-
- // List of all display transaction listeners.
- private final CopyOnWriteArrayList<DisplayTransactionListener> mDisplayTransactionListeners =
- new CopyOnWriteArrayList<DisplayTransactionListener>();
-
- // Set to true if all displays have been blanked by the power manager.
- private int mAllDisplayBlankStateFromPowerManager = DISPLAY_BLANK_STATE_UNKNOWN;
-
- // Set to true when there are pending display changes that have yet to be applied
- // to the surface flinger state.
- private boolean mPendingTraversal;
-
- // The Wifi display adapter, or null if not registered.
- private WifiDisplayAdapter mWifiDisplayAdapter;
-
- // The virtual display adapter, or null if not registered.
- private VirtualDisplayAdapter mVirtualDisplayAdapter;
-
- // Viewports of the default display and the display that should receive touch
- // input from an external source. Used by the input system.
- private final DisplayViewport mDefaultViewport = new DisplayViewport();
- private final DisplayViewport mExternalTouchViewport = new DisplayViewport();
-
- // Persistent data store for all internal settings maintained by the display manager service.
- private final PersistentDataStore mPersistentDataStore = new PersistentDataStore();
-
- // Temporary callback list, used when sending display events to applications.
- // May be used outside of the lock but only on the handler thread.
- private final ArrayList<CallbackRecord> mTempCallbacks = new ArrayList<CallbackRecord>();
-
- // Temporary display info, used for comparing display configurations.
- private final DisplayInfo mTempDisplayInfo = new DisplayInfo();
-
- // Temporary viewports, used when sending new viewport information to the
- // input system. May be used outside of the lock but only on the handler thread.
- private final DisplayViewport mTempDefaultViewport = new DisplayViewport();
- private final DisplayViewport mTempExternalTouchViewport = new DisplayViewport();
-
- public DisplayManagerService(Context context, Handler mainHandler) {
- mContext = context;
- mHeadless = SystemProperties.get(SYSTEM_HEADLESS).equals("1");
-
- mHandler = new DisplayManagerHandler(mainHandler.getLooper());
- mUiHandler = UiThread.getHandler();
- mDisplayAdapterListener = new DisplayAdapterListener();
- mSingleDisplayDemoMode = SystemProperties.getBoolean("persist.demo.singledisplay", false);
-
- mHandler.sendEmptyMessage(MSG_REGISTER_DEFAULT_DISPLAY_ADAPTER);
- }
-
- /**
- * Pauses the boot process to wait for the first display to be initialized.
- */
- public boolean waitForDefaultDisplay() {
- synchronized (mSyncRoot) {
- long timeout = SystemClock.uptimeMillis() + WAIT_FOR_DEFAULT_DISPLAY_TIMEOUT;
- while (mLogicalDisplays.get(Display.DEFAULT_DISPLAY) == null) {
- long delay = timeout - SystemClock.uptimeMillis();
- if (delay <= 0) {
- return false;
- }
- if (DEBUG) {
- Slog.d(TAG, "waitForDefaultDisplay: waiting, timeout=" + delay);
- }
- try {
- mSyncRoot.wait(delay);
- } catch (InterruptedException ex) {
- }
- }
- }
- return true;
- }
-
- /**
- * Called during initialization to associate the display manager with the
- * window manager.
- */
- public void setWindowManager(WindowManagerFuncs windowManagerFuncs) {
- synchronized (mSyncRoot) {
- mWindowManagerFuncs = windowManagerFuncs;
- scheduleTraversalLocked(false);
- }
- }
-
- /**
- * Called during initialization to associate the display manager with the
- * input manager.
- */
- public void setInputManager(InputManagerFuncs inputManagerFuncs) {
- synchronized (mSyncRoot) {
- mInputManagerFuncs = inputManagerFuncs;
- scheduleTraversalLocked(false);
- }
- }
-
- /**
- * Called when the system is ready to go.
- */
- public void systemReady(boolean safeMode, boolean onlyCore) {
- synchronized (mSyncRoot) {
- mSafeMode = safeMode;
- mOnlyCore = onlyCore;
- }
-
- mHandler.sendEmptyMessage(MSG_REGISTER_ADDITIONAL_DISPLAY_ADAPTERS);
- }
-
- /**
- * Returns true if the device is headless.
- *
- * @return True if the device is headless.
- */
- public boolean isHeadless() {
- return mHeadless;
- }
-
- /**
- * Registers a display transaction listener to provide the client a chance to
- * update its surfaces within the same transaction as any display layout updates.
- *
- * @param listener The listener to register.
- */
- public void registerDisplayTransactionListener(DisplayTransactionListener listener) {
- if (listener == null) {
- throw new IllegalArgumentException("listener must not be null");
- }
-
- // List is self-synchronized copy-on-write.
- mDisplayTransactionListeners.add(listener);
- }
-
- /**
- * Unregisters a display transaction listener to provide the client a chance to
- * update its surfaces within the same transaction as any display layout updates.
- *
- * @param listener The listener to unregister.
- */
- public void unregisterDisplayTransactionListener(DisplayTransactionListener listener) {
- if (listener == null) {
- throw new IllegalArgumentException("listener must not be null");
- }
-
- // List is self-synchronized copy-on-write.
- mDisplayTransactionListeners.remove(listener);
- }
-
- /**
- * Overrides the display information of a particular logical display.
- * This is used by the window manager to control the size and characteristics
- * of the default display. It is expected to apply the requested change
- * to the display information synchronously so that applications will immediately
- * observe the new state.
- *
- * NOTE: This method must be the only entry point by which the window manager
- * influences the logical configuration of displays.
- *
- * @param displayId The logical display id.
- * @param info The new data to be stored.
- */
- public void setDisplayInfoOverrideFromWindowManager(
- int displayId, DisplayInfo info) {
- synchronized (mSyncRoot) {
- LogicalDisplay display = mLogicalDisplays.get(displayId);
- if (display != null) {
- if (display.setDisplayInfoOverrideFromWindowManagerLocked(info)) {
- sendDisplayEventLocked(displayId, DisplayManagerGlobal.EVENT_DISPLAY_CHANGED);
- scheduleTraversalLocked(false);
- }
- }
- }
- }
-
- /**
- * Called by the window manager to perform traversals while holding a
- * surface flinger transaction.
- */
- public void performTraversalInTransactionFromWindowManager() {
- synchronized (mSyncRoot) {
- if (!mPendingTraversal) {
- return;
- }
- mPendingTraversal = false;
-
- performTraversalInTransactionLocked();
- }
-
- // List is self-synchronized copy-on-write.
- for (DisplayTransactionListener listener : mDisplayTransactionListeners) {
- listener.onDisplayTransaction();
- }
- }
-
- /**
- * Called by the power manager to blank all displays.
- */
- public void blankAllDisplaysFromPowerManager() {
- synchronized (mSyncRoot) {
- if (mAllDisplayBlankStateFromPowerManager != DISPLAY_BLANK_STATE_BLANKED) {
- mAllDisplayBlankStateFromPowerManager = DISPLAY_BLANK_STATE_BLANKED;
- updateAllDisplayBlankingLocked();
- scheduleTraversalLocked(false);
- }
- }
- }
-
- /**
- * Called by the power manager to unblank all displays.
- */
- public void unblankAllDisplaysFromPowerManager() {
- synchronized (mSyncRoot) {
- if (mAllDisplayBlankStateFromPowerManager != DISPLAY_BLANK_STATE_UNBLANKED) {
- mAllDisplayBlankStateFromPowerManager = DISPLAY_BLANK_STATE_UNBLANKED;
- updateAllDisplayBlankingLocked();
- scheduleTraversalLocked(false);
- }
- }
- }
-
- /**
- * Returns information about the specified logical display.
- *
- * @param displayId The logical display id.
- * @return The logical display info, or null if the display does not exist. The
- * returned object must be treated as immutable.
- */
- @Override // Binder call
- public DisplayInfo getDisplayInfo(int displayId) {
- final int callingUid = Binder.getCallingUid();
- final long token = Binder.clearCallingIdentity();
- try {
- synchronized (mSyncRoot) {
- LogicalDisplay display = mLogicalDisplays.get(displayId);
- if (display != null) {
- DisplayInfo info = display.getDisplayInfoLocked();
- if (info.hasAccess(callingUid)) {
- return info;
- }
- }
- return null;
- }
- } finally {
- Binder.restoreCallingIdentity(token);
- }
- }
-
- /**
- * Returns the list of all display ids.
- */
- @Override // Binder call
- public int[] getDisplayIds() {
- final int callingUid = Binder.getCallingUid();
- final long token = Binder.clearCallingIdentity();
- try {
- synchronized (mSyncRoot) {
- final int count = mLogicalDisplays.size();
- int[] displayIds = new int[count];
- int n = 0;
- for (int i = 0; i < count; i++) {
- LogicalDisplay display = mLogicalDisplays.valueAt(i);
- DisplayInfo info = display.getDisplayInfoLocked();
- if (info.hasAccess(callingUid)) {
- displayIds[n++] = mLogicalDisplays.keyAt(i);
- }
- }
- if (n != count) {
- displayIds = Arrays.copyOfRange(displayIds, 0, n);
- }
- return displayIds;
- }
- } finally {
- Binder.restoreCallingIdentity(token);
- }
- }
-
- @Override // Binder call
- public void registerCallback(IDisplayManagerCallback callback) {
- if (callback == null) {
- throw new IllegalArgumentException("listener must not be null");
- }
-
- synchronized (mSyncRoot) {
- int callingPid = Binder.getCallingPid();
- if (mCallbacks.get(callingPid) != null) {
- throw new SecurityException("The calling process has already "
- + "registered an IDisplayManagerCallback.");
- }
-
- CallbackRecord record = new CallbackRecord(callingPid, callback);
- try {
- IBinder binder = callback.asBinder();
- binder.linkToDeath(record, 0);
- } catch (RemoteException ex) {
- // give up
- throw new RuntimeException(ex);
- }
-
- mCallbacks.put(callingPid, record);
- }
- }
-
- private void onCallbackDied(int pid) {
- synchronized (mSyncRoot) {
- mCallbacks.remove(pid);
- }
- }
-
- @Override // Binder call
- public void scanWifiDisplays() {
- mContext.enforceCallingOrSelfPermission(Manifest.permission.CONFIGURE_WIFI_DISPLAY,
- "Permission required to scan wifi displays");
-
- final long token = Binder.clearCallingIdentity();
- try {
- synchronized (mSyncRoot) {
- if (mWifiDisplayAdapter != null) {
- mWifiDisplayAdapter.requestScanLocked();
- }
- }
- } finally {
- Binder.restoreCallingIdentity(token);
- }
- }
-
- @Override // Binder call
- public void connectWifiDisplay(String address) {
- if (address == null) {
- throw new IllegalArgumentException("address must not be null");
- }
- mContext.enforceCallingOrSelfPermission(Manifest.permission.CONFIGURE_WIFI_DISPLAY,
- "Permission required to connect to a wifi display");
-
- final long token = Binder.clearCallingIdentity();
- try {
- synchronized (mSyncRoot) {
- if (mWifiDisplayAdapter != null) {
- mWifiDisplayAdapter.requestConnectLocked(address);
- }
- }
- } finally {
- Binder.restoreCallingIdentity(token);
- }
- }
-
- @Override
- public void pauseWifiDisplay() {
- mContext.enforceCallingOrSelfPermission(Manifest.permission.CONFIGURE_WIFI_DISPLAY,
- "Permission required to pause a wifi display session");
-
- final long token = Binder.clearCallingIdentity();
- try {
- synchronized (mSyncRoot) {
- if (mWifiDisplayAdapter != null) {
- mWifiDisplayAdapter.requestPauseLocked();
- }
- }
- } finally {
- Binder.restoreCallingIdentity(token);
- }
- }
-
- @Override
- public void resumeWifiDisplay() {
- mContext.enforceCallingOrSelfPermission(Manifest.permission.CONFIGURE_WIFI_DISPLAY,
- "Permission required to resume a wifi display session");
-
- final long token = Binder.clearCallingIdentity();
- try {
- synchronized (mSyncRoot) {
- if (mWifiDisplayAdapter != null) {
- mWifiDisplayAdapter.requestResumeLocked();
- }
- }
- } finally {
- Binder.restoreCallingIdentity(token);
- }
- }
-
- @Override // Binder call
- public void disconnectWifiDisplay() {
- // This request does not require special permissions.
- // Any app can request disconnection from the currently active wifi display.
- // This exception should no longer be needed once wifi display control moves
- // to the media router service.
-
- final long token = Binder.clearCallingIdentity();
- try {
- synchronized (mSyncRoot) {
- if (mWifiDisplayAdapter != null) {
- mWifiDisplayAdapter.requestDisconnectLocked();
- }
- }
- } finally {
- Binder.restoreCallingIdentity(token);
- }
- }
-
- @Override // Binder call
- public void renameWifiDisplay(String address, String alias) {
- if (address == null) {
- throw new IllegalArgumentException("address must not be null");
- }
- mContext.enforceCallingOrSelfPermission(Manifest.permission.CONFIGURE_WIFI_DISPLAY,
- "Permission required to rename to a wifi display");
-
- final long token = Binder.clearCallingIdentity();
- try {
- synchronized (mSyncRoot) {
- if (mWifiDisplayAdapter != null) {
- mWifiDisplayAdapter.requestRenameLocked(address, alias);
- }
- }
- } finally {
- Binder.restoreCallingIdentity(token);
- }
- }
-
- @Override // Binder call
- public void forgetWifiDisplay(String address) {
- if (address == null) {
- throw new IllegalArgumentException("address must not be null");
- }
- mContext.enforceCallingOrSelfPermission(Manifest.permission.CONFIGURE_WIFI_DISPLAY,
- "Permission required to forget to a wifi display");
-
- final long token = Binder.clearCallingIdentity();
- try {
- synchronized (mSyncRoot) {
- if (mWifiDisplayAdapter != null) {
- mWifiDisplayAdapter.requestForgetLocked(address);
- }
- }
- } finally {
- Binder.restoreCallingIdentity(token);
- }
- }
-
- @Override // Binder call
- public WifiDisplayStatus getWifiDisplayStatus() {
- // This request does not require special permissions.
- // Any app can get information about available wifi displays.
-
- final long token = Binder.clearCallingIdentity();
- try {
- synchronized (mSyncRoot) {
- if (mWifiDisplayAdapter != null) {
- return mWifiDisplayAdapter.getWifiDisplayStatusLocked();
- }
- return new WifiDisplayStatus();
- }
- } finally {
- Binder.restoreCallingIdentity(token);
- }
- }
-
- @Override // Binder call
- public int createVirtualDisplay(IBinder appToken, String packageName,
- String name, int width, int height, int densityDpi, Surface surface, int flags) {
- final int callingUid = Binder.getCallingUid();
- if (!validatePackageName(callingUid, packageName)) {
- throw new SecurityException("packageName must match the calling uid");
- }
- if (appToken == null) {
- throw new IllegalArgumentException("appToken must not be null");
- }
- if (TextUtils.isEmpty(name)) {
- throw new IllegalArgumentException("name must be non-null and non-empty");
- }
- if (width <= 0 || height <= 0 || densityDpi <= 0) {
- throw new IllegalArgumentException("width, height, and densityDpi must be "
- + "greater than 0");
- }
- if (surface == null) {
- throw new IllegalArgumentException("surface must not be null");
- }
- if ((flags & DisplayManager.VIRTUAL_DISPLAY_FLAG_PUBLIC) != 0) {
- if (mContext.checkCallingPermission(android.Manifest.permission.CAPTURE_VIDEO_OUTPUT)
- != PackageManager.PERMISSION_GRANTED
- && mContext.checkCallingPermission(
- android.Manifest.permission.CAPTURE_SECURE_VIDEO_OUTPUT)
- != PackageManager.PERMISSION_GRANTED) {
- throw new SecurityException("Requires CAPTURE_VIDEO_OUTPUT or "
- + "CAPTURE_SECURE_VIDEO_OUTPUT permission to create a "
- + "public virtual display.");
- }
- }
- if ((flags & DisplayManager.VIRTUAL_DISPLAY_FLAG_SECURE) != 0) {
- if (mContext.checkCallingPermission(
- android.Manifest.permission.CAPTURE_SECURE_VIDEO_OUTPUT)
- != PackageManager.PERMISSION_GRANTED) {
- throw new SecurityException("Requires CAPTURE_SECURE_VIDEO_OUTPUT "
- + "to create a secure virtual display.");
- }
- }
-
- final long token = Binder.clearCallingIdentity();
- try {
- synchronized (mSyncRoot) {
- if (mVirtualDisplayAdapter == null) {
- Slog.w(TAG, "Rejecting request to create private virtual display "
- + "because the virtual display adapter is not available.");
- return -1;
- }
-
- DisplayDevice device = mVirtualDisplayAdapter.createVirtualDisplayLocked(
- appToken, callingUid, packageName, name, width, height, densityDpi,
- surface, flags);
- if (device == null) {
- return -1;
- }
-
- handleDisplayDeviceAddedLocked(device);
- LogicalDisplay display = findLogicalDisplayForDeviceLocked(device);
- if (display != null) {
- return display.getDisplayIdLocked();
- }
-
- // Something weird happened and the logical display was not created.
- Slog.w(TAG, "Rejecting request to create virtual display "
- + "because the logical display was not created.");
- mVirtualDisplayAdapter.releaseVirtualDisplayLocked(appToken);
- handleDisplayDeviceRemovedLocked(device);
- }
- } finally {
- Binder.restoreCallingIdentity(token);
- }
- return -1;
- }
-
- @Override // Binder call
- public void releaseVirtualDisplay(IBinder appToken) {
- final long token = Binder.clearCallingIdentity();
- try {
- synchronized (mSyncRoot) {
- if (mVirtualDisplayAdapter == null) {
- return;
- }
-
- DisplayDevice device =
- mVirtualDisplayAdapter.releaseVirtualDisplayLocked(appToken);
- if (device != null) {
- handleDisplayDeviceRemovedLocked(device);
- }
- }
- } finally {
- Binder.restoreCallingIdentity(token);
- }
- }
-
- private boolean validatePackageName(int uid, String packageName) {
- if (packageName != null) {
- String[] packageNames = mContext.getPackageManager().getPackagesForUid(uid);
- if (packageNames != null) {
- for (String n : packageNames) {
- if (n.equals(packageName)) {
- return true;
- }
- }
- }
- }
- return false;
- }
-
- private void registerDefaultDisplayAdapter() {
- // Register default display adapter.
- synchronized (mSyncRoot) {
- if (mHeadless) {
- registerDisplayAdapterLocked(new HeadlessDisplayAdapter(
- mSyncRoot, mContext, mHandler, mDisplayAdapterListener));
- } else {
- registerDisplayAdapterLocked(new LocalDisplayAdapter(
- mSyncRoot, mContext, mHandler, mDisplayAdapterListener));
- }
- }
- }
-
- private void registerAdditionalDisplayAdapters() {
- synchronized (mSyncRoot) {
- if (shouldRegisterNonEssentialDisplayAdaptersLocked()) {
- registerOverlayDisplayAdapterLocked();
- registerWifiDisplayAdapterLocked();
- registerVirtualDisplayAdapterLocked();
- }
- }
- }
-
- private void registerOverlayDisplayAdapterLocked() {
- registerDisplayAdapterLocked(new OverlayDisplayAdapter(
- mSyncRoot, mContext, mHandler, mDisplayAdapterListener, mUiHandler));
- }
-
- private void registerWifiDisplayAdapterLocked() {
- if (mContext.getResources().getBoolean(
- com.android.internal.R.bool.config_enableWifiDisplay)
- || SystemProperties.getInt(FORCE_WIFI_DISPLAY_ENABLE, -1) == 1) {
- mWifiDisplayAdapter = new WifiDisplayAdapter(
- mSyncRoot, mContext, mHandler, mDisplayAdapterListener,
- mPersistentDataStore);
- registerDisplayAdapterLocked(mWifiDisplayAdapter);
- }
- }
-
- private void registerVirtualDisplayAdapterLocked() {
- mVirtualDisplayAdapter = new VirtualDisplayAdapter(
- mSyncRoot, mContext, mHandler, mDisplayAdapterListener);
- registerDisplayAdapterLocked(mVirtualDisplayAdapter);
- }
-
- private boolean shouldRegisterNonEssentialDisplayAdaptersLocked() {
- // In safe mode, we disable non-essential display adapters to give the user
- // an opportunity to fix broken settings or other problems that might affect
- // system stability.
- // In only-core mode, we disable non-essential display adapters to minimize
- // the number of dependencies that are started while in this mode and to
- // prevent problems that might occur due to the device being encrypted.
- return !mSafeMode && !mOnlyCore;
- }
-
- private void registerDisplayAdapterLocked(DisplayAdapter adapter) {
- mDisplayAdapters.add(adapter);
- adapter.registerLocked();
- }
-
- private void handleDisplayDeviceAdded(DisplayDevice device) {
- synchronized (mSyncRoot) {
- handleDisplayDeviceAddedLocked(device);
- }
- }
-
- private void handleDisplayDeviceAddedLocked(DisplayDevice device) {
- if (mDisplayDevices.contains(device)) {
- Slog.w(TAG, "Attempted to add already added display device: "
- + device.getDisplayDeviceInfoLocked());
- return;
- }
-
- Slog.i(TAG, "Display device added: " + device.getDisplayDeviceInfoLocked());
-
- mDisplayDevices.add(device);
- addLogicalDisplayLocked(device);
- updateDisplayBlankingLocked(device);
- scheduleTraversalLocked(false);
- }
-
- private void handleDisplayDeviceChanged(DisplayDevice device) {
- synchronized (mSyncRoot) {
- if (!mDisplayDevices.contains(device)) {
- Slog.w(TAG, "Attempted to change non-existent display device: "
- + device.getDisplayDeviceInfoLocked());
- return;
- }
-
- Slog.i(TAG, "Display device changed: " + device.getDisplayDeviceInfoLocked());
-
- device.applyPendingDisplayDeviceInfoChangesLocked();
- if (updateLogicalDisplaysLocked()) {
- scheduleTraversalLocked(false);
- }
- }
- }
-
- private void handleDisplayDeviceRemoved(DisplayDevice device) {
- synchronized (mSyncRoot) {
- handleDisplayDeviceRemovedLocked(device);
- }
- }
- private void handleDisplayDeviceRemovedLocked(DisplayDevice device) {
- if (!mDisplayDevices.remove(device)) {
- Slog.w(TAG, "Attempted to remove non-existent display device: "
- + device.getDisplayDeviceInfoLocked());
- return;
- }
-
- Slog.i(TAG, "Display device removed: " + device.getDisplayDeviceInfoLocked());
-
- updateLogicalDisplaysLocked();
- scheduleTraversalLocked(false);
- }
-
- private void updateAllDisplayBlankingLocked() {
- final int count = mDisplayDevices.size();
- for (int i = 0; i < count; i++) {
- DisplayDevice device = mDisplayDevices.get(i);
- updateDisplayBlankingLocked(device);
- }
- }
-
- private void updateDisplayBlankingLocked(DisplayDevice device) {
- // Blank or unblank the display immediately to match the state requested
- // by the power manager (if known).
- DisplayDeviceInfo info = device.getDisplayDeviceInfoLocked();
- if ((info.flags & DisplayDeviceInfo.FLAG_NEVER_BLANK) == 0) {
- switch (mAllDisplayBlankStateFromPowerManager) {
- case DISPLAY_BLANK_STATE_BLANKED:
- device.blankLocked();
- break;
- case DISPLAY_BLANK_STATE_UNBLANKED:
- device.unblankLocked();
- break;
- }
- }
- }
-
- // Adds a new logical display based on the given display device.
- // Sends notifications if needed.
- private void addLogicalDisplayLocked(DisplayDevice device) {
- DisplayDeviceInfo deviceInfo = device.getDisplayDeviceInfoLocked();
- boolean isDefault = (deviceInfo.flags
- & DisplayDeviceInfo.FLAG_DEFAULT_DISPLAY) != 0;
- if (isDefault && mLogicalDisplays.get(Display.DEFAULT_DISPLAY) != null) {
- Slog.w(TAG, "Ignoring attempt to add a second default display: " + deviceInfo);
- isDefault = false;
- }
-
- if (!isDefault && mSingleDisplayDemoMode) {
- Slog.i(TAG, "Not creating a logical display for a secondary display "
- + " because single display demo mode is enabled: " + deviceInfo);
- return;
- }
-
- final int displayId = assignDisplayIdLocked(isDefault);
- final int layerStack = assignLayerStackLocked(displayId);
-
- LogicalDisplay display = new LogicalDisplay(displayId, layerStack, device);
- display.updateLocked(mDisplayDevices);
- if (!display.isValidLocked()) {
- // This should never happen currently.
- Slog.w(TAG, "Ignoring display device because the logical display "
- + "created from it was not considered valid: " + deviceInfo);
- return;
- }
-
- mLogicalDisplays.put(displayId, display);
-
- // Wake up waitForDefaultDisplay.
- if (isDefault) {
- mSyncRoot.notifyAll();
- }
-
- sendDisplayEventLocked(displayId, DisplayManagerGlobal.EVENT_DISPLAY_ADDED);
- }
-
- private int assignDisplayIdLocked(boolean isDefault) {
- return isDefault ? Display.DEFAULT_DISPLAY : mNextNonDefaultDisplayId++;
- }
-
- private int assignLayerStackLocked(int displayId) {
- // Currently layer stacks and display ids are the same.
- // This need not be the case.
- return displayId;
- }
-
- // Updates all existing logical displays given the current set of display devices.
- // Removes invalid logical displays.
- // Sends notifications if needed.
- private boolean updateLogicalDisplaysLocked() {
- boolean changed = false;
- for (int i = mLogicalDisplays.size(); i-- > 0; ) {
- final int displayId = mLogicalDisplays.keyAt(i);
- LogicalDisplay display = mLogicalDisplays.valueAt(i);
-
- mTempDisplayInfo.copyFrom(display.getDisplayInfoLocked());
- display.updateLocked(mDisplayDevices);
- if (!display.isValidLocked()) {
- mLogicalDisplays.removeAt(i);
- sendDisplayEventLocked(displayId, DisplayManagerGlobal.EVENT_DISPLAY_REMOVED);
- changed = true;
- } else if (!mTempDisplayInfo.equals(display.getDisplayInfoLocked())) {
- sendDisplayEventLocked(displayId, DisplayManagerGlobal.EVENT_DISPLAY_CHANGED);
- changed = true;
- }
- }
- return changed;
- }
-
- private void performTraversalInTransactionLocked() {
- // Clear all viewports before configuring displays so that we can keep
- // track of which ones we have configured.
- clearViewportsLocked();
-
- // Configure each display device.
- final int count = mDisplayDevices.size();
- for (int i = 0; i < count; i++) {
- DisplayDevice device = mDisplayDevices.get(i);
- configureDisplayInTransactionLocked(device);
- device.performTraversalInTransactionLocked();
- }
-
- // Tell the input system about these new viewports.
- if (mInputManagerFuncs != null) {
- mHandler.sendEmptyMessage(MSG_UPDATE_VIEWPORT);
- }
- }
-
- /**
- * Tells the display manager whether there is interesting unique content on the
- * specified logical display. This is used to control automatic mirroring.
- * <p>
- * If the display has unique content, then the display manager arranges for it
- * to be presented on a physical display if appropriate. Otherwise, the display manager
- * may choose to make the physical display mirror some other logical display.
- * </p>
- *
- * @param displayId The logical display id to update.
- * @param hasContent True if the logical display has content.
- * @param inTraversal True if called from WindowManagerService during a window traversal prior
- * to call to performTraversalInTransactionFromWindowManager.
- */
- public void setDisplayHasContent(int displayId, boolean hasContent, boolean inTraversal) {
- synchronized (mSyncRoot) {
- LogicalDisplay display = mLogicalDisplays.get(displayId);
- if (display != null && display.hasContentLocked() != hasContent) {
- if (DEBUG) {
- Slog.d(TAG, "Display " + displayId + " hasContent flag changed: "
- + "hasContent=" + hasContent + ", inTraversal=" + inTraversal);
- }
-
- display.setHasContentLocked(hasContent);
- scheduleTraversalLocked(inTraversal);
- }
- }
- }
-
- private void clearViewportsLocked() {
- mDefaultViewport.valid = false;
- mExternalTouchViewport.valid = false;
- }
-
- private void configureDisplayInTransactionLocked(DisplayDevice device) {
- DisplayDeviceInfo info = device.getDisplayDeviceInfoLocked();
- boolean isPrivate = (info.flags & DisplayDeviceInfo.FLAG_PRIVATE) != 0;
-
- // Find the logical display that the display device is showing.
- // Private displays never mirror other displays.
- LogicalDisplay display = findLogicalDisplayForDeviceLocked(device);
- if (!isPrivate) {
- if (display != null && !display.hasContentLocked()) {
- // If the display does not have any content of its own, then
- // automatically mirror the default logical display contents.
- display = null;
- }
- if (display == null) {
- display = mLogicalDisplays.get(Display.DEFAULT_DISPLAY);
- }
- }
-
- // Apply the logical display configuration to the display device.
- if (display == null) {
- // TODO: no logical display for the device, blank it
- Slog.w(TAG, "Missing logical display to use for physical display device: "
- + device.getDisplayDeviceInfoLocked());
- return;
- }
- boolean isBlanked = (mAllDisplayBlankStateFromPowerManager == DISPLAY_BLANK_STATE_BLANKED)
- && (info.flags & DisplayDeviceInfo.FLAG_NEVER_BLANK) == 0;
- display.configureDisplayInTransactionLocked(device, isBlanked);
-
- // Update the viewports if needed.
- if (!mDefaultViewport.valid
- && (info.flags & DisplayDeviceInfo.FLAG_DEFAULT_DISPLAY) != 0) {
- setViewportLocked(mDefaultViewport, display, device);
- }
- if (!mExternalTouchViewport.valid
- && info.touch == DisplayDeviceInfo.TOUCH_EXTERNAL) {
- setViewportLocked(mExternalTouchViewport, display, device);
- }
- }
-
- private static void setViewportLocked(DisplayViewport viewport,
- LogicalDisplay display, DisplayDevice device) {
- viewport.valid = true;
- viewport.displayId = display.getDisplayIdLocked();
- device.populateViewportLocked(viewport);
- }
-
- private LogicalDisplay findLogicalDisplayForDeviceLocked(DisplayDevice device) {
- final int count = mLogicalDisplays.size();
- for (int i = 0; i < count; i++) {
- LogicalDisplay display = mLogicalDisplays.valueAt(i);
- if (display.getPrimaryDisplayDeviceLocked() == device) {
- return display;
- }
- }
- return null;
- }
-
- private void sendDisplayEventLocked(int displayId, int event) {
- Message msg = mHandler.obtainMessage(MSG_DELIVER_DISPLAY_EVENT, displayId, event);
- mHandler.sendMessage(msg);
- }
-
- // Requests that performTraversalsInTransactionFromWindowManager be called at a
- // later time to apply changes to surfaces and displays.
- private void scheduleTraversalLocked(boolean inTraversal) {
- if (!mPendingTraversal && mWindowManagerFuncs != null) {
- mPendingTraversal = true;
- if (!inTraversal) {
- mHandler.sendEmptyMessage(MSG_REQUEST_TRAVERSAL);
- }
- }
- }
-
- // Runs on Handler thread.
- // Delivers display event notifications to callbacks.
- private void deliverDisplayEvent(int displayId, int event) {
- if (DEBUG) {
- Slog.d(TAG, "Delivering display event: displayId="
- + displayId + ", event=" + event);
- }
-
- // Grab the lock and copy the callbacks.
- final int count;
- synchronized (mSyncRoot) {
- count = mCallbacks.size();
- mTempCallbacks.clear();
- for (int i = 0; i < count; i++) {
- mTempCallbacks.add(mCallbacks.valueAt(i));
- }
- }
-
- // After releasing the lock, send the notifications out.
- for (int i = 0; i < count; i++) {
- mTempCallbacks.get(i).notifyDisplayEventAsync(displayId, event);
- }
- mTempCallbacks.clear();
- }
-
- @Override // Binder call
- public void dump(FileDescriptor fd, final PrintWriter pw, String[] args) {
- if (mContext == null
- || mContext.checkCallingOrSelfPermission(Manifest.permission.DUMP)
- != PackageManager.PERMISSION_GRANTED) {
- pw.println("Permission Denial: can't dump DisplayManager from from pid="
- + Binder.getCallingPid() + ", uid=" + Binder.getCallingUid());
- return;
- }
-
- pw.println("DISPLAY MANAGER (dumpsys display)");
-
- synchronized (mSyncRoot) {
- pw.println(" mHeadless=" + mHeadless);
- pw.println(" mOnlyCode=" + mOnlyCore);
- pw.println(" mSafeMode=" + mSafeMode);
- pw.println(" mPendingTraversal=" + mPendingTraversal);
- pw.println(" mAllDisplayBlankStateFromPowerManager="
- + mAllDisplayBlankStateFromPowerManager);
- pw.println(" mNextNonDefaultDisplayId=" + mNextNonDefaultDisplayId);
- pw.println(" mDefaultViewport=" + mDefaultViewport);
- pw.println(" mExternalTouchViewport=" + mExternalTouchViewport);
- pw.println(" mSingleDisplayDemoMode=" + mSingleDisplayDemoMode);
-
- IndentingPrintWriter ipw = new IndentingPrintWriter(pw, " ");
- ipw.increaseIndent();
-
- pw.println();
- pw.println("Display Adapters: size=" + mDisplayAdapters.size());
- for (DisplayAdapter adapter : mDisplayAdapters) {
- pw.println(" " + adapter.getName());
- adapter.dumpLocked(ipw);
- }
-
- pw.println();
- pw.println("Display Devices: size=" + mDisplayDevices.size());
- for (DisplayDevice device : mDisplayDevices) {
- pw.println(" " + device.getDisplayDeviceInfoLocked());
- device.dumpLocked(ipw);
- }
-
- final int logicalDisplayCount = mLogicalDisplays.size();
- pw.println();
- pw.println("Logical Displays: size=" + logicalDisplayCount);
- for (int i = 0; i < logicalDisplayCount; i++) {
- int displayId = mLogicalDisplays.keyAt(i);
- LogicalDisplay display = mLogicalDisplays.valueAt(i);
- pw.println(" Display " + displayId + ":");
- display.dumpLocked(ipw);
- }
- }
- }
-
- /**
- * This is the object that everything in the display manager locks on.
- * We make it an inner class within the {@link DisplayManagerService} to so that it is
- * clear that the object belongs to the display manager service and that it is
- * a unique object with a special purpose.
- */
- public static final class SyncRoot {
- }
-
- /**
- * Private interface to the window manager.
- */
- public interface WindowManagerFuncs {
- /**
- * Request that the window manager call
- * {@link #performTraversalInTransactionFromWindowManager} within a surface
- * transaction at a later time.
- */
- void requestTraversal();
- }
-
- /**
- * Private interface to the input manager.
- */
- public interface InputManagerFuncs {
- /**
- * Sets information about the displays as needed by the input system.
- * The input system should copy this information if required.
- */
- void setDisplayViewports(DisplayViewport defaultViewport,
- DisplayViewport externalTouchViewport);
- }
-
- private final class DisplayManagerHandler extends Handler {
- public DisplayManagerHandler(Looper looper) {
- super(looper, null, true /*async*/);
- }
-
- @Override
- public void handleMessage(Message msg) {
- switch (msg.what) {
- case MSG_REGISTER_DEFAULT_DISPLAY_ADAPTER:
- registerDefaultDisplayAdapter();
- break;
-
- case MSG_REGISTER_ADDITIONAL_DISPLAY_ADAPTERS:
- registerAdditionalDisplayAdapters();
- break;
-
- case MSG_DELIVER_DISPLAY_EVENT:
- deliverDisplayEvent(msg.arg1, msg.arg2);
- break;
-
- case MSG_REQUEST_TRAVERSAL:
- mWindowManagerFuncs.requestTraversal();
- break;
-
- case MSG_UPDATE_VIEWPORT: {
- synchronized (mSyncRoot) {
- mTempDefaultViewport.copyFrom(mDefaultViewport);
- mTempExternalTouchViewport.copyFrom(mExternalTouchViewport);
- }
- mInputManagerFuncs.setDisplayViewports(
- mTempDefaultViewport, mTempExternalTouchViewport);
- break;
- }
- }
- }
- }
-
- private final class DisplayAdapterListener implements DisplayAdapter.Listener {
- @Override
- public void onDisplayDeviceEvent(DisplayDevice device, int event) {
- switch (event) {
- case DisplayAdapter.DISPLAY_DEVICE_EVENT_ADDED:
- handleDisplayDeviceAdded(device);
- break;
-
- case DisplayAdapter.DISPLAY_DEVICE_EVENT_CHANGED:
- handleDisplayDeviceChanged(device);
- break;
-
- case DisplayAdapter.DISPLAY_DEVICE_EVENT_REMOVED:
- handleDisplayDeviceRemoved(device);
- break;
- }
- }
-
- @Override
- public void onTraversalRequested() {
- synchronized (mSyncRoot) {
- scheduleTraversalLocked(false);
- }
- }
- }
-
- private final class CallbackRecord implements DeathRecipient {
- private final int mPid;
- private final IDisplayManagerCallback mCallback;
-
- public CallbackRecord(int pid, IDisplayManagerCallback callback) {
- mPid = pid;
- mCallback = callback;
- }
-
- @Override
- public void binderDied() {
- if (DEBUG) {
- Slog.d(TAG, "Display listener for pid " + mPid + " died.");
- }
- onCallbackDied(mPid);
- }
-
- public void notifyDisplayEventAsync(int displayId, int event) {
- try {
- mCallback.onDisplayEvent(displayId, event);
- } catch (RemoteException ex) {
- Slog.w(TAG, "Failed to notify process "
- + mPid + " that displays changed, assuming it died.", ex);
- binderDied();
- }
- }
- }
-}
diff --git a/services/java/com/android/server/display/DisplayTransactionListener.java b/services/java/com/android/server/display/DisplayTransactionListener.java
deleted file mode 100644
index 34eb8f9..0000000
--- a/services/java/com/android/server/display/DisplayTransactionListener.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.server.display;
-
-/**
- * Called within a Surface transaction whenever the size or orientation of a
- * display may have changed. Provides an opportunity for the client to
- * update the position of its surfaces as part of the same transaction.
- */
-public interface DisplayTransactionListener {
- void onDisplayTransaction();
-}
diff --git a/services/java/com/android/server/display/HeadlessDisplayAdapter.java b/services/java/com/android/server/display/HeadlessDisplayAdapter.java
deleted file mode 100644
index 7a104d7..0000000
--- a/services/java/com/android/server/display/HeadlessDisplayAdapter.java
+++ /dev/null
@@ -1,73 +0,0 @@
-/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.server.display;
-
-import android.content.Context;
-import android.os.Handler;
-import android.util.DisplayMetrics;
-import android.view.Display;
-
-/**
- * Provides a fake default display for headless systems.
- * <p>
- * Display adapters are guarded by the {@link DisplayManagerService.SyncRoot} lock.
- * </p>
- */
-final class HeadlessDisplayAdapter extends DisplayAdapter {
- private static final String TAG = "HeadlessDisplayAdapter";
-
- // Called with SyncRoot lock held.
- public HeadlessDisplayAdapter(DisplayManagerService.SyncRoot syncRoot,
- Context context, Handler handler, Listener listener) {
- super(syncRoot, context, handler, listener, TAG);
- }
-
- @Override
- public void registerLocked() {
- super.registerLocked();
- sendDisplayDeviceEventLocked(new HeadlessDisplayDevice(), DISPLAY_DEVICE_EVENT_ADDED);
- }
-
- private final class HeadlessDisplayDevice extends DisplayDevice {
- private DisplayDeviceInfo mInfo;
-
- public HeadlessDisplayDevice() {
- super(HeadlessDisplayAdapter.this, null);
- }
-
- @Override
- public DisplayDeviceInfo getDisplayDeviceInfoLocked() {
- if (mInfo == null) {
- mInfo = new DisplayDeviceInfo();
- mInfo.name = getContext().getResources().getString(
- com.android.internal.R.string.display_manager_built_in_display_name);
- mInfo.width = 640;
- mInfo.height = 480;
- mInfo.refreshRate = 60;
- mInfo.densityDpi = DisplayMetrics.DENSITY_DEFAULT;
- mInfo.xDpi = 160;
- mInfo.yDpi = 160;
- mInfo.flags = DisplayDeviceInfo.FLAG_DEFAULT_DISPLAY
- | DisplayDeviceInfo.FLAG_SECURE
- | DisplayDeviceInfo.FLAG_SUPPORTS_PROTECTED_BUFFERS;
- mInfo.type = Display.TYPE_BUILT_IN;
- mInfo.touch = DisplayDeviceInfo.TOUCH_NONE;
- }
- return mInfo;
- }
- }
-}
diff --git a/services/java/com/android/server/print/PrintManagerService.java b/services/java/com/android/server/print/PrintManagerService.java
deleted file mode 100644
index 98acc27..0000000
--- a/services/java/com/android/server/print/PrintManagerService.java
+++ /dev/null
@@ -1,656 +0,0 @@
-/*
- * Copyright (C) 2013 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.server.print;
-
-import android.Manifest;
-import android.app.Notification;
-import android.app.NotificationManager;
-import android.app.PendingIntent;
-import android.content.BroadcastReceiver;
-import android.content.ComponentName;
-import android.content.Context;
-import android.content.Intent;
-import android.content.IntentFilter;
-import android.content.pm.PackageManager;
-import android.content.pm.ResolveInfo;
-import android.content.pm.ServiceInfo;
-import android.database.ContentObserver;
-import android.net.Uri;
-import android.os.Binder;
-import android.os.Bundle;
-import android.os.Process;
-import android.os.RemoteException;
-import android.os.UserHandle;
-import android.print.IPrintDocumentAdapter;
-import android.print.IPrintJobStateChangeListener;
-import android.print.IPrintManager;
-import android.print.IPrinterDiscoveryObserver;
-import android.print.PrintAttributes;
-import android.print.PrintJobId;
-import android.print.PrintJobInfo;
-import android.print.PrinterId;
-import android.printservice.PrintServiceInfo;
-import android.provider.Settings;
-import android.text.TextUtils;
-import android.util.SparseArray;
-
-import com.android.internal.R;
-import com.android.internal.content.PackageMonitor;
-import com.android.internal.os.BackgroundThread;
-
-import java.io.FileDescriptor;
-import java.io.PrintWriter;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Set;
-
-public final class PrintManagerService extends IPrintManager.Stub {
-
- private static final char COMPONENT_NAME_SEPARATOR = ':';
-
- private static final String EXTRA_PRINT_SERVICE_COMPONENT_NAME =
- "EXTRA_PRINT_SERVICE_COMPONENT_NAME";
-
- private final Object mLock = new Object();
-
- private final Context mContext;
-
- private final SparseArray<UserState> mUserStates = new SparseArray<UserState>();
-
- private int mCurrentUserId = UserHandle.USER_OWNER;
-
- public PrintManagerService(Context context) {
- mContext = context;
- registerContentObservers();
- registerBoradcastReceivers();
- }
-
- public void systemRuning() {
- BackgroundThread.getHandler().post(new Runnable() {
- @Override
- public void run() {
- final UserState userState;
- synchronized (mLock) {
- userState = getCurrentUserStateLocked();
- userState.updateIfNeededLocked();
- }
- // This is the first time we switch to this user after boot, so
- // now is the time to remove obsolete print jobs since they
- // are from the last boot and no application would query them.
- userState.removeObsoletePrintJobs();
- }
- });
- }
-
- @Override
- public Bundle print(String printJobName, IPrintDocumentAdapter adapter,
- PrintAttributes attributes, String packageName, int appId, int userId) {
- final int resolvedAppId = resolveCallingAppEnforcingPermissions(appId);
- final int resolvedUserId = resolveCallingUserEnforcingPermissions(userId);
- String resolvedPackageName = resolveCallingPackageNameEnforcingSecurity(packageName);
- final UserState userState;
- synchronized (mLock) {
- userState = getOrCreateUserStateLocked(resolvedUserId);
- }
- final long identity = Binder.clearCallingIdentity();
- try {
- return userState.print(printJobName, adapter, attributes,
- resolvedPackageName, resolvedAppId);
- } finally {
- Binder.restoreCallingIdentity(identity);
- }
- }
-
- @Override
- public List<PrintJobInfo> getPrintJobInfos(int appId, int userId) {
- final int resolvedAppId = resolveCallingAppEnforcingPermissions(appId);
- final int resolvedUserId = resolveCallingUserEnforcingPermissions(userId);
- final UserState userState;
- synchronized (mLock) {
- userState = getOrCreateUserStateLocked(resolvedUserId);
- }
- final long identity = Binder.clearCallingIdentity();
- try {
- return userState.getPrintJobInfos(resolvedAppId);
- } finally {
- Binder.restoreCallingIdentity(identity);
- }
- }
-
- @Override
- public PrintJobInfo getPrintJobInfo(PrintJobId printJobId, int appId, int userId) {
- final int resolvedAppId = resolveCallingAppEnforcingPermissions(appId);
- final int resolvedUserId = resolveCallingUserEnforcingPermissions(userId);
- final UserState userState;
- synchronized (mLock) {
- userState = getOrCreateUserStateLocked(resolvedUserId);
- }
- final long identity = Binder.clearCallingIdentity();
- try {
- return userState.getPrintJobInfo(printJobId, resolvedAppId);
- } finally {
- Binder.restoreCallingIdentity(identity);
- }
- }
-
- @Override
- public void cancelPrintJob(PrintJobId printJobId, int appId, int userId) {
- final int resolvedAppId = resolveCallingAppEnforcingPermissions(appId);
- final int resolvedUserId = resolveCallingUserEnforcingPermissions(userId);
- final UserState userState;
- synchronized (mLock) {
- userState = getOrCreateUserStateLocked(resolvedUserId);
- }
- final long identity = Binder.clearCallingIdentity();
- try {
- userState.cancelPrintJob(printJobId, resolvedAppId);
- } finally {
- Binder.restoreCallingIdentity(identity);
- }
- }
-
- @Override
- public void restartPrintJob(PrintJobId printJobId, int appId, int userId) {
- final int resolvedAppId = resolveCallingAppEnforcingPermissions(appId);
- final int resolvedUserId = resolveCallingUserEnforcingPermissions(userId);
- final UserState userState;
- synchronized (mLock) {
- userState = getOrCreateUserStateLocked(resolvedUserId);
- }
- final long identity = Binder.clearCallingIdentity();
- try {
- userState.restartPrintJob(printJobId, resolvedAppId);
- } finally {
- Binder.restoreCallingIdentity(identity);
- }
- }
-
- @Override
- public List<PrintServiceInfo> getEnabledPrintServices(int userId) {
- final int resolvedUserId = resolveCallingUserEnforcingPermissions(userId);
- final UserState userState;
- synchronized (mLock) {
- userState = getOrCreateUserStateLocked(resolvedUserId);
- }
- final long identity = Binder.clearCallingIdentity();
- try {
- return userState.getEnabledPrintServices();
- } finally {
- Binder.restoreCallingIdentity(identity);
- }
- }
-
- @Override
- public List<PrintServiceInfo> getInstalledPrintServices(int userId) {
- final int resolvedUserId = resolveCallingUserEnforcingPermissions(userId);
- final UserState userState;
- synchronized (mLock) {
- userState = getOrCreateUserStateLocked(resolvedUserId);
- }
- final long identity = Binder.clearCallingIdentity();
- try {
- return userState.getInstalledPrintServices();
- } finally {
- Binder.restoreCallingIdentity(identity);
- }
- }
-
- @Override
- public void createPrinterDiscoverySession(IPrinterDiscoveryObserver observer,
- int userId) {
- final int resolvedUserId = resolveCallingUserEnforcingPermissions(userId);
- final UserState userState;
- synchronized (mLock) {
- userState = getOrCreateUserStateLocked(resolvedUserId);
- }
- final long identity = Binder.clearCallingIdentity();
- try {
- userState.createPrinterDiscoverySession(observer);
- } finally {
- Binder.restoreCallingIdentity(identity);
- }
- }
-
- @Override
- public void destroyPrinterDiscoverySession(IPrinterDiscoveryObserver observer,
- int userId) {
- final int resolvedUserId = resolveCallingUserEnforcingPermissions(userId);
- final UserState userState;
- synchronized (mLock) {
- userState = getOrCreateUserStateLocked(resolvedUserId);
- }
- final long identity = Binder.clearCallingIdentity();
- try {
- userState.destroyPrinterDiscoverySession(observer);
- } finally {
- Binder.restoreCallingIdentity(identity);
- }
- }
-
- @Override
- public void startPrinterDiscovery(IPrinterDiscoveryObserver observer,
- List<PrinterId> priorityList, int userId) {
- final int resolvedUserId = resolveCallingUserEnforcingPermissions(userId);
- final UserState userState;
- synchronized (mLock) {
- userState = getOrCreateUserStateLocked(resolvedUserId);
- }
- final long identity = Binder.clearCallingIdentity();
- try {
- userState.startPrinterDiscovery(observer, priorityList);
- } finally {
- Binder.restoreCallingIdentity(identity);
- }
- }
-
- @Override
- public void stopPrinterDiscovery(IPrinterDiscoveryObserver observer, int userId) {
- final int resolvedUserId = resolveCallingUserEnforcingPermissions(userId);
- final UserState userState;
- synchronized (mLock) {
- userState = getOrCreateUserStateLocked(resolvedUserId);
- }
- final long identity = Binder.clearCallingIdentity();
- try {
- userState.stopPrinterDiscovery(observer);
- } finally {
- Binder.restoreCallingIdentity(identity);
- }
- }
-
- @Override
- public void validatePrinters(List<PrinterId> printerIds, int userId) {
- final int resolvedUserId = resolveCallingUserEnforcingPermissions(userId);
- final UserState userState;
- synchronized (mLock) {
- userState = getOrCreateUserStateLocked(resolvedUserId);
- }
- final long identity = Binder.clearCallingIdentity();
- try {
- userState.validatePrinters(printerIds);
- } finally {
- Binder.restoreCallingIdentity(identity);
- }
- }
-
- @Override
- public void startPrinterStateTracking(PrinterId printerId, int userId) {
- final int resolvedUserId = resolveCallingUserEnforcingPermissions(userId);
- final UserState userState;
- synchronized (mLock) {
- userState = getOrCreateUserStateLocked(resolvedUserId);
- }
- final long identity = Binder.clearCallingIdentity();
- try {
- userState.startPrinterStateTracking(printerId);
- } finally {
- Binder.restoreCallingIdentity(identity);
- }
- }
-
- @Override
- public void stopPrinterStateTracking(PrinterId printerId, int userId) {
- final int resolvedUserId = resolveCallingUserEnforcingPermissions(userId);
- final UserState userState;
- synchronized (mLock) {
- userState = getOrCreateUserStateLocked(resolvedUserId);
- }
- final long identity = Binder.clearCallingIdentity();
- try {
- userState.stopPrinterStateTracking(printerId);
- } finally {
- Binder.restoreCallingIdentity(identity);
- }
- }
-
- @Override
- public void addPrintJobStateChangeListener(IPrintJobStateChangeListener listener,
- int appId, int userId) throws RemoteException {
- final int resolvedUserId = resolveCallingUserEnforcingPermissions(userId);
- final int resolvedAppId = resolveCallingAppEnforcingPermissions(appId);
- final UserState userState;
- synchronized (mLock) {
- userState = getOrCreateUserStateLocked(resolvedUserId);
- }
- final long identity = Binder.clearCallingIdentity();
- try {
- userState.addPrintJobStateChangeListener(listener, resolvedAppId);
- } finally {
- Binder.restoreCallingIdentity(identity);
- }
- }
-
- @Override
- public void removePrintJobStateChangeListener(IPrintJobStateChangeListener listener,
- int userId) {
- final int resolvedUserId = resolveCallingUserEnforcingPermissions(userId);
- final UserState userState;
- synchronized (mLock) {
- userState = getOrCreateUserStateLocked(resolvedUserId);
- }
- final long identity = Binder.clearCallingIdentity();
- try {
- userState.removePrintJobStateChangeListener(listener);
- } finally {
- Binder.restoreCallingIdentity(identity);
- }
- }
-
- @Override
- public void dump(FileDescriptor fd, PrintWriter pw, String[] args) {
- if (mContext.checkCallingOrSelfPermission(Manifest.permission.DUMP)
- != PackageManager.PERMISSION_GRANTED) {
- pw.println("Permission Denial: can't dump PrintManager from from pid="
- + Binder.getCallingPid()
- + ", uid=" + Binder.getCallingUid());
- return;
- }
-
- synchronized (mLock) {
- final long identity = Binder.clearCallingIdentity();
- try {
- pw.println("PRINT MANAGER STATE (dumpsys print)");
- final int userStateCount = mUserStates.size();
- for (int i = 0; i < userStateCount; i++) {
- UserState userState = mUserStates.valueAt(i);
- userState.dump(fd, pw, "");
- pw.println();
- }
- } finally {
- Binder.restoreCallingIdentity(identity);
- }
- }
- }
-
- private void registerContentObservers() {
- final Uri enabledPrintServicesUri = Settings.Secure.getUriFor(
- Settings.Secure.ENABLED_PRINT_SERVICES);
-
- ContentObserver observer = new ContentObserver(BackgroundThread.getHandler()) {
- @Override
- public void onChange(boolean selfChange, Uri uri) {
- if (enabledPrintServicesUri.equals(uri)) {
- synchronized (mLock) {
- UserState userState = getCurrentUserStateLocked();
- userState.updateIfNeededLocked();
- }
- }
- }
- };
-
- mContext.getContentResolver().registerContentObserver(enabledPrintServicesUri,
- false, observer, UserHandle.USER_ALL);
- }
-
- private void registerBoradcastReceivers() {
- PackageMonitor monitor = new PackageMonitor() {
- @Override
- public boolean onPackageChanged(String packageName, int uid, String[] components) {
- synchronized (mLock) {
- UserState userState = getOrCreateUserStateLocked(getChangingUserId());
- Iterator<ComponentName> iterator = userState.getEnabledServices().iterator();
- while (iterator.hasNext()) {
- ComponentName componentName = iterator.next();
- if (packageName.equals(componentName.getPackageName())) {
- userState.updateIfNeededLocked();
- return true;
- }
- }
- }
- return false;
- }
-
- @Override
- public void onPackageRemoved(String packageName, int uid) {
- synchronized (mLock) {
- UserState userState = getOrCreateUserStateLocked(getChangingUserId());
- Iterator<ComponentName> iterator = userState.getEnabledServices().iterator();
- while (iterator.hasNext()) {
- ComponentName componentName = iterator.next();
- if (packageName.equals(componentName.getPackageName())) {
- iterator.remove();
- persistComponentNamesToSettingLocked(
- Settings.Secure.ENABLED_PRINT_SERVICES,
- userState.getEnabledServices(), getChangingUserId());
- userState.updateIfNeededLocked();
- return;
- }
- }
- }
- }
-
- @Override
- public boolean onHandleForceStop(Intent intent, String[] stoppedPackages,
- int uid, boolean doit) {
- synchronized (mLock) {
- UserState userState = getOrCreateUserStateLocked(getChangingUserId());
- boolean stoppedSomePackages = false;
- Iterator<ComponentName> iterator = userState.getEnabledServices().iterator();
- while (iterator.hasNext()) {
- ComponentName componentName = iterator.next();
- String componentPackage = componentName.getPackageName();
- for (String stoppedPackage : stoppedPackages) {
- if (componentPackage.equals(stoppedPackage)) {
- if (!doit) {
- return true;
- }
- stoppedSomePackages = true;
- break;
- }
- }
- }
- if (stoppedSomePackages) {
- userState.updateIfNeededLocked();
- }
- return false;
- }
- }
-
- @Override
- public void onPackageAdded(String packageName, int uid) {
- Intent intent = new Intent(android.printservice.PrintService.SERVICE_INTERFACE);
- intent.setPackage(packageName);
-
- List<ResolveInfo> installedServices = mContext.getPackageManager()
- .queryIntentServicesAsUser(intent, PackageManager.GET_SERVICES,
- getChangingUserId());
-
- if (installedServices == null) {
- return;
- }
-
- final int installedServiceCount = installedServices.size();
- for (int i = 0; i < installedServiceCount; i++) {
- ServiceInfo serviceInfo = installedServices.get(i).serviceInfo;
- ComponentName component = new ComponentName(serviceInfo.packageName,
- serviceInfo.name);
- String label = serviceInfo.loadLabel(mContext.getPackageManager()).toString();
- showEnableInstalledPrintServiceNotification(component, label,
- getChangingUserId());
- }
- }
-
- private void persistComponentNamesToSettingLocked(String settingName,
- Set<ComponentName> componentNames, int userId) {
- StringBuilder builder = new StringBuilder();
- for (ComponentName componentName : componentNames) {
- if (builder.length() > 0) {
- builder.append(COMPONENT_NAME_SEPARATOR);
- }
- builder.append(componentName.flattenToShortString());
- }
- Settings.Secure.putStringForUser(mContext.getContentResolver(),
- settingName, builder.toString(), userId);
- }
- };
-
- // package changes
- monitor.register(mContext, BackgroundThread.getHandler().getLooper(),
- UserHandle.ALL, true);
-
- // user changes
- IntentFilter intentFilter = new IntentFilter();
- intentFilter.addAction(Intent.ACTION_USER_SWITCHED);
- intentFilter.addAction(Intent.ACTION_USER_REMOVED);
-
- mContext.registerReceiverAsUser(new BroadcastReceiver() {
- @Override
- public void onReceive(Context context, Intent intent) {
- String action = intent.getAction();
- if (Intent.ACTION_USER_SWITCHED.equals(action)) {
- switchUser(intent.getIntExtra(Intent.EXTRA_USER_HANDLE, 0));
- } else if (Intent.ACTION_USER_REMOVED.equals(action)) {
- removeUser(intent.getIntExtra(Intent.EXTRA_USER_HANDLE, 0));
- }
- }
- }, UserHandle.ALL, intentFilter, null, BackgroundThread.getHandler());
- }
-
- private UserState getCurrentUserStateLocked() {
- return getOrCreateUserStateLocked(mCurrentUserId);
- }
-
- private UserState getOrCreateUserStateLocked(int userId) {
- UserState userState = mUserStates.get(userId);
- if (userState == null) {
- userState = new UserState(mContext, userId, mLock);
- mUserStates.put(userId, userState);
- }
- return userState;
- }
-
- private void switchUser(int newUserId) {
- UserState userState;
- synchronized (mLock) {
- if (newUserId == mCurrentUserId) {
- return;
- }
- mCurrentUserId = newUserId;
- userState = mUserStates.get(mCurrentUserId);
- if (userState == null) {
- userState = getCurrentUserStateLocked();
- userState.updateIfNeededLocked();
- } else {
- userState.updateIfNeededLocked();
- }
- }
- // This is the first time we switch to this user after boot, so
- // now is the time to remove obsolete print jobs since they
- // are from the last boot and no application would query them.
- userState.removeObsoletePrintJobs();
- }
-
- private void removeUser(int removedUserId) {
- synchronized (mLock) {
- UserState userState = mUserStates.get(removedUserId);
- if (userState != null) {
- userState.destroyLocked();
- mUserStates.remove(removedUserId);
- }
- }
- }
-
- private int resolveCallingAppEnforcingPermissions(int appId) {
- final int callingUid = Binder.getCallingUid();
- if (callingUid == 0 || callingUid == Process.SYSTEM_UID
- || callingUid == Process.SHELL_UID) {
- return appId;
- }
- final int callingAppId = UserHandle.getAppId(callingUid);
- if (appId == callingAppId) {
- return appId;
- }
- if (mContext.checkCallingPermission(
- "com.android.printspooler.permission.ACCESS_ALL_PRINT_JOBS")
- != PackageManager.PERMISSION_GRANTED) {
- throw new SecurityException("Call from app " + callingAppId + " as app "
- + appId + " without com.android.printspooler.permission"
- + ".ACCESS_ALL_PRINT_JOBS");
- }
- return appId;
- }
-
- private int resolveCallingUserEnforcingPermissions(int userId) {
- final int callingUid = Binder.getCallingUid();
- if (callingUid == 0 || callingUid == Process.SYSTEM_UID
- || callingUid == Process.SHELL_UID) {
- return userId;
- }
- final int callingUserId = UserHandle.getUserId(callingUid);
- if (callingUserId == userId) {
- return userId;
- }
- if (mContext.checkCallingPermission(Manifest.permission.INTERACT_ACROSS_USERS_FULL)
- != PackageManager.PERMISSION_GRANTED
- || mContext.checkCallingPermission(Manifest.permission.INTERACT_ACROSS_USERS)
- != PackageManager.PERMISSION_GRANTED) {
- if (userId == UserHandle.USER_CURRENT_OR_SELF) {
- return callingUserId;
- }
- throw new SecurityException("Call from user " + callingUserId + " as user "
- + userId + " without permission INTERACT_ACROSS_USERS or "
- + "INTERACT_ACROSS_USERS_FULL not allowed.");
- }
- if (userId == UserHandle.USER_CURRENT || userId == UserHandle.USER_CURRENT_OR_SELF) {
- return mCurrentUserId;
- }
- throw new IllegalArgumentException("Calling user can be changed to only "
- + "UserHandle.USER_CURRENT or UserHandle.USER_CURRENT_OR_SELF.");
- }
-
- private String resolveCallingPackageNameEnforcingSecurity(String packageName) {
- if (TextUtils.isEmpty(packageName)) {
- return null;
- }
- String[] packages = mContext.getPackageManager().getPackagesForUid(
- Binder.getCallingUid());
- final int packageCount = packages.length;
- for (int i = 0; i < packageCount; i++) {
- if (packageName.equals(packages[i])) {
- return packageName;
- }
- }
- return null;
- }
-
- private void showEnableInstalledPrintServiceNotification(ComponentName component,
- String label, int userId) {
- UserHandle userHandle = new UserHandle(userId);
-
- Intent intent = new Intent(Settings.ACTION_PRINT_SETTINGS);
- intent.putExtra(EXTRA_PRINT_SERVICE_COMPONENT_NAME, component.flattenToString());
-
- PendingIntent pendingIntent = PendingIntent.getActivityAsUser(mContext, 0, intent,
- PendingIntent.FLAG_ONE_SHOT | PendingIntent.FLAG_CANCEL_CURRENT, null, userHandle);
-
- Notification.Builder builder = new Notification.Builder(mContext)
- .setSmallIcon(R.drawable.ic_print)
- .setContentTitle(mContext.getString(R.string.print_service_installed_title, label))
- .setContentText(mContext.getString(R.string.print_service_installed_message))
- .setContentIntent(pendingIntent)
- .setWhen(System.currentTimeMillis())
- .setAutoCancel(true)
- .setShowWhen(true);
-
- NotificationManager notificationManager = (NotificationManager) mContext
- .getSystemService(Context.NOTIFICATION_SERVICE);
-
- String notificationTag = getClass().getName() + ":" + component.flattenToString();
- notificationManager.notifyAsUser(notificationTag, 0, builder.build(),
- userHandle);
- }
-}
diff --git a/services/java/com/android/server/wm/DisplayContent.java b/services/java/com/android/server/wm/DisplayContent.java
deleted file mode 100644
index d358b4c..0000000
--- a/services/java/com/android/server/wm/DisplayContent.java
+++ /dev/null
@@ -1,523 +0,0 @@
-/*
- * Copyright (C) 2012 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.server.wm;
-
-import static com.android.server.am.ActivityStackSupervisor.HOME_STACK_ID;
-import static com.android.server.wm.WindowManagerService.DEBUG_STACK;
-import static com.android.server.wm.WindowManagerService.DEBUG_VISIBILITY;
-import static com.android.server.wm.WindowManagerService.TAG;
-
-import android.app.ActivityManager.StackBoxInfo;
-import android.graphics.Rect;
-import android.graphics.Region;
-import android.os.Debug;
-import android.util.EventLog;
-import android.util.Slog;
-import android.view.Display;
-import android.view.DisplayInfo;
-import com.android.server.EventLogTags;
-
-import java.io.PrintWriter;
-import java.util.ArrayList;
-
-class DisplayContentList extends ArrayList<DisplayContent> {
-}
-
-/**
- * Utility class for keeping track of the WindowStates and other pertinent contents of a
- * particular Display.
- *
- * IMPORTANT: No method from this class should ever be used without holding
- * WindowManagerService.mWindowMap.
- */
-class DisplayContent {
-
- /** Unique identifier of this stack. */
- private final int mDisplayId;
-
- /** Z-ordered (bottom-most first) list of all Window objects. Assigned to an element
- * from mDisplayWindows; */
- private WindowList mWindows = new WindowList();
-
- // This protects the following display size properties, so that
- // getDisplaySize() doesn't need to acquire the global lock. This is
- // needed because the window manager sometimes needs to use ActivityThread
- // while it has its global state locked (for example to load animation
- // resources), but the ActivityThread also needs get the current display
- // size sometimes when it has its package lock held.
- //
- // These will only be modified with both mWindowMap and mDisplaySizeLock
- // held (in that order) so the window manager doesn't need to acquire this
- // lock when needing these values in its normal operation.
- final Object mDisplaySizeLock = new Object();
- int mInitialDisplayWidth = 0;
- int mInitialDisplayHeight = 0;
- int mInitialDisplayDensity = 0;
- int mBaseDisplayWidth = 0;
- int mBaseDisplayHeight = 0;
- int mBaseDisplayDensity = 0;
- private final DisplayInfo mDisplayInfo = new DisplayInfo();
- private final Display mDisplay;
-
- Rect mBaseDisplayRect = new Rect();
-
- // Accessed directly by all users.
- boolean layoutNeeded;
- int pendingLayoutChanges;
- final boolean isDefaultDisplay;
-
- /**
- * Window tokens that are in the process of exiting, but still
- * on screen for animations.
- */
- final ArrayList<WindowToken> mExitingTokens = new ArrayList<WindowToken>();
-
- /**
- * Application tokens that are in the process of exiting, but still
- * on screen for animations.
- */
- final AppTokenList mExitingAppTokens = new AppTokenList();
-
- /** Array containing the home StackBox and possibly one more which would contain apps. Array
- * is stored in display order with the current bottom stack at 0. */
- private ArrayList<StackBox> mStackBoxes = new ArrayList<StackBox>();
-
- /** True when the home StackBox is at the top of mStackBoxes, false otherwise. */
- private TaskStack mHomeStack = null;
-
- /** Detect user tapping outside of current focused stack bounds .*/
- StackTapPointerEventListener mTapDetector;
-
- /** Detect user tapping outside of current focused stack bounds .*/
- Region mTouchExcludeRegion = new Region();
-
- /** Save allocating when retrieving tasks */
- private ArrayList<Task> mTaskHistory = new ArrayList<Task>();
-
- /** Save allocating when calculating rects */
- Rect mTmpRect = new Rect();
-
- final WindowManagerService mService;
-
- /**
- * @param display May not be null.
- * @param service TODO(cmautner):
- */
- DisplayContent(Display display, WindowManagerService service) {
- mDisplay = display;
- mDisplayId = display.getDisplayId();
- display.getDisplayInfo(mDisplayInfo);
- isDefaultDisplay = mDisplayId == Display.DEFAULT_DISPLAY;
- mService = service;
-
- StackBox newBox = new StackBox(service, this, null);
- mStackBoxes.add(newBox);
- TaskStack newStack = new TaskStack(service, HOME_STACK_ID, this);
- newStack.mStackBox = newBox;
- newBox.mStack = newStack;
- mHomeStack = newStack;
- }
-
- int getDisplayId() {
- return mDisplayId;
- }
-
- WindowList getWindowList() {
- return mWindows;
- }
-
- Display getDisplay() {
- return mDisplay;
- }
-
- DisplayInfo getDisplayInfo() {
- return mDisplayInfo;
- }
-
- /**
- * Returns true if the specified UID has access to this display.
- */
- public boolean hasAccess(int uid) {
- return mDisplay.hasAccess(uid);
- }
-
- boolean homeOnTop() {
- return mStackBoxes.get(0).mStack != mHomeStack;
- }
-
- public boolean isPrivate() {
- return (mDisplay.getFlags() & Display.FLAG_PRIVATE) != 0;
- }
-
- /**
- * Retrieve the tasks on this display in stack order from the bottommost TaskStack up.
- * @return All the Tasks, in order, on this display.
- */
- ArrayList<Task> getTasks() {
- return mTaskHistory;
- }
-
- void addTask(Task task, boolean toTop) {
- mTaskHistory.remove(task);
-
- final int userId = task.mUserId;
- int taskNdx;
- final int numTasks = mTaskHistory.size();
- if (toTop) {
- for (taskNdx = numTasks - 1; taskNdx >= 0; --taskNdx) {
- if (mTaskHistory.get(taskNdx).mUserId == userId) {
- break;
- }
- }
- ++taskNdx;
- } else {
- for (taskNdx = 0; taskNdx < numTasks; ++taskNdx) {
- if (mTaskHistory.get(taskNdx).mUserId == userId) {
- break;
- }
- }
- }
-
- mTaskHistory.add(taskNdx, task);
- EventLog.writeEvent(EventLogTags.WM_TASK_MOVED, task.taskId, toTop ? 1 : 0, taskNdx);
- }
-
- void removeTask(Task task) {
- mTaskHistory.remove(task);
- }
-
- TaskStack getHomeStack() {
- return mHomeStack;
- }
-
- void updateDisplayInfo() {
- mDisplay.getDisplayInfo(mDisplayInfo);
- }
-
- void getLogicalDisplayRect(Rect out) {
- updateDisplayInfo();
- // Uses same calculation as in LogicalDisplay#configureDisplayInTransactionLocked.
- int width = mDisplayInfo.logicalWidth;
- int left = (mBaseDisplayWidth - width) / 2;
- int height = mDisplayInfo.logicalHeight;
- int top = (mBaseDisplayHeight - height) / 2;
- out.set(left, top, left + width, top + height);
- }
-
- /** @return The number of tokens in all of the Tasks on this display. */
- int numTokens() {
- int count = 0;
- for (int taskNdx = mTaskHistory.size() - 1; taskNdx >= 0; --taskNdx) {
- count += mTaskHistory.get(taskNdx).mAppTokens.size();
- }
- return count;
- }
-
- /** Refer to {@link WindowManagerService#createStack(int, int, int, float)} */
- TaskStack createStack(int stackId, int relativeStackBoxId, int position, float weight) {
- TaskStack newStack = null;
- if (DEBUG_STACK) Slog.d(TAG, "createStack: stackId=" + stackId + " relativeStackBoxId="
- + relativeStackBoxId + " position=" + position + " weight=" + weight);
- if (stackId == HOME_STACK_ID) {
- if (mStackBoxes.size() != 1) {
- throw new IllegalArgumentException("createStack: HOME_STACK_ID (0) not first.");
- }
- newStack = mHomeStack;
- } else {
- int stackBoxNdx;
- for (stackBoxNdx = mStackBoxes.size() - 1; stackBoxNdx >= 0; --stackBoxNdx) {
- final StackBox box = mStackBoxes.get(stackBoxNdx);
- if (position == StackBox.TASK_STACK_GOES_OVER
- || position == StackBox.TASK_STACK_GOES_UNDER) {
- // Position indicates a new box is added at top level only.
- if (box.contains(relativeStackBoxId)) {
- StackBox newBox = new StackBox(mService, this, null);
- newStack = new TaskStack(mService, stackId, this);
- newStack.mStackBox = newBox;
- newBox.mStack = newStack;
- final int offset = position == StackBox.TASK_STACK_GOES_OVER ? 1 : 0;
- if (DEBUG_STACK) Slog.d(TAG, "createStack: inserting stack at " +
- (stackBoxNdx + offset));
- mStackBoxes.add(stackBoxNdx + offset, newBox);
- break;
- }
- } else {
- // Remaining position values indicate a box must be split.
- newStack = box.split(stackId, relativeStackBoxId, position, weight);
- if (newStack != null) {
- break;
- }
- }
- }
- if (stackBoxNdx < 0) {
- throw new IllegalArgumentException("createStack: stackBoxId " + relativeStackBoxId
- + " not found.");
- }
- }
- if (newStack != null) {
- layoutNeeded = true;
- }
- EventLog.writeEvent(EventLogTags.WM_STACK_CREATED, stackId, relativeStackBoxId, position,
- (int)(weight * 100 + 0.5));
- return newStack;
- }
-
- /** Refer to {@link WindowManagerService#resizeStackBox(int, float)} */
- boolean resizeStack(int stackBoxId, float weight) {
- for (int stackBoxNdx = mStackBoxes.size() - 1; stackBoxNdx >= 0; --stackBoxNdx) {
- final StackBox box = mStackBoxes.get(stackBoxNdx);
- if (box.resize(stackBoxId, weight)) {
- layoutNeeded = true;
- return true;
- }
- }
- return false;
- }
-
- void addStackBox(StackBox box, boolean toTop) {
- if (mStackBoxes.size() >= 2) {
- throw new RuntimeException("addStackBox: Too many toplevel StackBoxes!");
- }
- mStackBoxes.add(toTop ? mStackBoxes.size() : 0, box);
- }
-
- void removeStackBox(StackBox box) {
- if (DEBUG_STACK) Slog.d(TAG, "removeStackBox: box=" + box);
- final TaskStack stack = box.mStack;
- if (stack != null && stack.mStackId == HOME_STACK_ID) {
- // Never delete the home stack, even if it is empty.
- if (DEBUG_STACK) Slog.d(TAG, "removeStackBox: Not deleting home stack.");
- return;
- }
- mStackBoxes.remove(box);
- }
-
- StackBoxInfo getStackBoxInfo(StackBox box) {
- StackBoxInfo info = new StackBoxInfo();
- info.stackBoxId = box.mStackBoxId;
- info.weight = box.mWeight;
- info.vertical = box.mVertical;
- info.bounds = new Rect(box.mBounds);
- if (box.mStack != null) {
- info.stackId = box.mStack.mStackId;
- // ActivityManagerService will fill in the StackInfo.
- } else {
- info.stackId = -1;
- info.children = new StackBoxInfo[2];
- info.children[0] = getStackBoxInfo(box.mFirst);
- info.children[1] = getStackBoxInfo(box.mSecond);
- }
- return info;
- }
-
- ArrayList<StackBoxInfo> getStackBoxInfos() {
- ArrayList<StackBoxInfo> list = new ArrayList<StackBoxInfo>();
- for (int stackBoxNdx = mStackBoxes.size() - 1; stackBoxNdx >= 0; --stackBoxNdx) {
- list.add(getStackBoxInfo(mStackBoxes.get(stackBoxNdx)));
- }
- return list;
- }
-
- /**
- * Move the home StackBox to the top or bottom of mStackBoxes. That is the only place
- * it is allowed to be. This is a nop if the home StackBox is already in the correct position.
- * @param toTop Move home to the top of mStackBoxes if true, to the bottom if false.
- * @return true if a change was made, false otherwise.
- */
- boolean moveHomeStackBox(boolean toTop) {
- if (DEBUG_STACK) Slog.d(TAG, "moveHomeStackBox: toTop=" + toTop + " Callers=" +
- Debug.getCallers(4));
- EventLog.writeEvent(EventLogTags.WM_HOME_STACK_MOVED, toTop ? 1 : 0);
- switch (mStackBoxes.size()) {
- case 0: throw new RuntimeException("moveHomeStackBox: No home StackBox!");
- case 1: return false; // Only the home StackBox exists.
- case 2:
- if (homeOnTop() ^ toTop) {
- mStackBoxes.add(mStackBoxes.remove(0));
- return true;
- }
- return false;
- default: throw new RuntimeException("moveHomeStackBox: Too many toplevel StackBoxes!");
- }
- }
-
- /**
- * Propagate the new bounds to all child stack boxes, applying weights as we move down.
- * @param contentRect The bounds to apply at the top level.
- */
- boolean setStackBoxSize(Rect contentRect) {
- boolean change = false;
- for (int stackBoxNdx = mStackBoxes.size() - 1; stackBoxNdx >= 0; --stackBoxNdx) {
- change |= mStackBoxes.get(stackBoxNdx).setStackBoxSizes(contentRect, true);
- }
- return change;
- }
-
- Rect getStackBounds(int stackId) {
- for (int stackBoxNdx = mStackBoxes.size() - 1; stackBoxNdx >= 0; --stackBoxNdx) {
- Rect bounds = mStackBoxes.get(stackBoxNdx).getStackBounds(stackId);
- if (bounds != null) {
- return bounds;
- }
- }
- return null;
- }
-
- int stackIdFromPoint(int x, int y) {
- StackBox topBox = mStackBoxes.get(mStackBoxes.size() - 1);
- return topBox.stackIdFromPoint(x, y);
- }
-
- void setTouchExcludeRegion(TaskStack focusedStack) {
- mTouchExcludeRegion.set(mBaseDisplayRect);
- WindowList windows = getWindowList();
- for (int i = windows.size() - 1; i >= 0; --i) {
- final WindowState win = windows.get(i);
- final TaskStack stack = win.getStack();
- if (win.isVisibleLw() && stack != null && stack != focusedStack) {
- mTmpRect.set(win.mVisibleFrame);
- mTmpRect.intersect(win.mVisibleInsets);
- mTouchExcludeRegion.op(mTmpRect, Region.Op.DIFFERENCE);
- }
- }
- }
-
- void switchUserStacks(int oldUserId, int newUserId) {
- final WindowList windows = getWindowList();
- for (int i = 0; i < windows.size(); i++) {
- final WindowState win = windows.get(i);
- if (win.isHiddenFromUserLocked()) {
- if (DEBUG_VISIBILITY) Slog.w(TAG, "user changing " + newUserId + " hiding "
- + win + ", attrs=" + win.mAttrs.type + ", belonging to "
- + win.mOwnerUid);
- win.hideLw(false);
- }
- }
-
- for (int stackBoxNdx = mStackBoxes.size() - 1; stackBoxNdx >= 0; --stackBoxNdx) {
- mStackBoxes.get(stackBoxNdx).switchUserStacks(newUserId);
- }
- }
-
- void resetAnimationBackgroundAnimator() {
- for (int stackBoxNdx = mStackBoxes.size() - 1; stackBoxNdx >= 0; --stackBoxNdx) {
- mStackBoxes.get(stackBoxNdx).resetAnimationBackgroundAnimator();
- }
- }
-
- boolean animateDimLayers() {
- boolean result = false;
- for (int stackBoxNdx = mStackBoxes.size() - 1; stackBoxNdx >= 0; --stackBoxNdx) {
- result |= mStackBoxes.get(stackBoxNdx).animateDimLayers();
- }
- return result;
- }
-
- void resetDimming() {
- for (int stackBoxNdx = mStackBoxes.size() - 1; stackBoxNdx >= 0; --stackBoxNdx) {
- mStackBoxes.get(stackBoxNdx).resetDimming();
- }
- }
-
- boolean isDimming() {
- boolean result = false;
- for (int stackBoxNdx = mStackBoxes.size() - 1; stackBoxNdx >= 0; --stackBoxNdx) {
- result |= mStackBoxes.get(stackBoxNdx).isDimming();
- }
- return result;
- }
-
- void stopDimmingIfNeeded() {
- for (int stackBoxNdx = mStackBoxes.size() - 1; stackBoxNdx >= 0; --stackBoxNdx) {
- mStackBoxes.get(stackBoxNdx).stopDimmingIfNeeded();
- }
- }
-
- void close() {
- for (int stackBoxNdx = mStackBoxes.size() - 1; stackBoxNdx >= 0; --stackBoxNdx) {
- mStackBoxes.get(stackBoxNdx).close();
- }
- }
-
- public void dump(String prefix, PrintWriter pw) {
- pw.print(prefix); pw.print("Display: mDisplayId="); pw.println(mDisplayId);
- final String subPrefix = " " + prefix;
- pw.print(subPrefix); pw.print("init="); pw.print(mInitialDisplayWidth); pw.print("x");
- pw.print(mInitialDisplayHeight); pw.print(" "); pw.print(mInitialDisplayDensity);
- pw.print("dpi");
- if (mInitialDisplayWidth != mBaseDisplayWidth
- || mInitialDisplayHeight != mBaseDisplayHeight
- || mInitialDisplayDensity != mBaseDisplayDensity) {
- pw.print(" base=");
- pw.print(mBaseDisplayWidth); pw.print("x"); pw.print(mBaseDisplayHeight);
- pw.print(" "); pw.print(mBaseDisplayDensity); pw.print("dpi");
- }
- pw.print(" cur=");
- pw.print(mDisplayInfo.logicalWidth);
- pw.print("x"); pw.print(mDisplayInfo.logicalHeight);
- pw.print(" app=");
- pw.print(mDisplayInfo.appWidth);
- pw.print("x"); pw.print(mDisplayInfo.appHeight);
- pw.print(" rng="); pw.print(mDisplayInfo.smallestNominalAppWidth);
- pw.print("x"); pw.print(mDisplayInfo.smallestNominalAppHeight);
- pw.print("-"); pw.print(mDisplayInfo.largestNominalAppWidth);
- pw.print("x"); pw.println(mDisplayInfo.largestNominalAppHeight);
- pw.print(subPrefix); pw.print("layoutNeeded="); pw.println(layoutNeeded);
- for (int boxNdx = 0; boxNdx < mStackBoxes.size(); ++boxNdx) {
- pw.print(prefix); pw.print("StackBox #"); pw.println(boxNdx);
- mStackBoxes.get(boxNdx).dump(prefix + " ", pw);
- }
- int ndx = numTokens();
- if (ndx > 0) {
- pw.println();
- pw.println(" Application tokens in Z order:");
- getTasks();
- for (int taskNdx = mTaskHistory.size() - 1; taskNdx >= 0; --taskNdx) {
- AppTokenList tokens = mTaskHistory.get(taskNdx).mAppTokens;
- for (int tokenNdx = tokens.size() - 1; tokenNdx >= 0; --tokenNdx) {
- final AppWindowToken wtoken = tokens.get(tokenNdx);
- pw.print(" App #"); pw.print(ndx--);
- pw.print(' '); pw.print(wtoken); pw.println(":");
- wtoken.dump(pw, " ");
- }
- }
- }
- if (mExitingTokens.size() > 0) {
- pw.println();
- pw.println(" Exiting tokens:");
- for (int i=mExitingTokens.size()-1; i>=0; i--) {
- WindowToken token = mExitingTokens.get(i);
- pw.print(" Exiting #"); pw.print(i);
- pw.print(' '); pw.print(token);
- pw.println(':');
- token.dump(pw, " ");
- }
- }
- if (mExitingAppTokens.size() > 0) {
- pw.println();
- pw.println(" Exiting application tokens:");
- for (int i=mExitingAppTokens.size()-1; i>=0; i--) {
- WindowToken token = mExitingAppTokens.get(i);
- pw.print(" Exiting App #"); pw.print(i);
- pw.print(' '); pw.print(token);
- pw.println(':');
- token.dump(pw, " ");
- }
- }
- pw.println();
- }
-}
diff --git a/services/java/com/android/server/wm/StackBox.java b/services/java/com/android/server/wm/StackBox.java
deleted file mode 100644
index d351925..0000000
--- a/services/java/com/android/server/wm/StackBox.java
+++ /dev/null
@@ -1,414 +0,0 @@
-/*
- * Copyright (C) 2013 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.server.wm;
-
-import android.graphics.Rect;
-import android.util.Slog;
-
-import static com.android.server.am.ActivityStackSupervisor.HOME_STACK_ID;
-import static com.android.server.wm.WindowManagerService.DEBUG_STACK;
-import static com.android.server.wm.WindowManagerService.TAG;
-
-import java.io.PrintWriter;
-
-public class StackBox {
- /** Used with {@link WindowManagerService#createStack}. Dependent on Configuration LTR/RTL. */
- public static final int TASK_STACK_GOES_BEFORE = 0;
- /** Used with {@link WindowManagerService#createStack}. Dependent on Configuration LTR/RTL. */
- public static final int TASK_STACK_GOES_AFTER = 1;
- /** Used with {@link WindowManagerService#createStack}. Horizontal to left of. */
- public static final int TASK_STACK_TO_LEFT_OF = 2;
- /** Used with {@link WindowManagerService#createStack}. Horizontal to right of. */
- public static final int TASK_STACK_TO_RIGHT_OF = 3;
- /** Used with {@link WindowManagerService#createStack}. Vertical: lower t/b Rect values. */
- public static final int TASK_STACK_GOES_ABOVE = 4;
- /** Used with {@link WindowManagerService#createStack}. Vertical: higher t/b Rect values. */
- public static final int TASK_STACK_GOES_BELOW = 5;
- /** Used with {@link WindowManagerService#createStack}. Put on a higher layer on display. */
- public static final int TASK_STACK_GOES_OVER = 6;
- /** Used with {@link WindowManagerService#createStack}. Put on a lower layer on display. */
- public static final int TASK_STACK_GOES_UNDER = 7;
-
- static int sCurrentBoxId = 0;
-
- /** Unique id for this box */
- final int mStackBoxId;
-
- /** The service */
- final WindowManagerService mService;
-
- /** The display this box sits in. */
- final DisplayContent mDisplayContent;
-
- /** Non-null indicates this is mFirst or mSecond of a parent StackBox. Null indicates this
- * is this entire size of mDisplayContent. */
- StackBox mParent;
-
- /** First child, this is null exactly when mStack is non-null. */
- StackBox mFirst;
-
- /** Second child, this is null exactly when mStack is non-null. */
- StackBox mSecond;
-
- /** Stack of Tasks, this is null exactly when mFirst and mSecond are non-null. */
- TaskStack mStack;
-
- /** Content limits relative to the DisplayContent this sits in. */
- Rect mBounds = new Rect();
-
- /** Relative orientation of mFirst and mSecond. */
- boolean mVertical;
-
- /** Fraction of mBounds to devote to mFirst, remainder goes to mSecond */
- float mWeight;
-
- /** Dirty flag. Something inside this or some descendant of this has changed. */
- boolean layoutNeeded;
-
- /** True if this StackBox sits below the Status Bar. */
- boolean mUnderStatusBar;
-
- /** Used to keep from reallocating a temporary Rect for propagating bounds to child boxes */
- Rect mTmpRect = new Rect();
-
- StackBox(WindowManagerService service, DisplayContent displayContent, StackBox parent) {
- synchronized (StackBox.class) {
- mStackBoxId = sCurrentBoxId++;
- }
-
- mService = service;
- mDisplayContent = displayContent;
- mParent = parent;
- }
-
- /** Propagate #layoutNeeded bottom up. */
- void makeDirty() {
- layoutNeeded = true;
- if (mParent != null) {
- mParent.makeDirty();
- }
- }
-
- /**
- * Determine if a particular StackBox is this one or a descendant of this one.
- * @param stackBoxId The StackBox being searched for.
- * @return true if the specified StackBox matches this or one of its descendants.
- */
- boolean contains(int stackBoxId) {
- return mStackBoxId == stackBoxId ||
- (mStack == null && (mFirst.contains(stackBoxId) || mSecond.contains(stackBoxId)));
- }
-
- /**
- * Return the stackId of the stack that intersects the passed point.
- * @param x coordinate of point.
- * @param y coordinate of point.
- * @return -1 if point is outside of mBounds, otherwise the stackId of the containing stack.
- */
- int stackIdFromPoint(int x, int y) {
- if (!mBounds.contains(x, y)) {
- return -1;
- }
- if (mStack != null) {
- return mStack.mStackId;
- }
- int stackId = mFirst.stackIdFromPoint(x, y);
- if (stackId >= 0) {
- return stackId;
- }
- return mSecond.stackIdFromPoint(x, y);
- }
-
- /** Determine if this StackBox is the first child or second child.
- * @return true if this is the first child.
- */
- boolean isFirstChild() {
- return mParent != null && mParent.mFirst == this;
- }
-
- /** Returns the bounds of the specified TaskStack if it is contained in this StackBox.
- * @param stackId the TaskStack to find the bounds of.
- * @return a new Rect with the bounds of stackId if it is within this StackBox, null otherwise.
- */
- Rect getStackBounds(int stackId) {
- if (mStack != null) {
- return mStack.mStackId == stackId ? new Rect(mBounds) : null;
- }
- Rect bounds = mFirst.getStackBounds(stackId);
- if (bounds != null) {
- return bounds;
- }
- return mSecond.getStackBounds(stackId);
- }
-
- /**
- * Create a new TaskStack relative to a specified one by splitting the StackBox containing
- * the specified TaskStack into two children. The size and position each of the new StackBoxes
- * is determined by the passed parameters.
- * @param stackId The id of the new TaskStack to create.
- * @param relativeStackBoxId The id of the StackBox to place the new TaskStack next to.
- * @param position One of the static TASK_STACK_GOES_xxx positions defined in this class.
- * @param weight The percentage size of the parent StackBox to devote to the new TaskStack.
- * @return The new TaskStack.
- */
- TaskStack split(int stackId, int relativeStackBoxId, int position, float weight) {
- if (mStackBoxId != relativeStackBoxId) {
- // This is not the targeted StackBox.
- if (mStack != null) {
- return null;
- }
- // Propagate the split to see if the targeted StackBox is in either sub box.
- TaskStack stack = mFirst.split(stackId, relativeStackBoxId, position, weight);
- if (stack != null) {
- return stack;
- }
- return mSecond.split(stackId, relativeStackBoxId, position, weight);
- }
-
- // Found it!
- TaskStack stack = new TaskStack(mService, stackId, mDisplayContent);
- TaskStack firstStack;
- TaskStack secondStack;
- if (position == TASK_STACK_GOES_BEFORE) {
- // TODO: Test Configuration here for LTR/RTL.
- position = TASK_STACK_TO_LEFT_OF;
- } else if (position == TASK_STACK_GOES_AFTER) {
- // TODO: Test Configuration here for LTR/RTL.
- position = TASK_STACK_TO_RIGHT_OF;
- }
- switch (position) {
- default:
- case TASK_STACK_TO_LEFT_OF:
- case TASK_STACK_TO_RIGHT_OF:
- mVertical = false;
- if (position == TASK_STACK_TO_LEFT_OF) {
- mWeight = weight;
- firstStack = stack;
- secondStack = mStack;
- } else {
- mWeight = 1.0f - weight;
- firstStack = mStack;
- secondStack = stack;
- }
- break;
- case TASK_STACK_GOES_ABOVE:
- case TASK_STACK_GOES_BELOW:
- mVertical = true;
- if (position == TASK_STACK_GOES_ABOVE) {
- mWeight = weight;
- firstStack = stack;
- secondStack = mStack;
- } else {
- mWeight = 1.0f - weight;
- firstStack = mStack;
- secondStack = stack;
- }
- break;
- }
-
- mFirst = new StackBox(mService, mDisplayContent, this);
- firstStack.mStackBox = mFirst;
- mFirst.mStack = firstStack;
-
- mSecond = new StackBox(mService, mDisplayContent, this);
- secondStack.mStackBox = mSecond;
- mSecond.mStack = secondStack;
-
- mStack = null;
- return stack;
- }
-
- /** Return the stackId of the first mFirst StackBox with a non-null mStack */
- int getStackId() {
- if (mStack != null) {
- return mStack.mStackId;
- }
- return mFirst.getStackId();
- }
-
- /** Remove this box and propagate its sibling's content up to their parent.
- * @return The first stackId of the resulting StackBox. */
- int remove() {
- mDisplayContent.layoutNeeded = true;
-
- if (mParent == null) {
- // This is the top-plane stack.
- if (DEBUG_STACK) Slog.i(TAG, "StackBox.remove: removing top plane.");
- mDisplayContent.removeStackBox(this);
- return HOME_STACK_ID;
- }
-
- StackBox sibling = isFirstChild() ? mParent.mSecond : mParent.mFirst;
- StackBox grandparent = mParent.mParent;
- sibling.mParent = grandparent;
- if (grandparent == null) {
- // mParent is a top-plane stack. Now sibling will be.
- if (DEBUG_STACK) Slog.i(TAG, "StackBox.remove: grandparent null");
- mDisplayContent.removeStackBox(mParent);
- mDisplayContent.addStackBox(sibling, true);
- } else {
- if (DEBUG_STACK) Slog.i(TAG, "StackBox.remove: grandparent getting sibling");
- if (mParent.isFirstChild()) {
- grandparent.mFirst = sibling;
- } else {
- grandparent.mSecond = sibling;
- }
- }
- return sibling.getStackId();
- }
-
- boolean resize(int stackBoxId, float weight) {
- if (mStackBoxId != stackBoxId) {
- return mStack == null &&
- (mFirst.resize(stackBoxId, weight) || mSecond.resize(stackBoxId, weight));
- }
- // Don't change weight on topmost stack.
- if (mParent != null) {
- mParent.mWeight = isFirstChild() ? weight : 1.0f - weight;
- }
- return true;
- }
-
- /** If this is a terminal StackBox (contains a TaskStack) set the bounds.
- * @param bounds The rectangle to set the bounds to.
- * @param underStatusBar True if the StackBox is directly below the Status Bar.
- * @return True if the bounds changed, false otherwise. */
- boolean setStackBoxSizes(Rect bounds, boolean underStatusBar) {
- boolean change = false;
- if (mUnderStatusBar != underStatusBar) {
- change = true;
- mUnderStatusBar = underStatusBar;
- }
- if (mStack != null) {
- change |= !mBounds.equals(bounds);
- if (change) {
- mBounds.set(bounds);
- mStack.setBounds(bounds, underStatusBar);
- }
- } else {
- mTmpRect.set(bounds);
- if (mVertical) {
- final int height = bounds.height();
- int firstHeight = (int)(height * mWeight);
- mTmpRect.bottom = bounds.top + firstHeight;
- change |= mFirst.setStackBoxSizes(mTmpRect, underStatusBar);
- mTmpRect.top = mTmpRect.bottom;
- mTmpRect.bottom = bounds.top + height;
- change |= mSecond.setStackBoxSizes(mTmpRect, false);
- } else {
- final int width = bounds.width();
- int firstWidth = (int)(width * mWeight);
- mTmpRect.right = bounds.left + firstWidth;
- change |= mFirst.setStackBoxSizes(mTmpRect, underStatusBar);
- mTmpRect.left = mTmpRect.right;
- mTmpRect.right = bounds.left + width;
- change |= mSecond.setStackBoxSizes(mTmpRect, underStatusBar);
- }
- }
- return change;
- }
-
- void resetAnimationBackgroundAnimator() {
- if (mStack != null) {
- mStack.resetAnimationBackgroundAnimator();
- return;
- }
- mFirst.resetAnimationBackgroundAnimator();
- mSecond.resetAnimationBackgroundAnimator();
- }
-
- boolean animateDimLayers() {
- if (mStack != null) {
- return mStack.animateDimLayers();
- }
- boolean result = mFirst.animateDimLayers();
- result |= mSecond.animateDimLayers();
- return result;
- }
-
- void resetDimming() {
- if (mStack != null) {
- mStack.resetDimmingTag();
- return;
- }
- mFirst.resetDimming();
- mSecond.resetDimming();
- }
-
- boolean isDimming() {
- if (mStack != null) {
- return mStack.isDimming();
- }
- boolean result = mFirst.isDimming();
- result |= mSecond.isDimming();
- return result;
- }
-
- void stopDimmingIfNeeded() {
- if (mStack != null) {
- mStack.stopDimmingIfNeeded();
- return;
- }
- mFirst.stopDimmingIfNeeded();
- mSecond.stopDimmingIfNeeded();
- }
-
- void switchUserStacks(int userId) {
- if (mStack != null) {
- mStack.switchUser(userId);
- return;
- }
- mFirst.switchUserStacks(userId);
- mSecond.switchUserStacks(userId);
- }
-
- void close() {
- if (mStack != null) {
- mStack.mDimLayer.mDimSurface.destroy();
- mStack.mAnimationBackgroundSurface.mDimSurface.destroy();
- return;
- }
- mFirst.close();
- mSecond.close();
- }
-
- public void dump(String prefix, PrintWriter pw) {
- pw.print(prefix); pw.print("mParent="); pw.println(mParent);
- pw.print(prefix); pw.print("mBounds="); pw.print(mBounds.toShortString());
- pw.print(" mVertical="); pw.print(mVertical);
- pw.print(" layoutNeeded="); pw.println(layoutNeeded);
- if (mFirst != null) {
- pw.print(prefix); pw.print("mFirst="); pw.println(System.identityHashCode(mFirst));
- mFirst.dump(prefix + " ", pw);
- pw.print(prefix); pw.print("mSecond="); pw.println(System.identityHashCode(mSecond));
- mSecond.dump(prefix + " ", pw);
- } else {
- pw.print(prefix); pw.print("mStack="); pw.println(mStack);
- mStack.dump(prefix + " ", pw);
- }
- }
-
- @Override
- public String toString() {
- if (mStack != null) {
- return "Box{" + hashCode() + " stack=" + mStack.mStackId + "}";
- }
- return "Box{" + hashCode() + " parent=" + System.identityHashCode(mParent)
- + " first=" + System.identityHashCode(mFirst)
- + " second=" + System.identityHashCode(mSecond) + "}";
- }
-}
diff --git a/services/jni/Android.mk b/services/jni/Android.mk
deleted file mode 100644
index 98e9b30..0000000
--- a/services/jni/Android.mk
+++ /dev/null
@@ -1,63 +0,0 @@
-LOCAL_PATH:= $(call my-dir)
-include $(CLEAR_VARS)
-
-LOCAL_SRC_FILES:= \
- com_android_server_AlarmManagerService.cpp \
- com_android_server_AssetAtlasService.cpp \
- com_android_server_ConsumerIrService.cpp \
- com_android_server_input_InputApplicationHandle.cpp \
- com_android_server_input_InputManagerService.cpp \
- com_android_server_input_InputWindowHandle.cpp \
- com_android_server_LightsService.cpp \
- com_android_server_power_PowerManagerService.cpp \
- com_android_server_SerialService.cpp \
- com_android_server_SystemServer.cpp \
- com_android_server_UsbDeviceManager.cpp \
- com_android_server_UsbHostManager.cpp \
- com_android_server_VibratorService.cpp \
- com_android_server_location_GpsLocationProvider.cpp \
- com_android_server_location_FlpHardwareProvider.cpp \
- com_android_server_connectivity_Vpn.cpp \
- onload.cpp
-
-LOCAL_C_INCLUDES += \
- $(JNI_H_INCLUDE) \
- frameworks/base/services \
- frameworks/base/core/jni \
- frameworks/native/services \
- external/skia/include/core \
- libcore/include \
- libcore/include/libsuspend \
- $(call include-path-for, libhardware)/hardware \
- $(call include-path-for, libhardware_legacy)/hardware_legacy \
-
-LOCAL_SHARED_LIBRARIES := \
- libandroid_runtime \
- libandroidfw \
- libbinder \
- libcutils \
- liblog \
- libhardware \
- libhardware_legacy \
- libnativehelper \
- libutils \
- libui \
- libinput \
- libinputservice \
- libsensorservice \
- libskia \
- libgui \
- libusbhost \
- libsuspend \
- libEGL \
- libGLESv2
-
-LOCAL_CFLAGS += -DEGL_EGLEXT_PROTOTYPES -DGL_GLEXT_PROTOTYPES
-
-ifeq ($(WITH_MALLOC_LEAK_CHECK),true)
- LOCAL_CFLAGS += -DMALLOC_LEAK_CHECK
-endif
-
-LOCAL_MODULE:= libandroid_servers
-
-include $(BUILD_SHARED_LIBRARY)
diff --git a/services/print/java/com/android/server/print/PrintManagerService.java b/services/print/java/com/android/server/print/PrintManagerService.java
new file mode 100644
index 0000000..852736b
--- /dev/null
+++ b/services/print/java/com/android/server/print/PrintManagerService.java
@@ -0,0 +1,690 @@
+/*
+ * Copyright (C) 2013 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.server.print;
+
+import android.Manifest;
+import android.app.Notification;
+import android.app.NotificationManager;
+import android.app.PendingIntent;
+import android.content.BroadcastReceiver;
+import android.content.ComponentName;
+import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
+import android.content.pm.PackageManager;
+import android.content.pm.ResolveInfo;
+import android.content.pm.ServiceInfo;
+import android.database.ContentObserver;
+import android.net.Uri;
+import android.os.Binder;
+import android.os.Bundle;
+import android.os.Process;
+import android.os.RemoteException;
+import android.os.UserHandle;
+import android.print.IPrintDocumentAdapter;
+import android.print.IPrintJobStateChangeListener;
+import android.print.IPrintManager;
+import android.print.IPrinterDiscoveryObserver;
+import android.print.PrintAttributes;
+import android.print.PrintJobId;
+import android.print.PrintJobInfo;
+import android.print.PrinterId;
+import android.printservice.PrintServiceInfo;
+import android.provider.Settings;
+import android.text.TextUtils;
+import android.util.SparseArray;
+
+import com.android.internal.R;
+import com.android.internal.content.PackageMonitor;
+import com.android.internal.os.BackgroundThread;
+import com.android.server.SystemService;
+import com.android.server.devicepolicy.DevicePolicyManagerService;
+
+import java.io.FileDescriptor;
+import java.io.PrintWriter;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Set;
+
+/**
+ * SystemService wrapper for the PrintManager implementation. Publishes
+ * Context.PRINT_SERVICE.
+ * PrintManager implementation is contained within.
+ */
+
+public final class PrintManagerService extends SystemService {
+
+ private PrintManagerImpl mPrintManagerImpl;
+
+ @Override
+ public void onCreate(Context context) {
+ mPrintManagerImpl = new PrintManagerImpl(context);
+ }
+ @Override
+ public void onStart() {
+ publishBinderService(Context.PRINT_SERVICE, mPrintManagerImpl);
+ }
+
+ @Override
+ public void onBootPhase(int phase) {
+ if (phase == PHASE_THIRD_PARTY_APPS_CAN_START) {
+ mPrintManagerImpl.systemRunning();
+ }
+ }
+
+ class PrintManagerImpl extends IPrintManager.Stub {
+ private static final char COMPONENT_NAME_SEPARATOR = ':';
+
+ private static final String EXTRA_PRINT_SERVICE_COMPONENT_NAME =
+ "EXTRA_PRINT_SERVICE_COMPONENT_NAME";
+
+ private final Object mLock = new Object();
+
+ private final Context mContext;
+
+ private final SparseArray<UserState> mUserStates = new SparseArray<UserState>();
+
+ private int mCurrentUserId = UserHandle.USER_OWNER;
+
+ PrintManagerImpl(Context context) {
+ mContext = context;
+ registerContentObservers();
+ registerBoradcastReceivers();
+ }
+
+ public void systemRunning() {
+ BackgroundThread.getHandler().post(new Runnable() {
+ @Override
+ public void run() {
+ final UserState userState;
+ synchronized (mLock) {
+ userState = getCurrentUserStateLocked();
+ userState.updateIfNeededLocked();
+ }
+ // This is the first time we switch to this user after boot, so
+ // now is the time to remove obsolete print jobs since they
+ // are from the last boot and no application would query them.
+ userState.removeObsoletePrintJobs();
+ }
+ });
+ }
+
+ @Override
+ public Bundle print(String printJobName, IPrintDocumentAdapter adapter,
+ PrintAttributes attributes, String packageName, int appId, int userId) {
+ final int resolvedAppId = resolveCallingAppEnforcingPermissions(appId);
+ final int resolvedUserId = resolveCallingUserEnforcingPermissions(userId);
+ String resolvedPackageName = resolveCallingPackageNameEnforcingSecurity(packageName);
+ final UserState userState;
+ synchronized (mLock) {
+ userState = getOrCreateUserStateLocked(resolvedUserId);
+ }
+ final long identity = Binder.clearCallingIdentity();
+ try {
+ return userState.print(printJobName, adapter, attributes,
+ resolvedPackageName, resolvedAppId);
+ } finally {
+ Binder.restoreCallingIdentity(identity);
+ }
+ }
+
+ @Override
+ public List<PrintJobInfo> getPrintJobInfos(int appId, int userId) {
+ final int resolvedAppId = resolveCallingAppEnforcingPermissions(appId);
+ final int resolvedUserId = resolveCallingUserEnforcingPermissions(userId);
+ final UserState userState;
+ synchronized (mLock) {
+ userState = getOrCreateUserStateLocked(resolvedUserId);
+ }
+ final long identity = Binder.clearCallingIdentity();
+ try {
+ return userState.getPrintJobInfos(resolvedAppId);
+ } finally {
+ Binder.restoreCallingIdentity(identity);
+ }
+ }
+
+ @Override
+ public PrintJobInfo getPrintJobInfo(PrintJobId printJobId, int appId, int userId) {
+ final int resolvedAppId = resolveCallingAppEnforcingPermissions(appId);
+ final int resolvedUserId = resolveCallingUserEnforcingPermissions(userId);
+ final UserState userState;
+ synchronized (mLock) {
+ userState = getOrCreateUserStateLocked(resolvedUserId);
+ }
+ final long identity = Binder.clearCallingIdentity();
+ try {
+ return userState.getPrintJobInfo(printJobId, resolvedAppId);
+ } finally {
+ Binder.restoreCallingIdentity(identity);
+ }
+ }
+
+ @Override
+ public void cancelPrintJob(PrintJobId printJobId, int appId, int userId) {
+ final int resolvedAppId = resolveCallingAppEnforcingPermissions(appId);
+ final int resolvedUserId = resolveCallingUserEnforcingPermissions(userId);
+ final UserState userState;
+ synchronized (mLock) {
+ userState = getOrCreateUserStateLocked(resolvedUserId);
+ }
+ final long identity = Binder.clearCallingIdentity();
+ try {
+ userState.cancelPrintJob(printJobId, resolvedAppId);
+ } finally {
+ Binder.restoreCallingIdentity(identity);
+ }
+ }
+
+ @Override
+ public void restartPrintJob(PrintJobId printJobId, int appId, int userId) {
+ final int resolvedAppId = resolveCallingAppEnforcingPermissions(appId);
+ final int resolvedUserId = resolveCallingUserEnforcingPermissions(userId);
+ final UserState userState;
+ synchronized (mLock) {
+ userState = getOrCreateUserStateLocked(resolvedUserId);
+ }
+ final long identity = Binder.clearCallingIdentity();
+ try {
+ userState.restartPrintJob(printJobId, resolvedAppId);
+ } finally {
+ Binder.restoreCallingIdentity(identity);
+ }
+ }
+
+ @Override
+ public List<PrintServiceInfo> getEnabledPrintServices(int userId) {
+ final int resolvedUserId = resolveCallingUserEnforcingPermissions(userId);
+ final UserState userState;
+ synchronized (mLock) {
+ userState = getOrCreateUserStateLocked(resolvedUserId);
+ }
+ final long identity = Binder.clearCallingIdentity();
+ try {
+ return userState.getEnabledPrintServices();
+ } finally {
+ Binder.restoreCallingIdentity(identity);
+ }
+ }
+
+ @Override
+ public List<PrintServiceInfo> getInstalledPrintServices(int userId) {
+ final int resolvedUserId = resolveCallingUserEnforcingPermissions(userId);
+ final UserState userState;
+ synchronized (mLock) {
+ userState = getOrCreateUserStateLocked(resolvedUserId);
+ }
+ final long identity = Binder.clearCallingIdentity();
+ try {
+ return userState.getInstalledPrintServices();
+ } finally {
+ Binder.restoreCallingIdentity(identity);
+ }
+ }
+
+ @Override
+ public void createPrinterDiscoverySession(IPrinterDiscoveryObserver observer,
+ int userId) {
+ final int resolvedUserId = resolveCallingUserEnforcingPermissions(userId);
+ final UserState userState;
+ synchronized (mLock) {
+ userState = getOrCreateUserStateLocked(resolvedUserId);
+ }
+ final long identity = Binder.clearCallingIdentity();
+ try {
+ userState.createPrinterDiscoverySession(observer);
+ } finally {
+ Binder.restoreCallingIdentity(identity);
+ }
+ }
+
+ @Override
+ public void destroyPrinterDiscoverySession(IPrinterDiscoveryObserver observer,
+ int userId) {
+ final int resolvedUserId = resolveCallingUserEnforcingPermissions(userId);
+ final UserState userState;
+ synchronized (mLock) {
+ userState = getOrCreateUserStateLocked(resolvedUserId);
+ }
+ final long identity = Binder.clearCallingIdentity();
+ try {
+ userState.destroyPrinterDiscoverySession(observer);
+ } finally {
+ Binder.restoreCallingIdentity(identity);
+ }
+ }
+
+ @Override
+ public void startPrinterDiscovery(IPrinterDiscoveryObserver observer,
+ List<PrinterId> priorityList, int userId) {
+ final int resolvedUserId = resolveCallingUserEnforcingPermissions(userId);
+ final UserState userState;
+ synchronized (mLock) {
+ userState = getOrCreateUserStateLocked(resolvedUserId);
+ }
+ final long identity = Binder.clearCallingIdentity();
+ try {
+ userState.startPrinterDiscovery(observer, priorityList);
+ } finally {
+ Binder.restoreCallingIdentity(identity);
+ }
+ }
+
+ @Override
+ public void stopPrinterDiscovery(IPrinterDiscoveryObserver observer, int userId) {
+ final int resolvedUserId = resolveCallingUserEnforcingPermissions(userId);
+ final UserState userState;
+ synchronized (mLock) {
+ userState = getOrCreateUserStateLocked(resolvedUserId);
+ }
+ final long identity = Binder.clearCallingIdentity();
+ try {
+ userState.stopPrinterDiscovery(observer);
+ } finally {
+ Binder.restoreCallingIdentity(identity);
+ }
+ }
+
+ @Override
+ public void validatePrinters(List<PrinterId> printerIds, int userId) {
+ final int resolvedUserId = resolveCallingUserEnforcingPermissions(userId);
+ final UserState userState;
+ synchronized (mLock) {
+ userState = getOrCreateUserStateLocked(resolvedUserId);
+ }
+ final long identity = Binder.clearCallingIdentity();
+ try {
+ userState.validatePrinters(printerIds);
+ } finally {
+ Binder.restoreCallingIdentity(identity);
+ }
+ }
+
+ @Override
+ public void startPrinterStateTracking(PrinterId printerId, int userId) {
+ final int resolvedUserId = resolveCallingUserEnforcingPermissions(userId);
+ final UserState userState;
+ synchronized (mLock) {
+ userState = getOrCreateUserStateLocked(resolvedUserId);
+ }
+ final long identity = Binder.clearCallingIdentity();
+ try {
+ userState.startPrinterStateTracking(printerId);
+ } finally {
+ Binder.restoreCallingIdentity(identity);
+ }
+ }
+
+ @Override
+ public void stopPrinterStateTracking(PrinterId printerId, int userId) {
+ final int resolvedUserId = resolveCallingUserEnforcingPermissions(userId);
+ final UserState userState;
+ synchronized (mLock) {
+ userState = getOrCreateUserStateLocked(resolvedUserId);
+ }
+ final long identity = Binder.clearCallingIdentity();
+ try {
+ userState.stopPrinterStateTracking(printerId);
+ } finally {
+ Binder.restoreCallingIdentity(identity);
+ }
+ }
+
+ @Override
+ public void addPrintJobStateChangeListener(IPrintJobStateChangeListener listener,
+ int appId, int userId) throws RemoteException {
+ final int resolvedUserId = resolveCallingUserEnforcingPermissions(userId);
+ final int resolvedAppId = resolveCallingAppEnforcingPermissions(appId);
+ final UserState userState;
+ synchronized (mLock) {
+ userState = getOrCreateUserStateLocked(resolvedUserId);
+ }
+ final long identity = Binder.clearCallingIdentity();
+ try {
+ userState.addPrintJobStateChangeListener(listener, resolvedAppId);
+ } finally {
+ Binder.restoreCallingIdentity(identity);
+ }
+ }
+
+ @Override
+ public void removePrintJobStateChangeListener(IPrintJobStateChangeListener listener,
+ int userId) {
+ final int resolvedUserId = resolveCallingUserEnforcingPermissions(userId);
+ final UserState userState;
+ synchronized (mLock) {
+ userState = getOrCreateUserStateLocked(resolvedUserId);
+ }
+ final long identity = Binder.clearCallingIdentity();
+ try {
+ userState.removePrintJobStateChangeListener(listener);
+ } finally {
+ Binder.restoreCallingIdentity(identity);
+ }
+ }
+
+ @Override
+ public void dump(FileDescriptor fd, PrintWriter pw, String[] args) {
+ if (mContext.checkCallingOrSelfPermission(Manifest.permission.DUMP)
+ != PackageManager.PERMISSION_GRANTED) {
+ pw.println("Permission Denial: can't dump PrintManager from from pid="
+ + Binder.getCallingPid()
+ + ", uid=" + Binder.getCallingUid());
+ return;
+ }
+
+ synchronized (mLock) {
+ final long identity = Binder.clearCallingIdentity();
+ try {
+ pw.println("PRINT MANAGER STATE (dumpsys print)");
+ final int userStateCount = mUserStates.size();
+ for (int i = 0; i < userStateCount; i++) {
+ UserState userState = mUserStates.valueAt(i);
+ userState.dump(fd, pw, "");
+ pw.println();
+ }
+ } finally {
+ Binder.restoreCallingIdentity(identity);
+ }
+ }
+ }
+
+ private void registerContentObservers() {
+ final Uri enabledPrintServicesUri = Settings.Secure.getUriFor(
+ Settings.Secure.ENABLED_PRINT_SERVICES);
+
+ ContentObserver observer = new ContentObserver(BackgroundThread.getHandler()) {
+ @Override
+ public void onChange(boolean selfChange, Uri uri) {
+ if (enabledPrintServicesUri.equals(uri)) {
+ synchronized (mLock) {
+ UserState userState = getCurrentUserStateLocked();
+ userState.updateIfNeededLocked();
+ }
+ }
+ }
+ };
+
+ mContext.getContentResolver().registerContentObserver(enabledPrintServicesUri,
+ false, observer, UserHandle.USER_ALL);
+ }
+
+ private void registerBoradcastReceivers() {
+ PackageMonitor monitor = new PackageMonitor() {
+ @Override
+ public boolean onPackageChanged(String packageName, int uid, String[] components) {
+ synchronized (mLock) {
+ UserState userState = getOrCreateUserStateLocked(getChangingUserId());
+ Iterator<ComponentName> iterator = userState.getEnabledServices()
+ .iterator();
+ while (iterator.hasNext()) {
+ ComponentName componentName = iterator.next();
+ if (packageName.equals(componentName.getPackageName())) {
+ userState.updateIfNeededLocked();
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+
+ @Override
+ public void onPackageRemoved(String packageName, int uid) {
+ synchronized (mLock) {
+ UserState userState = getOrCreateUserStateLocked(getChangingUserId());
+ Iterator<ComponentName> iterator = userState.getEnabledServices()
+ .iterator();
+ while (iterator.hasNext()) {
+ ComponentName componentName = iterator.next();
+ if (packageName.equals(componentName.getPackageName())) {
+ iterator.remove();
+ persistComponentNamesToSettingLocked(
+ Settings.Secure.ENABLED_PRINT_SERVICES,
+ userState.getEnabledServices(), getChangingUserId());
+ userState.updateIfNeededLocked();
+ return;
+ }
+ }
+ }
+ }
+
+ @Override
+ public boolean onHandleForceStop(Intent intent, String[] stoppedPackages,
+ int uid, boolean doit) {
+ synchronized (mLock) {
+ UserState userState = getOrCreateUserStateLocked(getChangingUserId());
+ boolean stoppedSomePackages = false;
+ Iterator<ComponentName> iterator = userState.getEnabledServices()
+ .iterator();
+ while (iterator.hasNext()) {
+ ComponentName componentName = iterator.next();
+ String componentPackage = componentName.getPackageName();
+ for (String stoppedPackage : stoppedPackages) {
+ if (componentPackage.equals(stoppedPackage)) {
+ if (!doit) {
+ return true;
+ }
+ stoppedSomePackages = true;
+ break;
+ }
+ }
+ }
+ if (stoppedSomePackages) {
+ userState.updateIfNeededLocked();
+ }
+ return false;
+ }
+ }
+
+ @Override
+ public void onPackageAdded(String packageName, int uid) {
+ Intent intent = new Intent(android.printservice.PrintService.SERVICE_INTERFACE);
+ intent.setPackage(packageName);
+
+ List<ResolveInfo> installedServices = mContext.getPackageManager()
+ .queryIntentServicesAsUser(intent, PackageManager.GET_SERVICES,
+ getChangingUserId());
+
+ if (installedServices == null) {
+ return;
+ }
+
+ final int installedServiceCount = installedServices.size();
+ for (int i = 0; i < installedServiceCount; i++) {
+ ServiceInfo serviceInfo = installedServices.get(i).serviceInfo;
+ ComponentName component = new ComponentName(serviceInfo.packageName,
+ serviceInfo.name);
+ String label = serviceInfo.loadLabel(mContext.getPackageManager())
+ .toString();
+ showEnableInstalledPrintServiceNotification(component, label,
+ getChangingUserId());
+ }
+ }
+
+ private void persistComponentNamesToSettingLocked(String settingName,
+ Set<ComponentName> componentNames, int userId) {
+ StringBuilder builder = new StringBuilder();
+ for (ComponentName componentName : componentNames) {
+ if (builder.length() > 0) {
+ builder.append(COMPONENT_NAME_SEPARATOR);
+ }
+ builder.append(componentName.flattenToShortString());
+ }
+ Settings.Secure.putStringForUser(mContext.getContentResolver(),
+ settingName, builder.toString(), userId);
+ }
+ };
+
+ // package changes
+ monitor.register(mContext, BackgroundThread.getHandler().getLooper(),
+ UserHandle.ALL, true);
+
+ // user changes
+ IntentFilter intentFilter = new IntentFilter();
+ intentFilter.addAction(Intent.ACTION_USER_SWITCHED);
+ intentFilter.addAction(Intent.ACTION_USER_REMOVED);
+
+ mContext.registerReceiverAsUser(new BroadcastReceiver() {
+ @Override
+ public void onReceive(Context context, Intent intent) {
+ String action = intent.getAction();
+ if (Intent.ACTION_USER_SWITCHED.equals(action)) {
+ switchUser(intent.getIntExtra(Intent.EXTRA_USER_HANDLE, 0));
+ } else if (Intent.ACTION_USER_REMOVED.equals(action)) {
+ removeUser(intent.getIntExtra(Intent.EXTRA_USER_HANDLE, 0));
+ }
+ }
+ }, UserHandle.ALL, intentFilter, null, BackgroundThread.getHandler());
+ }
+
+ private UserState getCurrentUserStateLocked() {
+ return getOrCreateUserStateLocked(mCurrentUserId);
+ }
+
+ private UserState getOrCreateUserStateLocked(int userId) {
+ UserState userState = mUserStates.get(userId);
+ if (userState == null) {
+ userState = new UserState(mContext, userId, mLock);
+ mUserStates.put(userId, userState);
+ }
+ return userState;
+ }
+
+ private void switchUser(int newUserId) {
+ UserState userState;
+ synchronized (mLock) {
+ if (newUserId == mCurrentUserId) {
+ return;
+ }
+ mCurrentUserId = newUserId;
+ userState = mUserStates.get(mCurrentUserId);
+ if (userState == null) {
+ userState = getCurrentUserStateLocked();
+ userState.updateIfNeededLocked();
+ } else {
+ userState.updateIfNeededLocked();
+ }
+ }
+ // This is the first time we switch to this user after boot, so
+ // now is the time to remove obsolete print jobs since they
+ // are from the last boot and no application would query them.
+ userState.removeObsoletePrintJobs();
+ }
+
+ private void removeUser(int removedUserId) {
+ synchronized (mLock) {
+ UserState userState = mUserStates.get(removedUserId);
+ if (userState != null) {
+ userState.destroyLocked();
+ mUserStates.remove(removedUserId);
+ }
+ }
+ }
+
+ private int resolveCallingAppEnforcingPermissions(int appId) {
+ final int callingUid = Binder.getCallingUid();
+ if (callingUid == 0 || callingUid == Process.SYSTEM_UID
+ || callingUid == Process.SHELL_UID) {
+ return appId;
+ }
+ final int callingAppId = UserHandle.getAppId(callingUid);
+ if (appId == callingAppId) {
+ return appId;
+ }
+ if (mContext.checkCallingPermission(
+ "com.android.printspooler.permission.ACCESS_ALL_PRINT_JOBS")
+ != PackageManager.PERMISSION_GRANTED) {
+ throw new SecurityException("Call from app " + callingAppId + " as app "
+ + appId + " without com.android.printspooler.permission"
+ + ".ACCESS_ALL_PRINT_JOBS");
+ }
+ return appId;
+ }
+
+ private int resolveCallingUserEnforcingPermissions(int userId) {
+ final int callingUid = Binder.getCallingUid();
+ if (callingUid == 0 || callingUid == Process.SYSTEM_UID
+ || callingUid == Process.SHELL_UID) {
+ return userId;
+ }
+ final int callingUserId = UserHandle.getUserId(callingUid);
+ if (callingUserId == userId) {
+ return userId;
+ }
+ if (mContext.checkCallingPermission(Manifest.permission.INTERACT_ACROSS_USERS_FULL)
+ != PackageManager.PERMISSION_GRANTED
+ || mContext.checkCallingPermission(Manifest.permission.INTERACT_ACROSS_USERS)
+ != PackageManager.PERMISSION_GRANTED) {
+ if (userId == UserHandle.USER_CURRENT_OR_SELF) {
+ return callingUserId;
+ }
+ throw new SecurityException("Call from user " + callingUserId + " as user "
+ + userId + " without permission INTERACT_ACROSS_USERS or "
+ + "INTERACT_ACROSS_USERS_FULL not allowed.");
+ }
+ if (userId == UserHandle.USER_CURRENT || userId == UserHandle.USER_CURRENT_OR_SELF) {
+ return mCurrentUserId;
+ }
+ throw new IllegalArgumentException("Calling user can be changed to only "
+ + "UserHandle.USER_CURRENT or UserHandle.USER_CURRENT_OR_SELF.");
+ }
+
+ private String resolveCallingPackageNameEnforcingSecurity(String packageName) {
+ if (TextUtils.isEmpty(packageName)) {
+ return null;
+ }
+ String[] packages = mContext.getPackageManager().getPackagesForUid(
+ Binder.getCallingUid());
+ final int packageCount = packages.length;
+ for (int i = 0; i < packageCount; i++) {
+ if (packageName.equals(packages[i])) {
+ return packageName;
+ }
+ }
+ return null;
+ }
+
+ private void showEnableInstalledPrintServiceNotification(ComponentName component,
+ String label, int userId) {
+ UserHandle userHandle = new UserHandle(userId);
+
+ Intent intent = new Intent(Settings.ACTION_PRINT_SETTINGS);
+ intent.putExtra(EXTRA_PRINT_SERVICE_COMPONENT_NAME, component.flattenToString());
+
+ PendingIntent pendingIntent = PendingIntent.getActivityAsUser(mContext, 0, intent,
+ PendingIntent.FLAG_ONE_SHOT | PendingIntent.FLAG_CANCEL_CURRENT, null,
+ userHandle);
+
+ Notification.Builder builder = new Notification.Builder(mContext)
+ .setSmallIcon(R.drawable.ic_print)
+ .setContentTitle(mContext.getString(R.string.print_service_installed_title,
+ label))
+ .setContentText(mContext.getString(R.string.print_service_installed_message))
+ .setContentIntent(pendingIntent)
+ .setWhen(System.currentTimeMillis())
+ .setAutoCancel(true)
+ .setShowWhen(true);
+
+ NotificationManager notificationManager = (NotificationManager) mContext
+ .getSystemService(Context.NOTIFICATION_SERVICE);
+
+ String notificationTag = getClass().getName() + ":" + component.flattenToString();
+ notificationManager.notifyAsUser(notificationTag, 0, builder.build(),
+ userHandle);
+ }
+ }
+}
diff --git a/services/java/com/android/server/print/RemotePrintService.java b/services/print/java/com/android/server/print/RemotePrintService.java
similarity index 100%
rename from services/java/com/android/server/print/RemotePrintService.java
rename to services/print/java/com/android/server/print/RemotePrintService.java
diff --git a/services/java/com/android/server/print/RemotePrintSpooler.java b/services/print/java/com/android/server/print/RemotePrintSpooler.java
similarity index 100%
rename from services/java/com/android/server/print/RemotePrintSpooler.java
rename to services/print/java/com/android/server/print/RemotePrintSpooler.java
diff --git a/services/java/com/android/server/print/UserState.java b/services/print/java/com/android/server/print/UserState.java
similarity index 100%
rename from services/java/com/android/server/print/UserState.java
rename to services/print/java/com/android/server/print/UserState.java
diff --git a/services/print/java/service.mk b/services/print/java/service.mk
new file mode 100644
index 0000000..cba3612
--- /dev/null
+++ b/services/print/java/service.mk
@@ -0,0 +1,11 @@
+# Include only if the service is required
+ifneq ($(findstring print,$(REQUIRED_SERVICES)),)
+
+SUB_DIR := print/java
+
+LOCAL_SRC_FILES += \
+ $(call all-java-files-under,$(SUB_DIR))
+
+#DEFINED_SERVICES += com.android.server.print.PrintManagerService
+
+endif
diff --git a/services/tests/Android.mk b/services/tests/Android.mk
new file mode 100644
index 0000000..40369ee
--- /dev/null
+++ b/services/tests/Android.mk
@@ -0,0 +1,3 @@
+LOCAL_PATH:= $(call my-dir)
+
+include $(call all-makefiles-under, $(LOCAL_PATH))
diff --git a/test-runner/src/android/test/InstrumentationTestRunner.java b/test-runner/src/android/test/InstrumentationTestRunner.java
index 91d04da..db80ef951 100644
--- a/test-runner/src/android/test/InstrumentationTestRunner.java
+++ b/test-runner/src/android/test/InstrumentationTestRunner.java
@@ -74,8 +74,9 @@
* <li>{@link android.test.ProviderTestCase}</li>
* <li>{@link android.test.ServiceTestCase}</li>
* <li>{@link android.test.SingleLaunchActivityTestCase}</li></ul>
- * <li>In an appropriate AndroidManifest.xml, define the this instrumentation with
- * the appropriate android:targetPackage set.
+ * <li>Set the <code>android:targetPackage</code> attribute of the <code><instrumentation></code>
+ * element in the test package's manifest. You should set the attribute value
+ * to the package name of the target application under test.
* <li>Run the instrumentation using "adb shell am instrument -w",
* with no optional arguments, to run all tests (except performance tests).
* <li>Run the instrumentation using "adb shell am instrument -w",
diff --git a/tools/aapt/AaptAssets.cpp b/tools/aapt/AaptAssets.cpp
index ebf4538..8133d26 100644
--- a/tools/aapt/AaptAssets.cpp
+++ b/tools/aapt/AaptAssets.cpp
@@ -1631,9 +1631,18 @@
// =========================================================================
// =========================================================================
-status_t AaptGroup::addFile(const sp<AaptFile>& file)
+status_t AaptGroup::addFile(const sp<AaptFile>& file, const bool overwriteDuplicate)
{
- if (mFiles.indexOfKey(file->getGroupEntry()) < 0) {
+ ssize_t index = mFiles.indexOfKey(file->getGroupEntry());
+ if (index >= 0 && overwriteDuplicate) {
+ fprintf(stderr, "warning: overwriting '%s' with '%s'\n",
+ mFiles[index]->getSourceFile().string(),
+ file->getSourceFile().string());
+ removeFile(index);
+ index = -1;
+ }
+
+ if (index < 0) {
file->mPath = mPath;
mFiles.add(file->getGroupEntry(), file);
return NO_ERROR;
@@ -1739,7 +1748,8 @@
mDirs.removeItem(name);
}
-status_t AaptDir::addLeafFile(const String8& leafName, const sp<AaptFile>& file)
+status_t AaptDir::addLeafFile(const String8& leafName, const sp<AaptFile>& file,
+ const bool overwrite)
{
sp<AaptGroup> group;
if (mFiles.indexOfKey(leafName) >= 0) {
@@ -1749,12 +1759,12 @@
mFiles.add(leafName, group);
}
- return group->addFile(file);
+ return group->addFile(file, overwrite);
}
ssize_t AaptDir::slurpFullTree(Bundle* bundle, const String8& srcDir,
const AaptGroupEntry& kind, const String8& resType,
- sp<FilePathStore>& fullResPaths)
+ sp<FilePathStore>& fullResPaths, const bool overwrite)
{
Vector<String8> fileNames;
{
@@ -1813,7 +1823,7 @@
notAdded = true;
}
ssize_t res = subdir->slurpFullTree(bundle, pathName, kind,
- resType, fullResPaths);
+ resType, fullResPaths, overwrite);
if (res < NO_ERROR) {
return res;
}
@@ -1823,7 +1833,7 @@
count += res;
} else if (type == kFileTypeRegular) {
sp<AaptFile> file = new AaptFile(pathName, kind, resType);
- status_t err = addLeafFile(fileNames[i], file);
+ status_t err = addLeafFile(fileNames[i], file, overwrite);
if (err != NO_ERROR) {
return err;
}
@@ -2089,24 +2099,24 @@
/*
* If a directory of custom assets was supplied, slurp 'em up.
*/
- if (bundle->getAssetSourceDir()) {
- const char* assetDir = bundle->getAssetSourceDir();
-
- FileType type = getFileType(assetDir);
+ const Vector<const char*>& assetDirs = bundle->getAssetSourceDirs();
+ const int AN = assetDirs.size();
+ for (int i = 0; i < AN; i++) {
+ FileType type = getFileType(assetDirs[i]);
if (type == kFileTypeNonexistent) {
- fprintf(stderr, "ERROR: asset directory '%s' does not exist\n", assetDir);
+ fprintf(stderr, "ERROR: asset directory '%s' does not exist\n", assetDirs[i]);
return UNKNOWN_ERROR;
}
if (type != kFileTypeDirectory) {
- fprintf(stderr, "ERROR: '%s' is not a directory\n", assetDir);
+ fprintf(stderr, "ERROR: '%s' is not a directory\n", assetDirs[i]);
return UNKNOWN_ERROR;
}
- String8 assetRoot(assetDir);
+ String8 assetRoot(assetDirs[i]);
sp<AaptDir> assetAaptDir = makeDir(String8(kAssetDir));
AaptGroupEntry group;
count = assetAaptDir->slurpFullTree(bundle, assetRoot, group,
- String8(), mFullAssetPaths);
+ String8(), mFullAssetPaths, true);
if (count < 0) {
totalCount = count;
goto bail;
@@ -2116,9 +2126,10 @@
}
totalCount += count;
- if (bundle->getVerbose())
+ if (bundle->getVerbose()) {
printf("Found %d custom asset file%s in %s\n",
- count, (count==1) ? "" : "s", assetDir);
+ count, (count==1) ? "" : "s", assetDirs[i]);
+ }
}
/*
diff --git a/tools/aapt/AaptAssets.h b/tools/aapt/AaptAssets.h
index 5cfa913..9cc9007 100644
--- a/tools/aapt/AaptAssets.h
+++ b/tools/aapt/AaptAssets.h
@@ -235,7 +235,7 @@
const DefaultKeyedVector<AaptGroupEntry, sp<AaptFile> >& getFiles() const
{ return mFiles; }
- status_t addFile(const sp<AaptFile>& file);
+ status_t addFile(const sp<AaptFile>& file, const bool overwriteDuplicate=false);
void removeFile(size_t index);
void print(const String8& prefix) const;
@@ -301,12 +301,14 @@
status_t addDir(const String8& name, const sp<AaptDir>& dir);
sp<AaptDir> makeDir(const String8& name);
status_t addLeafFile(const String8& leafName,
- const sp<AaptFile>& file);
+ const sp<AaptFile>& file,
+ const bool overwrite=false);
virtual ssize_t slurpFullTree(Bundle* bundle,
const String8& srcDir,
const AaptGroupEntry& kind,
const String8& resType,
- sp<FilePathStore>& fullResPaths);
+ sp<FilePathStore>& fullResPaths,
+ const bool overwrite=false);
String8 mLeaf;
String8 mPath;
diff --git a/tools/aapt/Bundle.h b/tools/aapt/Bundle.h
index 5089b9d..26b10a6 100644
--- a/tools/aapt/Bundle.h
+++ b/tools/aapt/Bundle.h
@@ -55,7 +55,6 @@
mCompressionMethod(0), mJunkPath(false), mOutputAPKFile(NULL),
mManifestPackageNameOverride(NULL), mInstrumentationPackageNameOverride(NULL),
mAutoAddOverlay(false), mGenDependencies(false),
- mAssetSourceDir(NULL),
mCrunchedOutputDir(NULL), mProguardFile(NULL),
mAndroidManifestFile(NULL), mPublicOutputFile(NULL),
mRClassDir(NULL), mResourceIntermediatesDir(NULL), mManifestMinSdkVersion(NULL),
@@ -123,8 +122,8 @@
/*
* Input options.
*/
- const char* getAssetSourceDir() const { return mAssetSourceDir; }
- void setAssetSourceDir(const char* dir) { mAssetSourceDir = dir; }
+ const android::Vector<const char*>& getAssetSourceDirs() const { return mAssetSourceDirs; }
+ void addAssetSourceDir(const char* dir) { mAssetSourceDirs.insertAt(dir,0); }
const char* getCrunchedOutputDir() const { return mCrunchedOutputDir; }
void setCrunchedOutputDir(const char* dir) { mCrunchedOutputDir = dir; }
const char* getProguardFile() const { return mProguardFile; }
@@ -272,6 +271,7 @@
android::Vector<const char*> mPackageIncludes;
android::Vector<const char*> mJarFiles;
android::Vector<const char*> mNoCompressExtensions;
+ android::Vector<const char*> mAssetSourceDirs;
android::Vector<const char*> mResourceSourceDirs;
const char* mManifestMinSdkVersion;
diff --git a/tools/aapt/Command.cpp b/tools/aapt/Command.cpp
index 8a6faed..5d4232d 100644
--- a/tools/aapt/Command.cpp
+++ b/tools/aapt/Command.cpp
@@ -1896,7 +1896,7 @@
N = bundle->getFileSpecCount();
if (N < 1 && bundle->getResourceSourceDirs().size() == 0 && bundle->getJarFiles().size() == 0
- && bundle->getAndroidManifestFile() == NULL && bundle->getAssetSourceDir() == NULL) {
+ && bundle->getAndroidManifestFile() == NULL && bundle->getAssetSourceDirs().size() == 0) {
fprintf(stderr, "ERROR: no input files\n");
goto bail;
}
diff --git a/tools/aapt/Main.cpp b/tools/aapt/Main.cpp
index 977226b..d1d3deb 100644
--- a/tools/aapt/Main.cpp
+++ b/tools/aapt/Main.cpp
@@ -345,7 +345,7 @@
goto bail;
}
convertPath(argv[0]);
- bundle.setAssetSourceDir(argv[0]);
+ bundle.addAssetSourceDir(argv[0]);
break;
case 'G':
argc--;
diff --git a/tools/layoutlib/bridge/src/android/graphics/BitmapFactory_Delegate.java b/tools/layoutlib/bridge/src/android/graphics/BitmapFactory_Delegate.java
index f5c4677..06673c1 100644
--- a/tools/layoutlib/bridge/src/android/graphics/BitmapFactory_Delegate.java
+++ b/tools/layoutlib/bridge/src/android/graphics/BitmapFactory_Delegate.java
@@ -44,62 +44,13 @@
*/
/*package*/ class BitmapFactory_Delegate {
- // ------ Java delegates ------
-
- @LayoutlibDelegate
- /*package*/ static Bitmap finishDecode(Bitmap bm, Rect outPadding, Options opts) {
- if (bm == null || opts == null) {
- return bm;
- }
-
- final int density = opts.inDensity;
- if (density == 0) {
- return bm;
- }
-
- bm.setDensity(density);
- final int targetDensity = opts.inTargetDensity;
- if (targetDensity == 0 || density == targetDensity || density == opts.inScreenDensity) {
- return bm;
- }
-
- byte[] np = bm.getNinePatchChunk();
- final boolean isNinePatch = np != null && NinePatch.isNinePatchChunk(np);
- // DELEGATE CHANGE: never scale 9-patch
- if (opts.inScaled && isNinePatch == false) {
- float scale = targetDensity / (float)density;
- // TODO: This is very inefficient and should be done in native by Skia
- final Bitmap oldBitmap = bm;
- bm = Bitmap.createScaledBitmap(oldBitmap, (int) (bm.getWidth() * scale + 0.5f),
- (int) (bm.getHeight() * scale + 0.5f), true);
- oldBitmap.recycle();
-
- if (isNinePatch) {
- np = nativeScaleNinePatch(np, scale, outPadding);
- bm.setNinePatchChunk(np);
- }
- bm.setDensity(targetDensity);
- }
-
- return bm;
- }
-
-
// ------ Native Delegates ------
@LayoutlibDelegate
/*package*/ static Bitmap nativeDecodeStream(InputStream is, byte[] storage,
Rect padding, Options opts) {
- return nativeDecodeStream(is, storage, padding, opts, false, 1.f);
- }
-
- @LayoutlibDelegate
- /*package*/ static Bitmap nativeDecodeStream(InputStream is, byte[] storage,
- Rect padding, Options opts, boolean applyScale, float scale) {
Bitmap bm = null;
- //TODO support rescaling
-
Density density = Density.MEDIUM;
Set<BitmapCreateFlags> bitmapCreateFlags = EnumSet.of(BitmapCreateFlags.MUTABLE);
if (opts != null) {
@@ -157,13 +108,6 @@
}
@LayoutlibDelegate
- /*package*/ static Bitmap nativeDecodeAsset(long asset, Rect padding, Options opts,
- boolean applyScale, float scale) {
- opts.inBitmap = null;
- return null;
- }
-
- @LayoutlibDelegate
/*package*/ static Bitmap nativeDecodeByteArray(byte[] data, int offset,
int length, Options opts) {
opts.inBitmap = null;
@@ -171,13 +115,6 @@
}
@LayoutlibDelegate
- /*package*/ static byte[] nativeScaleNinePatch(byte[] chunk, float scale, Rect pad) {
- // don't scale for now. This should not be called anyway since we re-implement
- // BitmapFactory.finishDecode();
- return chunk;
- }
-
- @LayoutlibDelegate
/*package*/ static boolean nativeIsSeekable(FileDescriptor fd) {
return true;
}
diff --git a/tools/layoutlib/bridge/src/android/graphics/Bitmap_Delegate.java b/tools/layoutlib/bridge/src/android/graphics/Bitmap_Delegate.java
index f6abaa1..89d7e23 100644
--- a/tools/layoutlib/bridge/src/android/graphics/Bitmap_Delegate.java
+++ b/tools/layoutlib/bridge/src/android/graphics/Bitmap_Delegate.java
@@ -314,6 +314,13 @@
}
@LayoutlibDelegate
+ /*package*/ static void nativeReconfigure(long nativeBitmap, int width, int height,
+ int config, int allocSize) {
+ Bridge.getLog().error(LayoutLog.TAG_UNSUPPORTED,
+ "Bitmap.reconfigure() is not supported", null /*data*/);
+ }
+
+ @LayoutlibDelegate
/*package*/ static boolean nativeCompress(long nativeBitmap, int format, int quality,
OutputStream stream, byte[] tempStorage) {
Bridge.getLog().error(LayoutLog.TAG_UNSUPPORTED,
@@ -342,28 +349,6 @@
}
@LayoutlibDelegate
- /*package*/ static int nativeWidth(long nativeBitmap) {
- // get the delegate from the native int.
- Bitmap_Delegate delegate = sManager.getDelegate(nativeBitmap);
- if (delegate == null) {
- return 0;
- }
-
- return delegate.mImage.getWidth();
- }
-
- @LayoutlibDelegate
- /*package*/ static int nativeHeight(long nativeBitmap) {
- // get the delegate from the native int.
- Bitmap_Delegate delegate = sManager.getDelegate(nativeBitmap);
- if (delegate == null) {
- return 0;
- }
-
- return delegate.mImage.getHeight();
- }
-
- @LayoutlibDelegate
/*package*/ static int nativeRowBytes(long nativeBitmap) {
// get the delegate from the native int.
Bitmap_Delegate delegate = sManager.getDelegate(nativeBitmap);
@@ -408,19 +393,21 @@
}
@LayoutlibDelegate
- /*package*/ static int nativeGetPixel(long nativeBitmap, int x, int y) {
+ /*package*/ static int nativeGetPixel(long nativeBitmap, int x, int y,
+ boolean isPremultiplied) {
// get the delegate from the native int.
Bitmap_Delegate delegate = sManager.getDelegate(nativeBitmap);
if (delegate == null) {
return 0;
}
+ // TODO: Support isPremultiplied.
return delegate.mImage.getRGB(x, y);
}
@LayoutlibDelegate
/*package*/ static void nativeGetPixels(long nativeBitmap, int[] pixels, int offset,
- int stride, int x, int y, int width, int height) {
+ int stride, int x, int y, int width, int height, boolean isPremultiplied) {
Bitmap_Delegate delegate = sManager.getDelegate(nativeBitmap);
if (delegate == null) {
return;
@@ -431,7 +418,8 @@
@LayoutlibDelegate
- /*package*/ static void nativeSetPixel(long nativeBitmap, int x, int y, int color) {
+ /*package*/ static void nativeSetPixel(long nativeBitmap, int x, int y, int color,
+ boolean isPremultiplied) {
Bitmap_Delegate delegate = sManager.getDelegate(nativeBitmap);
if (delegate == null) {
return;
@@ -442,7 +430,7 @@
@LayoutlibDelegate
/*package*/ static void nativeSetPixels(long nativeBitmap, int[] colors, int offset,
- int stride, int x, int y, int width, int height) {
+ int stride, int x, int y, int width, int height, boolean isPremultiplied) {
Bitmap_Delegate delegate = sManager.getDelegate(nativeBitmap);
if (delegate == null) {
return;
diff --git a/tools/layoutlib/bridge/src/android/graphics/NinePatch_Delegate.java b/tools/layoutlib/bridge/src/android/graphics/NinePatch_Delegate.java
index a5c52e55..38745ce 100644
--- a/tools/layoutlib/bridge/src/android/graphics/NinePatch_Delegate.java
+++ b/tools/layoutlib/bridge/src/android/graphics/NinePatch_Delegate.java
@@ -167,6 +167,7 @@
return sManager.addNewDelegate(newDelegate);
}
+ @LayoutlibDelegate
/*package*/ static void nativeFinalize(long chunk) {
sManager.removeJavaReferenceFor(chunk);
}
diff --git a/tools/layoutlib/bridge/src/android/graphics/Path_Delegate.java b/tools/layoutlib/bridge/src/android/graphics/Path_Delegate.java
index f3b56d9..4e9c129 100644
--- a/tools/layoutlib/bridge/src/android/graphics/Path_Delegate.java
+++ b/tools/layoutlib/bridge/src/android/graphics/Path_Delegate.java
@@ -474,6 +474,12 @@
}
@LayoutlibDelegate
+ /*package*/ static boolean native_op(long nPath1, long nPath2, int op, int result) {
+ Bridge.getLog().error(LayoutLog.TAG_UNSUPPORTED, "Path.op() not supported", null);
+ return false;
+ }
+
+ @LayoutlibDelegate
/*package*/ static void finalizer(long nPath) {
sManager.removeJavaReferenceFor(nPath);
}
diff --git a/tools/layoutlib/bridge/src/libcore/icu/DateIntervalFormat_Delegate.java b/tools/layoutlib/bridge/src/libcore/icu/DateIntervalFormat_Delegate.java
index a773d93..d94c205 100644
--- a/tools/layoutlib/bridge/src/libcore/icu/DateIntervalFormat_Delegate.java
+++ b/tools/layoutlib/bridge/src/libcore/icu/DateIntervalFormat_Delegate.java
@@ -21,6 +21,7 @@
import com.android.ide.common.rendering.api.LayoutLog;
import com.android.layoutlib.bridge.Bridge;
import com.android.layoutlib.bridge.impl.DelegateManager;
+import com.android.tools.layoutlib.annotations.LayoutlibDelegate;
import com.ibm.icu.text.DateIntervalFormat;
import com.ibm.icu.util.DateInterval;
import com.ibm.icu.util.TimeZone;
@@ -38,6 +39,7 @@
// ---- native methods ----
+ @LayoutlibDelegate
/*package*/static String formatDateInterval(long address, long fromDate, long toDate) {
DateIntervalFormat_Delegate delegate = sManager.getDelegate((int)address);
if (delegate == null) {
@@ -52,6 +54,7 @@
return sb.toString();
}
+ @LayoutlibDelegate
/*package*/ static long createDateIntervalFormat(String skeleton, String localeName,
String tzName) {
TimeZone prevDefaultTz = TimeZone.getDefault();
@@ -63,6 +66,7 @@
return sManager.addNewDelegate(newDelegate);
}
+ @LayoutlibDelegate
/*package*/ static void destroyDateIntervalFormat(long address) {
sManager.removeJavaReferenceFor((int)address);
}
diff --git a/tools/layoutlib/bridge/src/libcore/icu/ICU_Delegate.java b/tools/layoutlib/bridge/src/libcore/icu/ICU_Delegate.java
index 06ae804..ad4103b 100644
--- a/tools/layoutlib/bridge/src/libcore/icu/ICU_Delegate.java
+++ b/tools/layoutlib/bridge/src/libcore/icu/ICU_Delegate.java
@@ -46,7 +46,7 @@
// --- Native methods accessing ICU's database.
@LayoutlibDelegate
- /*package*/ static String getBestDateTimePattern(String skeleton, String localeName) {
+ /*package*/ static String getBestDateTimePatternNative(String skeleton, String localeName) {
return DateTimePatternGenerator.getInstance(new ULocale(localeName))
.getBestPattern(skeleton);
}
@@ -167,7 +167,7 @@
}
@LayoutlibDelegate
- /*package*/ static boolean initLocaleDataImpl(String locale, LocaleData result) {
+ /*package*/ static boolean initLocaleDataNative(String locale, LocaleData result) {
// Used by Calendar.
result.firstDayOfWeek = Integer.valueOf(1);